/[dynamips]/upstream/dynamips-0.2.6-RC2/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 /upstream/dynamips-0.2.6-RC2/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Sat Oct 6 16:05:34 2007 UTC (14 years, 10 months ago) by dpavlin
File size: 14755 byte(s)
dynamips-0.2.6-RC2

1 dpavlin 3 Help for Cisco 7200/3600 simulator (dynamips-0.2.6)
2 dpavlin 1 =====================================================
3     Authors of this document: Fabien Devaux, Christophe Fillot, MtvE
4    
5     Emulated hardware
6     *****************
7    
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.
23    
24    
25     Command Line Options overview
26     *****************************
27    
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
75    
76    
77     Command Line Options details
78     ****************************
79    
80     -k <clock_div> :
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    
86     --idle-pc <pc> :
87    
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.
91    
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> :
114    
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:
127     - C7200-IO-FE (FastEthernet, slot 0 only)
128     - PA-FE-TX (FastEthernet, slots 1 to 6)
129     - PA-4E (Ethernet, 4 ports)
130     - PA-8E (Ethernet, 8 ports)
131     - PA-4T+ (Serial, 4 ports)
132     - PA-8T (Serial, 8 ports)
133     - PA-A1 (ATM)
134    
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     ----------------------------------------------------------------------
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    
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    
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    
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    
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    
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    
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    
229     Escape commands
230     ***************
231    
232     You can press ^] (Ctrl + ]) at any time, followed by one of these characters:
233    
234     o : Show the VM object list
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
243     h : JIT hash table statistics
244     l : MTS64 cache statistics
245     c : Write IOS configuration to disk (ios_cfg.txt)
246     j : Non-JIT mode statistics
247 dpavlin 3 i : Determine an idling pointer counter
248 dpavlin 1 x : Experimentations (can crash the box!)
249     ^]: Send ^]
250    
251     If you press an unrecognized key, help will be shown.
252    
253     Note: on Windows, it may be the "Ctrl + $" sequence.
254    
255    
256     Virtual Bridge
257     **************
258    
259     The virtual bridge is used to emulate a shared network between emulator
260     instances.
261    
262     Any emulator instance can act as a virtual bridge.
263    
264     The configuration file (specified by the "-b" option) contains a list of
265     NetIO descriptors, with the following syntax:
266    
267     interface_name:netio_type[:netio_parameters]
268    
269     Example:
270    
271     # Connection to instance "I0"
272     I0:udp:10000:127.0.0.1:10001
273    
274     # Connection to instance "I1"
275     I1:udp:10002:127.0.0.1:10003
276    
277     # Connection to instance "I2"
278     I2:udp:10004:127.0.0.1:10005
279    
280     The "I0" instance would be launched with the following parameters:
281    
282     dynamips ios.bin -p 1:PA-FE-TX -s 1:0:udp:10001:127.0.0.1:10000
283    
284    
285     Virtual Ethernet switch
286     ***********************
287    
288     The virtual ethernet switch is used to emulate an Ethernet network between
289     emulator instances. This switch supports access and trunk ports (802.1Q).
290     ISL will be available in a future release.
291    
292     Any emulator instance can act as a virtual ethernet switch.
293    
294     The configuration file (specified by the "-E" option) contains a list of
295     NetIO descriptors (representing interfaces) and a list of interface properties
296     (access/trunk port, VLAN info...)
297    
298     The interface definition is similar to Port Adapters:
299    
300     IF:interface_name:netio_type[:netio_parameters]
301    
302     1) Configuring an Access Port
303    
304     syntax: ACCESS:interface_name:vlan_id
305    
306     2) Configuration a 802.1Q Trunk Port
307    
308     syntax: DOT1Q:interface_name:native_vlan
309    
310     The native VLAN is not tagged. On Cisco devices, by default the native VLAN
311     is VLAN 1.
312    
313     Example of configuration file:
314    
315     IF:E0:udp:10000:127.0.0.1:10001
316     IF:E1:udp:10002:127.0.0.1:10003
317     IF:E2:gen_eth:eth0
318    
319     DOT1Q:E0:1
320     ACCESS:E1:4
321     DOT1Q:E2:1
322    
323    
324     Virtual ATM switch
325     ******************
326    
327     The virtual ATM switch fabric is used to emulate an ATM backbone between
328     emulator instances. The use of this virtual switch is not mandatory, you
329     can directly connect emulator instances for point-to-point ATM connections.
330     Please note that only basic VP/VC switching is supported, there is no
331     support for ILMI/QSAAL/... or other specific ATM protocols.
332    
333     Any emulator instance can act as a virtual ATM switch.
334    
335     Example of configuration file (specified by the "-a" option):
336    
337     # Virtual Interface List
338     IF:A0:udp:10001:127.0.0.1:10000
339     IF:A1:udp:10002:127.0.0.1:10003
340     IF:A2:udp:10004:127.0.0.1:10005
341    
342     # VP connection between I0 and I1
343     VP:A0:10:A1:20
344     VP:A1:20:A0:10
345    
346     # VP connection between I0 and I2
347     VP:A0:11:A2:30
348     VP:A2:30:A0:11
349    
350     # VC connection between I1 and I2
351     VC:A1:5:2:A2:7:3
352     VC:A2:7:3:A1:5:2
353    
354     In this example, we have 3 virtual interfaces, A0, A1 and A2. The syntax
355     for interface definition is similar to Port Adapters:
356    
357     IF:interface_name:netio_type[:netio_parameters]
358    
359     You can do VP switching or VC switching:
360    
361     1) VP switching
362    
363     syntax: VP:input_if:input_vpi:output_if:output_vpi
364    
365     2) VC switching
366    
367     syntax: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci
368    
369    
370     Testing the Virtual ATM switch with one dynamips instance
371     *********************************************************
372     (Contribution of Mtv Europe)
373    
374     Virtual ATM switch configuration file ("atm.cfg"):
375    
376     IF:A0:udp:10003:127.0.0.1:10001
377     IF:A1:udp:10004:127.0.0.1:10002
378     # a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200
379     VC:A0:1:100:A1:2:200
380     VC:A1:2:200:A0:1:100
381    
382     Invoking dynamips:
383    
384     ./dynamips -p 1:PA-A1 -s 1:0:udp:10001:127.0.0.1:10003 \
385     -p 2:PA-A1 -s 2:0:udp:10002:127.0.0.1:10004 \
386     -a atm.cfg IOS.BIN
387    
388     (note input ports of IOS interfaces are output ports of ATM switch
389     interfaces, and vice versa).
390    
391     IOS configuration:
392    
393     ip cef
394     ip vrf test
395     rd 1:1
396     route-target both 1:1
397     int a1/0
398     no shut
399     int a1/0.2 p
400     ip addr 1.1.1.1 255.255.255.0
401     pvc 1/100
402     interface a2/0
403     no shut
404     interface a2/0.2 p
405     ip vrf forwarding test
406     ip addr 1.1.1.2 255.255.255.0
407     pvc 2/200
408     !
409    
410     # ping 1.1.1.2
411     !!!!!
412    
413    
414     Virtual Frame-Relay switch
415     **************************
416    
417     The virtual Frame-Relay switch fabric is used to emulate a Frame-Relay
418     backbone between emulator instances. The use of this virtual switch is not
419     mandatory, you can directly connect emulator instances with appropriate IOS
420     configuration.
421    
422     Any emulator instance can act as a virtual Frame-Relay switch.
423    
424     There is only a basic implementation of the LMI protocol (ANSI Annex D), which
425     is probably not conforming but works with Cisco IOS. Fortunately, Cisco IOS
426     is able to detect automatically the LMI protocol.
427    
428     Example of configuration file (specified by the "-f" option):
429    
430     # Virtual Interface List
431     IF:S0:udp:10001:127.0.0.1:10000
432     IF:S1:udp:10002:127.0.0.1:10003
433    
434     # DLCI switching between S0 and S1
435     VC:S0:200:S1:100
436     VC:S1:100:S0:200
437    
438     In this example, we have 2 virtual interfaces, S0 and S1. The syntax
439     for interface definition is similar to Port Adapters:
440    
441     IF:interface_name:netio_type[:netio_parameters]
442    
443     DLCI switching syntax:
444    
445     VC:input_if:input_dlci:output_if:output_dlci
446    
447     In the example above, the switch is configured to switch packets
448     received on interface S0 with DLCI 200 to interface S1 with DLCI 100,
449     and vice-versa.
450    
451     == EOF ==
452    

  ViewVC Help
Powered by ViewVC 1.1.26