Annotation of cf/README, revision 1.1.1.4

1.1.1.4 ! root        1: Help for Cisco 7200/3600 simulator (dynamips-0.2.5)
        !             2: =====================================================
        !             3: Authors of this document: Fabien Devaux, Christophe Fillot, MtvE
1.1       root        4: 
                      5: Emulated hardware
                      6: *****************
                      7: 
1.1.1.4 ! root        8: The emulator currently supports Cisco 7200 and Cisco 3600 series.
        !             9: By default, a Cisco 7206VXR with NPE-200 (256 Mb of DRAM) is emulated.
        !            10: 
        !            11: To emulate a Cisco 3600, use the "-P 3600" command line option.
        !            12: 
        !            13: For the 7200, you can change the NPE type with the "-t" option. 
        !            14: It is possible to select "npe-100", "npe-150", "npe-175", "npe-200", 
        !            15: "npe-225", "npe-300" and "npe-400". The "npe-g1" is not working.
        !            16: 
        !            17: For the 3600, a 3640 with 128 Mb is emulated by default. You can change this 
        !            18: with the "-t" option and by specifying "3620" or "3660". 
        !            19: Don't forget to set the chassis type depending on your IOS image, 
        !            20: a c3660 image will not run on c3640 hardware and vice-versa.
        !            21: 
        !            22: Remark: PCMCIA card emulation is not supported yet with Cisco 3600.
1.1       root       23: 
                     24: 
                     25: Command Line Options overview
                     26: *****************************
                     27: 
1.1.1.4 ! root       28:   -l <log_file>      : Set logging file (default is dynamips_log.txt)
        !            29:   -j                 : Disable the JIT compiler, very slow
        !            30:   --exec-area <size> : Set the exec area size (default: 64 Mb)
        !            31:   --idle-pc <pc>     : Set the idle PC (default: disabled)
        !            32:   --timer-itv <val>  : Timer IRQ interval check (default: 1000)
        !            33: 
        !            34:   -i <instance>      : Set instance ID
        !            35:   -r <ram_size>      : Set the virtual RAM size
        !            36:   -o <rom_size>      : Set the virtual ROM size
        !            37:   -n <nvram_size>    : Set the NVRAM size
        !            38:   -c <conf_reg>      : Set the configuration register
        !            39:   -m <mac_addr>      : Set the MAC address of the chassis
        !            40:                        (default: automatically generated)
        !            41:   -C <cfg_file>      : Import an IOS configuration file into NVRAM
        !            42:   -X                 : Do not use a file to simulate RAM (faster)
        !            43:   -R <rom_file>      : Load an alternate ROM (default: embedded)
        !            44:   -k <clock_div>     : Set the clock divisor (default: 4)
        !            45: 
        !            46:   -T <port>          : Console is on TCP <port>
        !            47:   -U <si_desc>       : Console in on serial interface <si_desc>
        !            48:                        (default is on the terminal)
        !            49: 
        !            50:   -A <port>          : AUX is on TCP <port>
        !            51:   -B <si_desc>       : AUX is on serial interface <si_desc>
        !            52:                        (default is no AUX port)
        !            53: 
        !            54:   --disk0 <size>     : Set PCMCIA ATA disk0: size
        !            55:   --disk1 <size>     : Set PCMCIA ATA disk1: size
        !            56: 
        !            57:   -a <cfg_file>      : Virtual ATM switch configuration file
        !            58:   -f <cfg_file>      : Virtual Frame-Relay switch configuration file
        !            59:   -E <cfg_file>      : Virtual Ethernet switch configuration file
        !            60:   -b <cfg_file>      : Virtual bridge configuration file
        !            61:   -e                 : Show network device list of the host machine
        !            62: 
        !            63: Options specific to the Cisco 7200 series:
        !            64: 
        !            65:   -t <npe_type>      : Select NPE type (default: "npe-200")
        !            66:   -M <midplane>      : Select Midplane ("std" or "vxr")
        !            67:   -p <pa_desc>       : Define a Port Adapter
        !            68:   -s <pa_nio>        : Bind a Network IO interface to a Port Adapter
        !            69: 
        !            70: Options specific to the Cisco 3600 series ("dynamips -P 3600 --help"):
        !            71: 
        !            72:   -t <chassis_type>  : Select Chassis type (default: "3640")
        !            73:   -p <nm_desc>       : Define a Network Module
        !            74:   -s <nm_nio>        : Bind a Network IO interface to a Network Module
1.1       root       75: 
                     76: 
                     77: Command Line Options details
                     78: ****************************
                     79: 
1.1.1.4 ! root       80: -k <clock_div> :
1.1       root       81: 
                     82:    Specify the clock divider (integer) based on the host clock.
                     83:    Alter the value to match the CISCO clock with the real time.
                     84:    The command "show clock" at the IOS' CLI will help you set this value.
                     85: 
1.1.1.4 ! root       86: --idle-pc <pc> :
1.1       root       87: 
1.1.1.4 ! root       88:    The "idle PC" feature allows you to run a router instance without having
        !            89:    a 100% CPU load. This implies that you can run a larger number of instances
        !            90:    per real machine.
1.1       root       91: 
1.1.1.4 ! root       92:    To determine the "idle PC", start normally the emulator with your Cisco IOS 
        !            93:    image, and a totally IOS empty configuration (although not mandatory, this
        !            94:    will give better results). When the image is fully booted, wait for the
        !            95:    "Press RETURN to get started!" message prompt, but do not press Enter key.
        !            96:    Wait about 5 seconds, then press "Ctrl-] + i". Some statistics will be 
        !            97:    gathered during 10 seconds. At the end, the emulator will display a list of 
        !            98:    possible values to pass to the "--idle-pc" option. You may have to try some 
        !            99:    values before finding the good one. To check if the idle PC value is good, 
        !           100:    just boot the Cisco IOS image, and check your CPU load when the console 
        !           101:    prompt is available. If it is low, you have found a good value, keep it 
        !           102:    preciously.
        !           103: 
        !           104:    Important remarks:
        !           105:    ==================
        !           106: 
        !           107:       * An "idle PC" value is *specific* to a Cisco IOS image. You cannot
        !           108:         boot a different IOS image without proceeding as described above.
        !           109: 
        !           110:       * Do not run the process while having the "autoconfiguration" prompt.
        !           111: 
        !           112: 
        !           113: --exec_area <size> :
1.1       root      114: 
1.1.1.4 ! root      115:    The exec area is a pool of host memory used to store pages translated by
        !           116:    the JIT (they contain the native code corresponding to MIPS code pages).
        !           117: 
        !           118: 
        !           119: 
        !           120: Cisco 7200 Port Adapter Description "<pa_desc>":
        !           121: ------------------------------------------------
        !           122:    Format: slot:pa_driver
        !           123: 
        !           124:    slot: the number of the physical slot (starts from 0)
        !           125: 
        !           126:    pa_driver: the name of a Port Adapter driver in:
1.1       root      127:         - C7200-IO-FE  (FastEthernet, slot 0 only)
1.1.1.4 ! root      128:         - PA-FE-TX     (FastEthernet, slots 1 to 6)
        !           129:         - PA-4E        (Ethernet, 4 ports)
        !           130:         - PA-8E        (Ethernet, 8 ports)
1.1.1.3   root      131:         - PA-4T+       (Serial, 4 ports)
                    132:         - PA-8T        (Serial, 8 ports)
1.1       root      133:         - PA-A1        (ATM)
                    134: 
1.1.1.4 ! root      135: 
        !           136: Cisco 3600 Network Module Description "<nm_desc>":
        !           137: --------------------------------------------------
        !           138:    Format: slot:nm_driver
        !           139: 
        !           140:    slot: the number of the physical slot (starts from 0)
        !           141: 
        !           142:    nm_driver: the name of a Network Module driver in:
        !           143:         - NM-1E        (Ethernet, 1 port)
        !           144:         - NM-4E        (Ethernet, 4 ports)
        !           145:         - NM-1FE-TX    (FastEthernet, 1 port)
        !           146:         - NM-4T        (Serial, 4 ports)
        !           147:         - Leopard-2FE  (Cisco 3660 FastEthernet in slot 0, automatically used)
        !           148: 
        !           149: 
        !           150: NIO binding to Port Adapter "<pa_nio>" and Network Modules "<nm_nio>":
        !           151: ----------------------------------------------------------------------
1.1.1.3   root      152: 
                    153:    Format: slot:port:netio_type[:netio_parameters]
                    154: 
                    155:    slot       : the number of the physical slot (starts from 0)
                    156:    port       : the port in the specified slot (starts from 0)
                    157: 
1.1       root      158:    netio_type : host interface for communication
                    159: 
                    160:         unix:<local_sock>:<remote_sock>
                    161:            Use unix sockets for local communication.
                    162:            <local_sock> is created and represents the local NIC.
                    163:            <remote_sock> is the file used by the other interface.
                    164:            (ex. "/tmp/local:/tmp/remote")
                    165: 
1.1.1.4 ! root      166:         vde:<control_sock>:<local_sock>
        !           167:            For use with UML (User-Mode-Linux) or VDE switches.
        !           168:            VDE stands for "Virtual Distributed Ethernet".
        !           169:            Please refer to : http://sourceforge.net/projects/vde/
        !           170: 
1.1       root      171:         tap:<tap_name>
                    172:            Use a virtual ethernet device for communication.
                    173:            <tap_name> is the name of the tap device (ex. "tap0")
                    174: 
1.1.1.2   root      175:         gen_eth:<dev_name>
                    176:            Use a real ethernet device for communication, using libpcap 0.9
                    177:            or WinPcap. Works on Windows and Unix systems.          
                    178: 
                    179:            <dev_name> is the name of the Ethernet device (ex. "eth0")
                    180: 
                    181:            The device list can be found using the "-e" option.
                    182: 
1.1       root      183:         linux_eth:<dev_name>
                    184:            Use a real ethernet device for communication (Linux specific).
                    185:            <dev_name> is the name of the Ethernet device (ex. "eth0")
                    186: 
                    187:         udp:<local_port>:<remote_host>:<remote_port>
                    188:            Use an UDP socket for connection between remote instances.
                    189:            <local_port> is the port we listen to.
                    190:            <remote_host> is the host listening the port you want to connect to.
                    191:            <remote_port> is the port you want to connect to.
                    192:           (ex. "1000:somehost:2000" and "2000:otherhost:1000" on the other 
                    193:            side)
                    194: 
                    195:         tcp_cli:<host>:<port>
                    196:            Client side of a tcp connection.
                    197:            <host> is the ip address of the server.
                    198:            <port> is the port to connect to.
                    199: 
                    200:         tcp_ser:<port>
                    201:            Server side of a tcp connection.
                    202:            <port> is the port to listen to.
                    203: 
                    204:         null
                    205:            Dummy netio (used for testing/debugging), no parameters needed.
                    206: 
                    207: 
1.1.1.4 ! root      208: 
        !           209: VTTY binding to real serial port device "<si_desc>":
        !           210: ----------------------------------------------------
        !           211: 
        !           212:    Format: <device>{:baudrate{:databits{:parity{:stopbits{:hwflow}}}}}}
        !           213: 
        !           214:    device: character device name, e.g. /dev/ttyS0
        !           215:    baudrate: baudrate
        !           216:    databits: number of databits.
        !           217:    parity: data parity: N=none, O=odd, E=even, 
        !           218:    stopbits: number of stop bits
        !           219:    hwflow: hardware flow control (0=disable, 1=enable)
        !           220: 
        !           221:    Note that the device field is mandatory, however other fields are optional. 
        !           222:    (dynamips will default to 9600, 8, N, 1, no hardware flow control)
        !           223: 
        !           224:    Note that access to the escape commands (described below) through a serial
        !           225:    port are deliberately prevented, as the escape commands interfere with
        !           226:    serial encapsulation protocols.
        !           227: 
        !           228: 
1.1       root      229: Escape commands
                    230: ***************
                    231: 
1.1.1.2   root      232: You can press ^] (Ctrl + ]) at any time, followed by one of these characters:
1.1       root      233: 
1.1.1.4 ! root      234: o : Show the VM object list
1.1       root      235: d : Show the device list
                    236: r : Dump MIPS CPU registers
                    237: t : Dump MIPS TLB entries
                    238: m : Dump the latest memory accesses
                    239: s : Suspend CPU emulation
                    240: u : Resume CPU emulation
                    241: q : Quit the emulator
                    242: b : Dump the instruction block tree
1.1.1.3   root      243: h : JIT hash table statistics
1.1.1.4 ! root      244: l : MTS64 cache statistics
1.1       root      245: c : Write IOS configuration to disk (ios_cfg.txt)
                    246: j : Non-JIT mode statistics
                    247: x : Experimentations (can crash the box!)
                    248: ^]: Send ^]
                    249: 
                    250: If you press an unrecognized key, help will be shown. 
                    251: 
1.1.1.2   root      252: Note: on Windows, it may be the "Ctrl + $" sequence.
                    253: 
1.1       root      254: 
                    255: Virtual Bridge
                    256: **************
                    257: 
                    258: The virtual bridge is used to emulate a shared network between emulator
                    259: instances.
                    260: 
1.1.1.4 ! root      261: Any emulator instance can act as a virtual bridge.
1.1       root      262: 
                    263: The configuration file (specified by the "-b" option) contains a list of
1.1.1.4 ! root      264: NetIO descriptors, with the following syntax:
        !           265:  
        !           266:    interface_name:netio_type[:netio_parameters]
1.1       root      267: 
                    268: Example:
                    269: 
                    270: # Connection to instance "I0"
1.1.1.4 ! root      271: I0:udp:10000:127.0.0.1:10001
1.1       root      272: 
                    273: # Connection to instance "I1"
1.1.1.4 ! root      274: I1:udp:10002:127.0.0.1:10003
1.1       root      275: 
                    276: # Connection to instance "I2"
1.1.1.4 ! root      277: I2:udp:10004:127.0.0.1:10005
        !           278: 
        !           279: The "I0" instance would be launched with the following parameters:
        !           280: 
        !           281:    dynamips ios.bin -p 1:PA-FE-TX -s 1:0:udp:10001:127.0.0.1:10000
        !           282: 
        !           283: 
        !           284: Virtual Ethernet switch
        !           285: ***********************
        !           286: 
        !           287: The virtual ethernet switch is used to emulate an Ethernet network between
        !           288: emulator instances. This switch supports access and trunk ports (802.1Q).
        !           289: ISL will be available in a future release.
        !           290: 
        !           291: Any emulator instance can act as a virtual ethernet switch.
        !           292: 
        !           293: The configuration file (specified by the "-E" option) contains a list of
        !           294: NetIO descriptors (representing interfaces) and a list of interface properties
        !           295: (access/trunk port, VLAN info...)
        !           296: 
        !           297: The interface definition is similar to Port Adapters:
        !           298: 
        !           299:    IF:interface_name:netio_type[:netio_parameters]
        !           300: 
        !           301: 1) Configuring an Access Port
        !           302: 
        !           303: syntax: ACCESS:interface_name:vlan_id
        !           304: 
        !           305: 2) Configuration a 802.1Q Trunk Port
        !           306: 
        !           307: syntax: DOT1Q:interface_name:native_vlan
        !           308: 
        !           309: The native VLAN is not tagged. On Cisco devices, by default the native VLAN
        !           310: is VLAN 1.
        !           311: 
        !           312: Example of configuration file:
1.1       root      313: 
1.1.1.4 ! root      314: IF:E0:udp:10000:127.0.0.1:10001
        !           315: IF:E1:udp:10002:127.0.0.1:10003
        !           316: IF:E2:gen_eth:eth0
1.1       root      317: 
1.1.1.4 ! root      318: DOT1Q:E0:1
        !           319: ACCESS:E1:4
        !           320: DOT1Q:E2:1
1.1       root      321: 
                    322: 
                    323: Virtual ATM switch
                    324: ******************
                    325: 
                    326: The virtual ATM switch fabric is used to emulate an ATM backbone between 
                    327: emulator instances. The use of this virtual switch is not mandatory, you 
                    328: can directly connect emulator instances for point-to-point ATM connections.
                    329: Please note that only basic VP/VC switching is supported, there is no
                    330: support for ILMI/QSAAL/... or other specific ATM protocols.
                    331: 
                    332: Any emulator instance can act as a virtual ATM switch.
                    333: 
                    334: Example of configuration file (specified by the "-a" option):
                    335: 
                    336: # Virtual Interface List
                    337: IF:A0:udp:10001:127.0.0.1:10000
                    338: IF:A1:udp:10002:127.0.0.1:10003
                    339: IF:A2:udp:10004:127.0.0.1:10005
                    340: 
                    341: # VP connection between I0 and I1
                    342: VP:A0:10:A1:20
                    343: VP:A1:20:A0:10
                    344: 
                    345: # VP connection between I0 and I2
                    346: VP:A0:11:A2:30
                    347: VP:A2:30:A0:11
                    348: 
                    349: # VC connection between I1 and I2
                    350: VC:A1:5:2:A2:7:3
                    351: VC:A2:7:3:A1:5:2
                    352: 
                    353: In this example, we have 3 virtual interfaces, A0, A1 and A2. The syntax
                    354: for interface definition is similar to Port Adapters:
                    355: 
                    356:    IF:interface_name:netio_type[:netio_parameters]
                    357: 
                    358: You can do VP switching or VC switching:
                    359: 
                    360: 1) VP switching
                    361: 
                    362: syntax: VP:input_if:input_vpi:output_if:output_vpi
                    363: 
                    364: 2) VC switching
                    365: 
                    366: syntax: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci
                    367: 
                    368: 
                    369: Testing the Virtual ATM switch with one dynamips instance
                    370: *********************************************************
                    371: (Contribution of Mtv Europe)
                    372: 
                    373: Virtual ATM switch configuration file ("atm.cfg"):
                    374: 
                    375: IF:A0:udp:10003:127.0.0.1:10001
                    376: IF:A1:udp:10004:127.0.0.1:10002                                                
                    377: # a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200
                    378: VC:A0:1:100:A1:2:200                                                           
                    379: VC:A1:2:200:A0:1:100
                    380: 
                    381: Invoking dynamips:
                    382: 
1.1.1.4 ! root      383: ./dynamips -p 1:PA-A1 -s 1:0:udp:10001:127.0.0.1:10003 \
        !           384:            -p 2:PA-A1 -s 2:0:udp:10002:127.0.0.1:10004 \
        !           385:            -a atm.cfg IOS.BIN
1.1       root      386: 
                    387: (note input ports of IOS interfaces are output ports of ATM switch 
                    388: interfaces, and vice versa).
                    389: 
                    390: IOS configuration:
                    391: 
                    392: ip cef
                    393: ip vrf test
                    394:  rd 1:1
                    395:  route-target both 1:1
                    396: int a1/0
                    397:  no shut
                    398: int a1/0.2 p
                    399:  ip addr 1.1.1.1 255.255.255.0
                    400:  pvc 1/100
                    401: interface a2/0
                    402:  no shut
                    403: interface a2/0.2 p
                    404:  ip vrf forwarding test
                    405:  ip addr 1.1.1.2 255.255.255.0
                    406:  pvc 2/200
                    407: !
                    408: 
                    409: # ping 1.1.1.2
                    410: !!!!!
                    411: 
1.1.1.3   root      412: 
                    413: Virtual Frame-Relay switch
                    414: **************************
                    415: 
                    416: The virtual Frame-Relay switch fabric is used to emulate a Frame-Relay 
                    417: backbone between emulator instances. The use of this virtual switch is not 
                    418: mandatory, you can directly connect emulator instances with appropriate IOS
                    419: configuration.
                    420: 
                    421: Any emulator instance can act as a virtual Frame-Relay switch.
                    422: 
                    423: There is only a basic implementation of the LMI protocol (ANSI Annex D), which
                    424: is probably not conforming but works with Cisco IOS. Fortunately, Cisco IOS
                    425: is able to detect automatically the LMI protocol.
                    426: 
                    427: Example of configuration file (specified by the "-f" option):
                    428: 
                    429: # Virtual Interface List
                    430: IF:S0:udp:10001:127.0.0.1:10000
                    431: IF:S1:udp:10002:127.0.0.1:10003
                    432: 
                    433: # DLCI switching between S0 and S1
                    434: VC:S0:200:S1:100
                    435: VC:S1:100:S0:200
                    436: 
                    437: In this example, we have 2 virtual interfaces, S0 and S1. The syntax
                    438: for interface definition is similar to Port Adapters:
                    439: 
                    440:    IF:interface_name:netio_type[:netio_parameters]
                    441: 
                    442: DLCI switching syntax:
                    443: 
                    444:    VC:input_if:input_dlci:output_if:output_dlci
                    445: 
                    446: In the example above, the switch is configured to switch packets 
                    447: received on interface S0 with DLCI 200 to interface S1 with DLCI 100,
                    448: and vice-versa.
                    449: 
1.1       root      450: == EOF ==
1.1.1.3   root      451: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.