trema 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -1
- data/Doxyfile +1 -1
- data/Gemfile +18 -6
- data/README.md +112 -5
- data/Rakefile +3 -1
- data/Rantfile +88 -1
- data/bin/trema +248 -0
- data/bin/trema-config +59 -0
- data/cruise.rb +1 -1
- data/features/example.dumper.feature +45 -65
- data/features/example.hello_trema.feature +21 -0
- data/features/example.learning_switch.feature +26 -28
- data/features/example.list_switches.feature +19 -33
- data/features/example.message.echo_reply.feature +10 -10
- data/features/example.message.echo_request.feature +2 -2
- data/features/example.message.features_request.feature +6 -5
- data/features/example.message.hello.feature +47 -13
- data/features/example.message.set_config.feature +4 -4
- data/features/example.message.vendor-action.feature +23 -0
- data/features/example.multi_learning_switch.feature +14 -42
- data/features/example.packet_in.feature +31 -0
- data/features/example.packetin_filter_config.feature +11 -7
- data/features/example.patch_panel.feature +29 -0
- data/features/example.repeater_hub.feature +43 -40
- data/features/example.switch_info.feature +51 -0
- data/features/example.switch_monitor.feature +24 -42
- data/features/packetin_filter.feature +28 -22
- data/features/step_definitions/misc_steps.rb +19 -8
- data/features/step_definitions/send_packets_steps.rb +1 -10
- data/features/step_definitions/stats_steps.rb +4 -4
- data/features/support/env.rb +2 -1
- data/features/support/hooks.rb +35 -2
- data/features/switch_manager.feature +18 -12
- data/features/trema-config.feature +26 -39
- data/features/trema.dump_flows.feature +26 -12
- data/features/trema.help.feature +26 -0
- data/features/trema.kill.feature +39 -41
- data/features/trema.killall.feature +23 -23
- data/features/trema.reset_stats.feature +50 -10
- data/features/trema.run.feature +28 -39
- data/features/trema.send_packets.feature +29 -40
- data/features/trema.show_stats.feature +30 -33
- data/features/trema.up.feature +33 -0
- data/features/trema.version.feature +9 -0
- data/ruby/extconf.rb +7 -0
- data/ruby/trema/aggregate-stats-reply.rb +3 -3
- data/ruby/trema/app.rb +5 -1
- data/ruby/trema/barrier-request.c +55 -30
- data/ruby/trema/cli.rb +8 -8
- data/ruby/trema/command.rb +1 -3
- data/ruby/trema/command/dump_flows.rb +5 -24
- data/ruby/trema/command/kill.rb +31 -36
- data/ruby/trema/command/killall.rb +1 -19
- data/{features/step_definitions/kill_steps.rb → ruby/trema/command/netns.rb} +13 -5
- data/ruby/trema/command/reset_stats.rb +3 -23
- data/ruby/trema/command/ruby.rb +2 -19
- data/ruby/trema/command/run.rb +6 -27
- data/ruby/trema/command/send_packets.rb +6 -90
- data/ruby/trema/command/show_stats.rb +21 -40
- data/ruby/trema/command/up.rb +5 -26
- data/ruby/trema/command/version.rb +1 -5
- data/ruby/trema/controller.c +14 -16
- data/ruby/trema/custom-switch.rb +56 -0
- data/ruby/trema/desc-stats-reply.rb +5 -5
- data/ruby/trema/dsl/configuration.rb +4 -0
- data/{features/step_definitions/up_steps.rb → ruby/trema/dsl/custom-switch.rb} +18 -4
- data/ruby/trema/dsl/netns.rb +78 -0
- data/ruby/trema/dsl/parser.rb +2 -0
- data/ruby/trema/dsl/runner.rb +8 -0
- data/ruby/trema/dsl/syntax.rb +18 -0
- data/ruby/trema/echo-reply.h +2 -2
- data/ruby/trema/echo-request.c +3 -5
- data/ruby/trema/enqueue.rb +2 -2
- data/ruby/trema/error.c +3 -3
- data/ruby/trema/executables.rb +26 -2
- data/ruby/trema/features-request.c +3 -5
- data/ruby/trema/flow-removed.c +6 -6
- data/ruby/trema/flow-stats-reply.rb +6 -8
- data/ruby/trema/flow.rb +12 -1
- data/ruby/trema/get-config-request.c +55 -28
- data/ruby/trema/hello.c +3 -5
- data/ruby/trema/host.rb +8 -0
- data/ruby/trema/list-switches-reply.c +1 -1
- data/ruby/trema/mac.rb +1 -1
- data/ruby/trema/match.c +15 -14
- data/ruby/trema/monkey-patch/module/deprecation.rb +0 -2
- data/ruby/trema/netns.rb +127 -0
- data/ruby/trema/ordered-hash.rb +5 -4
- data/ruby/trema/packet-in.c +136 -113
- data/ruby/trema/packet-queue.rb +9 -9
- data/ruby/trema/packetin-filter.rb +1 -1
- data/ruby/trema/phost.rb +16 -7
- data/ruby/trema/port-mod.c +6 -5
- data/ruby/trema/port-stats-reply.rb +2 -2
- data/ruby/trema/process.rb +29 -0
- data/ruby/trema/queue-stats-reply.rb +2 -4
- data/ruby/trema/send-out-port.rb +5 -3
- data/ruby/trema/set-eth-addr.rb +4 -0
- data/ruby/trema/set-ip-addr.rb +4 -2
- data/ruby/trema/set-ip-dst-addr.rb +2 -1
- data/ruby/trema/set-ip-src-addr.rb +2 -1
- data/ruby/trema/set-ip-tos.rb +3 -2
- data/ruby/trema/set-transport-port.rb +3 -2
- data/ruby/trema/set-vlan-priority.rb +3 -2
- data/ruby/trema/set-vlan-vid.rb +5 -4
- data/ruby/trema/shell/reset_stats.rb +2 -1
- data/ruby/trema/shell/run.rb +1 -1
- data/ruby/trema/shell/send_packets.rb +1 -1
- data/ruby/trema/shell/show_stats.rb +1 -1
- data/ruby/trema/stats-helper.rb +3 -3
- data/ruby/trema/stats-reply.c +26 -17
- data/ruby/trema/stats-request.c +39 -41
- data/ruby/trema/switch-daemon.rb +36 -31
- data/ruby/trema/switch.c +1 -1
- data/ruby/trema/table-stats-reply.rb +1 -1
- data/ruby/trema/timers.rb +13 -13
- data/ruby/trema/trema.c +3 -3
- data/ruby/trema/tremashark.rb +9 -2
- data/ruby/trema/util.rb +39 -15
- data/ruby/trema/vendor-action.rb +8 -3
- data/ruby/trema/vendor-stats-reply.rb +4 -6
- data/ruby/trema/vendor.c +1 -1
- data/ruby/trema/version.rb +1 -1
- data/spec/trema/barrier-request_spec.rb +47 -37
- data/spec/trema/controller_spec.rb +1 -0
- data/spec/trema/dsl/runner_spec.rb +8 -3
- data/spec/trema/dsl/vhost_spec.rb +8 -8
- data/spec/trema/echo-request_spec.rb +1 -0
- data/spec/trema/features-request_spec.rb +1 -0
- data/spec/trema/flow-removed_spec.rb +9 -9
- data/spec/trema/get-config-request_spec.rb +51 -39
- data/spec/trema/match_spec.rb +1 -1
- data/spec/trema/openflow-error_spec.rb +11 -11
- data/spec/trema/packet-out_spec.rb +5 -5
- data/spec/trema/queue-get-config-reply_spec.rb +1 -1
- data/spec/trema/queue-get-config-request_spec.rb +1 -1
- data/spec/trema/set-eth-dst-addr_spec.rb +1 -1
- data/spec/trema/set-eth-src-addr_spec.rb +1 -1
- data/spec/trema/set-ip-dst-addr_spec.rb +1 -0
- data/spec/trema/set-ip-src-addr_spec.rb +1 -0
- data/spec/trema/set-ip-tos_spec.rb +1 -0
- data/spec/trema/set-transport-dst-port_spec.rb +1 -0
- data/spec/trema/set-transport-src-port_spec.rb +1 -0
- data/spec/trema/set-vlan-priority_spec.rb +1 -0
- data/spec/trema/set-vlan-vid_spec.rb +2 -1
- data/spec/trema/stats-reply_spec.rb +38 -36
- data/spec/trema/stats-request_spec.rb +6 -6
- data/spec/trema/strip-vlan-header_spec.rb +1 -0
- data/spec/trema/util_spec.rb +3 -2
- data/spec/trema/vendor-action_spec.rb +9 -8
- data/src/examples/dumper/dumper.c +8 -6
- data/src/examples/dumper/dumper.rb +1 -1
- data/{features/step_definitions/killall_steps.rb → src/examples/hello_trema/hello-trema.rb} +6 -5
- data/src/examples/hello_trema/hello_trema.c +4 -4
- data/src/examples/learning_switch/learning_switch.c +1 -1
- data/src/examples/list_switches/list_switches.c +2 -2
- data/src/examples/match_compare/match-compare.rb +2 -2
- data/src/examples/multi_learning_switch/multi-learning-switch.rb +1 -1
- data/src/examples/multi_learning_switch/multi_learning_switch.c +3 -3
- data/src/examples/openflow_message/README +1 -1
- data/src/examples/openflow_message/echo-request.rb +1 -1
- data/src/examples/openflow_message/features_request.c +21 -21
- data/src/examples/openflow_message/hello.c +1 -3
- data/src/examples/openflow_message/hello.rb +9 -24
- data/src/examples/{hello_trema/hello_trema.rb → openflow_message/vendor-action.rb} +17 -7
- data/src/examples/openflow_message/vendor_action.c +105 -0
- data/src/examples/openflow_switch/hello_switch.c +81 -0
- data/src/examples/packet_in/packet-in.rb +9 -13
- data/src/examples/packetin_filter_config/packetin_filter_config.c +2 -2
- data/src/examples/patch_panel/network.conf +14 -0
- data/src/examples/patch_panel/patch-panel.conf +1 -0
- data/{features/step_definitions/show_stats_steps.rb → src/examples/patch_panel/patch-panel.rb} +29 -13
- data/src/examples/switch_info/{switch_info.rb → switch-info.rb} +2 -2
- data/src/examples/switch_info/switch_info.c +4 -4
- data/src/examples/switch_monitor/switch_monitor.c +3 -3
- data/src/examples/traffic_monitor/counter.c +9 -9
- data/src/examples/traffic_monitor/fdb.c +9 -9
- data/src/lib/arp.h +1 -1
- data/src/lib/buffer.c +4 -3
- data/src/lib/byteorder.c +31 -5
- data/src/lib/byteorder.h +2 -2
- data/src/lib/chibach.c +8 -6
- data/src/lib/daemon.c +29 -3
- data/src/lib/doubly_linked_list.c +6 -1
- data/src/lib/ether.c +1 -1
- data/src/lib/ether.h +1 -1
- data/src/lib/event_handler.c +3 -3
- data/src/lib/hash_table.c +1 -1
- data/src/lib/linked_list.c +50 -2
- data/src/lib/linked_list.h +2 -2
- data/src/lib/log.c +122 -22
- data/src/lib/log.h +13 -9
- data/src/lib/management_interface.c +361 -0
- data/src/lib/management_interface.h +42 -0
- data/src/lib/management_service_interface.c +104 -0
- data/src/lib/management_service_interface.h +136 -0
- data/src/lib/match_table.c +5 -5
- data/src/lib/message_queue.c +5 -3
- data/src/lib/message_queue.h +1 -1
- data/src/lib/messenger.c +73 -39
- data/src/lib/messenger.h +3 -2
- data/src/lib/openflow_application_interface.c +17 -17
- data/src/lib/openflow_message.c +175 -23
- data/src/lib/openflow_message.h +2 -1
- data/src/lib/openflow_switch_interface.c +12 -12
- data/src/lib/packet_parser.c +11 -32
- data/src/lib/packetin_filter_interface.c +5 -5
- data/src/lib/persistent_storage.c +7 -7
- data/src/lib/secure_channel.c +6 -6
- data/src/lib/secure_channel.h +1 -1
- data/src/lib/stat.c +54 -17
- data/src/lib/stat.h +9 -0
- data/src/lib/timer.c +11 -10
- data/src/lib/trema.c +38 -9
- data/src/lib/trema.h +1 -0
- data/src/lib/trema_private.h +6 -0
- data/src/lib/trema_wrapper.c +4 -4
- data/src/lib/trema_wrapper.h +10 -10
- data/src/lib/utility.c +6 -6
- data/src/management/application.c +224 -0
- data/src/management/echo.c +185 -0
- data/src/management/set_logging_level.c +153 -0
- data/src/management/show_stats.c +150 -0
- data/src/management/trema_manager +184 -0
- data/src/packetin_filter/packetin_filter.c +31 -29
- data/src/switch_manager/cookie_table.c +7 -7
- data/src/switch_manager/dpid_table.c +3 -3
- data/src/switch_manager/dpid_table.h +0 -1
- data/src/switch_manager/management_interface.h +0 -1
- data/src/switch_manager/ofpmsg_recv.c +3 -3
- data/src/switch_manager/ofpmsg_recv.h +0 -1
- data/src/switch_manager/ofpmsg_send.c +2 -2
- data/src/switch_manager/ofpmsg_send.h +0 -1
- data/src/switch_manager/secure_channel_listener.c +2 -2
- data/src/switch_manager/secure_channel_receiver.c +2 -2
- data/src/switch_manager/secure_channel_receiver.h +0 -1
- data/src/switch_manager/secure_channel_sender.c +8 -1
- data/src/switch_manager/service_interface.c +5 -4
- data/src/switch_manager/switch.c +79 -53
- data/src/switch_manager/switch_manager.c +24 -22
- data/src/switch_manager/xid_table.c +6 -6
- data/src/switch_manager/xid_table.h +0 -1
- data/src/tremashark/README +4 -3
- data/src/tremashark/packet_capture.c +11 -9
- data/src/tremashark/pcap_queue.c +2 -2
- data/src/tremashark/pcap_queue.h +2 -2
- data/src/tremashark/plugin/packet-trema/Makefile +1 -1
- data/src/tremashark/plugin/packet-trema/Makefile.common +1 -1
- data/src/tremashark/plugin/packet-trema/packet-trema.c +50 -37
- data/src/tremashark/queue.c +5 -4
- data/src/tremashark/queue.h +1 -1
- data/src/tremashark/stdin_relay.c +10 -8
- data/src/tremashark/syslog_relay.c +14 -12
- data/src/tremashark/tremashark.c +15 -18
- data/trema +2 -96
- data/trema-config +2 -52
- data/trema.gemspec +12 -1
- data/unittests/cmockery_trema.h +14 -13
- data/unittests/lib/buffer_test.c +1 -1
- data/unittests/lib/byteorder_test.c +108 -25
- data/unittests/lib/daemon_test.c +141 -5
- data/unittests/lib/doubly_linked_list_test.c +5 -1
- data/unittests/lib/ether_test.c +4 -4
- data/unittests/lib/hash_table_test.c +5 -3
- data/unittests/lib/linked_list_test.c +82 -4
- data/unittests/lib/log_test.c +96 -5
- data/unittests/lib/management_interface_test.c +240 -0
- data/unittests/lib/management_service_interface_test.c +319 -0
- data/unittests/lib/message_queue_test.c +6 -2
- data/unittests/lib/messenger_test.c +167 -2
- data/unittests/lib/openflow_application_interface_test.c +16 -22
- data/unittests/lib/openflow_message_test.c +721 -24
- data/unittests/lib/packet_info_test.c +2 -2
- data/unittests/lib/packet_parser_test.c +15 -16
- data/unittests/lib/packetin_filter_interface_test.c +6 -6
- data/unittests/lib/persistent_storage_test.c +11 -11
- data/unittests/lib/stat_test.c +151 -7
- data/unittests/lib/timer_test.c +1 -1
- data/unittests/lib/trema_private_test.c +2 -2
- data/unittests/lib/trema_test.c +40 -12
- data/unittests/lib/utility_test.c +3 -3
- data/unittests/lib/wrapper_test.c +3 -3
- data/unittests/packetin_filter/packetin_filter_test.c +12 -11
- data/unittests/switch_manager/switch_manager_test.c +29 -22
- metadata +99 -20
- data/features/step_definitions/log_steps.rb +0 -90
- data/features/step_definitions/run_steps.rb +0 -91
- data/features/trema.feature +0 -27
- data/features/tutorial.hello_trema.feature +0 -27
- data/features/tutorial.packet_in.feature +0 -47
- data/features/tutorial.switch_info.feature +0 -55
- data/ruby/trema/command/usage.rb +0 -63
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
Feature: Hello trema sample application
|
|
2
|
-
|
|
3
|
-
As a Trema user
|
|
4
|
-
I want to write "hello trema" application
|
|
5
|
-
So that I can learn how to write minimum trema application
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Scenario: Hello trema in C
|
|
9
|
-
When I try trema run "./objects/examples/hello_trema/hello_trema" with following configuration:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id "0xabc" }
|
|
12
|
-
"""
|
|
13
|
-
Then the output should include:
|
|
14
|
-
"""
|
|
15
|
-
Hello 0xabc from ./objects/examples/hello_trema/hello_trema!
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Scenario: Hello trema in Ruby
|
|
20
|
-
When I try trema run "./src/examples/hello_trema/hello_trema.rb" with following configuration:
|
|
21
|
-
"""
|
|
22
|
-
vswitch { datapath_id "0xabc" }
|
|
23
|
-
"""
|
|
24
|
-
Then the output should include:
|
|
25
|
-
"""
|
|
26
|
-
Hello 0xabc from ./src/examples/hello_trema/hello_trema.rb!
|
|
27
|
-
"""
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
Feature: Tutorial: Handling packet_in events example
|
|
2
|
-
|
|
3
|
-
As a Trema user
|
|
4
|
-
I want to respond to packet_in events
|
|
5
|
-
So that I can handle unknown packets
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Scenario: Handle packet_in
|
|
9
|
-
When I try trema run "./objects/examples/packet_in/packet_in" with following configuration (backgrounded):
|
|
10
|
-
"""
|
|
11
|
-
vswitch("packet_in") { dpid "0xabc" }
|
|
12
|
-
|
|
13
|
-
vhost("host1")
|
|
14
|
-
vhost("host2")
|
|
15
|
-
|
|
16
|
-
link "packet_in", "host1"
|
|
17
|
-
link "packet_in", "host2"
|
|
18
|
-
"""
|
|
19
|
-
And wait until "packet_in" is up
|
|
20
|
-
And I try to run "./trema send_packets --source host1 --dest host2"
|
|
21
|
-
And *** sleep 2 ***
|
|
22
|
-
And I terminated all trema services
|
|
23
|
-
Then the output should include:
|
|
24
|
-
"""
|
|
25
|
-
received a packet_in
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Scenario: Handle packet_in in Ruby
|
|
30
|
-
When I try trema run "./src/examples/packet_in/packet-in.rb" with following configuration (backgrounded):
|
|
31
|
-
"""
|
|
32
|
-
vswitch("packet_in") { dpid "0xabc" }
|
|
33
|
-
|
|
34
|
-
vhost("host1")
|
|
35
|
-
vhost("host2")
|
|
36
|
-
|
|
37
|
-
link "packet_in", "host1"
|
|
38
|
-
link "packet_in", "host2"
|
|
39
|
-
"""
|
|
40
|
-
And wait until "PacketinDumper" is up
|
|
41
|
-
And I try to run "./trema send_packets --source host1 --dest host2"
|
|
42
|
-
And *** sleep 2 ***
|
|
43
|
-
And I terminated all trema services
|
|
44
|
-
Then the output should include:
|
|
45
|
-
"""
|
|
46
|
-
received a packet_in
|
|
47
|
-
"""
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
Feature: "Getting switch info" sample application
|
|
2
|
-
|
|
3
|
-
As a Trema user
|
|
4
|
-
I want to write "Getting switch info" application
|
|
5
|
-
So that I can learn how to acquire the information of openflow switches
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Scenario: Getting switch info in C
|
|
9
|
-
When I try trema run "./objects/examples/switch_info/switch_info" with following configuration:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id "0xabc" }
|
|
12
|
-
"""
|
|
13
|
-
Then the output should include:
|
|
14
|
-
"""
|
|
15
|
-
datapath_id: 0xabc
|
|
16
|
-
#ports: 1
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Scenario: Getting switch info in C
|
|
21
|
-
When I try trema run "./objects/examples/switch_info/switch_info" with following configuration:
|
|
22
|
-
"""
|
|
23
|
-
vswitch { datapath_id "0xabc" }
|
|
24
|
-
vswitch { datapath_id "0xdef" }
|
|
25
|
-
link "0xabc", "0xdef"
|
|
26
|
-
"""
|
|
27
|
-
Then the output should include:
|
|
28
|
-
"""
|
|
29
|
-
#ports: 2
|
|
30
|
-
"""
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Scenario: Getting switch info in Ruby
|
|
34
|
-
When I try trema run "./src/examples/switch_info/switch_info.rb" with following configuration:
|
|
35
|
-
"""
|
|
36
|
-
vswitch { datapath_id "0xabc" }
|
|
37
|
-
"""
|
|
38
|
-
Then the output should include:
|
|
39
|
-
"""
|
|
40
|
-
datapath_id: 0xabc
|
|
41
|
-
ports: 65534
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Scenario: Getting switch info in Ruby
|
|
46
|
-
When I try trema run "./src/examples/switch_info/switch_info.rb" with following configuration:
|
|
47
|
-
"""
|
|
48
|
-
vswitch { datapath_id "0xabc" }
|
|
49
|
-
vswitch { datapath_id "0xdef" }
|
|
50
|
-
link "0xabc", "0xdef"
|
|
51
|
-
"""
|
|
52
|
-
Then the output should include:
|
|
53
|
-
"""
|
|
54
|
-
ports: 1, 65534
|
|
55
|
-
"""
|
data/ruby/trema/command/usage.rb
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# trema usage (help) command.
|
|
3
|
-
#
|
|
4
|
-
# Author: Yasuhito Takamiya <yasuhito@gmail.com>
|
|
5
|
-
#
|
|
6
|
-
# Copyright (C) 2008-2012 NEC Corporation
|
|
7
|
-
#
|
|
8
|
-
# This program is free software; you can redistribute it and/or modify
|
|
9
|
-
# it under the terms of the GNU General Public License, version 2, as
|
|
10
|
-
# published by the Free Software Foundation.
|
|
11
|
-
#
|
|
12
|
-
# This program is distributed in the hope that it will be useful,
|
|
13
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
-
# GNU General Public License for more details.
|
|
16
|
-
#
|
|
17
|
-
# You should have received a copy of the GNU General Public License along
|
|
18
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
19
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
20
|
-
#
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
module Trema
|
|
24
|
-
module Command
|
|
25
|
-
def usage
|
|
26
|
-
command = ARGV.shift
|
|
27
|
-
|
|
28
|
-
ARGV.clear << "--help"
|
|
29
|
-
if command.nil?
|
|
30
|
-
puts <<-EOL
|
|
31
|
-
usage: trema <COMMAND> [OPTIONS ...]
|
|
32
|
-
|
|
33
|
-
Trema command-line tool
|
|
34
|
-
Type 'trema help <COMMAND>' for help on a specific command.
|
|
35
|
-
|
|
36
|
-
Available commands:
|
|
37
|
-
run - runs a trema application.
|
|
38
|
-
kill - terminates a trema process.
|
|
39
|
-
up - starts a killed trema process again.
|
|
40
|
-
killall - terminates all trema processes.
|
|
41
|
-
send_packets - sends UDP packets to destination host.
|
|
42
|
-
show_stats - shows stats of packets.
|
|
43
|
-
reset_stats - resets stats of packets.
|
|
44
|
-
dump_flows - print all flow entries.
|
|
45
|
-
ruby - opens in your browser Trema's Ruby API documentation.
|
|
46
|
-
version - displays the current runtime version.
|
|
47
|
-
EOL
|
|
48
|
-
elsif method_for( command )
|
|
49
|
-
__send__ method_for( command )
|
|
50
|
-
else
|
|
51
|
-
STDERR.puts "Type 'trema help' for usage."
|
|
52
|
-
exit false
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
### Local variables:
|
|
60
|
-
### mode: Ruby
|
|
61
|
-
### coding: utf-8
|
|
62
|
-
### indent-tabs-mode: nil
|
|
63
|
-
### End:
|