/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Sat Oct 6 16:05:34 2007 UTC (13 years, 1 month ago) by dpavlin
File size: 14755 byte(s)
dynamips-0.2.6-RC2

1 Help for Cisco 7200/3600 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 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 i : Determine an idling pointer counter
248 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