pio 0.24.2 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +2 -0
  4. data/bin/byebug +16 -0
  5. data/features/arp.feature +2 -2
  6. data/features/dhcp.feature +4 -4
  7. data/features/icmp.feature +2 -2
  8. data/features/lldp.feature +1 -1
  9. data/features/open_flow10/barrier_reply.feature +4 -4
  10. data/features/open_flow10/barrier_request.feature +4 -4
  11. data/features/open_flow10/echo_reply.feature +6 -6
  12. data/features/open_flow10/echo_request.feature +6 -6
  13. data/features/open_flow10/exact_match.feature +2 -2
  14. data/features/open_flow10/features_reply.feature +2 -2
  15. data/features/open_flow10/features_request.feature +4 -4
  16. data/features/open_flow10/flow_mod.feature +6 -6
  17. data/features/open_flow10/flow_stats_reply.feature +105 -0
  18. data/features/open_flow10/flow_stats_request.feature +90 -0
  19. data/features/open_flow10/hello.feature +4 -4
  20. data/features/open_flow10/packet_in.feature +2 -2
  21. data/features/open_flow10/packet_out.feature +1 -1
  22. data/features/open_flow10/port_status.feature +1 -1
  23. data/features/open_flow13/apply_actions.feature +3 -3
  24. data/features/open_flow13/echo_reply.feature +7 -7
  25. data/features/open_flow13/echo_request.feature +7 -7
  26. data/features/open_flow13/features_reply.feature +2 -2
  27. data/features/open_flow13/features_request.feature +4 -4
  28. data/features/open_flow13/flow_mod.feature +5 -5
  29. data/features/open_flow13/goto_table.feature +2 -2
  30. data/features/open_flow13/hello.feature +5 -5
  31. data/features/open_flow13/match.feature +81 -81
  32. data/features/open_flow13/meter.feature +2 -2
  33. data/features/open_flow13/packet_in.feature +3 -3
  34. data/features/open_flow13/packet_out.feature +3 -3
  35. data/features/open_flow13/send_out_port.feature +2 -2
  36. data/features/open_flow13/write_metadata.feature +2 -2
  37. data/features/open_flow_read.feature +12 -10
  38. data/features/step_definitions/packet_data_steps.rb +3 -3
  39. data/lib/pio/open_flow.rb +4 -1
  40. data/lib/pio/open_flow/message.rb +3 -0
  41. data/lib/pio/open_flow10.rb +2 -0
  42. data/lib/pio/open_flow10/flow_mod.rb +1 -16
  43. data/lib/pio/open_flow10/flow_stats_reply.rb +59 -0
  44. data/lib/pio/open_flow10/flow_stats_request.rb +64 -0
  45. data/lib/pio/open_flow10/match.rb +17 -0
  46. data/lib/pio/open_flow10/stats_type.rb +27 -0
  47. data/lib/pio/version.rb +1 -1
  48. data/pio.gemspec +2 -2
  49. data/spec/pio/open_flow10/flow_stats_reply_spec.rb +39 -0
  50. data/spec/pio/open_flow10/flow_stats_request_spec.rb +38 -0
  51. metadata +185 -173
@@ -6,7 +6,7 @@ Feature: Pio::Match
6
6
  Pio::Match.new
7
7
  """
8
8
  Then it should finish successfully
9
- And the message have the following fields and values:
9
+ And the message has the following fields and values:
10
10
  | field | value |
11
11
  | match_fields | [] |
12
12
 
@@ -16,7 +16,7 @@ Feature: Pio::Match
16
16
  Pio::Match.new(in_port: 1)
17
17
  """
18
18
  Then it should finish successfully
19
- And the message have the following fields and values:
19
+ And the message has the following fields and values:
20
20
  | field | value |
21
21
  | in_port | 1 |
22
22
 
@@ -26,7 +26,7 @@ Feature: Pio::Match
26
26
  Pio::Match.new(metadata: 1)
27
27
  """
28
28
  Then it should finish successfully
29
- And the message have the following fields and values:
29
+ And the message has the following fields and values:
30
30
  | field | value |
31
31
  | metadata | 1 |
32
32
 
@@ -36,7 +36,7 @@ Feature: Pio::Match
36
36
  Pio::Match.new(metadata: 1, metadata_mask: 1)
37
37
  """
38
38
  Then it should finish successfully
39
- And the message have the following fields and values:
39
+ And the message has the following fields and values:
40
40
  | field | value |
41
41
  | metadata | 1 |
42
42
  | metadata_mask | 1 |
@@ -47,7 +47,7 @@ Feature: Pio::Match
47
47
  Pio::Match.new(ether_source_address: '01:02:03:04:05:06')
48
48
  """
49
49
  Then it should finish successfully
50
- And the message have the following fields and values:
50
+ And the message has the following fields and values:
51
51
  | field | value |
52
52
  | ether_source_address | 01:02:03:04:05:06 |
53
53
 
@@ -57,7 +57,7 @@ Feature: Pio::Match
57
57
  Pio::Match.new(ether_destination_address: '01:02:03:04:05:06')
58
58
  """
59
59
  Then it should finish successfully
60
- And the message have the following fields and values:
60
+ And the message has the following fields and values:
61
61
  | field | value |
62
62
  | ether_destination_address | 01:02:03:04:05:06 |
63
63
 
@@ -67,7 +67,7 @@ Feature: Pio::Match
67
67
  Pio::Match.new(ether_source_address: '01:02:03:04:05:06', ether_source_address_mask: 'ff:ff:ff:00:00:00')
68
68
  """
69
69
  Then it should finish successfully
70
- And the message have the following fields and values:
70
+ And the message has the following fields and values:
71
71
  | field | value |
72
72
  | ether_source_address | 01:02:03:04:05:06 |
73
73
  | ether_source_address_mask | ff:ff:ff:00:00:00 |
@@ -78,7 +78,7 @@ Feature: Pio::Match
78
78
  Pio::Match.new(ether_destination_address: '01:02:03:04:05:06', ether_destination_address_mask: 'ff:ff:ff:00:00:00')
79
79
  """
80
80
  Then it should finish successfully
81
- And the message have the following fields and values:
81
+ And the message has the following fields and values:
82
82
  | field | value |
83
83
  | ether_destination_address | 01:02:03:04:05:06 |
84
84
  | ether_destination_address_mask | ff:ff:ff:00:00:00 |
@@ -89,7 +89,7 @@ Feature: Pio::Match
89
89
  Pio::Match.new(ether_type: 0x0800)
90
90
  """
91
91
  Then it should finish successfully
92
- And the message have the following fields and values:
92
+ And the message has the following fields and values:
93
93
  | field | value |
94
94
  | ether_type | 2048 |
95
95
 
@@ -99,7 +99,7 @@ Feature: Pio::Match
99
99
  Pio::Match.new(vlan_vid: 10)
100
100
  """
101
101
  Then it should finish successfully
102
- And the message have the following fields and values:
102
+ And the message has the following fields and values:
103
103
  | field | value |
104
104
  | vlan_vid | 10 |
105
105
 
@@ -109,7 +109,7 @@ Feature: Pio::Match
109
109
  Pio::Match.new(vlan_vid: 10, vlan_pcp: 5)
110
110
  """
111
111
  Then it should finish successfully
112
- And the message have the following fields and values:
112
+ And the message has the following fields and values:
113
113
  | field | value |
114
114
  | vlan_vid | 10 |
115
115
  | vlan_pcp | 5 |
@@ -120,7 +120,7 @@ Feature: Pio::Match
120
120
  Pio::Match.new(ether_type: 2048, ip_dscp: 46)
121
121
  """
122
122
  Then it should finish successfully
123
- And the message have the following fields and values:
123
+ And the message has the following fields and values:
124
124
  | field | value |
125
125
  | ether_type | 2048 |
126
126
  | ip_dscp | 46 |
@@ -131,7 +131,7 @@ Feature: Pio::Match
131
131
  Pio::Match.new(ether_type: 2048, ip_ecn: 46)
132
132
  """
133
133
  Then it should finish successfully
134
- And the message have the following fields and values:
134
+ And the message has the following fields and values:
135
135
  | field | value |
136
136
  | ether_type | 2048 |
137
137
  | ip_ecn | 3 |
@@ -142,7 +142,7 @@ Feature: Pio::Match
142
142
  Pio::Match.new(ether_type: 0x0800, ipv4_source_address: '192.168.0.1')
143
143
  """
144
144
  Then it should finish successfully
145
- And the message have the following fields and values:
145
+ And the message has the following fields and values:
146
146
  | field | value |
147
147
  | ether_type | 2048 |
148
148
  | ipv4_source_address | 192.168.0.1 |
@@ -153,7 +153,7 @@ Feature: Pio::Match
153
153
  Pio::Match.new(ether_type: 0x0800, ipv4_destination_address: '192.168.0.1')
154
154
  """
155
155
  Then it should finish successfully
156
- And the message have the following fields and values:
156
+ And the message has the following fields and values:
157
157
  | field | value |
158
158
  | ether_type | 2048 |
159
159
  | ipv4_destination_address | 192.168.0.1 |
@@ -164,7 +164,7 @@ Feature: Pio::Match
164
164
  Pio::Match.new(ether_type: 0x0800, ipv4_source_address: '192.168.0.1', ipv4_source_address_mask: '255.255.0.0')
165
165
  """
166
166
  Then it should finish successfully
167
- And the message have the following fields and values:
167
+ And the message has the following fields and values:
168
168
  | field | value |
169
169
  | ether_type | 2048 |
170
170
  | ipv4_source_address | 192.168.0.1 |
@@ -176,7 +176,7 @@ Feature: Pio::Match
176
176
  Pio::Match.new(ether_type: 0x0800, ipv4_destination_address: '192.168.0.1', ipv4_destination_address_mask: '255.255.0.0')
177
177
  """
178
178
  Then it should finish successfully
179
- And the message have the following fields and values:
179
+ And the message has the following fields and values:
180
180
  | field | value |
181
181
  | ether_type | 2048 |
182
182
  | ipv4_destination_address | 192.168.0.1 |
@@ -188,7 +188,7 @@ Feature: Pio::Match
188
188
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 6, tcp_source_port: 1111)
189
189
  """
190
190
  Then it should finish successfully
191
- And the message have the following fields and values:
191
+ And the message has the following fields and values:
192
192
  | field | value |
193
193
  | ether_type | 2048 |
194
194
  | ip_protocol | 6 |
@@ -200,7 +200,7 @@ Feature: Pio::Match
200
200
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 6, tcp_destination_port: 80)
201
201
  """
202
202
  Then it should finish successfully
203
- And the message have the following fields and values:
203
+ And the message has the following fields and values:
204
204
  | field | value |
205
205
  | ether_type | 2048 |
206
206
  | ip_protocol | 6 |
@@ -212,7 +212,7 @@ Feature: Pio::Match
212
212
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 17, udp_source_port: 2222)
213
213
  """
214
214
  Then it should finish successfully
215
- And the message have the following fields and values:
215
+ And the message has the following fields and values:
216
216
  | field | value |
217
217
  | ether_type | 2048 |
218
218
  | ip_protocol | 17 |
@@ -224,7 +224,7 @@ Feature: Pio::Match
224
224
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 17, udp_destination_port: 3333)
225
225
  """
226
226
  Then it should finish successfully
227
- And the message have the following fields and values:
227
+ And the message has the following fields and values:
228
228
  | field | value |
229
229
  | ether_type | 2048 |
230
230
  | ip_protocol | 17 |
@@ -236,7 +236,7 @@ Feature: Pio::Match
236
236
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 132, sctp_source_port: 22)
237
237
  """
238
238
  Then it should finish successfully
239
- And the message have the following fields and values:
239
+ And the message has the following fields and values:
240
240
  | field | value |
241
241
  | ether_type | 2048 |
242
242
  | ip_protocol | 132 |
@@ -248,7 +248,7 @@ Feature: Pio::Match
248
248
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 132, sctp_destination_port: 22)
249
249
  """
250
250
  Then it should finish successfully
251
- And the message have the following fields and values:
251
+ And the message has the following fields and values:
252
252
  | field | value |
253
253
  | ether_type | 2048 |
254
254
  | ip_protocol | 132 |
@@ -260,7 +260,7 @@ Feature: Pio::Match
260
260
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 1, icmpv4_type: 8)
261
261
  """
262
262
  Then it should finish successfully
263
- And the message have the following fields and values:
263
+ And the message has the following fields and values:
264
264
  | field | value |
265
265
  | ether_type | 2048 |
266
266
  | ip_protocol | 1 |
@@ -272,7 +272,7 @@ Feature: Pio::Match
272
272
  Pio::Match.new(ether_type: 0x0800, ip_protocol: 1, icmpv4_code: 0)
273
273
  """
274
274
  Then it should finish successfully
275
- And the message have the following fields and values:
275
+ And the message has the following fields and values:
276
276
  | field | value |
277
277
  | ether_type | 2048 |
278
278
  | ip_protocol | 1 |
@@ -284,7 +284,7 @@ Feature: Pio::Match
284
284
  Pio::Match.new(ether_type: 2054, arp_op: 1)
285
285
  """
286
286
  Then it should finish successfully
287
- And the message have the following fields and values:
287
+ And the message has the following fields and values:
288
288
  | field | value |
289
289
  | ether_type | 2054 |
290
290
  | arp_op | 1 |
@@ -295,7 +295,7 @@ Feature: Pio::Match
295
295
  Pio::Match.new(ether_type: 2054, arp_sender_protocol_address: '1.2.3.4')
296
296
  """
297
297
  Then it should finish successfully
298
- And the message have the following fields and values:
298
+ And the message has the following fields and values:
299
299
  | field | value |
300
300
  | ether_type | 2054 |
301
301
  | arp_sender_protocol_address | 1.2.3.4 |
@@ -306,7 +306,7 @@ Feature: Pio::Match
306
306
  Pio::Match.new(ether_type: 2054, arp_sender_protocol_address: '1.2.3.4', arp_sender_protocol_address_mask: '255.255.0.0')
307
307
  """
308
308
  Then it should finish successfully
309
- And the message have the following fields and values:
309
+ And the message has the following fields and values:
310
310
  | field | value |
311
311
  | ether_type | 2054 |
312
312
  | arp_sender_protocol_address | 1.2.3.4 |
@@ -318,7 +318,7 @@ Feature: Pio::Match
318
318
  Pio::Match.new(ether_type: 2054, arp_target_protocol_address: '1.2.3.4')
319
319
  """
320
320
  Then it should finish successfully
321
- And the message have the following fields and values:
321
+ And the message has the following fields and values:
322
322
  | field | value |
323
323
  | ether_type | 2054 |
324
324
  | arp_target_protocol_address | 1.2.3.4 |
@@ -329,7 +329,7 @@ Feature: Pio::Match
329
329
  Pio::Match.new(ether_type: 2054, arp_target_protocol_address: '1.2.3.4', arp_target_protocol_address_mask: '255.255.0.0')
330
330
  """
331
331
  Then it should finish successfully
332
- And the message have the following fields and values:
332
+ And the message has the following fields and values:
333
333
  | field | value |
334
334
  | ether_type | 2054 |
335
335
  | arp_target_protocol_address | 1.2.3.4 |
@@ -341,7 +341,7 @@ Feature: Pio::Match
341
341
  Pio::Match.new(ether_type: 2054, arp_sender_hardware_address: '11:22:33:44:55:66')
342
342
  """
343
343
  Then it should finish successfully
344
- And the message have the following fields and values:
344
+ And the message has the following fields and values:
345
345
  | field | value |
346
346
  | ether_type | 2054 |
347
347
  | arp_sender_hardware_address | 11:22:33:44:55:66 |
@@ -352,7 +352,7 @@ Feature: Pio::Match
352
352
  Pio::Match.new(ether_type: 2054, arp_sender_hardware_address: '11:22:33:44:55:66', arp_sender_hardware_address_mask: 'ff:ff:ff:00:00:00')
353
353
  """
354
354
  Then it should finish successfully
355
- And the message have the following fields and values:
355
+ And the message has the following fields and values:
356
356
  | field | value |
357
357
  | ether_type | 2054 |
358
358
  | arp_sender_hardware_address | 11:22:33:44:55:66 |
@@ -364,7 +364,7 @@ Feature: Pio::Match
364
364
  Pio::Match.new(ether_type: 2054, arp_target_hardware_address: '11:22:33:44:55:66')
365
365
  """
366
366
  Then it should finish successfully
367
- And the message have the following fields and values:
367
+ And the message has the following fields and values:
368
368
  | field | value |
369
369
  | ether_type | 2054 |
370
370
  | arp_target_hardware_address | 11:22:33:44:55:66 |
@@ -375,7 +375,7 @@ Feature: Pio::Match
375
375
  Pio::Match.new(ether_type: 2054, arp_target_hardware_address: '11:22:33:44:55:66', arp_target_hardware_address_mask: 'ff:ff:ff:00:00:00')
376
376
  """
377
377
  Then it should finish successfully
378
- And the message have the following fields and values:
378
+ And the message has the following fields and values:
379
379
  | field | value |
380
380
  | ether_type | 2054 |
381
381
  | arp_target_hardware_address | 11:22:33:44:55:66 |
@@ -387,7 +387,7 @@ Feature: Pio::Match
387
387
  Pio::Match.new(ether_type: 0x86dd, ipv6_source_address: '2001:db8:bd05:1d2:288a:1fc0:1:10ee')
388
388
  """
389
389
  Then it should finish successfully
390
- And the message have the following fields and values:
390
+ And the message has the following fields and values:
391
391
  | field | value |
392
392
  | ether_type | 34525 |
393
393
  | ipv6_source_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -398,7 +398,7 @@ Feature: Pio::Match
398
398
  Pio::Match.new(ether_type: 0x86dd, ipv6_source_address: '2001:db8:bd05:1d2:288a:1fc0:1:10ee', ipv6_source_address_mask: 'ffff:ffff:ffff:ffff::')
399
399
  """
400
400
  Then it should finish successfully
401
- And the message have the following fields and values:
401
+ And the message has the following fields and values:
402
402
  | field | value |
403
403
  | ether_type | 34525 |
404
404
  | ipv6_source_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -410,7 +410,7 @@ Feature: Pio::Match
410
410
  Pio::Match.new(ether_type: 0x86dd, ipv6_destination_address: '2001:db8:bd05:1d2:288a:1fc0:1:10ee')
411
411
  """
412
412
  Then it should finish successfully
413
- And the message have the following fields and values:
413
+ And the message has the following fields and values:
414
414
  | field | value |
415
415
  | ether_type | 34525 |
416
416
  | ipv6_destination_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -421,7 +421,7 @@ Feature: Pio::Match
421
421
  Pio::Match.new(ether_type: 0x86dd, ipv6_destination_address: '2001:db8:bd05:1d2:288a:1fc0:1:10ee', ipv6_destination_address_mask: 'ffff:ffff:ffff:ffff::')
422
422
  """
423
423
  Then it should finish successfully
424
- And the message have the following fields and values:
424
+ And the message has the following fields and values:
425
425
  | field | value |
426
426
  | ether_type | 34525 |
427
427
  | ipv6_destination_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -433,7 +433,7 @@ Feature: Pio::Match
433
433
  Pio::Match.new(tunnel_id: 1)
434
434
  """
435
435
  Then it should finish successfully
436
- And the message have the following fields and values:
436
+ And the message has the following fields and values:
437
437
  | field | value |
438
438
  | tunnel_id | 1 |
439
439
 
@@ -443,7 +443,7 @@ Feature: Pio::Match
443
443
  Pio::Match.new(tunnel_id: 1, tunnel_id_mask: 9223372036854775808)
444
444
  """
445
445
  Then it should finish successfully
446
- And the message have the following fields and values:
446
+ And the message has the following fields and values:
447
447
  | field | value |
448
448
  | tunnel_id | 1 |
449
449
  | tunnel_id_mask | 9223372036854775808 |
@@ -451,28 +451,28 @@ Feature: Pio::Match
451
451
  Scenario: read (file: open_flow13/oxm_no_fields.raw)
452
452
  When I try to parse a file named "open_flow13/oxm_no_fields.raw" with "Pio::Match" class
453
453
  Then it should finish successfully
454
- And the message have the following fields and values:
454
+ And the message has the following fields and values:
455
455
  | field | value |
456
456
  | match_fields | [] |
457
457
 
458
458
  Scenario: read (file: open_flow13/oxm_in_port_field.raw)
459
459
  When I try to parse a file named "open_flow13/oxm_in_port_field.raw" with "Pio::Match" class
460
460
  Then it should finish successfully
461
- And the message have the following fields and values:
461
+ And the message has the following fields and values:
462
462
  | field | value |
463
463
  | in_port | 1 |
464
464
 
465
465
  Scenario: read (file: open_flow13/oxm_metadata_field.raw)
466
466
  When I try to parse a file named "open_flow13/oxm_metadata_field.raw" with "Pio::Match" class
467
467
  Then it should finish successfully
468
- And the message have the following fields and values:
468
+ And the message has the following fields and values:
469
469
  | field | value |
470
470
  | metadata | 1 |
471
471
 
472
472
  Scenario: read (file: open_flow13/oxm_metadata_masked_field.raw)
473
473
  When I try to parse a file named "open_flow13/oxm_metadata_masked_field.raw" with "Pio::Match" class
474
474
  Then it should finish successfully
475
- And the message have the following fields and values:
475
+ And the message has the following fields and values:
476
476
  | field | value |
477
477
  | metadata | 1 |
478
478
  | metadata_mask | 18446744069414584320 |
@@ -480,21 +480,21 @@ Feature: Pio::Match
480
480
  Scenario: read (file: open_flow13/oxm_ether_destination_field.raw)
481
481
  When I try to parse a file named "open_flow13/oxm_ether_destination_field.raw" with "Pio::Match" class
482
482
  Then it should finish successfully
483
- And the message have the following fields and values:
483
+ And the message has the following fields and values:
484
484
  | field | value |
485
485
  | ether_destination_address | ff:ff:ff:ff:ff:ff |
486
486
 
487
487
  Scenario: read (file: open_flow13/oxm_ether_source_field.raw)
488
488
  When I try to parse a file named "open_flow13/oxm_ether_source_field.raw" with "Pio::Match" class
489
489
  Then it should finish successfully
490
- And the message have the following fields and values:
490
+ And the message has the following fields and values:
491
491
  | field | value |
492
492
  | ether_source_address | 01:02:03:04:05:06 |
493
493
 
494
494
  Scenario: read (file: open_flow13/oxm_masked_ether_destination_field.raw)
495
495
  When I try to parse a file named "open_flow13/oxm_masked_ether_destination_field.raw" with "Pio::Match" class
496
496
  Then it should finish successfully
497
- And the message have the following fields and values:
497
+ And the message has the following fields and values:
498
498
  | field | value |
499
499
  | ether_destination_address | ff:ff:ff:ff:ff:ff |
500
500
  | ether_destination_address_mask | ff:ff:ff:00:00:00 |
@@ -502,7 +502,7 @@ Feature: Pio::Match
502
502
  Scenario: read (file: open_flow13/oxm_masked_ether_source_field.raw)
503
503
  When I try to parse a file named "open_flow13/oxm_masked_ether_source_field.raw" with "Pio::Match" class
504
504
  Then it should finish successfully
505
- And the message have the following fields and values:
505
+ And the message has the following fields and values:
506
506
  | field | value |
507
507
  | ether_source_address | 01:02:03:04:05:06 |
508
508
  | ether_source_address_mask | ff:ff:ff:00:00:00 |
@@ -510,21 +510,21 @@ Feature: Pio::Match
510
510
  Scenario: read (file: open_flow13/oxm_ether_type_field.raw)
511
511
  When I try to parse a file named "open_flow13/oxm_ether_type_field.raw" with "Pio::Match" class
512
512
  Then it should finish successfully
513
- And the message have the following fields and values:
513
+ And the message has the following fields and values:
514
514
  | field | value |
515
515
  | ether_type | 0 |
516
516
 
517
517
  Scenario: read (file: open_flow13/oxm_vlan_vid_field.raw)
518
518
  When I try to parse a file named "open_flow13/oxm_vlan_vid_field.raw" with "Pio::Match" class
519
519
  Then it should finish successfully
520
- And the message have the following fields and values:
520
+ And the message has the following fields and values:
521
521
  | field | value |
522
522
  | vlan_vid | 10 |
523
523
 
524
524
  Scenario: read (file: open_flow13/oxm_vlan_pcp_field.raw)
525
525
  When I try to parse a file named "open_flow13/oxm_vlan_pcp_field.raw" with "Pio::Match" class
526
526
  Then it should finish successfully
527
- And the message have the following fields and values:
527
+ And the message has the following fields and values:
528
528
  | field | value |
529
529
  | vlan_vid | 10 |
530
530
  | vlan_pcp | 5 |
@@ -532,7 +532,7 @@ Feature: Pio::Match
532
532
  Scenario: read (file: open_flow13/oxm_ip_dscp_field.raw)
533
533
  When I try to parse a file named "open_flow13/oxm_ip_dscp_field.raw" with "Pio::Match" class
534
534
  Then it should finish successfully
535
- And the message have the following fields and values:
535
+ And the message has the following fields and values:
536
536
  | field | value |
537
537
  | ether_type | 2048 |
538
538
  | ip_dscp | 46 |
@@ -540,7 +540,7 @@ Feature: Pio::Match
540
540
  Scenario: read (file: open_flow13/oxm_ip_ecn_field.raw)
541
541
  When I try to parse a file named "open_flow13/oxm_ip_ecn_field.raw" with "Pio::Match" class
542
542
  Then it should finish successfully
543
- And the message have the following fields and values:
543
+ And the message has the following fields and values:
544
544
  | field | value |
545
545
  | ether_type | 2048 |
546
546
  | ip_ecn | 3 |
@@ -548,7 +548,7 @@ Feature: Pio::Match
548
548
  Scenario: read (file: open_flow13/oxm_ipv4_source_field.raw)
549
549
  When I try to parse a file named "open_flow13/oxm_ipv4_source_field.raw" with "Pio::Match" class
550
550
  Then it should finish successfully
551
- And the message have the following fields and values:
551
+ And the message has the following fields and values:
552
552
  | field | value |
553
553
  | ether_type | 2048 |
554
554
  | ipv4_source_address | 1.2.3.4 |
@@ -556,7 +556,7 @@ Feature: Pio::Match
556
556
  Scenario: read (file: open_flow13/oxm_ipv4_destination_field.raw)
557
557
  When I try to parse a file named "open_flow13/oxm_ipv4_destination_field.raw" with "Pio::Match" class
558
558
  Then it should finish successfully
559
- And the message have the following fields and values:
559
+ And the message has the following fields and values:
560
560
  | field | value |
561
561
  | ether_type | 2048 |
562
562
  | ipv4_destination_address | 11.22.33.44 |
@@ -564,7 +564,7 @@ Feature: Pio::Match
564
564
  Scenario: read (file: open_flow13/oxm_masked_ipv4_source_field.raw)
565
565
  When I try to parse a file named "open_flow13/oxm_masked_ipv4_source_field.raw" with "Pio::Match" class
566
566
  Then it should finish successfully
567
- And the message have the following fields and values:
567
+ And the message has the following fields and values:
568
568
  | field | value |
569
569
  | ether_type | 2048 |
570
570
  | ipv4_source_address | 1.2.3.4 |
@@ -573,7 +573,7 @@ Feature: Pio::Match
573
573
  Scenario: read (file: open_flow13/oxm_masked_ipv4_destination_field.raw)
574
574
  When I try to parse a file named "open_flow13/oxm_masked_ipv4_destination_field.raw" with "Pio::Match" class
575
575
  Then it should finish successfully
576
- And the message have the following fields and values:
576
+ And the message has the following fields and values:
577
577
  | field | value |
578
578
  | ether_type | 2048 |
579
579
  | ipv4_destination_address | 11.22.33.44 |
@@ -582,7 +582,7 @@ Feature: Pio::Match
582
582
  Scenario: read (file: open_flow13/oxm_tcp_source_field.raw)
583
583
  When I try to parse a file named "open_flow13/oxm_tcp_source_field.raw" with "Pio::Match" class
584
584
  Then it should finish successfully
585
- And the message have the following fields and values:
585
+ And the message has the following fields and values:
586
586
  | field | value |
587
587
  | ether_type | 2048 |
588
588
  | ip_protocol | 6 |
@@ -591,7 +591,7 @@ Feature: Pio::Match
591
591
  Scenario: read (file: open_flow13/oxm_tcp_destination_field.raw)
592
592
  When I try to parse a file named "open_flow13/oxm_tcp_destination_field.raw" with "Pio::Match" class
593
593
  Then it should finish successfully
594
- And the message have the following fields and values:
594
+ And the message has the following fields and values:
595
595
  | field | value |
596
596
  | ether_type | 2048 |
597
597
  | ip_protocol | 6 |
@@ -600,7 +600,7 @@ Feature: Pio::Match
600
600
  Scenario: read (file: open_flow13/oxm_udp_source_field.raw)
601
601
  When I try to parse a file named "open_flow13/oxm_udp_source_field.raw" with "Pio::Match" class
602
602
  Then it should finish successfully
603
- And the message have the following fields and values:
603
+ And the message has the following fields and values:
604
604
  | field | value |
605
605
  | ether_type | 2048 |
606
606
  | ip_protocol | 17 |
@@ -609,7 +609,7 @@ Feature: Pio::Match
609
609
  Scenario: read (file: open_flow13/oxm_udp_destination_field.raw)
610
610
  When I try to parse a file named "open_flow13/oxm_udp_destination_field.raw" with "Pio::Match" class
611
611
  Then it should finish successfully
612
- And the message have the following fields and values:
612
+ And the message has the following fields and values:
613
613
  | field | value |
614
614
  | ether_type | 2048 |
615
615
  | ip_protocol | 17 |
@@ -618,7 +618,7 @@ Feature: Pio::Match
618
618
  Scenario: read (file: open_flow13/oxm_sctp_source_field.raw)
619
619
  When I try to parse a file named "open_flow13/oxm_sctp_source_field.raw" with "Pio::Match" class
620
620
  Then it should finish successfully
621
- And the message have the following fields and values:
621
+ And the message has the following fields and values:
622
622
  | field | value |
623
623
  | ether_type | 2048 |
624
624
  | ip_protocol | 132 |
@@ -627,7 +627,7 @@ Feature: Pio::Match
627
627
  Scenario: read (file: open_flow13/oxm_sctp_destination_field.raw)
628
628
  When I try to parse a file named "open_flow13/oxm_sctp_destination_field.raw" with "Pio::Match" class
629
629
  Then it should finish successfully
630
- And the message have the following fields and values:
630
+ And the message has the following fields and values:
631
631
  | field | value |
632
632
  | ether_type | 2048 |
633
633
  | ip_protocol | 132 |
@@ -636,7 +636,7 @@ Feature: Pio::Match
636
636
  Scenario: read (file: open_flow13/oxm_icmpv4_type_field.raw)
637
637
  When I try to parse a file named "open_flow13/oxm_icmpv4_type_field.raw" with "Pio::Match" class
638
638
  Then it should finish successfully
639
- And the message have the following fields and values:
639
+ And the message has the following fields and values:
640
640
  | field | value |
641
641
  | ether_type | 2048 |
642
642
  | ip_protocol | 1 |
@@ -645,7 +645,7 @@ Feature: Pio::Match
645
645
  Scenario: read (file: open_flow13/oxm_icmpv4_code_field.raw)
646
646
  When I try to parse a file named "open_flow13/oxm_icmpv4_code_field.raw" with "Pio::Match" class
647
647
  Then it should finish successfully
648
- And the message have the following fields and values:
648
+ And the message has the following fields and values:
649
649
  | field | value |
650
650
  | ether_type | 2048 |
651
651
  | ip_protocol | 1 |
@@ -654,7 +654,7 @@ Feature: Pio::Match
654
654
  Scenario: read (file: open_flow13/oxm_arp_op_field.raw)
655
655
  When I try to parse a file named "open_flow13/oxm_arp_op_field.raw" with "Pio::Match" class
656
656
  Then it should finish successfully
657
- And the message have the following fields and values:
657
+ And the message has the following fields and values:
658
658
  | field | value |
659
659
  | ether_type | 2054 |
660
660
  | arp_op | 1 |
@@ -662,7 +662,7 @@ Feature: Pio::Match
662
662
  Scenario: read (file: open_flow13/oxm_arp_spa_field.raw)
663
663
  When I try to parse a file named "open_flow13/oxm_arp_spa_field.raw" with "Pio::Match" class
664
664
  Then it should finish successfully
665
- And the message have the following fields and values:
665
+ And the message has the following fields and values:
666
666
  | field | value |
667
667
  | ether_type | 2054 |
668
668
  | arp_sender_protocol_address | 1.2.3.4 |
@@ -670,7 +670,7 @@ Feature: Pio::Match
670
670
  Scenario: read (file: open_flow13/oxm_masked_arp_spa_field.raw)
671
671
  When I try to parse a file named "open_flow13/oxm_masked_arp_spa_field.raw" with "Pio::Match" class
672
672
  Then it should finish successfully
673
- And the message have the following fields and values:
673
+ And the message has the following fields and values:
674
674
  | field | value |
675
675
  | ether_type | 2054 |
676
676
  | arp_sender_protocol_address | 1.2.3.4 |
@@ -679,7 +679,7 @@ Feature: Pio::Match
679
679
  Scenario: read (file: open_flow13/oxm_arp_tpa_field.raw)
680
680
  When I try to parse a file named "open_flow13/oxm_arp_tpa_field.raw" with "Pio::Match" class
681
681
  Then it should finish successfully
682
- And the message have the following fields and values:
682
+ And the message has the following fields and values:
683
683
  | field | value |
684
684
  | ether_type | 2054 |
685
685
  | arp_target_protocol_address | 1.2.3.4 |
@@ -687,7 +687,7 @@ Feature: Pio::Match
687
687
  Scenario: read (file: open_flow13/oxm_masked_arp_tpa_field.raw)
688
688
  When I try to parse a file named "open_flow13/oxm_masked_arp_tpa_field.raw" with "Pio::Match" class
689
689
  Then it should finish successfully
690
- And the message have the following fields and values:
690
+ And the message has the following fields and values:
691
691
  | field | value |
692
692
  | ether_type | 2054 |
693
693
  | arp_target_protocol_address | 1.2.3.4 |
@@ -696,7 +696,7 @@ Feature: Pio::Match
696
696
  Scenario: read (file: open_flow13/oxm_arp_sha_field.raw)
697
697
  When I try to parse a file named "open_flow13/oxm_arp_sha_field.raw" with "Pio::Match" class
698
698
  Then it should finish successfully
699
- And the message have the following fields and values:
699
+ And the message has the following fields and values:
700
700
  | field | value |
701
701
  | ether_type | 2054 |
702
702
  | arp_sender_hardware_address | 11:22:33:44:55:66 |
@@ -704,7 +704,7 @@ Feature: Pio::Match
704
704
  Scenario: read (file: open_flow13/oxm_masked_arp_sha_field.raw)
705
705
  When I try to parse a file named "open_flow13/oxm_masked_arp_sha_field.raw" with "Pio::Match" class
706
706
  Then it should finish successfully
707
- And the message have the following fields and values:
707
+ And the message has the following fields and values:
708
708
  | field | value |
709
709
  | ether_type | 2054 |
710
710
  | arp_sender_hardware_address | 11:22:33:44:55:66 |
@@ -713,7 +713,7 @@ Feature: Pio::Match
713
713
  Scenario: read (file: open_flow13/oxm_arp_tha_field.raw)
714
714
  When I try to parse a file named "open_flow13/oxm_arp_tha_field.raw" with "Pio::Match" class
715
715
  Then it should finish successfully
716
- And the message have the following fields and values:
716
+ And the message has the following fields and values:
717
717
  | field | value |
718
718
  | ether_type | 2054 |
719
719
  | arp_target_hardware_address | 11:22:33:44:55:66 |
@@ -721,7 +721,7 @@ Feature: Pio::Match
721
721
  Scenario: read (file: open_flow13/oxm_masked_arp_tha_field.raw)
722
722
  When I try to parse a file named "open_flow13/oxm_masked_arp_tha_field.raw" with "Pio::Match" class
723
723
  Then it should finish successfully
724
- And the message have the following fields and values:
724
+ And the message has the following fields and values:
725
725
  | field | value |
726
726
  | ether_type | 2054 |
727
727
  | arp_target_hardware_address | 11:22:33:44:55:66 |
@@ -730,7 +730,7 @@ Feature: Pio::Match
730
730
  Scenario: read (file: open_flow13/oxm_ipv6_source_field.raw)
731
731
  When I try to parse a file named "open_flow13/oxm_ipv6_source_field.raw" with "Pio::Match" class
732
732
  Then it should finish successfully
733
- And the message have the following fields and values:
733
+ And the message has the following fields and values:
734
734
  | field | value |
735
735
  | ether_type | 34525 |
736
736
  | ipv6_source_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -738,7 +738,7 @@ Feature: Pio::Match
738
738
  Scenario: read (file: open_flow13/oxm_masked_ipv6_source_field.raw)
739
739
  When I try to parse a file named "open_flow13/oxm_masked_ipv6_source_field.raw" with "Pio::Match" class
740
740
  Then it should finish successfully
741
- And the message have the following fields and values:
741
+ And the message has the following fields and values:
742
742
  | field | value |
743
743
  | ether_type | 34525 |
744
744
  | ipv6_source_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -747,7 +747,7 @@ Feature: Pio::Match
747
747
  Scenario: read (file: open_flow13/oxm_ipv6_destination_field.raw)
748
748
  When I try to parse a file named "open_flow13/oxm_ipv6_destination_field.raw" with "Pio::Match" class
749
749
  Then it should finish successfully
750
- And the message have the following fields and values:
750
+ And the message has the following fields and values:
751
751
  | field | value |
752
752
  | ether_type | 34525 |
753
753
  | ipv6_destination_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -755,7 +755,7 @@ Feature: Pio::Match
755
755
  Scenario: read (file: open_flow13/oxm_masked_ipv6_destination_field.raw)
756
756
  When I try to parse a file named "open_flow13/oxm_masked_ipv6_destination_field.raw" with "Pio::Match" class
757
757
  Then it should finish successfully
758
- And the message have the following fields and values:
758
+ And the message has the following fields and values:
759
759
  | field | value |
760
760
  | ether_type | 34525 |
761
761
  | ipv6_destination_address | 2001:db8:bd05:1d2:288a:1fc0:1:10ee |
@@ -764,14 +764,14 @@ Feature: Pio::Match
764
764
  Scenario: read (file: open_flow13/oxm_tunnel_id_field.raw)
765
765
  When I try to parse a file named "open_flow13/oxm_tunnel_id_field.raw" with "Pio::Match" class
766
766
  Then it should finish successfully
767
- And the message have the following fields and values:
767
+ And the message has the following fields and values:
768
768
  | field | value |
769
769
  | tunnel_id | 1 |
770
770
 
771
771
  Scenario: read (file: open_flow13/oxm_masked_tunnel_id_field.raw)
772
772
  When I try to parse a file named "open_flow13/oxm_masked_tunnel_id_field.raw" with "Pio::Match" class
773
773
  Then it should finish successfully
774
- And the message have the following fields and values:
774
+ And the message has the following fields and values:
775
775
  | field | value |
776
776
  | tunnel_id | 1 |
777
777
  | tunnel_id_mask | 9223372036854775808 |
@@ -783,7 +783,7 @@ Feature: Pio::Match
783
783
  Scenario: read (file: open_flow13/oxm_experimenter_stratos_basic_dot11.raw)
784
784
  When I try to parse a file named "open_flow13/oxm_experimenter_stratos_basic_dot11.raw" with "Pio::Match" class
785
785
  Then it should finish successfully
786
- And the message have the following fields and values:
786
+ And the message has the following fields and values:
787
787
  | field | value |
788
788
  | match_fields.at(0).oxm_field | 0 |
789
789
  | match_fields.at(0).experimenter | 4278247501 |