• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

cmake/H24-Jul-2017-841768

common/H03-May-2022-74,28149,774

man/H03-May-2022-1,5041,466

stable/H03-May-2022-36,15325,268

unstable/H03-May-2022-41,74629,042

.gitignoreH A D24-Jul-2017269 1615

.travis.ymlH A D24-Jul-2017715 2019

COPYINGH A D24-Jul-201717.6 KiB340281

ChangeLogH A D24-Jul-201798.2 KiB2,9862,524

MAINTAINERSH A D24-Jul-2017268 106

README.hypervisorH A D24-Jul-201726.8 KiB742503

README.mdH A D24-Jul-20174.5 KiB162117

RELEASE-NOTESH A D24-Jul-2017997 3824

TODOH A D24-Jul-20171 KiB2721

appveyor.ymlH A D24-Jul-20171 KiB2823

profiler_resolve.plH A D24-Jul-2017579 3020

README.hypervisor

1Description of the hypervisor mode
2==================================
3
4The hypervisor mode of dynamips allows you to run simultaneously
5many virtual router instances, and to simulate ATM, Ethernet
6or Frame-Relay networks.
7
8Available since version 0.2.5.
9
10Running dynamips in hypervisor mode
11===================================
12
13dynamips -H [<ip_address>:]<tcp_port>
14
15Managing the hypervisor
16=======================
17
18You can connect directly to the TCP control port with telnet, or use
19dynagen/dynagui that will pass commands transparently. The second method
20is highly recommended.
21
22The command syntax is simple: <module> <function> [arguments...]
23For example: "vm start R1" starts virtual instance named "R1".
24
25The modules that are currently defined are given below:
26
27  * hypervisor   : General hypervisor management
28  * vm           : General virtual machine (VM) management
29  * vm_debug     : General virtual machine (VM) debugging
30  * c7200        : Virtual instances of Cisco 7200
31  * c3745        : Virtual instances of Cisco 3745
32  * c3725        : Virtual instances of Cisco 3725
33  * c3600        : Virtual instances of Cisco 3600
34  * c2691        : Virtual instances of Cisco 2691
35  * c2600        : Virtual instances of Cisco 2600
36  * c1700        : Virtual instances of Cisco 1700
37  * nio          : Network Input/Output (NIO) descriptors
38  * nio_bridge   : NIO bridges (shared media)
39  * atmsw        : ATM switches
40  * atm_bridge   : ATM bridges
41  * frsw         : Frame-Relay switches
42  * ethsw        : Ethernet switches
43  * object_store : Object store
44
45
46Hypervisor management module ("hypervisor")
47============================================
48
49* "hypervisor version" : Display the version of dynamips.
50
51* "hypervisor module_list" : Display the module list.
52
53* "hypervisor cmd_list <module>" : Display commands recognized by the
54  specified module.
55
56* "hypervisor close" : Close the current session.
57
58* "hypervisor stop"  : Destroy all objects and stop hypervisor.
59
60* "hypervisor reset" : Destroy all objects. (used to get an empty
61  configuration)
62
63* "hypervisor working_dir <directory>" : Set the directory to use to store
64  files.
65
66* "hypervisor save_config <filename>" : Save the configuration of all objects
67  into the specified file.
68
69* "hypervisor parser_test [<a1> [... <a10>]]" : Display up to 10 arguments.
70  (since version 0.2.6-RC1)
71
72* "hypervisor tsg_stats" : Dump statistics about JIT code sharing to
73  the console. (since version 0.2.8-RC3, unstable)
74
75Virtual Machine module ("vm")
76=============================
77
78* "vm list" : List all VM instances.
79  (c7200, c3745, c3725, c3600, c2691, c2600, c1700)
80
81* "vm list_con_ports" : List all VM console TCP port.
82  (since version 0.2.6-RC5)
83
84* "vm create <instance_name> <instance_id> <platform>" :
85  Create a new router instance.
86  The ID must be unique and is used to name files on disk.
87  (since version 0.2.8-RC1)
88
89* "vm rename <instance_name> <new_name>" : Rename a router instance.
90  (since version 0.2.11)
91
92* "vm delete <instance_name>" : Delete the specified instance.
93  (since version 0.2.8-RC1)
94
95* "vm clean_delete <instance_name>" : Delete the specified instance and all
96  the related files (best effort). (since version 0.2.11)
97
98* "vm start <instance_name>" : Start the instance.
99  At least the IOS image must be set.
100  (since version 0.2.8-RC1)
101
102* "vm stop <instance_name>" : Stop the instance. The settings are kept.
103  (since version 0.2.8-RC1)
104
105* "vm get_status <instance_name>" : Get the status of a VM instance.
106  Return values: 0=inactive, 1=shutting down, 2=running, 3=suspended.
107  (since version 0.2.11)
108
109* "vm set_tsg <instance_name> <group_id>" : Set translation sharing group.
110  (since version 0.2.8-RC3-community, unstable)
111
112* "vm set_debug_level <instance_name> <level>" : Set the debug level
113  (which is a number) for a VM. By default, no specific debug is enabled
114  (level = 0).
115
116* "vm set_ios <instance_name> <ios_file>" : Set the IOS image file to
117  use. There is no default.
118
119* "vm set_config <instance_name> <startup_file> [<private_file>]" :
120  Set the config files that are pushed to startup-config and
121  private-config in NVRAM when the instance is started.
122  To keep existing data, use an empty string ('') for the filename.
123  The optional <private_file> is an empty string by default.
124  (supports <private_file> since version 0.2.10)
125
126* "vm extract_config <instance_name>" : Get the contents of the config files
127  startup-config and private-config from NVRAM. The data of each file is
128  encoded in a Base64 string, surrounded by single quotes.
129  (returns private-config since version 0.2.10)
130
131* "vm push_config <instance_name> <startup_cfg> [<private_cfg>]" :
132  Push configuration to the config files startup-config and private-config
133  in NVRAM.
134  The data is a Base64 encoded string, or '(keep)' to keep existing data.
135  The optional <private_cfg> is '(keep)' by default.
136  (supports <private_cfg> since version 0.2.11)
137
138* "vm set_ram <instance_name> <ram_size>" : Set the RAM size, specified
139  in Mbytes.
140
141* "vm set_nvram <instance_name> <nvram_size>" : Set the NVRAM size,
142  specified in Kbytes.
143
144* "vm set_ram_mmap <instance_name> <0|1>" : Enable/Disable use
145  of a mapped file to simulate router memory. By default, a mapped file
146  is used. This is a bit slower, but requires less memory.
147
148* "vm set_sparse_mem <instance_name> <0|1>" : Enable/disable use of
149  sparse memory. (since version 0.2.7-RC1)
150
151* "vm suspend <instance_name>" : Suspend execution of the instance.
152
153* "vm resume <instance_name>" : Resume execution of the instance.
154
155* "vm set_clock_divisor <instance_name> <clock_div>" : Set the clock
156  divisor value. The higher is the value, the faster is the clock in the
157  virtual machine. The default is 4, but it is often required to adjust it.
158
159* "vm set_blk_direct_jump <instance_name> <0|1>" : Enable/disable use
160  of block direct jump. (compatibility option, since version 0.2.7-RC2)
161
162* "vm set_idle_pc <instance_name> <pc_value>" : Set the idle Pointer
163  Counter (PC). You must determine it through the method explained in the
164  main README file.
165
166* "vm set_idle_pc_online <instace_name> <cpu_id> <pc_value>" :
167  Set the idle PC value when the CPU is online.
168  (since version 0.2.6-RC2)
169
170* "vm get_idle_pc_prop <instance_name> <cpu_id>" :
171  Get the idle PC proposals.
172  Takes 1000 measurements and records up to 10 idle PC proposals.
173  There is a 10ms wait between each measurement.
174  (since version 0.2.6-RC2)
175
176* "vm show_idle_pc_prop <instance_name> <cpu_id>" :
177  Dump the idle PC proposals. (since version 0.2.6-RC2)
178
179* "vm set_idle_max <instance_name> <cpu_id> <idle_max>" :
180  Set CPU idle max value. (since version 0.2.6-RC2)
181
182* "vm set_idle_sleep_time <instance_name> <cpu_id> <idle_sleep_time>" :
183  Set CPU idle sleep time value. (since version 0.2.6-RC2)
184
185* "vm show_timer_drift <instance_name> <cpu_id>" :
186  Show info about potential timer drift.
187  (since version 0.2.6-RC3)
188
189* "vm set_ghost_file <instance_name> <ghost_ram_filename>" :
190  Set ghost RAM file. (since version 0.2.6-RC3,
191  needs an extra bogus argument before version 0.2.6-RC4)
192
193* "vm set_ghost_status <instance_name> <ghost_status>" :
194  Set ghost RAM status. (since version 0.2.6-RC3,
195  needs an extra bogus argument before version 0.2.6-RC4)
196
197* "vm set_exec_area <instance_name> <area_size>" : Set the exec area
198  size. The exec area is a pool of host memory used to store pages
199  translated by the JIT (they contain the native code corresponding to MIPS
200  code pages).
201
202* "vm set_disk0 <instance_name> <value>" : Set size of PCMCIA ATA disk0.
203
204* "vm set_disk1 <instance_name> <value>" : Set size of PCMCIA ATA disk1.
205
206* "vm set_conf_reg <instance_name> <value>" : Set the config register
207  value. The default is 0x2102.
208
209* "vm set_con_tcp_port <instance_name> <tcp_port>" : Set the TCP port
210  to use for console. By default, no TCP port is chosen, meaning that you
211  cannot get access to the console.
212
213* "vm set_aux_tcp_port <instance_name> <tcp_port>" : Set the TCP port
214  to use for AUX port. By default, no TCP port is chosen, meaning that you
215  cannot get access to the AUX port.
216
217* "vm cpu_info <instance_name> <cpu_id>" : Show info about the CPU identified
218  by "cpu_id". The boot CPU (which is typically the only CPU) has ID 0.
219
220* "vm cpu_usage <instance_name> <cpu_id>" : Show cpu usage of dynamips in
221  seconds. (experimental)
222  The instance must exist, "cpu_id" is ignored.
223  (since version 0.2.8-RC5-community)
224
225* "vm send_con_msg <instance_name> <str> [<format>]" :
226  (since version 0.2.6-RC3) Send a message on the console.
227  It only writes the bytes that fit in the console buffer.
228
229  (since version 0.2.14)
230  The optional argument <format> indicates the string format.
231  On success it will report "X byte(s) written".
232
233  String formats:
234   * plain - plain string (default, old behavior)
235   * base64 - base64 encoded string
236
237* "vm send_aux_msg <instance_name> <str> [<format>]" :
238  (since version 0.2.6-RC3) Send a message on the AUX port.
239  It only writes the bytes that fit in the aux buffer.
240
241  (since version 0.2.14)
242  The optional argument <format> indicates the string format.
243  On success it will report "X byte(s) written".
244
245  String formats:
246   * plain - plain string (default, old behavior)
247   * base64 - base64 encoded string
248
249* "vm slot_bindings <instance_name>" :
250  Show slot bindings. (since version 0.2.8-RC1)
251
252* "vm slot_nio_bindings <instance_name> <slot_id>" :
253  Show NIO bindings for the specified slot. (since version 0.2.8-RC1)
254
255* "vm slot_add_binding <instance_name> <slot_id> <port_id> <dev_type>" :
256  Add a slot binding. (since version 0.2.8-RC1)
257
258* "vm slot_remove_binding <instance_name> <slot_id> <port_id>" :
259  Remove a slot binding . (since version 0.2.8-RC1)
260
261* "vm slot_add_nio_binding <instance_name> <slot_id> <port_id> <nio_name>" :
262  Add a NIO binding for a slot/port. (since version 0.2.8-RC1)
263
264* "vm slot_remove_nio_binding <instance_name> <slot_id> <port_id>" :
265  Remove a NIO binding for a slot/port. (since version 0.2.8-RC1)
266
267* "vm slot_enable_nio <instance_name> <slot_id> <port_id>" :
268  Enable NIO of the specified slot/port. (since version 0.2.8-RC1)
269
270* "vm slot_disable_nio <instance_name> <slot_id> <port_id>" :
271  Disable NIO of the specified slot/port. (since version 0.2.8-RC1)
272
273* "vm slot_oir_start <instance_name> <slot_id> <subslot_id>" :
274  OIR to start a slot/subslot. (since version 0.2.8-RC3-community)
275
276* "vm slot_oir_stop <isntance_name> <slot_id> <subslot_id>" :
277  OIR to stop a slot/subslot. (since version 0.2.8-RC3-community)
278
279
280Virtual Machine debugging module ("vm_debug")
281=======================================
282
283Available since version 0.2.6-RC1.
284
285* "vm_debug show_cpu_regs <instance_name> <cpu_id>" :
286  Dump CPU registers to the console.
287
288* "vm_debug show_cpu_mmu <instance_name> <cpu_id>" :
289  Dump CPU MMU info to the console. (since version 0.2.7-RC1)
290
291* "vm_debug set_cpu_reg <instance_name> <cpu_id> <reg_id> <value>" :
292  Set the value of a CPU register.
293
294* "vm_debug add_cpu_breakpoint <instance_name> <cpu_id> <address>" :
295  Add a breakpoint.
296
297* "vm_debug remove_cpu_breakpoint <instance_name> <cpu_id> <address>" :
298  Remove a breakpoint.
299
300* "vm_debug pmem_w32 <instance_name> <cpu_id> <address> <value>" :
301  Write a 32-bit memory word to physical memory.
302
303* "vm_debug pmem_r32 <instance_name> <cpu_id> <address>" :
304  Read a 32-bit memory word from physical memory.
305
306* "vm_debug pmem_w16 <instance_name> <cpu_id> <address> <value>" :
307  Write a 16-bit memory word to physical memory.
308
309* "vm_debug pmem_r16 <instance_name> <cpu_id> <address>" :
310  Read a 16-bit memory word from physical memory.
311
312* "vm_debug pmem_cfind <instance_name> <cpu_id> <bytes> [<first> [<last>]]" :
313  Find a sequence of bytes in physical memory interval [first,last].
314  The byte sequence is composed of hexadecimal characters and must have a length
315  multiple of 2. The interval defaults to the complete memory space.
316  Only the memory of cacheable devices (ram, rom, disks, ...) is searched.
317  (since version 0.2.12)
318
319
320Virtual Cisco 7200 instances module ("c7200")
321==============================================
322
323* "c7200 list" : List all existing Cisco 7200 instances.
324
325* "c7200 set_npe <instance_name> <npe_name>" : Set the NPE model.
326  For example: npe-100, npe-400, ... The default is "npe-400".
327
328* "c7200 set_midplane <instance_name> <midplane_name>" : Set the midplane
329  model, it can be either "std" or "vxr". The default is "vxr".
330
331* "c7200 get_mac_addr <instance_name>" : Get the base MAC
332  address of the router. By default, the address is automatically generated
333  with this pattern : ca<instance_id>.<process_pid>.0000 (Cisco format).
334  (since version 0.2.11)
335
336* "c7200 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
337  address of the router. The MAC address patern can be the Cisco format
338  (e.g. ca01.1234.0000) or the standard format (e.g. ca:01:12:34:00:00).
339
340* "c7200 set_system_id <instance_name> <system_id>" :
341  Set the system id. (since version 0.2.8-RC3-community)
342
343* "c7200 set_temp_sensor <instance_name> <sensor_id> <temperature>" :
344  Set temperature for a DS1620 sensor.
345  This can be used to simulate environmental problems like overheat.
346  (since version 0.2.8-RC3-community)
347
348* "c7200 set_power_supply <instance_name> <power_supply_id> <0|1>" :
349  Set power supply status.
350  This can be used to simulate environmental problems like power loss.
351  (since version 0.2.8-RC3-community)
352
353* "c7200 show_hardware <instance_name>" : Display virtual hardware info
354  about the instance.
355
356
357Virtual Cisco 3745 instances module ("c3745")
358==============================================
359
360Available since version 0.2.6-RC3.
361
362* "c3745 list" : List all existing Cisco 3745 instances.
363
364* "c3745 set_iomem <instance_name> <size>" : Set the I/O mem size.
365
366* "c3745 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
367  address of the router. By default, the address is automatically generated
368  with this pattern : c4<instance_id>.<process_pid>.0000 (Cisco format).
369  (since version 0.2.11)
370
371* "c3745 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
372  address of the router. The MAC address patern can be the Cisco format
373  (e.g. c401.1234.0000) or the standard format (e.g. c4:01:12:34:00:00).
374
375* "c3745 set_system_id <instance_name> <system_id>" :
376  Set the system id. (since version 0.2.8-RC3-community)
377
378* "c3745 show_hardware <instance_name>" : Display virtual hardware info
379  about the instance.
380
381
382Virtual Cisco 3725 instances module ("c3725")
383==============================================
384
385Available since version 0.2.6-RC3.
386
387* "c3725 list" : List all existing Cisco 3725 instances.
388
389* "c3725 set_iomem <instance_name> <size>" : Set the I/O mem size.
390
391* "c3725 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
392  address of the router. By default, the address is automatically generated
393  with this pattern : c2<instance_id>.<process_pid>.0000 (Cisco format).
394  (since version 0.2.11)
395
396* "c3725 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
397  address of the router. The MAC address patern can be the Cisco format
398  (e.g. c201.1234.0000) or the standard format (e.g. c2:01:12:34:00:00).
399
400* "c3725 set_system_id <instance_name> <system_id>" :
401  Set the system id. (since version 0.2.8-RC3-community)
402
403* "c3725 show_hardware <instance_name>" : Display virtual hardware info
404  about the instance.
405
406
407Virtual Cisco 3600 instances module ("c3600")
408==============================================
409
410* "c3600 list" : List all existing Cisco 3600 instances.
411
412* "c3600 set_chassis <instance_name> <chassis_name>" : Set the chassis model.
413  Possible values: 3620, 3640, 3660. The default is "3640".
414
415* "c3600 set_iomem <instance_name> <size>" : Set the I/O mem size.
416
417* "c3600 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
418  address of the router. By default, the address is automatically generated
419  with this pattern : cc<instance_id>.<process_pid>.0000 (Cisco format).
420  (since version 0.2.11)
421
422* "c3600 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
423  address of the router. The MAC address patern can be the Cisco format
424  (e.g. cc01.1234.0000) or the standard format (e.g. cc:01:12:34:00:00).
425
426* "c3600 set_system_id <instance_name> <system_id>" :
427  Set the system id. (since version 0.2.8-RC3-community)
428
429* "c3600 show_hardware <instance_name>" : Display virtual hardware info
430  about the instance.
431
432
433Virtual Cisco 2691 instances module ("c2691")
434==============================================
435
436Available since version 0.2.6-RC3.
437
438* "c2691 list" : List all existing Cisco 2691 instances.
439
440* "c2691 set_iomem <instance_name> <size>" : Set the I/O mem size.
441
442* "c2691 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
443  address of the router. By default, the address is automatically generated
444  with this pattern : c0<instance_id>.<process_pid>.0000 (Cisco format).
445  (since version 0.2.11)
446
447* "c2691 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
448  address of the router. The MAC address patern can be the Cisco format
449  (e.g. c001.1234.0000) or the standard format (e.g. c0:01:12:34:00:00).
450
451* "c2691 set_system_id <instance_name> <system_id>" :
452  Set the system id. (since version 0.2.11)
453
454* "c2691 show_hardware <instance_name>" : Display virtual hardware info
455  about the instance.
456
457
458Virtual Cisco 2600 instances module ("c2600")
459==============================================
460
461Available since version 0.2.7-RC1.
462
463* "c2600 list" : List all existing Cisco 2600 instances.
464
465* "c2600 set_chassis <instance_name> <chassis_name>" : Set the chassis model.
466  Possible values: 2610, 2611, 2620, 2621, 2610XM, 2611XM, 2620XM,
467  2621XM, 2650XM, 2651XM. The default is "2610".
468
469* "c2600 set_iomem <instance_name> <size>" : Set the I/O mem size.
470
471* "c2600 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
472  address of the router. By default, the address is automatically generated
473  with this pattern : c8<instance_id>.<process_pid>.0000 (Cisco format).
474  (since version 0.2.11)
475
476* "c2600 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
477  address of the router. The MAC address patern can be the Cisco format
478  (e.g. c801.1234.0000) or the standard format (e.g. c8:01:12:34:00:00).
479
480* "c2600 set_system_id <instance_name> <system_id>" :
481  Set the system id. (since version 0.2.8-RC3-community)
482
483* "c2600 show_hardware <instance_name>" : Display virtual hardware info
484  about the instance.
485
486
487Virtual Cisco 1700 instances module ("c1700")
488==============================================
489
490Available since version 0.2.8-RC1.
491
492* "c1700 list" : List all existing Cisco 1700 instances.
493
494* "c1700 set_chassis <instance_name> <chassis_name>" : Set the chassis model.
495  Possible values: 1710, 1720, 1721, 1750, 1751, 1760. The default is "1720".
496
497* "c1700 set_iomem <instance_name> <size>" : Set the I/O mem size.
498
499* "c1700 get_mac_addr <instance_name> <mac_addr>" : Get the base MAC
500  address of the router. By default, the address is automatically generated
501  with this pattern : d0<instance_id>.<process_pid>.0000 (Cisco format).
502  (since version 0.2.11)
503
504* "c1700 set_mac_addr <instance_name> <mac_addr>" : Set the base MAC
505  address of the router. The MAC address patern can be the Cisco format
506  (e.g. d001.1234.0000) or the standard format (e.g. d0:01:12:34:00:00).
507
508* "c1700 set_system_id <instance_name> <system_id>" :
509  Set the system id. (since version 0.2.8-RC3-community)
510
511* "c1700 show_hardware <instance_name>" : Display virtual hardware info
512  about the instance.
513
514
515Network Input/Output (NIO) module ("nio")
516==========================================
517
518* "nio list" : List all exiting NIOs.
519
520* "nio create_udp <nio_name> <local_port> <remote_host> <remote_port>" :
521  Create an UDP NIO with the specified parameters.
522
523* "nio create_udp_auto <nio_name> <local_addr> <local_port_start> <local_port_end>" :
524  Create an auto UDP NIO.
525  (since version 0.2.8-RC3-community)
526
527* "nio connect_udp_auto <nio_name> <remote_host> <remote_port>" :
528  Connect an UDP Auto NIO to a remote host/port.
529  (since version 0.2.8-RC3-community)
530
531* "nio create_unix <nio_name> <local_file> <remote_file>" :
532  Create an UNIX NIO with the specified parameters.
533
534* "nio create_vde <nio_name> <control_file> <local_file>" :
535  Create a VDE NIO with the specified parameters. VDE stands for "Virtual
536  Distributed Ethernet" and is compatible with UML (User-Mode-Linux) switch.
537
538* "nio create_tap <nio_name> <tap_device>" : Create a TAP NIO. TAP devices
539  are supported only on Linux and FreeBSD and require root access.
540
541* "nio create_gen_eth <nio_name> <eth_device>" : Create a generic ethernet
542  NIO, using PCAP (0.9.4 and greater). It requires root access.
543  Available if compiled with GEN_ETH.
544
545* "nio create_linux_eth <nio_name> <eth_device>" : Create a Linux ethernet
546  NIO. It requires root access and is supported only on Linux platforms.
547  Available if compiled with LINUX_ETH.
548
549* "nio create_null <nio_name>" : Create a Null NIO.
550
551* "nio create_fifo <nio_name>" : Create a FIFO NIO.
552
553* "nio crossconnect_fifo <nio_name> <nio_name>" :
554  Establish a cross-connect between 2 FIFO NIO.
555
556* "nio rename <nio_name> <new_name>" : Rename a NIO.
557  (since version 0.2.11)
558
559* "nio delete <nio_name>" : Delete the specified NIO. The NIO can be deleted
560  only when it is not anymore in use by another object.
561
562* "nio set_debug <nio_name> <debug>" : Enable/Disable debugging for the
563  specified NIO. When debugging is enabled, received and emitted packets are
564  displayed at screen. It is mainly used to debug interface drivers.
565
566* "nio bind_filter <nio_name> <direction> <filter_name>" :
567  Bind a packet filter.
568  Direction is 0 for receiving, 1 for sending, 2 for both.
569  Filter "freq_drop" drops packets. Filter "capture" captures
570  packets and is only available if compiled with GEN_ETH.
571
572* "nio unbind_filter <nio_name> <direction>" : Unbind a packet filter.
573
574* "nio setup_filter <nio_name> <direction> [<a3> [...<a10>]]" :
575  Setup a packet filter for a given NIO. The arguments are passed on
576  to the setup function of the filter.
577   Filter "freq_drop" has 1 argument "<frequency>". It will drop
578  everything with a -1 frequency, drop every Nth packet with a
579  positive frequency, or drop nothing.
580   Filter "capture" has 2 arguments "<link_type_name> <output_file>".
581  It will capture packets to the target output file. The link type
582  name is a case-insensitive DLT_ name from the pcap library
583  constants with the DLT_ part removed.
584
585* "nio get_stats <nio_name>" : Get statistics of a NIO.
586  (since version 0.2.8-RC3-community)
587
588* "nio reset_stats <nio_name>" : Reset statistics of a NIO.
589  (since version 0.2.8-RC3-community)
590
591* "nio set_bandwidth <nio_name> <bandwidth>" : Set bandwidth constraint.
592  (since version 0.2.8-RC3-community)
593
594
595NIO bridge module ("nio_bridge")
596=================================
597
598* "nio_bridge list" : List all NIO bridges.
599
600* "nio_bridge create <bridge_name>" : Create a NIO bridge. A NIO bridge
601  acts as a shared media (a kind of hub).
602
603* "nio_bridge rename <bridge_name> <new_name>" : Rename a NIO bridge.
604  (since version 0.2.11)
605
606* "nio_bridge delete <bridge_name>" : Delete a NIO bridge.
607
608* "nio_bridge add_nio <bridge_name> <nio_name>" : Add a NIO as new port
609  in a NIO bridge. The NIO must be created through the "nio" module.
610
611* "nio_bridge remove_nio <bridge_name> <nio_name>" : Remove the specified
612  NIO as member of the NIO bridge.
613
614
615Virtual Ethernet switch module ("ethsw")
616==================================
617
618* "ethsw list" : List all Ethernet switches.
619
620* "ethsw create <switch_name>" : Create a new Ethernet switch.
621
622* "ethsw rename <switch_name> <new_name>" : Rename an Ethernet switch.
623  (since version 0.2.11)
624
625* "ethsw delete <switch_name>" : Delete the specified Ethernet switch.
626
627* "ethsw add_nio <switch_name> <nio_name>" : Add a NIO as new port in an
628  Ethernet switch. The NIO must be created through the "nio" module.
629
630* "ethsw remove_nio <switch_name> <nio_name>" : Remove the specified NIO
631  as member of the Ethernet switch.
632
633* "ethsw set_access_port <switch_name> <nio_name> <vlan_id>" :
634  Set the specified port as an ACCESS port in VLAN <vlan_id>.
635
636* "ethsw set_dot1q_port <switch_name> <nio_name> <native_vlan>" :
637  Set the specified port as a 802.1Q trunk port, with native
638  VLAN <native_vlan>.
639
640* "ethsw set_qinq_port <switch_name> <nio_name> <outer_vlan>" :
641  Set the specified port as a trunk (QinQ) port.
642  (since version 0.2.3-RC3-community)
643
644* "ethsw clear_mac_addr_table <switch_name>" : Clear the MAC address table.
645
646* "ethsw show_mac_addr_table <switch_name>" : Show the MAC address table
647  (output format: Ethernet address, VLAN, NIO)
648
649
650Virtual ATM switch module ("atmsw")
651=============================
652
653* "atmsw list" : List all ATM switches.
654
655* "atmsw create <switch_name>" : Create a new ATM switch.
656
657* "atmsw rename <switch_name> <new_name>" : Rename an ATM switch.
658  (since version 0.2.11)
659
660* "atmsw delete <switch_name>" : Delete the specified ATM switch.
661
662* "atmsw create_vpc <switch_name> <input_nio> <input_vpi>
663  <output_nio> <output_vpi>" :
664  Create a new Virtual Path connection (unidirectional).
665
666* "atmsw delete_vpc <switch_name> <input_nio> <input_vpi>
667  <output_nio> <output_vpi>" :
668  Delete a Virtual Path connection (unidirectional).
669
670* "atmsw create_vcc <switch_name> <input_nio> <input_vpi> <input_vci>
671  <output_nio> <output_vpi> <output_vci>" :
672  Create a new Virtual Channel connection (unidirectional).
673
674* "atmsw delete_vcc <switch_name> <input_nio> <input_vpi> <input_vci>
675  <output_nio> <output_vpi> <output_vci>" :
676  Delete a Virtual Channel connection (unidirectional).
677
678
679Virtual ATM bridge module ("atm_bridge")
680==================================
681
682Available since version 0.2.8-RC2.
683
684* "atm_bridge list" : List all ATM bridges.
685
686* "atm_bridge create <bridge_name>" : Create a new ATM bridge.
687
688* "atm_bridge rename <bridge_name> <new_name>" : Rename an ATM bridge.
689  (since version 0.2.11)
690
691* "atm_bridge delete <bridge_name>" : Delete an ATM bridge.
692
693* "atm_bridge configure <bridge_name> <eth_nio> <atm_nio> <vpi> <vci>" :
694  Configure an ATM bridge.
695
696* "atm_bridge unconfigure <bridge_name>" : Unconfigure an ATM bridge.
697
698
699Virtual Frame-Relay switch module ("frsw")
700====================================
701
702* "frsw list" : List all Frame-Relay switches.
703
704* "frsw create <switch_name>" : Create a new Frame-Relay switch.
705
706* "frsw rename <switch_name> <new_name>" : Rename a Frame-Relay switch.
707  (since version 0.2.11)
708
709* "frsw delete <switch_name>" : Delete the specified Frame-Relay switch.
710
711* "frsw create_vc <switch_name> <input_nio> <input_dlci>
712  <output_nio> <output_dlci>" :
713  Create a new Virtual Circuit connection (unidirectional).
714
715* "frsw delete_vc <switch_name> <input_nio> <input_dlci>
716  <output_nio> <output_dlci>" :
717  Delete a Virtual Circuit connection (unidirectional).
718
719
720Object store module ("object_store")
721====================================
722
723Available since version 0.2.8-RC2.
724
725* "object_store write <object_name> <data>" :
726  Write an object, data provided in base64 encoding.
727
728* "object_store read <object_name>" :
729  Read an object and return data in base64 encoding.
730
731* "object_store rename <object_name> <new_name>" : Rename an object.
732  (since version 0.2.11)
733
734* "object_store delete <object_name>" :
735  Delete an object from the store.
736
737* "object_store delete_all" :
738  Delete all objects from the store
739
740* "object_store list" :
741  Object list.
742

README.md

1# Dynamips (Cisco Router Emulator)
2
3[![Build Status](https://travis-ci.org/GNS3/dynamips.svg?branch=master)](https://travis-ci.org/GNS3/dynamips)
4
5## Overview
6
7Authors of this document: Fabien Devaux, Christophe Fillot, MtvE,
8Gordon Russell, Jeremy Grossmann and Flávio J. Saraiva.
9
10Converted to markdown format by Daniel Lintott.
11
12This is a continuation of Dynamips, based on the last development version and
13improved with patches wrote by various people from the community. This fork was
14named Dynamips-community up to the 0.2.8-community release and renamed to the
15original Dynamips on the 0.2.9 release.
16
17You can compile two different versions of Dynamips with this code.
18Edit the Makefile to set the flags to suit your environment.
19One of the flags, DYNAMIPS_CODE, can be "stable" or "unstable".
20
21Unstable is the code which contains most of the development code, and is
22in particular suitable for use on a 64 bit Mac. Unfortunately this has
23proved to be unstable on other platforms.
24
25Stable contains the same code as Unstable, minus some mips64 bit optimisations
26and tcb code which seems to trigger instability on a number of platforms.
27You should probably use stable unless you have a very good reason.
28
29For more information on the how to use Dynamips see the README file
30
31License: GNU GPLv2
32
33### How to compile Dynamips
34
35Dynamips now uses the CMake build system. To compile Dynamips you will need
36CMake and a working GCC or Clang compiler, as well as the build dependencies.
37
38#### Build Dependencies
39
40On Debian based systems the following build dependencies are required and can be
41installed using apt-get:
42- libelf-dev
43- libpcap0.8-dev
44
45On Redhat based systems (CentOS, Fedora etc) the following build dependencies are
46required and can be installed using yum:
47- elfutils-libelf-devel
48- libpcap-devel
49
50Similar packages should be available for most distributions, consult your
51distributions package list to find them.
52
53MacPort & Homebrew:
54- libelf
55- cmake
56
57Windows with Cygwin:
58
59- Install Winpcap: https://www.winpcap.org/
60- Install Cygwin 32-bit (setup-x86.exe): https://cygwin.com/install.html
61- In Cygwin setup, install the ``make``, ``cmake``, ``gcc-core`` and ``git`` packages
62- Additionally, install the ``libelf0`` package (**important:** both bin and src)
63- Download and unzip Winpcap developer pack: http://www.winpcap.org/devel.htm
64- Copy the libraries ``WpdPack\Lib\libpacket.a`` and ``WpdPack\Lib\libwpcap.a`` to ``cygwin\lib\``
65- Copy all headers from ``WpdPack\Include`` to ``cygwin\usr\include\``
66
67#### Compiling (Linux/Mac)
68
69Either download and extract a source tarball from the releases page or clone the
70Git repository using:
71
72```
73git clone git://github.com/GNS3/dynamips.git
74cd dynamips
75mkdir build
76cd build
77cmake ..
78```
79
80On OSX Yosemite you need to force usage of GCC 4.9:
81```
82cmake ..  -DCMAKE_C_COMPILER=/usr/local/bin/gcc-4.9
83```
84
85And for building stable release:
86```
87cmake .. -DDYNAMIPS_CODE=stable  -DCMAKE_C_COMPILER=/usr/local/bin/gcc-4.9
88```
89
90This will generate the Makefiles required for compiling Dynamips. To just build
91Dynamips simple run:
92
93```
94make
95```
96or to build and install Dynamips run:
97
98```
99make install
100```
101
102The specify a differant installation location run:
103
104```
105cmake -DCMAKE_INSTALL_PREFIX=/target/path ..
106```
107
108#### Compiling (Windows)
109
110Open the Cygwin terminal.
111
112First, the libelf has to be manually compiled and installed:
113
114``<MIRROR_DOWNLOADS>`` is the directory used by your Cygwin mirror to download packages.
115It is possible that the libelf version differs from below.
116
117```
118cp <MIRROR_DOWNLOADS>/x86/release/libelf/libelf0/libelf0-0.8.13-2-src.tar.bz2 .
119mkdir libelf && tar xvjf libelf0-0.8.13-2-src.tar.bz2 -C libelf
120cd libelf
121tar xvzf libelf-0.8.13.tar.gz
122cd libelf-0.8.13
123./configure
124make
125make install
126```
127
128Then, Dynamips can be build:
129
130```
131git clone git://github.com/GNS3/dynamips.git
132cd dynamips
133mkdir build
134cd build
135cmake ..
136make
137```
138
139You will find ``dynamips.exe`` in the stable directory.
140Put ``cygwin1.dll`` from the Cygwin bin directory in the same directory as ``dynamips.exe`` to be able to start it from outside Cygwin terminal.
141
142### Releasing
143
144* Update ChangeLog
145* In common/dynamips.c update sw_version_tag with date
146* Update RELEASE-NOTE
147* Update CMakeLists.txt
148* git tag the release
149
150### Useful Information
151Website: http://www.gns3.net/dynamips/
152
153Forum: http://forum.gns3.net/
154
155Repository: https://github.com/GNS3/dynamips
156
157Bugtracker: https://github.com/GNS3/dynamips/issues
158
159### Original websites
160http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulator
161http://www.ipflow.utc.fr/blog/
162