/[dynamips]/trunk/README
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (hide annotations)
Sat Oct 6 16:26:06 2007 UTC (16 years, 6 months ago) by dpavlin
Original Path: upstream/dynamips-0.2.7-RC3/README
File size: 16234 byte(s)
dynamips-0.2.7-RC3

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

  ViewVC Help
Powered by ViewVC 1.1.26