openflow-protocol 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openflow-protocol.rb +2 -1
  3. data/lib/openflow-protocol/actions/action.rb +30 -0
  4. data/lib/openflow-protocol/actions/action_enqueue.rb +16 -0
  5. data/lib/openflow-protocol/actions/action_output.rb +14 -0
  6. data/lib/openflow-protocol/actions/action_set_destination_port.rb +7 -0
  7. data/lib/openflow-protocol/actions/action_set_ip_destination.rb +7 -0
  8. data/lib/openflow-protocol/actions/action_set_ip_source.rb +13 -0
  9. data/lib/openflow-protocol/actions/action_set_ip_tos.rb +15 -0
  10. data/lib/openflow-protocol/actions/action_set_mac_destination.rb +7 -0
  11. data/lib/openflow-protocol/actions/action_set_mac_source.rb +15 -0
  12. data/lib/openflow-protocol/actions/action_set_source_port.rb +15 -0
  13. data/lib/openflow-protocol/actions/action_set_vlan_id.rb +15 -0
  14. data/lib/openflow-protocol/actions/action_set_vlan_pcp.rb +15 -0
  15. data/lib/openflow-protocol/actions/action_strip_vlan.rb +14 -0
  16. data/lib/openflow-protocol/actions/action_vendor.rb +13 -0
  17. data/lib/openflow-protocol/actions/actions.rb +9 -0
  18. data/lib/openflow-protocol/helpers/array_of_subclasses.rb +42 -0
  19. data/lib/openflow-protocol/helpers/superclass_base.rb +26 -0
  20. data/lib/openflow-protocol/messages/barrier_reply.rb +7 -0
  21. data/lib/openflow-protocol/messages/barrier_request.rb +7 -0
  22. data/lib/openflow-protocol/messages/echo_reply.rb +13 -0
  23. data/lib/openflow-protocol/messages/echo_request.rb +13 -0
  24. data/lib/openflow-protocol/messages/error.rb +69 -0
  25. data/lib/openflow-protocol/messages/features_reply.rb +44 -0
  26. data/lib/openflow-protocol/messages/features_request.rb +7 -0
  27. data/lib/openflow-protocol/messages/flow_mod.rb +24 -0
  28. data/lib/openflow-protocol/messages/flow_removed.rb +27 -0
  29. data/lib/openflow-protocol/messages/get_config_reply.rb +16 -0
  30. data/lib/openflow-protocol/messages/get_config_request.rb +7 -0
  31. data/lib/openflow-protocol/messages/hello.rb +7 -0
  32. data/lib/openflow-protocol/messages/message.rb +49 -0
  33. data/lib/openflow-protocol/messages/packet_in.rb +27 -0
  34. data/lib/openflow-protocol/messages/packet_out.rb +17 -0
  35. data/lib/openflow-protocol/messages/parser.rb +26 -0
  36. data/lib/openflow-protocol/messages/port_mod.rb +19 -0
  37. data/lib/openflow-protocol/messages/port_status.rb +18 -0
  38. data/lib/openflow-protocol/messages/queue_get_config_reply.rb +18 -0
  39. data/lib/openflow-protocol/messages/queue_get_config_request.rb +15 -0
  40. data/lib/openflow-protocol/messages/set_config.rb +7 -0
  41. data/lib/openflow-protocol/messages/statistics.rb +28 -0
  42. data/lib/openflow-protocol/messages/statistics/aggregate_statistics_reply.rb +14 -0
  43. data/lib/openflow-protocol/messages/statistics/aggregate_statistics_request.rb +7 -0
  44. data/lib/openflow-protocol/messages/statistics/description_statistics.rb +32 -0
  45. data/lib/openflow-protocol/messages/statistics/flow_statistics_reply.rb +25 -0
  46. data/lib/openflow-protocol/messages/statistics/flow_statistics_request.rb +14 -0
  47. data/lib/openflow-protocol/messages/statistics/port_statistics_reply.rb +24 -0
  48. data/lib/openflow-protocol/messages/statistics/port_statistics_request.rb +12 -0
  49. data/lib/openflow-protocol/messages/statistics/queue_statistics_reply.rb +16 -0
  50. data/lib/openflow-protocol/messages/statistics/queue_statistics_request.rb +13 -0
  51. data/lib/openflow-protocol/messages/statistics/table_statistics.rb +20 -0
  52. data/lib/openflow-protocol/messages/statistics/vendor_statistics.rb +11 -0
  53. data/lib/openflow-protocol/messages/statistics_reply.rb +26 -0
  54. data/lib/openflow-protocol/messages/statistics_request.rb +18 -0
  55. data/lib/openflow-protocol/messages/vendor.rb +14 -0
  56. data/lib/openflow-protocol/structs/match.rb +106 -0
  57. data/lib/openflow-protocol/structs/packet_queue.rb +14 -0
  58. data/lib/openflow-protocol/structs/physical_port.rb +50 -0
  59. data/lib/openflow-protocol/structs/port_number.rb +49 -0
  60. data/lib/openflow-protocol/structs/queue_properties/queue_properties.rb +9 -0
  61. data/lib/openflow-protocol/structs/queue_properties/queue_property.rb +20 -0
  62. data/lib/openflow-protocol/structs/queue_properties/queue_property_min_rate.rb +30 -0
  63. data/lib/openflow-protocol/structs/queue_properties/queue_property_none.rb +7 -0
  64. data/lib/openflow-protocol/version.rb +1 -1
  65. data/spec/actions/action_enqueue_spec.rb +4 -6
  66. data/spec/actions/action_output_spec.rb +4 -6
  67. data/spec/actions/action_set_destination_port_spec.rb +4 -6
  68. data/spec/actions/action_set_ip_destination_spec.rb +4 -6
  69. data/spec/actions/action_set_ip_source_spec.rb +4 -6
  70. data/spec/actions/action_set_ip_tos_spec.rb +4 -6
  71. data/spec/actions/action_set_mac_destination_spec.rb +4 -6
  72. data/spec/actions/action_set_mac_source_spec.rb +4 -6
  73. data/spec/actions/action_set_source_port_spec.rb +4 -6
  74. data/spec/actions/action_set_vlan_id_spec.rb +4 -6
  75. data/spec/actions/action_set_vlan_pcp_spec.rb +4 -6
  76. data/spec/actions/action_strip_vlan_spec.rb +3 -5
  77. data/spec/actions/action_vendor_spec.rb +4 -6
  78. data/spec/actions/actions_spec.rb +6 -8
  79. data/spec/messages/barrier_reply_spec.rb +9 -11
  80. data/spec/messages/barrier_request_spec.rb +9 -11
  81. data/spec/messages/echo_reply_spec.rb +13 -15
  82. data/spec/messages/echo_request_spec.rb +16 -18
  83. data/spec/messages/error_spec.rb +23 -20
  84. data/spec/messages/features_reply_spec.rb +11 -13
  85. data/spec/messages/features_request_spec.rb +9 -11
  86. data/spec/messages/flow_mod_spec.rb +12 -14
  87. data/spec/messages/flow_removed_spec.rb +9 -11
  88. data/spec/messages/get_config_reply_spec.rb +9 -11
  89. data/spec/messages/get_config_request_spec.rb +9 -11
  90. data/spec/messages/hello_spec.rb +9 -11
  91. data/spec/messages/packet_in_spec.rb +9 -11
  92. data/spec/messages/packet_out_spec.rb +10 -12
  93. data/spec/messages/parser_spec.rb +7 -9
  94. data/spec/messages/port_mod_spec.rb +9 -11
  95. data/spec/messages/port_status_spec.rb +10 -12
  96. data/spec/messages/queue_get_config_reply_spec.rb +9 -11
  97. data/spec/messages/queue_get_config_request_spec.rb +9 -11
  98. data/spec/messages/set_config_spec.rb +9 -11
  99. data/spec/messages/statistics/aggregate_statistics_reply_spec.rb +4 -6
  100. data/spec/messages/statistics/aggregate_statistics_request_spec.rb +4 -6
  101. data/spec/messages/statistics/description_statistics_spec.rb +11 -9
  102. data/spec/messages/statistics/flow_statistics_reply_spec.rb +4 -6
  103. data/spec/messages/statistics/flow_statistics_request_spec.rb +4 -6
  104. data/spec/messages/statistics/port_statistics_reply_spec.rb +4 -6
  105. data/spec/messages/statistics/port_statistics_request_spec.rb +4 -6
  106. data/spec/messages/statistics/queue_statistics_reply_spec.rb +4 -6
  107. data/spec/messages/statistics/queue_statistics_request_spec.rb +4 -6
  108. data/spec/messages/statistics/table_statistics_spec.rb +4 -6
  109. data/spec/messages/statistics/vendor_statistics_spec.rb +4 -6
  110. data/spec/messages/statistics_reply_spec.rb +62 -64
  111. data/spec/messages/statistics_request_spec.rb +45 -47
  112. data/spec/messages/vendor_spec.rb +13 -15
  113. data/spec/spec_helper.rb +1 -1
  114. data/spec/structs/match_spec.rb +7 -9
  115. data/spec/structs/packet_queue_spec.rb +5 -7
  116. data/spec/structs/physical_port_spec.rb +16 -18
  117. data/spec/structs/port_number_spec.rb +11 -13
  118. data/spec/structs/queue_properties/queue_properties_spec.rb +5 -7
  119. data/spec/structs/queue_properties/queue_property_min_rate_spec.rb +5 -7
  120. data/spec/structs/queue_properties/queue_property_none_spec.rb +3 -5
  121. metadata +78 -64
  122. data/lib/actions/action.rb +0 -26
  123. data/lib/actions/action_enqueue.rb +0 -12
  124. data/lib/actions/action_output.rb +0 -10
  125. data/lib/actions/action_set_destination_port.rb +0 -3
  126. data/lib/actions/action_set_ip_destination.rb +0 -3
  127. data/lib/actions/action_set_ip_source.rb +0 -9
  128. data/lib/actions/action_set_ip_tos.rb +0 -11
  129. data/lib/actions/action_set_mac_destination.rb +0 -3
  130. data/lib/actions/action_set_mac_source.rb +0 -11
  131. data/lib/actions/action_set_source_port.rb +0 -11
  132. data/lib/actions/action_set_vlan_id.rb +0 -11
  133. data/lib/actions/action_set_vlan_pcp.rb +0 -11
  134. data/lib/actions/action_strip_vlan.rb +0 -10
  135. data/lib/actions/action_vendor.rb +0 -9
  136. data/lib/actions/actions.rb +0 -5
  137. data/lib/helpers/array_of_subclasses.rb +0 -38
  138. data/lib/helpers/superclass_base.rb +0 -24
  139. data/lib/messages/barrier_reply.rb +0 -3
  140. data/lib/messages/barrier_request.rb +0 -3
  141. data/lib/messages/echo_reply.rb +0 -9
  142. data/lib/messages/echo_request.rb +0 -9
  143. data/lib/messages/error.rb +0 -61
  144. data/lib/messages/features_reply.rb +0 -40
  145. data/lib/messages/features_request.rb +0 -3
  146. data/lib/messages/flow_mod.rb +0 -20
  147. data/lib/messages/flow_removed.rb +0 -23
  148. data/lib/messages/get_config_reply.rb +0 -12
  149. data/lib/messages/get_config_request.rb +0 -3
  150. data/lib/messages/hello.rb +0 -3
  151. data/lib/messages/message.rb +0 -45
  152. data/lib/messages/packet_in.rb +0 -23
  153. data/lib/messages/packet_out.rb +0 -13
  154. data/lib/messages/parser.rb +0 -22
  155. data/lib/messages/port_mod.rb +0 -15
  156. data/lib/messages/port_status.rb +0 -14
  157. data/lib/messages/queue_get_config_reply.rb +0 -14
  158. data/lib/messages/queue_get_config_request.rb +0 -11
  159. data/lib/messages/set_config.rb +0 -3
  160. data/lib/messages/statistics.rb +0 -24
  161. data/lib/messages/statistics/aggregate_statistics_reply.rb +0 -10
  162. data/lib/messages/statistics/aggregate_statistics_request.rb +0 -3
  163. data/lib/messages/statistics/description_statistics.rb +0 -28
  164. data/lib/messages/statistics/flow_statistics_reply.rb +0 -21
  165. data/lib/messages/statistics/flow_statistics_request.rb +0 -10
  166. data/lib/messages/statistics/port_statistics_reply.rb +0 -20
  167. data/lib/messages/statistics/port_statistics_request.rb +0 -8
  168. data/lib/messages/statistics/queue_statistics_reply.rb +0 -12
  169. data/lib/messages/statistics/queue_statistics_request.rb +0 -9
  170. data/lib/messages/statistics/table_statistics.rb +0 -16
  171. data/lib/messages/statistics/vendor_statistics.rb +0 -7
  172. data/lib/messages/statistics_reply.rb +0 -22
  173. data/lib/messages/statistics_request.rb +0 -14
  174. data/lib/messages/vendor.rb +0 -10
  175. data/lib/structs/match.rb +0 -102
  176. data/lib/structs/packet_queue.rb +0 -10
  177. data/lib/structs/physical_port.rb +0 -46
  178. data/lib/structs/port_number.rb +0 -45
  179. data/lib/structs/queue_properties/queue_properties.rb +0 -5
  180. data/lib/structs/queue_properties/queue_property.rb +0 -16
  181. data/lib/structs/queue_properties/queue_property_min_rate.rb +0 -26
  182. data/lib/structs/queue_properties/queue_property_none.rb +0 -3
@@ -1,47 +1,45 @@
1
- require 'spec_helper'
2
-
3
- describe OFEchoReply do
1
+ describe OpenFlow::Protocol::EchoReply do
4
2
  let(:data) { [1, 3, 0, 8, 0, 0, 0, 1].pack('C*') }
5
3
 
6
4
  it 'should read binary' do
7
- msg = OFEchoReply.read(data)
8
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
5
+ msg = OpenFlow::Protocol::EchoReply.read(data)
6
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
9
7
  expect(msg.type).to eq(:echo_reply)
10
8
  expect(msg.len).to eq(8)
11
9
  expect(msg.xid).to eq(1)
12
10
  expect(msg.data).to be_empty
13
11
  end
14
12
  it 'should be parsable' do
15
- msg = OFParser.read(data)
16
- expect(msg.class).to eq(OFEchoReply)
13
+ msg = OpenFlow::Protocol::Parser.read(data)
14
+ expect(msg.class).to eq(OpenFlow::Protocol::EchoReply)
17
15
  end
18
16
  it 'should read binary with data' do
19
- msg = OFEchoReply.read [1, 3, 0, 10, 0, 0, 0, 1, 10, 20].pack('C*')
20
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
17
+ msg = OpenFlow::Protocol::EchoReply.read [1, 3, 0, 10, 0, 0, 0, 1, 10, 20].pack('C*')
18
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
21
19
  expect(msg.type).to eq(:echo_reply)
22
20
  expect(msg.len).to eq(10)
23
21
  expect(msg.xid).to eq(1)
24
22
  expect(msg.data.length).to eq(2)
25
23
  end
26
24
  it 'should initialize with default values' do
27
- msg = OFEchoReply.new
28
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
25
+ msg = OpenFlow::Protocol::EchoReply.new
26
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
29
27
  expect(msg.type).to eq(:echo_reply)
30
28
  expect(msg.len).to eq(8)
31
29
  expect(msg.xid).to eq(0)
32
30
  expect(msg.data).to be_empty
33
31
  end
34
32
  it 'should initialize with some values' do
35
- msg = OFEchoReply.new(xid: 1)
36
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
33
+ msg = OpenFlow::Protocol::EchoReply.new(xid: 1)
34
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
37
35
  expect(msg.type).to eq(:echo_reply)
38
36
  expect(msg.len).to eq(8)
39
37
  expect(msg.xid).to eq(1)
40
38
  expect(msg.data).to be_empty
41
39
  end
42
40
  it 'should initialize with data' do
43
- msg = OFEchoReply.new(data: [10, 20].pack('C*'))
44
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
41
+ msg = OpenFlow::Protocol::EchoReply.new(data: [10, 20].pack('C*'))
42
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
45
43
  expect(msg.type).to eq(:echo_reply)
46
44
  expect(msg.len).to eq(10)
47
45
  expect(msg.xid).to eq(0)
@@ -1,56 +1,54 @@
1
- require 'spec_helper'
2
-
3
- describe OFEchoRequest do
1
+ describe OpenFlow::Protocol::EchoRequest do
4
2
  let(:data) { [1, 2, 0, 8, 0, 0, 0, 1].pack('C*') }
5
3
 
6
4
  it 'should read binary' do
7
- msg = OFEchoRequest.read(data)
8
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
5
+ msg = OpenFlow::Protocol::EchoRequest.read(data)
6
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
9
7
  expect(msg.type).to eq(:echo_request)
10
8
  expect(msg.len).to eq(8)
11
9
  expect(msg.xid).to eq(1)
12
10
  expect(msg.data).to be_empty
13
11
  end
14
12
  it 'should be parsable' do
15
- msg = OFParser.read(data)
16
- expect(msg.class).to eq(OFEchoRequest)
13
+ msg = OpenFlow::Protocol::Parser.read(data)
14
+ expect(msg.class).to eq(OpenFlow::Protocol::EchoRequest)
17
15
  end
18
16
  it 'should read binary with data' do
19
- msg = OFEchoRequest.read [1, 2, 0, 10, 0, 0, 0, 1, 10, 20].pack('C*')
20
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
17
+ msg = OpenFlow::Protocol::EchoRequest.read [1, 2, 0, 10, 0, 0, 0, 1, 10, 20].pack('C*')
18
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
21
19
  expect(msg.type).to eq(:echo_request)
22
20
  expect(msg.len).to eq(10)
23
21
  expect(msg.xid).to eq(1)
24
22
  expect(msg.data.length).to eq(2)
25
23
  end
26
24
  it 'should initialize with default values' do
27
- msg = OFEchoRequest.new
28
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
25
+ msg = OpenFlow::Protocol::EchoRequest.new
26
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
29
27
  expect(msg.type).to eq(:echo_request)
30
28
  expect(msg.len).to eq(8)
31
29
  expect(msg.xid).to eq(0)
32
30
  expect(msg.data).to be_empty
33
31
  end
34
32
  it 'should initialize with some values' do
35
- msg = OFEchoRequest.new(xid: 1)
36
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
33
+ msg = OpenFlow::Protocol::EchoRequest.new(xid: 1)
34
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
37
35
  expect(msg.type).to eq(:echo_request)
38
36
  expect(msg.len).to eq(8)
39
37
  expect(msg.xid).to eq(1)
40
38
  expect(msg.data).to be_empty
41
39
  end
42
40
  it 'should initialize with data' do
43
- msg = OFEchoRequest.new(data: [10, 20].pack('C*'))
44
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
41
+ msg = OpenFlow::Protocol::EchoRequest.new(data: [10, 20].pack('C*'))
42
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
45
43
  expect(msg.type).to eq(:echo_request)
46
44
  expect(msg.len).to eq(10)
47
45
  expect(msg.xid).to eq(0)
48
46
  expect(msg.data.length).to eq(2)
49
47
  end
50
- it 'should convert to OFEchoReply' do
51
- msg = OFEchoRequest.new(xid: 1, data: [10, 20].pack('C*'))
48
+ it 'should convert to OpenFlow::Protocol::EchoReply' do
49
+ msg = OpenFlow::Protocol::EchoRequest.new(xid: 1, data: [10, 20].pack('C*'))
52
50
  msg_reply = msg.to_reply
53
- expect(msg_reply.version).to eq(OFMessage::OFP_VERSION)
51
+ expect(msg_reply.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
54
52
  expect(msg_reply.type).to eq(:echo_reply)
55
53
  expect(msg.len).to eq(msg_reply.len)
56
54
  expect(msg.xid).to eq(msg_reply.xid)
@@ -1,36 +1,39 @@
1
- require 'spec_helper'
2
-
3
- describe OFError do
1
+ describe OpenFlow::Protocol::Error do
2
+ let(:hello_msg) {
3
+ [1, 0, 0, 8, 0, 0, 0, 1].pack('C*')
4
+ }
4
5
  let(:data) {
5
6
  [
6
- 1, 1, 0, 16, 0, 0, 0, 1, # header
7
+ 1, 1, 0, 20, 0, 0, 0, 1, # header
7
8
  0, 0, # type
8
- 0, 0, # code
9
- 1, 2, 3, 4 # data
10
- ].pack('C*')
9
+ 0, 0 # code
10
+ ].pack('C*') + hello_msg
11
11
  }
12
12
 
13
13
  it 'should read binary' do
14
- msg = OFError.read(data)
15
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
14
+ msg = OpenFlow::Protocol::Error.read(data)
15
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
16
16
  expect(msg.type).to eq(:error)
17
- expect(msg.len).to eq(16)
17
+ expect(msg.len).to eq(20)
18
18
  expect(msg.xid).to eq(1)
19
19
  expect(msg.error_type).to eq(:hello_failed)
20
20
  expect(msg.error_code).to eq(:incompatible)
21
- expect(msg.data).to eq([1, 2, 3, 4].pack('C*'))
21
+ expect(msg.data).to eq(hello_msg)
22
+ hello = msg.parsed_data
23
+ expect(hello.type).to eq(:hello)
24
+ expect(hello.xid).to eq(1)
22
25
  end
23
26
  it 'should be parsable' do
24
- msg = OFParser.read(data)
25
- expect(msg.class).to eq(OFError)
27
+ msg = OpenFlow::Protocol::Parser.read(data)
28
+ expect(msg.class).to eq(OpenFlow::Protocol::Error)
26
29
  end
27
- it 'should read binary' do
28
- msg = OFError.read [
30
+ it 'should read another binary' do
31
+ msg = OpenFlow::Protocol::Error.read [
29
32
  1, 1, 0, 12, 0, 0, 0, 1, # header
30
33
  0, 2, # type
31
34
  0, 4 # code
32
35
  ].pack('C*')
33
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
36
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
34
37
  expect(msg.type).to eq(:error)
35
38
  expect(msg.len).to eq(12)
36
39
  expect(msg.xid).to eq(1)
@@ -39,8 +42,8 @@ describe OFError do
39
42
  expect(msg.data).to be_empty
40
43
  end
41
44
  it 'should initialize with default values' do
42
- msg = OFError.new
43
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
45
+ msg = OpenFlow::Protocol::Error.new
46
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
44
47
  expect(msg.type).to eq(:error)
45
48
  expect(msg.len).to eq(12)
46
49
  expect(msg.xid).to eq(0)
@@ -49,12 +52,12 @@ describe OFError do
49
52
  expect(msg.data).to be_empty
50
53
  end
51
54
  it 'should initialize with some values' do
52
- msg = OFError.new(
55
+ msg = OpenFlow::Protocol::Error.new(
53
56
  xid: 1,
54
57
  error_type: :port_mod_failed,
55
58
  error_code: :bad_port
56
59
  )
57
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
60
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
58
61
  expect(msg.type).to eq(:error)
59
62
  expect(msg.len).to eq(12)
60
63
  expect(msg.xid).to eq(1)
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe OFFeaturesReply do
1
+ describe OpenFlow::Protocol::FeaturesReply do
4
2
  let(:data) {
5
3
  [
6
4
  1, 6, 0, 128, 0, 0, 0, 1, # header
@@ -90,8 +88,8 @@ describe OFFeaturesReply do
90
88
  }
91
89
 
92
90
  it 'should read binary' do
93
- msg = OFFeaturesReply.read(data)
94
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
91
+ msg = OpenFlow::Protocol::FeaturesReply.read(data)
92
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
95
93
  expect(msg.type).to eq(:features_reply)
96
94
  expect(msg.len).to eq(128)
97
95
  expect(msg.xid).to eq(1)
@@ -127,16 +125,16 @@ describe OFFeaturesReply do
127
125
  expect(msg.ports[1].port_number).to eq(2)
128
126
  end
129
127
  it 'should be parsable' do
130
- msg = OFParser.read(data)
131
- expect(msg.class).to eq(OFFeaturesReply)
128
+ msg = OpenFlow::Protocol::Parser.read(data)
129
+ expect(msg.class).to eq(OpenFlow::Protocol::FeaturesReply)
132
130
  end
133
131
  it 'should read a real binary message' do
134
- msg = OFFeaturesReply.read(real_data)
132
+ msg = OpenFlow::Protocol::FeaturesReply.read(real_data)
135
133
  expect(msg.ports.length).to eq(3)
136
134
  end
137
135
  it 'should initialize with default values' do
138
- msg = OFFeaturesReply.new
139
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
136
+ msg = OpenFlow::Protocol::FeaturesReply.new
137
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
140
138
  expect(msg.type).to eq(:features_reply)
141
139
  expect(msg.len).to eq(32)
142
140
  expect(msg.xid).to eq(0)
@@ -148,7 +146,7 @@ describe OFFeaturesReply do
148
146
  expect(msg.ports).to be_empty
149
147
  end
150
148
  it 'should initialize with some values' do
151
- msg = OFFeaturesReply.new(
149
+ msg = OpenFlow::Protocol::FeaturesReply.new(
152
150
  xid: 1,
153
151
  datapath_id: 42,
154
152
  n_buffers: 10,
@@ -177,9 +175,9 @@ describe OFFeaturesReply do
177
175
  :set_tp_dst,
178
176
  :enqueue
179
177
  ],
180
- ports: [OFPhysicalPort.new]
178
+ ports: [OpenFlow::Protocol::PhysicalPort.new]
181
179
  )
182
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
180
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
183
181
  expect(msg.type).to eq(:features_reply)
184
182
  expect(msg.len).to eq(80)
185
183
  expect(msg.xid).to eq(1)
@@ -1,29 +1,27 @@
1
- require 'spec_helper'
2
-
3
- describe OFFeaturesRequest do
1
+ describe OpenFlow::Protocol::FeaturesRequest do
4
2
  let(:data) { [1, 5, 0, 8, 0, 0, 0, 1].pack('C*') }
5
3
 
6
4
  it 'should read binary' do
7
- msg = OFFeaturesRequest.read(data)
8
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
5
+ msg = OpenFlow::Protocol::FeaturesRequest.read(data)
6
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
9
7
  expect(msg.type).to eq(:features_request)
10
8
  expect(msg.len).to eq(8)
11
9
  expect(msg.xid).to eq(1)
12
10
  end
13
11
  it 'should be parsable' do
14
- msg = OFParser.read(data)
15
- expect(msg.class).to eq(OFFeaturesRequest)
12
+ msg = OpenFlow::Protocol::Parser.read(data)
13
+ expect(msg.class).to eq(OpenFlow::Protocol::FeaturesRequest)
16
14
  end
17
15
  it 'should initialize with default values' do
18
- msg = OFFeaturesRequest.new
19
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
16
+ msg = OpenFlow::Protocol::FeaturesRequest.new
17
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
20
18
  expect(msg.type).to eq(:features_request)
21
19
  expect(msg.len).to eq(8)
22
20
  expect(msg.xid).to eq(0)
23
21
  end
24
22
  it 'should initialize with some values' do
25
- msg = OFFeaturesRequest.new(xid: 1)
26
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
23
+ msg = OpenFlow::Protocol::FeaturesRequest.new(xid: 1)
24
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
27
25
  expect(msg.type).to eq(:features_request)
28
26
  expect(msg.len).to eq(8)
29
27
  expect(msg.xid).to eq(1)
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe OFFlowMod do
1
+ describe OpenFlow::Protocol::FlowMod do
4
2
  let(:data) {
5
3
  [
6
4
  1, 14, 0, 80, 0, 0, 0, 1, # header
@@ -40,8 +38,8 @@ describe OFFlowMod do
40
38
  }
41
39
 
42
40
  it 'should read binary' do
43
- msg = OFFlowMod.read(data)
44
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
41
+ msg = OpenFlow::Protocol::FlowMod.read(data)
42
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
45
43
  expect(msg.type).to eq(:flow_mod)
46
44
  expect(msg.len).to eq(80)
47
45
  expect(msg.xid).to eq(1)
@@ -58,12 +56,12 @@ describe OFFlowMod do
58
56
  expect(msg.actions.first.type).to eq(:output)
59
57
  end
60
58
  it 'should be parsable' do
61
- msg = OFParser.read(data)
62
- expect(msg.class).to eq(OFFlowMod)
59
+ msg = OpenFlow::Protocol::Parser.read(data)
60
+ expect(msg.class).to eq(OpenFlow::Protocol::FlowMod)
63
61
  end
64
62
  it 'should initialize with default values' do
65
- msg = OFFlowMod.new
66
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
63
+ msg = OpenFlow::Protocol::FlowMod.new
64
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
67
65
  expect(msg.type).to eq(:flow_mod)
68
66
  expect(msg.len).to eq(72)
69
67
  expect(msg.xid).to eq(0)
@@ -79,7 +77,7 @@ describe OFFlowMod do
79
77
  expect(msg.actions).to be_empty
80
78
  end
81
79
  it 'should initialize with some values' do
82
- msg = OFFlowMod.new(
80
+ msg = OpenFlow::Protocol::FlowMod.new(
83
81
  xid: 1,
84
82
  match: {
85
83
  wildcards: {
@@ -105,9 +103,9 @@ describe OFFlowMod do
105
103
  priority: 3000,
106
104
  buffer_id: 1,
107
105
  flags: [:send_flow_removed],
108
- actions: [OFActionOutput.new(port: 1)]
106
+ actions: [OpenFlow::Protocol::ActionOutput.new(port: 1)]
109
107
  )
110
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
108
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
111
109
  expect(msg.type).to eq(:flow_mod)
112
110
  expect(msg.len).to eq(80)
113
111
  expect(msg.xid).to eq(1)
@@ -124,12 +122,12 @@ describe OFFlowMod do
124
122
  expect(msg.actions.first.type).to eq(:output)
125
123
  end
126
124
  it 'should initialize with some other values' do
127
- msg = OFFlowMod.new(
125
+ msg = OpenFlow::Protocol::FlowMod.new(
128
126
  xid: 1,
129
127
  cookie: 2,
130
128
  command: :delete
131
129
  )
132
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
130
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
133
131
  expect(msg.type).to eq(:flow_mod)
134
132
  expect(msg.len).to eq(72)
135
133
  expect(msg.xid).to eq(1)
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe OFFlowRemoved do
1
+ describe OpenFlow::Protocol::FlowRemoved do
4
2
  let(:data) {
5
3
  [
6
4
  1, 11, 0, 88, 0, 0, 0, 1, # header
@@ -36,8 +34,8 @@ describe OFFlowRemoved do
36
34
  }
37
35
 
38
36
  it 'should read binary' do
39
- msg = OFFlowRemoved.read(data)
40
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
37
+ msg = OpenFlow::Protocol::FlowRemoved.read(data)
38
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
41
39
  expect(msg.type).to eq(:flow_removed)
42
40
  expect(msg.len).to eq(88)
43
41
  expect(msg.xid).to eq(1)
@@ -52,12 +50,12 @@ describe OFFlowRemoved do
52
50
  expect(msg.byte_count).to eq(80)
53
51
  end
54
52
  it 'should be parsable' do
55
- msg = OFParser.read(data)
56
- expect(msg.class).to eq(OFFlowRemoved)
53
+ msg = OpenFlow::Protocol::Parser.read(data)
54
+ expect(msg.class).to eq(OpenFlow::Protocol::FlowRemoved)
57
55
  end
58
56
  it 'should initialize with default values' do
59
- msg = OFFlowRemoved.new
60
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
57
+ msg = OpenFlow::Protocol::FlowRemoved.new
58
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
61
59
  expect(msg.type).to eq(:flow_removed)
62
60
  expect(msg.len).to eq(88)
63
61
  expect(msg.xid).to eq(0)
@@ -72,7 +70,7 @@ describe OFFlowRemoved do
72
70
  expect(msg.byte_count).to eq(0)
73
71
  end
74
72
  it 'should initialize with some values' do
75
- msg = OFFlowRemoved.new(
73
+ msg = OpenFlow::Protocol::FlowRemoved.new(
76
74
  xid: 1,
77
75
  match: {
78
76
  wildcards: {
@@ -100,7 +98,7 @@ describe OFFlowRemoved do
100
98
  packet_count: 10,
101
99
  byte_count: 80
102
100
  )
103
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
101
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
104
102
  expect(msg.type).to eq(:flow_removed)
105
103
  expect(msg.len).to eq(88)
106
104
  expect(msg.xid).to eq(1)
@@ -1,6 +1,4 @@
1
- require 'spec_helper'
2
-
3
- describe OFGetConfigReply do
1
+ describe OpenFlow::Protocol::GetConfigReply do
4
2
  let(:data) {
5
3
  [
6
4
  1, 8, 0, 12, 0, 0, 0, 1, # header
@@ -10,8 +8,8 @@ describe OFGetConfigReply do
10
8
  }
11
9
 
12
10
  it 'should read binary' do
13
- msg = OFGetConfigReply.read(data)
14
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
11
+ msg = OpenFlow::Protocol::GetConfigReply.read(data)
12
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
15
13
  expect(msg.type).to eq(:get_config_reply)
16
14
  expect(msg.len).to eq(12)
17
15
  expect(msg.xid).to eq(1)
@@ -19,12 +17,12 @@ describe OFGetConfigReply do
19
17
  expect(msg.miss_send_length).to eq(0xff)
20
18
  end
21
19
  it 'should be parsable' do
22
- msg = OFParser.read(data)
23
- expect(msg.class).to eq(OFGetConfigReply)
20
+ msg = OpenFlow::Protocol::Parser.read(data)
21
+ expect(msg.class).to eq(OpenFlow::Protocol::GetConfigReply)
24
22
  end
25
23
  it 'should initialize with default values' do
26
- msg = OFGetConfigReply.new
27
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
24
+ msg = OpenFlow::Protocol::GetConfigReply.new
25
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
28
26
  expect(msg.type).to eq(:get_config_reply)
29
27
  expect(msg.len).to eq(12)
30
28
  expect(msg.xid).to eq(0)
@@ -32,12 +30,12 @@ describe OFGetConfigReply do
32
30
  expect(msg.miss_send_length).to eq(0)
33
31
  end
34
32
  it 'should initialize with some values' do
35
- msg = OFGetConfigReply.new(
33
+ msg = OpenFlow::Protocol::GetConfigReply.new(
36
34
  xid: 1,
37
35
  flags: :fragments_normal,
38
36
  miss_send_length: 0xff
39
37
  )
40
- expect(msg.version).to eq(OFMessage::OFP_VERSION)
38
+ expect(msg.version).to eq(OpenFlow::Protocol::Message::OFP_VERSION)
41
39
  expect(msg.type).to eq(:get_config_reply)
42
40
  expect(msg.len).to eq(12)
43
41
  expect(msg.xid).to eq(1)