trema 0.3.19 → 0.3.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -7
  3. data/README.md +3 -3
  4. data/Rakefile +13 -4
  5. data/cruise.rb +1 -1
  6. data/features/examples/switch_monitor.feature +2 -0
  7. data/features/switch_event/C-add_forward_entry.feature +4 -24
  8. data/features/switch_event/C-delete_forward_entry.feature +3 -18
  9. data/features/switch_event/C-dump_forward_entries.feature +2 -12
  10. data/features/switch_event/C-set_forward_entries.feature +2 -12
  11. data/features/switch_event/add_forward_entry.feature +44 -29
  12. data/features/switch_event/delete_forward_entry.feature +31 -16
  13. data/features/switch_event/dump_forward_entries.feature +23 -13
  14. data/features/switch_event/set_forward_entries.feature +17 -7
  15. data/features/trema_commands/dump_flows.feature +1 -0
  16. data/features/trema_commands/reset_stats.feature +1 -0
  17. data/features/trema_commands/show_stats.feature +1 -0
  18. data/ruby/trema/features-reply.c +9 -6
  19. data/ruby/trema/monkey-patch/integer/validators.rb +36 -0
  20. data/ruby/trema/monkey-patch/integer.rb +2 -0
  21. data/ruby/trema/packet-in.c +140 -0
  22. data/ruby/trema/packet-queue.rb +130 -126
  23. data/ruby/trema/port.c +11 -0
  24. data/ruby/trema/queue-get-config-reply.c +8 -5
  25. data/ruby/trema/set-ip-tos.rb +3 -3
  26. data/ruby/trema/vendor-action.rb +5 -1
  27. data/ruby/trema/version.rb +1 -1
  28. data/spec/trema/echo-reply_spec.rb +8 -8
  29. data/spec/trema/echo-request_spec.rb +1 -1
  30. data/spec/trema/hello_spec.rb +6 -6
  31. data/spec/trema/packet-in_spec.rb +131 -0
  32. data/spec/trema/queue-get-config-reply_spec.rb +1 -1
  33. data/spec/trema/set-ip-tos_spec.rb +5 -0
  34. data/spec/trema/vendor-action_spec.rb +5 -0
  35. data/src/examples/switch_event_config/.gitignore +0 -1
  36. data/src/examples/switch_event_config/network.conf +2 -0
  37. data/src/lib/arp.h +3 -1
  38. data/src/lib/ether.h +1 -0
  39. data/src/lib/event_forward_interface.c +9 -4
  40. data/src/lib/openflow_message.c +6 -0
  41. data/src/lib/openflow_message.h +1 -0
  42. data/src/lib/packet_info.c +23 -0
  43. data/src/lib/packet_info.h +5 -0
  44. data/src/lib/packet_parser.c +8 -3
  45. data/src/lib/utility.c +13 -13
  46. data/src/lib/utility.h +15 -0
  47. data/src/switch_manager/event_forward_entry_manipulation.c +1 -1
  48. data/src/switch_manager/secure_channel_listener.c +3 -6
  49. data/src/switch_manager/switch.c +68 -9
  50. data/trema.gemspec +4 -4
  51. data/unittests/lib/event_forward_interface_test.c +30 -0
  52. data/unittests/lib/openflow_message_test.c +19 -0
  53. data/unittests/lib/packet_info_test.c +16 -0
  54. data/unittests/lib/packet_parser_test.c +37 -0
  55. data/unittests/lib/test_packets/rarp_req.cap +0 -0
  56. metadata +9 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- data.tar.gz: 9885ea68bffe5d48af843709c06d6b0380ea2916
4
- metadata.gz: 5b4335551a0a407c64d74c84641fac37ffb7167c
3
+ metadata.gz: 16d03309cfb3b65ed463dff0c59990db3f87dc26
4
+ data.tar.gz: 7e9dbad2ecea2ab026bf0ba0ee3cb79cf2885009
5
5
  SHA512:
6
- data.tar.gz: e5484148554ae7e4c21e4653e91c13fee369a06b31c2454d15272a8ac581399b5079a818488d5d60d03388459173a26fe46b818aa3f55acbd1d5937dd4a51bf8
7
- metadata.gz: e5defc8906693729384d4031065110450bffeab98f5954fa3e0b71ba9b3901512d1ca1e80f6a2b276b5111b1148a8620373c4fb48ba6a386a8e5cd50499883f1
6
+ metadata.gz: be99f19cbba01fd9c25eaaee21389ffc4c334adefc5a5f6b681f8bd89938cef58780cb46bde60997c6d414f124465ef08035a22ed830498d7915c68f55256af5
7
+ data.tar.gz: 4de20550f57a268e26f419d53510222a5294caee7dc5ce31a472aded241ea7e40b000fbb8a0e235164d64dda1e7664f204e670aa71fa75c0cb38bc4e87c7246a
data/Gemfile CHANGED
@@ -13,16 +13,16 @@ gemspec
13
13
  # Add dependencies to develop your gem here.
14
14
  # Include everything needed to run rake, tests, features, etc.
15
15
  group :development do
16
- gem "aruba", "~> 0.5.1"
17
- gem "cucumber", "~> 1.2.3"
18
- gem "flay", "~> 2.1.0"
19
- gem "flog", "~> 3.2.2"
16
+ gem "aruba", "~> 0.5.3"
17
+ gem "cucumber", "~> 1.3.2"
18
+ gem "flay", "~> 2.3.0"
19
+ gem "flog", "~> 4.1.0"
20
20
  gem "rcov", "~> 1.0.0"
21
- gem "redcarpet", "~> 2.2.2"
21
+ gem "redcarpet", "~> 2.3.0"
22
22
  gem "reek", "~> 1.3.1"
23
- gem "relish", "~> 0.6"
23
+ gem "relish", "~> 0.7"
24
24
  gem "rspec", "~> 2.13.0"
25
- gem "yard", "~> 0.8.5.2"
25
+ gem "yard", "~> 0.8.6.1"
26
26
  end
27
27
 
28
28
 
data/README.md CHANGED
@@ -29,8 +29,8 @@ Trema supports GNU/Linux only. And it has been tested on the following environme
29
29
 
30
30
  * Ruby 1.8.7 (1.9.x is NOT supported yet)
31
31
  * RubyGems 1.3.6 or higher
32
- * Ubuntu 12.10, 12.04, 11.10, and 10.04 (i386/amd64, Desktop Edition)
33
- * Debian GNU/Linux 6.0 (i386/amd64)
32
+ * Ubuntu 13.04, 12.10, 12.04, 11.10, and 10.04 (i386/amd64, Desktop Edition)
33
+ * Debian GNU/Linux 7.0 and 6.0 (i386/amd64)
34
34
  * Fedora 16 (i386/x86_64)
35
35
 
36
36
  It may also run on other GNU/Linux distributions but is not tested and
@@ -48,7 +48,7 @@ Getting Started
48
48
 
49
49
  1.Install the prerequisites at the command prompt:
50
50
 
51
- (In Ubuntu 12.10)
51
+ (In Ubuntu 13.04, 12.10, or Debian GNU/Linux 7.0)
52
52
  $ sudo apt-get install gcc make ruby1.8 rubygems1.8 ruby1.8-dev libpcap-dev libsqlite3-dev
53
53
 
54
54
  (In Ubuntu 12.04, 11.10 or Debian GNU/Linux 6.0)
data/Rakefile CHANGED
@@ -409,7 +409,7 @@ end
409
409
  # Tests
410
410
  ################################################################################
411
411
 
412
- task :travis => [ :setup, :build_trema ]
412
+ task :travis => [ :setup, :build_trema, "spec:travis" ]
413
413
 
414
414
 
415
415
  begin
@@ -430,6 +430,15 @@ begin
430
430
  task.rspec_opts = "--tag type:actions --format documentation --color"
431
431
  end
432
432
 
433
+
434
+ task "spec:travis" => :build_trema
435
+ RSpec::Core::RakeTask.new( "spec:travis" ) do | task |
436
+ task.verbose = $trace
437
+ task.pattern = FileList[ "spec/trema/hello_spec.rb", "spec/trema/echo-*_spec.rb" ]
438
+ task.rspec_opts = "--tag ~sudo --format documentation --color"
439
+ end
440
+
441
+
433
442
  task :rcov => :build_trema
434
443
  RSpec::Core::RakeTask.new( :rcov ) do | spec |
435
444
  spec.pattern = "spec/**/*_spec.rb"
@@ -488,15 +497,15 @@ begin
488
497
  desc "Analyze for code complexity"
489
498
  task :flog do
490
499
  flog = Flog.new( :continue => true )
491
- flog.flog $quality_targets
500
+ flog.flog *$quality_targets
492
501
  threshold = 10
493
502
 
494
503
  bad_methods = flog.totals.select do | name, score |
495
- name != "main#none" && score > threshold
504
+ ( not ( /##{flog.no_method}$/=~ name ) ) and score > threshold
496
505
  end
497
506
  bad_methods.sort do | a, b |
498
507
  a[ 1 ] <=> b[ 1 ]
499
- end.each do | name, score |
508
+ end.reverse.each do | name, score |
500
509
  puts "%8.1f: %s" % [ score, name ]
501
510
  end
502
511
  unless bad_methods.empty?
data/cruise.rb CHANGED
@@ -186,7 +186,7 @@ def gcov gcda, dir
186
186
  shell.on_stdout do | l |
187
187
  file = File.expand_path( $1 ) if /^File '(.*)'/=~ l
188
188
  testee = $c_files[ file ]
189
- if /^Lines executed:(.*)% of (.*)$/=~ l
189
+ if /^Lines executed:(.*)% of (.*)$/=~ l and not testee.nil?
190
190
  testee.coverage = $1.to_f
191
191
  testee.lines = $2.to_i
192
192
  end
@@ -17,6 +17,7 @@ Feature: "Switch Monitor" sample application
17
17
  Given I run `trema run ../../objects/examples/switch_monitor/switch_monitor -c switch_monitor.conf -d`
18
18
  And wait until "switch_monitor" is up
19
19
  When I run `trema kill 0x3`
20
+ And *** sleep 1 ***
20
21
  Then the file "../../tmp/log/switch_monitor.log" should contain "Switch 0x3 is DOWN"
21
22
  When I run `trema up 0x3`
22
23
  And *** sleep 10 ***
@@ -27,6 +28,7 @@ Feature: "Switch Monitor" sample application
27
28
  Given I run `trema run ../../src/examples/switch_monitor/switch-monitor.rb -c switch_monitor.conf -d`
28
29
  And wait until "SwitchMonitor" is up
29
30
  When I run `trema kill 0x3`
31
+ And *** sleep 1 ***
30
32
  Then the file "../../tmp/log/SwitchMonitor.log" should contain "Switch 0x3 is DOWN"
31
33
  When I run `trema up 0x3`
32
34
  And *** sleep 10 ***
@@ -41,12 +41,7 @@ Feature: C function example command "add_forward_entry"
41
41
 
42
42
  @slow_process
43
43
  Scenario Outline: Add 'mirror' to All Switch Manager/Daemon's event forwarding entries of packet_in
44
- Given a file named "nw_dsl.conf" with:
45
- """
46
- vswitch { datapath_id 0x1 }
47
- vswitch { datapath_id 0x2 }
48
- """
49
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
44
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
50
45
  And wait until "RepeaterHub" is up
51
46
  When I successfully run `trema run './add_forward_entry -t packet_in mirror'`
52
47
  Then the output should contain "Operation Succeeded."
@@ -63,12 +58,7 @@ Feature: C function example command "add_forward_entry"
63
58
 
64
59
  @slow_process
65
60
  Scenario Outline: Switch added after event forwarding entry manipulation should also reflect new configuration of Switch Manager.
66
- Given a file named "nw_dsl.conf" with:
67
- """
68
- vswitch { datapath_id 0x1 }
69
- vswitch { datapath_id 0x2 }
70
- """
71
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
61
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
72
62
  And wait until "RepeaterHub" is up
73
63
  And I successfully run `trema run './add_forward_entry -t packet_in mirror'`
74
64
  And the output should contain "Operation Succeeded."
@@ -91,12 +81,7 @@ Feature: C function example command "add_forward_entry"
91
81
 
92
82
  @slow_process
93
83
  Scenario Outline: Add 'mirror' only to Switch Manager's event forwarding entry of packet_in
94
- Given a file named "nw_dsl.conf" with:
95
- """
96
- vswitch { datapath_id 0x1 }
97
- vswitch { datapath_id 0x2 }
98
- """
99
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
84
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
100
85
  And wait until "RepeaterHub" is up
101
86
  When I successfully run `trema run './add_forward_entry -m -t packet_in mirror'`
102
87
  Then the output should contain "Updated service name list:"
@@ -113,12 +98,7 @@ Feature: C function example command "add_forward_entry"
113
98
 
114
99
  @slow_process
115
100
  Scenario Outline: Add 'mirror' only to Switch Daemon 0x1's event forwarding entries of packet_in
116
- Given a file named "nw_dsl.conf" with:
117
- """
118
- vswitch { datapath_id 0x1 }
119
- vswitch { datapath_id 0x2 }
120
- """
121
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
101
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
122
102
  And wait until "RepeaterHub" is up
123
103
  When I successfully run `trema run './add_forward_entry -s 0x1 -t packet_in mirror'`
124
104
  Then the output should contain "Updated service name list:"
@@ -41,12 +41,7 @@ Feature: C function example command "delete_forward_entry"
41
41
 
42
42
  @slow_process
43
43
  Scenario Outline: Delete 'RepeaterHub' from All Switch Manager/Daemon's event forwarding entries of packet_in
44
- Given a file named "nw_dsl.conf" with:
45
- """
46
- vswitch { datapath_id 0x1 }
47
- vswitch { datapath_id 0x2 }
48
- """
49
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
44
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
50
45
  And wait until "RepeaterHub" is up
51
46
  When I successfully run `trema run './delete_forward_entry -t packet_in RepeaterHub '`
52
47
  Then the output should contain "Operation Succeeded."
@@ -61,12 +56,7 @@ Feature: C function example command "delete_forward_entry"
61
56
 
62
57
  @slow_process
63
58
  Scenario Outline: Delete 'RepeaterHub' only from Switch Manager's event forwarding entries of packet_in
64
- Given a file named "nw_dsl.conf" with:
65
- """
66
- vswitch { datapath_id 0x1 }
67
- vswitch { datapath_id 0x2 }
68
- """
69
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
59
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
70
60
  And wait until "RepeaterHub" is up
71
61
  When I successfully run `trema run './delete_forward_entry -m -t packet_in RepeaterHub'`
72
62
  Then the output should contain "Updated service name list is empty."
@@ -81,12 +71,7 @@ Feature: C function example command "delete_forward_entry"
81
71
 
82
72
  @slow_process
83
73
  Scenario Outline: Delete 'RepeaterHub' only from Switch Daemon 0x1's event forwarding entries of packet_in
84
- Given a file named "nw_dsl.conf" with:
85
- """
86
- vswitch { datapath_id 0x1 }
87
- vswitch { datapath_id 0x2 }
88
- """
89
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
74
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
90
75
  And wait until "RepeaterHub" is up
91
76
  When I successfully run `trema run './delete_forward_entry -s 0x1 -t packet_in RepeaterHub'`
92
77
  Then the output should contain "Updated service name list is empty."
@@ -39,12 +39,7 @@ Feature: C function example command "dump_forward_entries"
39
39
 
40
40
  @slow_process
41
41
  Scenario Outline: Dump Switch Manager's event forwarding entries for each event type
42
- Given a file named "nw_dsl.conf" with:
43
- """
44
- vswitch { datapath_id 0x1 }
45
- vswitch { datapath_id 0x2 }
46
- """
47
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
42
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
48
43
  And wait until "RepeaterHub" is up
49
44
  When I successfully run `trema run './dump_forward_entries -m -t <type>'`
50
45
  Then the output should contain "Current service name list:"
@@ -59,12 +54,7 @@ Feature: C function example command "dump_forward_entries"
59
54
 
60
55
  @slow_process
61
56
  Scenario Outline: Dump Switch Daemon's event forwarding entries for each event type on each switch
62
- Given a file named "nw_dsl.conf" with:
63
- """
64
- vswitch { datapath_id 0x1 }
65
- vswitch { datapath_id 0x2 }
66
- """
67
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
57
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
68
58
  And wait until "RepeaterHub" is up
69
59
  When I successfully run `trema run './dump_forward_entries -s <switch> -t <type>'`
70
60
  Then the output should contain "Current service name list:"
@@ -40,12 +40,7 @@ Feature: C function example command "set_forward_entries"
40
40
 
41
41
  @slow_process
42
42
  Scenario Outline: Replace Switch Manager's event forwarding entries of packet_in to 'mirror' and 'filter'
43
- Given a file named "nw_dsl.conf" with:
44
- """
45
- vswitch { datapath_id 0x1 }
46
- vswitch { datapath_id 0x2 }
47
- """
48
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
43
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
49
44
  And wait until "RepeaterHub" is up
50
45
  When I successfully run `trema run './set_forward_entries -m -t packet_in mirror,filter'`
51
46
  Then the output should contain "Updated service name list:"
@@ -64,12 +59,7 @@ Feature: C function example command "set_forward_entries"
64
59
 
65
60
  @slow_process
66
61
  Scenario Outline: Replace Switch Daemon 0x1's event forwarding entries of packet_in to 'mirror' and 'filter'
67
- Given a file named "nw_dsl.conf" with:
68
- """
69
- vswitch { datapath_id 0x1 }
70
- vswitch { datapath_id 0x2 }
71
- """
72
- And I successfully run `trema run ../repeater_hub/repeater-hub.rb -c nw_dsl.conf -d`
62
+ Given I successfully run `trema run ../repeater_hub/repeater-hub.rb -c network.conf -d`
73
63
  And wait until "RepeaterHub" is up
74
64
  When I successfully run `trema run './set_forward_entries -s 0x1 -t packet_in mirror,filter'`
75
65
  Then the output should contain "Updated service name list:"
@@ -31,7 +31,7 @@ Feature: Ruby methods for adding switch event forwarding entry
31
31
 
32
32
  @slow_process
33
33
  Scenario Outline: add_forward_entry_to_all_switches event_type, trema_name
34
- Given a file named "nw_dsl.conf" with:
34
+ Given a file named "network.conf" with:
35
35
  """
36
36
  vswitch { datapath_id 0x1 }
37
37
  """
@@ -39,24 +39,29 @@ Feature: Ruby methods for adding switch event forwarding entry
39
39
  """ruby
40
40
  class AddEntryToAllTest < Controller
41
41
  include SwitchEvent
42
+
43
+ def start
44
+ @event_type = ARGV[0].delete(":").to_sym
45
+ @event_type_string = ":#{@event_type.to_s}"
46
+ end
42
47
 
43
48
  def switch_ready datapath_id
44
- add_forward_entry_to_all_switches <event_type>, "new_controller" do | success |
49
+ add_forward_entry_to_all_switches @event_type, "new_controller" do | success |
45
50
  raise "Failed to add forwarding entry to all switches" if not success
46
- info "Successfully added a forwarding entry of <event_type>."
47
- dump_forward_entries_from_switch datapath_id, <event_type> do | success, services |
51
+ info "Successfully added a forwarding entry of #{@event_type_string}."
52
+ dump_forward_entries_from_switch datapath_id, @event_type do | success, services |
48
53
  raise "Failed to dump forwarding entry from a switch" if not success
49
- info "Dumping switch #{datapath_id.to_hex}'s forwarding entries of <event_type> : #{services.inspect}"
54
+ info "Dumping switch #{datapath_id.to_hex}'s forwarding entries of #{@event_type_string} : #{services.inspect}"
50
55
  end
51
- dump_forward_entries_from_switch_manager <event_type> do | success, services |
56
+ dump_forward_entries_from_switch_manager @event_type do | success, services |
52
57
  raise "Failed to dump forwarding entry from the switch manager" if not success
53
- info "Dumping switch manager's forwarding entries of <event_type> : #{services.inspect}"
58
+ info "Dumping switch manager's forwarding entries of #{@event_type_string} : #{services.inspect}"
54
59
  end
55
60
  end
56
61
  end
57
62
  end
58
63
  """
59
- When I successfully run `trema run ./AddEntryToAllTest.rb -c nw_dsl.conf -d`
64
+ When I successfully run `trema run "./AddEntryToAllTest.rb <event_type>" -c network.conf -d`
60
65
  And wait until "AddEntryToAllTest" is up
61
66
  And *** sleep 2 ***
62
67
  Then the file "../../tmp/log/AddEntryToAllTest.log" should contain:
@@ -73,15 +78,15 @@ Feature: Ruby methods for adding switch event forwarding entry
73
78
  """
74
79
 
75
80
  Examples:
76
- | event_type | switch_manager_event_list | switch_event_list |
77
- | :vendor | "new_controller", "AddEntryToAllTest" | "new_controller", "AddEntryToAllTest" |
78
- | :packet_in | "new_controller", "AddEntryToAllTest" | "new_controller", "AddEntryToAllTest" |
79
- | :port_status | "new_controller", "AddEntryToAllTest" | "new_controller", "AddEntryToAllTest" |
80
- | :state_notify | "new_controller", "AddEntryToAllTest" | "new_controller", "AddEntryToAllTest", "switch_manager" |
81
+ | event_type | switch_manager_event_list | switch_event_list |
82
+ | :vendor | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
83
+ | :packet_in | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
84
+ | :port_status | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
85
+ | :state_notify | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
81
86
 
82
87
  @slow_process
83
88
  Scenario Outline: add_forward_entry_to_switch dpid, event_type, trema_name
84
- Given a file named "nw_dsl.conf" with:
89
+ Given a file named "network.conf" with:
85
90
  """
86
91
  vswitch { datapath_id 0x1 }
87
92
  """
@@ -90,15 +95,20 @@ Feature: Ruby methods for adding switch event forwarding entry
90
95
  class AddEntryToSwitchDaemonTest < Controller
91
96
  include SwitchEvent
92
97
 
98
+ def start
99
+ @event_type = ARGV[0].delete(":").to_sym
100
+ @event_type_string = ":#{@event_type.to_s}"
101
+ end
102
+
93
103
  def switch_ready datapath_id
94
- add_forward_entry_to_switch datapath_id, <event_type>, "new_controller" do | success, services |
104
+ add_forward_entry_to_switch datapath_id, @event_type, "new_controller" do | success, services |
95
105
  raise "Failed to add forwarding entry to switch" if not success
96
- info "Successfully added a forwarding entry of <event_type> to switch #{datapath_id.to_hex} : #{services.inspect}"
106
+ info "Successfully added a forwarding entry of #{@event_type_string} to switch #{datapath_id.to_hex} : #{services.inspect}"
97
107
  end
98
108
  end
99
109
  end
100
110
  """
101
- When I successfully run `trema run ./AddEntryToSwitchDaemonTest.rb -c nw_dsl.conf -d`
111
+ When I successfully run `trema run "./AddEntryToSwitchDaemonTest.rb <event_type>" -c network.conf -d`
102
112
  And wait until "AddEntryToSwitchDaemonTest" is up
103
113
  And *** sleep 1 ***
104
114
  Then the file "../../tmp/log/AddEntryToSwitchDaemonTest.log" should contain:
@@ -107,11 +117,11 @@ Feature: Ruby methods for adding switch event forwarding entry
107
117
  """
108
118
 
109
119
  Examples:
110
- | event_type | switch_event_list |
111
- | :vendor | "new_controller", "AddEntryToSwitchDaemonTest" |
112
- | :packet_in | "new_controller", "AddEntryToSwitchDaemonTest" |
113
- | :port_status | "new_controller", "AddEntryToSwitchDaemonTest" |
114
- | :state_notify | "new_controller", "AddEntryToSwitchDaemonTest", "switch_manager" |
120
+ | event_type | switch_event_list |
121
+ | :vendor | "AddEntryToSwitchDaemonTest", "new_controller" |
122
+ | :packet_in | "AddEntryToSwitchDaemonTest", "new_controller" |
123
+ | :port_status | "AddEntryToSwitchDaemonTest", "new_controller" |
124
+ | :state_notify | "AddEntryToSwitchDaemonTest", "new_controller" |
115
125
 
116
126
  @slow_process
117
127
  Scenario Outline: add_forward_entry_to_switch_manager event_type, trema_name
@@ -120,16 +130,21 @@ Feature: Ruby methods for adding switch event forwarding entry
120
130
  class AddEntryToSwitchManagerTest < Controller
121
131
  include SwitchEvent
122
132
 
133
+ def start
134
+ @event_type = ARGV[0].delete(":").to_sym
135
+ @event_type_string = ":#{@event_type.to_s}"
136
+ end
137
+
123
138
  oneshot_timer_event :test_start, 0
124
139
  def test_start
125
- add_forward_entry_to_switch_manager <event_type>, "new_controller" do | success, services |
140
+ add_forward_entry_to_switch_manager @event_type, "new_controller" do | success, services |
126
141
  raise "Failed to add forwarding entry to switch manager" if not success
127
- info "Successfully added a forwarding entry of <event_type> to switch manager : #{services.inspect}"
142
+ info "Successfully added a forwarding entry of #{@event_type_string} to switch manager : #{services.inspect}"
128
143
  end
129
144
  end
130
145
  end
131
146
  """
132
- When I successfully run `trema run ./AddEntryToSwitchManagerTest.rb -d`
147
+ When I successfully run `trema run "./AddEntryToSwitchManagerTest.rb <event_type>" -d`
133
148
  And wait until "AddEntryToSwitchManagerTest" is up
134
149
  And *** sleep 1 ***
135
150
  Then the file "../../tmp/log/AddEntryToSwitchManagerTest.log" should contain:
@@ -139,7 +154,7 @@ Feature: Ruby methods for adding switch event forwarding entry
139
154
 
140
155
  Examples:
141
156
  | event_type | switch_manager_event_list |
142
- | :vendor | "new_controller", "AddEntryToSwitchManagerTest" |
143
- | :packet_in | "new_controller", "AddEntryToSwitchManagerTest" |
144
- | :port_status | "new_controller", "AddEntryToSwitchManagerTest" |
145
- | :state_notify | "new_controller", "AddEntryToSwitchManagerTest" |
157
+ | :vendor | "AddEntryToSwitchManagerTest", "new_controller" |
158
+ | :packet_in | "AddEntryToSwitchManagerTest", "new_controller" |
159
+ | :port_status | "AddEntryToSwitchManagerTest", "new_controller" |
160
+ | :state_notify | "AddEntryToSwitchManagerTest", "new_controller" |
@@ -31,7 +31,7 @@ Feature: Ruby methods for deleting switch event forwarding entry
31
31
 
32
32
  @slow_process
33
33
  Scenario Outline: delete_forward_entry_from_all_switches event_type, trema_name
34
- Given a file named "nw_dsl.conf" with:
34
+ Given a file named "network.conf" with:
35
35
  """
36
36
  vswitch { datapath_id 0x1 }
37
37
  """
@@ -40,23 +40,28 @@ Feature: Ruby methods for deleting switch event forwarding entry
40
40
  class DeleteEntryFromAllTest < Controller
41
41
  include SwitchEvent
42
42
 
43
+ def start
44
+ @event_type = ARGV[0].delete(":").to_sym
45
+ @event_type_string = ":#{@event_type.to_s}"
46
+ end
47
+
43
48
  def switch_ready datapath_id
44
- delete_forward_entry_from_all_switches <event_type>, "DeleteEntryFromAllTest" do | success |
49
+ delete_forward_entry_from_all_switches @event_type, "DeleteEntryFromAllTest" do | success |
45
50
  raise "Failed to delete forwarding entry from all switches" if not success
46
- info "Successfully deleted a forwarding entry of <event_type>."
47
- dump_forward_entries_from_switch datapath_id, <event_type> do | success, services |
51
+ info "Successfully deleted a forwarding entry of #{@event_type_string}."
52
+ dump_forward_entries_from_switch datapath_id, @event_type do | success, services |
48
53
  raise "Failed to dump forwarding entry from a switch" if not success
49
54
  info "Dumping switch #{datapath_id.to_hex}'s forwarding entries of <event_type> : #{services.inspect}"
50
55
  end
51
- dump_forward_entries_from_switch_manager <event_type> do | success, services |
56
+ dump_forward_entries_from_switch_manager @event_type do | success, services |
52
57
  raise "Failed to dump forwarding entry from the switch manager" if not success
53
- info "Dumping switch manager's forwarding entries of <event_type> : #{services.inspect}"
58
+ info "Dumping switch manager's forwarding entries of #{@event_type_string} : #{services.inspect}"
54
59
  end
55
60
  end
56
61
  end
57
62
  end
58
63
  """
59
- When I successfully run `trema run ./DeleteEntryFromAllTest.rb -c nw_dsl.conf -d`
64
+ When I successfully run `trema run "./DeleteEntryFromAllTest.rb <event_type>" -c network.conf -d`
60
65
  And wait until "DeleteEntryFromAllTest" is up
61
66
  And *** sleep 2 ***
62
67
  Then the file "../../tmp/log/DeleteEntryFromAllTest.log" should contain:
@@ -77,11 +82,11 @@ Feature: Ruby methods for deleting switch event forwarding entry
77
82
  | :vendor | | |
78
83
  | :packet_in | | |
79
84
  | :port_status | | |
80
- | :state_notify | | "switch_manager" |
85
+ | :state_notify | | |
81
86
 
82
87
  @slow_process
83
88
  Scenario Outline: delete_forward_entry_from_switch dpid, event_type, trema_name
84
- Given a file named "nw_dsl.conf" with:
89
+ Given a file named "network.conf" with:
85
90
  """
86
91
  vswitch { datapath_id 0x1 }
87
92
  """
@@ -90,15 +95,20 @@ Feature: Ruby methods for deleting switch event forwarding entry
90
95
  class DeleteFromSwitchDaemonTest < Controller
91
96
  include SwitchEvent
92
97
 
98
+ def start
99
+ @event_type = ARGV[0].delete(":").to_sym
100
+ @event_type_string = ":#{@event_type.to_s}"
101
+ end
102
+
93
103
  def switch_ready datapath_id
94
- delete_forward_entry_from_switch datapath_id, <event_type>, "DeleteFromSwitchDaemonTest" do | success, services |
104
+ delete_forward_entry_from_switch datapath_id, @event_type, "DeleteFromSwitchDaemonTest" do | success, services |
95
105
  raise "Failed to delete forwarding entry from switch" if not success
96
- info "Successfully deleted a forwarding entry of <event_type> from switch #{datapath_id.to_hex} : #{services.inspect}"
106
+ info "Successfully deleted a forwarding entry of #{@event_type_string} from switch #{datapath_id.to_hex} : #{services.inspect}"
97
107
  end
98
108
  end
99
109
  end
100
110
  """
101
- When I successfully run `trema run ./DeleteFromSwitchDaemonTest.rb -c nw_dsl.conf -d`
111
+ When I successfully run `trema run "./DeleteFromSwitchDaemonTest.rb <event_type>" -c network.conf -d`
102
112
  And wait until "DeleteFromSwitchDaemonTest" is up
103
113
  And *** sleep 1 ***
104
114
  Then the file "../../tmp/log/DeleteFromSwitchDaemonTest.log" should contain:
@@ -111,7 +121,7 @@ Feature: Ruby methods for deleting switch event forwarding entry
111
121
  | :vendor | |
112
122
  | :packet_in | |
113
123
  | :port_status | |
114
- | :state_notify | "switch_manager" |
124
+ | :state_notify | |
115
125
 
116
126
  @slow_process
117
127
  Scenario Outline: delete_forward_entry_from_switch_manager event_type, trema_name
@@ -120,16 +130,21 @@ Feature: Ruby methods for deleting switch event forwarding entry
120
130
  class DeleteFromSwitchManagerTest < Controller
121
131
  include SwitchEvent
122
132
 
133
+ def start
134
+ @event_type = ARGV[0].delete(":").to_sym
135
+ @event_type_string = ":#{@event_type.to_s}"
136
+ end
137
+
123
138
  oneshot_timer_event :test_start, 0
124
139
  def test_start
125
- delete_forward_entry_from_switch_manager <event_type>, "DeleteFromSwitchManagerTest" do | success, services |
140
+ delete_forward_entry_from_switch_manager @event_type, "DeleteFromSwitchManagerTest" do | success, services |
126
141
  raise "Failed to delete forwarding entry from switch manager" if not success
127
- info "Successfully deleted a forwarding entry of <event_type> from switch manager : #{services.inspect}"
142
+ info "Successfully deleted a forwarding entry of #{@event_type_string} from switch manager : #{services.inspect}"
128
143
  end
129
144
  end
130
145
  end
131
146
  """
132
- When I successfully run `trema run ./DeleteFromSwitchManagerTest.rb -d`
147
+ When I successfully run `trema run "./DeleteFromSwitchManagerTest.rb <event_type>" -d`
133
148
  And wait until "DeleteFromSwitchManagerTest" is up
134
149
  And *** sleep 1 ***
135
150
  Then the file "../../tmp/log/DeleteFromSwitchManagerTest.log" should contain:
@@ -24,7 +24,7 @@ Feature: Ruby methods for dumping switch event forwarding entry
24
24
 
25
25
  @slow_process
26
26
  Scenario Outline: dump_forward_entries_from_switch dpid, event_type
27
- Given a file named "nw_dsl.conf" with:
27
+ Given a file named "network.conf" with:
28
28
  """
29
29
  vswitch { datapath_id 0x1 }
30
30
  event :vendor => "vendor", :packet_in => "packet_in", :port_status => "port_status"
@@ -34,15 +34,20 @@ Feature: Ruby methods for dumping switch event forwarding entry
34
34
  class DumpSwitchDaemonTest < Controller
35
35
  include SwitchEvent
36
36
 
37
+ def start
38
+ @event_type = ARGV[0].delete(":").to_sym
39
+ @event_type_string = ":#{@event_type.to_s}"
40
+ end
41
+
37
42
  def switch_ready datapath_id
38
- dump_forward_entries_from_switch datapath_id, <event_type> do | success, services |
43
+ dump_forward_entries_from_switch datapath_id, @event_type do | success, services |
39
44
  raise "Failed to dump forwarding entry from a switch" if not success
40
- info "Dumping switch #{datapath_id.to_hex}'s forwarding entries of <event_type> : #{services.inspect}"
45
+ info "Dumping switch #{datapath_id.to_hex}'s forwarding entries of #{@event_type_string} : #{services.inspect}"
41
46
  end
42
47
  end
43
48
  end
44
49
  """
45
- When I successfully run `trema run ./DumpSwitchDaemonTest.rb -c nw_dsl.conf -d`
50
+ When I successfully run `trema run "./DumpSwitchDaemonTest.rb <event_type>" -c network.conf -d`
46
51
  And wait until "DumpSwitchDaemonTest" is up
47
52
  And *** sleep 1 ***
48
53
  Then the file "../../tmp/log/DumpSwitchDaemonTest.log" should contain:
@@ -51,15 +56,15 @@ Feature: Ruby methods for dumping switch event forwarding entry
51
56
  """
52
57
 
53
58
  Examples:
54
- | event_type | switch_event_list |
55
- | :vendor | "vendor" |
56
- | :packet_in | "packet_in" |
57
- | :port_status | "port_status" |
58
- | :state_notify | "DumpSwitchDaemonTest", "switch_manager" |
59
+ | event_type | switch_event_list |
60
+ | :vendor | "vendor" |
61
+ | :packet_in | "packet_in" |
62
+ | :port_status | "port_status" |
63
+ | :state_notify | "DumpSwitchDaemonTest" |
59
64
 
60
65
  @slow_process
61
66
  Scenario Outline: dump_forward_entries_from_switch_manager event_type
62
- Given a file named "nw_dsl.conf" with:
67
+ Given a file named "network.conf" with:
63
68
  """
64
69
  event :vendor => "vendor", :packet_in => "packet_in", :port_status => "port_status", :state_notify => "state_notify"
65
70
  """
@@ -68,16 +73,21 @@ Feature: Ruby methods for dumping switch event forwarding entry
68
73
  class DumpSwitchManagerTest < Controller
69
74
  include SwitchEvent
70
75
 
76
+ def start
77
+ @event_type = ARGV[0].delete(":").to_sym
78
+ @event_type_string = ":#{@event_type.to_s}"
79
+ end
80
+
71
81
  oneshot_timer_event :test_start, 0
72
82
  def test_start
73
- dump_forward_entries_from_switch_manager <event_type> do | success, services |
83
+ dump_forward_entries_from_switch_manager @event_type do | success, services |
74
84
  raise "Failed to dump forwarding entry from the switch manager" if not success
75
- info "Dumping switch manager's forwarding entries of <event_type> : #{services.inspect}"
85
+ info "Dumping switch manager's forwarding entries of #{@event_type_string} : #{services.inspect}"
76
86
  end
77
87
  end
78
88
  end
79
89
  """
80
- When I successfully run `trema run ./DumpSwitchManagerTest.rb -c nw_dsl.conf -d`
90
+ When I successfully run `trema run "./DumpSwitchManagerTest.rb <event_type>" -c network.conf -d`
81
91
  And wait until "DumpSwitchManagerTest" is up
82
92
  And *** sleep 1 ***
83
93
  Then the file "../../tmp/log/DumpSwitchManagerTest.log" should contain: