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

Contents of /upstream/dynamips-0.2.6-RC3/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (show annotations)
Sat Oct 6 16:06:49 2007 UTC (16 years, 5 months ago) by dpavlin
File size: 16234 byte(s)
dynamips-0.2.6-RC3

1 Help for Cisco router simulator (dynamips-0.2.6)
2 ================================================
3 Authors of this document: Fabien Devaux, Christophe Fillot, MtvE
4
5 Emulated hardware
6 *****************
7
8 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 By default, a Cisco 7206VXR with NPE-200 (256 Mb of DRAM) is emulated.
16
17 To emulate another platform, use the "-P" command line option (for example,
18 "-P 3725" or "-P 3600").
19
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 --iomem-size <val> : IO memory (in percents, default: 5)
81 -p <nm_desc> : Define a Network Module
82 -s <nm_nio> : Bind a Network IO interface to a Network Module
83
84 Options specific to the Cisco 2691 series ("dynamips -P 2691 --help"):
85
86 --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 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 - NM-16ESW (Ethernet switch module, 16 ports)
175 - Leopard-2FE (Cisco 3660 FastEthernet in slot 0, automatically used)
176
177
178 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 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 i : Determine an idling pointer counter
289 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