pio 0.19.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +20 -18
  4. data/features/{packet_data/arp-storm.pcap → arp-storm.pcap} +0 -0
  5. data/features/arp.feature +1 -1
  6. data/features/{packet_data/arp.pcap → arp.pcap} +0 -0
  7. data/features/dhcp.feature +210 -3
  8. data/features/{packet_data/dhcp.pcap → dhcp.pcap} +0 -0
  9. data/features/icmp.feature +1 -1
  10. data/features/{packet_data/icmp.pcap → icmp.pcap} +0 -0
  11. data/features/{packet_data/lldp.detailed.pcap → lldp.detailed.pcap} +0 -0
  12. data/features/lldp.feature +5 -5
  13. data/features/{packet_data/lldp.minimal.pcap → lldp.minimal.pcap} +0 -0
  14. data/features/{packet_data → open_flow10}/aggregate_stats_reply.raw +0 -0
  15. data/features/{packet_data → open_flow10}/aggregate_stats_request.raw +0 -0
  16. data/features/{packet_data → open_flow10}/barrier_reply.raw +0 -0
  17. data/features/{packet_data → open_flow10}/barrier_request.raw +0 -0
  18. data/features/{packet_data → open_flow10}/desc_stats_reply.raw +0 -0
  19. data/features/{packet_data → open_flow10}/desc_stats_request.raw +0 -0
  20. data/features/open_flow10/echo_reply.feature +10 -10
  21. data/features/{packet_data → open_flow10}/echo_reply.raw +0 -0
  22. data/features/open_flow10/echo_request.feature +10 -10
  23. data/features/{packet_data → open_flow10}/echo_request.raw +0 -0
  24. data/features/{packet_data → open_flow10}/error.raw +0 -0
  25. data/features/open_flow10/exact_match.feature +33 -33
  26. data/features/open_flow10/features_reply.feature +71 -71
  27. data/features/{packet_data → open_flow10}/features_reply.raw +0 -0
  28. data/features/open_flow10/features_request.feature +9 -9
  29. data/features/{packet_data → open_flow10}/features_request.raw +0 -0
  30. data/features/open_flow10/flow_mod.feature +167 -167
  31. data/features/{packet_data → open_flow10}/flow_mod_add.raw +0 -0
  32. data/features/{packet_data → open_flow10}/flow_mod_delete.raw +0 -0
  33. data/features/{packet_data → open_flow10}/flow_mod_delete_strict.raw +0 -0
  34. data/features/{packet_data → open_flow10}/flow_mod_modify.raw +0 -0
  35. data/features/{packet_data → open_flow10}/flow_mod_modify_strict.raw +0 -0
  36. data/features/{packet_data → open_flow10}/flow_removed.raw +0 -0
  37. data/features/{packet_data → open_flow10}/flow_stats_reply.raw +0 -0
  38. data/features/{packet_data → open_flow10}/flow_stats_request.raw +0 -0
  39. data/features/{packet_data → open_flow10}/get_config_reply.raw +0 -0
  40. data/features/{packet_data → open_flow10}/get_config_request.raw +0 -0
  41. data/features/open_flow10/hello.feature +9 -9
  42. data/features/{packet_data → open_flow10}/hello.raw +0 -0
  43. data/features/open_flow10/packet_in.feature +4 -4
  44. data/features/{packet_data → open_flow10}/packet_in_arp_request.raw +0 -0
  45. data/features/{packet_data → open_flow10}/packet_in_cbench.raw +0 -0
  46. data/features/open_flow10/packet_out.feature +3 -3
  47. data/features/{packet_data → open_flow10}/packet_out.raw +0 -0
  48. data/features/{packet_data → open_flow10}/port_mod.raw +0 -0
  49. data/features/{packet_data → open_flow10}/port_stats_reply.raw +0 -0
  50. data/features/{packet_data → open_flow10}/port_stats_request.raw +0 -0
  51. data/features/open_flow10/port_status.feature +3 -3
  52. data/features/{packet_data → open_flow10}/port_status.raw +0 -0
  53. data/features/{packet_data → open_flow10}/queue_get_config_reply.raw +0 -0
  54. data/features/{packet_data → open_flow10}/queue_get_config_request.raw +0 -0
  55. data/features/{packet_data → open_flow10}/set_config.raw +0 -0
  56. data/features/{packet_data → open_flow10}/table_stats_reply.raw +0 -0
  57. data/features/{packet_data → open_flow10}/table_stats_request.raw +0 -0
  58. data/features/{packet_data → open_flow10}/vendor.raw +0 -0
  59. data/features/{packet_data → open_flow10}/vendor_stats_request.raw +0 -0
  60. data/features/open_flow13/echo_reply.feature +64 -61
  61. data/features/{packet_data/echo13_reply_body.raw → open_flow13/echo_reply_body.raw} +0 -0
  62. data/features/{packet_data/echo13_reply_no_body.raw → open_flow13/echo_reply_no_body.raw} +0 -0
  63. data/features/open_flow13/echo_request.feature +64 -61
  64. data/features/{packet_data/echo13_request_body.raw → open_flow13/echo_request_body.raw} +0 -0
  65. data/features/{packet_data/echo13_request_no_body.raw → open_flow13/echo_request_no_body.raw} +0 -0
  66. data/features/open_flow13/features_reply.feature +53 -0
  67. data/features/open_flow13/features_reply.raw +0 -0
  68. data/features/open_flow13/features_request.feature +89 -0
  69. data/features/open_flow13/features_request.raw +0 -0
  70. data/features/open_flow13/hello.feature +26 -23
  71. data/features/{packet_data/hello13_no_version_bitmap.raw → open_flow13/hello_no_version_bitmap.raw} +0 -0
  72. data/features/{packet_data/hello13_version_bitmap.raw → open_flow13/hello_version_bitmap.raw} +0 -0
  73. data/features/step_definitions/open_flow_steps.rb +3 -0
  74. data/features/step_definitions/packet_data_steps.rb +9 -9
  75. data/features/udp.feature +3 -3
  76. data/features/{packet_data/udp_no_payload.raw → udp_no_payload.raw} +0 -0
  77. data/features/{packet_data/udp_with_payload.raw → udp_with_payload.raw} +0 -0
  78. data/lib/pio.rb +1 -9
  79. data/lib/pio/open_flow/actions.rb +8 -8
  80. data/lib/pio/open_flow/open_flow_header.rb +10 -0
  81. data/lib/pio/open_flow10.rb +15 -0
  82. data/lib/pio/open_flow10/echo.rb +15 -0
  83. data/lib/pio/open_flow10/exact_match.rb +51 -0
  84. data/lib/pio/{features.rb → open_flow10/features.rb} +8 -7
  85. data/lib/pio/{flow_mod.rb → open_flow10/flow_mod.rb} +1 -1
  86. data/lib/pio/{hello.rb → open_flow10/hello.rb} +0 -0
  87. data/lib/pio/{match.rb → open_flow10/match.rb} +46 -43
  88. data/lib/pio/{packet_in.rb → open_flow10/packet_in.rb} +0 -0
  89. data/lib/pio/{packet_out.rb → open_flow10/packet_out.rb} +0 -0
  90. data/lib/pio/{port_status.rb → open_flow10/port_status.rb} +0 -0
  91. data/lib/pio/open_flow13.rb +12 -0
  92. data/lib/pio/{echo.rb → open_flow13/echo.rb} +9 -13
  93. data/lib/pio/open_flow13/features_reply.rb +91 -0
  94. data/lib/pio/open_flow13/features_request.rb +54 -0
  95. data/lib/pio/{hello13.rb → open_flow13/hello.rb} +4 -1
  96. data/lib/pio/{set_eth_addr.rb → set_ether_address.rb} +7 -7
  97. data/lib/pio/{set_ip_addr.rb → set_ip_address.rb} +7 -7
  98. data/lib/pio/set_ip_tos.rb +1 -1
  99. data/lib/pio/set_transport_port.rb +2 -2
  100. data/lib/pio/version.rb +1 -1
  101. data/pio.gemspec +2 -2
  102. data/spec/pio/flow_mod_spec.rb +45 -45
  103. data/spec/pio/match_spec.rb +122 -120
  104. data/spec/pio/{hello13_spec.rb → open_flow13/hello_spec.rb} +11 -11
  105. data/spec/pio/packet_out_spec.rb +19 -19
  106. data/spec/pio/set_ether_destination_address_spec.rb +28 -0
  107. data/spec/pio/set_ether_source_address_spec.rb +28 -0
  108. data/spec/pio/set_ip_destination_address_spec.rb +27 -0
  109. data/spec/pio/set_ip_source_address_spec.rb +25 -0
  110. data/spec/pio/set_transport_destination_port_spec.rb +44 -0
  111. data/spec/pio/set_transport_source_port_spec.rb +44 -0
  112. data/spec/pio/wildcards_spec.rb +23 -21
  113. metadata +179 -165
  114. data/bin/byebug +0 -16
  115. data/lib/pio/exact_match.rb +0 -51
  116. data/spec/pio/set_eth_dst_addr_spec.rb +0 -28
  117. data/spec/pio/set_eth_src_addr_spec.rb +0 -28
  118. data/spec/pio/set_ip_dst_addr_spec.rb +0 -25
  119. data/spec/pio/set_ip_src_addr_spec.rb +0 -25
  120. data/spec/pio/set_transport_dst_port_spec.rb +0 -42
  121. data/spec/pio/set_transport_src_port_spec.rb +0 -42
@@ -1,3 +1,4 @@
1
+ require 'forwardable'
1
2
  require 'pio/open_flow'
2
3
 
3
4
  module Pio
@@ -30,13 +31,13 @@ module Pio
30
31
  :set_vlan_vid,
31
32
  :set_vlan_pcp,
32
33
  :strip_vlan,
33
- :set_dl_src,
34
- :set_dl_dst,
35
- :set_nw_src,
36
- :set_nw_dst,
37
- :set_nw_tos,
38
- :set_tp_src,
39
- :set_tp_dst,
34
+ :set_ether_source_address,
35
+ :set_ether_destination_address,
36
+ :set_ip_source_address,
37
+ :set_ip_destination_address,
38
+ :set_ip_tos,
39
+ :set_transport_source_port,
40
+ :set_transport_destination_port,
40
41
  :enqueue]
41
42
 
42
43
  endian :big
@@ -1,5 +1,5 @@
1
- require 'pio/match'
2
1
  require 'pio/open_flow'
2
+ require 'pio/open_flow10/match'
3
3
 
4
4
  # Base module.
5
5
  module Pio
File without changes
@@ -11,32 +11,32 @@ module Pio
11
11
  class Wildcards < BinData::Primitive
12
12
  BITS = {
13
13
  in_port: 1 << 0,
14
- dl_vlan: 1 << 1,
15
- dl_src: 1 << 2,
16
- dl_dst: 1 << 3,
17
- dl_type: 1 << 4,
18
- nw_proto: 1 << 5,
19
- tp_src: 1 << 6,
20
- tp_dst: 1 << 7,
21
- nw_src: 0,
22
- nw_src0: 1 << 8,
23
- nw_src1: 1 << 9,
24
- nw_src2: 1 << 10,
25
- nw_src3: 1 << 11,
26
- nw_src4: 1 << 12,
27
- nw_src_all: 1 << 13,
28
- nw_dst: 0,
29
- nw_dst0: 1 << 14,
30
- nw_dst1: 1 << 15,
31
- nw_dst2: 1 << 16,
32
- nw_dst3: 1 << 17,
33
- nw_dst4: 1 << 18,
34
- nw_dst_all: 1 << 19,
35
- dl_vlan_pcp: 1 << 20,
36
- nw_tos: 1 << 21
14
+ vlan_vid: 1 << 1,
15
+ ether_source_address: 1 << 2,
16
+ ether_destination_address: 1 << 3,
17
+ ether_type: 1 << 4,
18
+ ip_protocol: 1 << 5,
19
+ transport_source_port: 1 << 6,
20
+ transport_destination_port: 1 << 7,
21
+ ip_source_address: 0,
22
+ ip_source_address0: 1 << 8,
23
+ ip_source_address1: 1 << 9,
24
+ ip_source_address2: 1 << 10,
25
+ ip_source_address3: 1 << 11,
26
+ ip_source_address4: 1 << 12,
27
+ ip_source_address_all: 1 << 13,
28
+ ip_destination_address: 0,
29
+ ip_destination_address0: 1 << 14,
30
+ ip_destination_address1: 1 << 15,
31
+ ip_destination_address2: 1 << 16,
32
+ ip_destination_address3: 1 << 17,
33
+ ip_destination_address4: 1 << 18,
34
+ ip_destination_address_all: 1 << 19,
35
+ vlan_priority: 1 << 20,
36
+ ip_tos: 1 << 21
37
37
  }
38
- NW_FLAGS = [:nw_src, :nw_dst]
39
- FLAGS = BITS.keys.select { |each| !(/^nw_(src|dst)/=~ each) }
38
+ NW_FLAGS = [:ip_source_address, :ip_destination_address]
39
+ FLAGS = BITS.keys.select { |each| !(/^ip_(source|destination)/=~ each) }
40
40
 
41
41
  endian :big
42
42
 
@@ -46,7 +46,7 @@ module Pio
46
46
  def get
47
47
  BITS.each_with_object(Hash.new(0)) do |(key, bit), memo|
48
48
  next if flags & bit == 0
49
- if /(nw_src|nw_dst)(\d)/=~ key
49
+ if /(ip_source_address|ip_destination_address)(\d)/=~ key
50
50
  memo[$LAST_MATCH_INFO[1].intern] |= 1 << $LAST_MATCH_INFO[2].to_i
51
51
  else
52
52
  memo[key] = true
@@ -57,22 +57,23 @@ module Pio
57
57
  def set(params)
58
58
  self.flags = params.inject(0) do |memo, (key, val)|
59
59
  memo | case key
60
- when :nw_src, :nw_dst
61
- (params.fetch(key) & 31) << (key == :nw_src ? 8 : 14)
60
+ when :ip_source_address, :ip_destination_address
61
+ (params.fetch(key) & 31) <<
62
+ (key == :ip_source_address ? 8 : 14)
62
63
  else
63
64
  val ? BITS.fetch(key) : 0
64
65
  end
65
66
  end
66
67
  end
67
68
 
68
- def nw_src
69
- get.fetch(:nw_src)
69
+ def ip_source_address
70
+ get.fetch(:ip_source_address)
70
71
  rescue KeyError
71
72
  0
72
73
  end
73
74
 
74
- def nw_dst
75
- get.fetch(:nw_dst)
75
+ def ip_destination_address
76
+ get.fetch(:ip_destination_address)
76
77
  rescue KeyError
77
78
  0
78
79
  end
@@ -105,21 +106,23 @@ module Pio
105
106
 
106
107
  wildcards :wildcards
107
108
  uint16 :in_port
108
- mac_address :dl_src
109
- mac_address :dl_dst
110
- uint16 :dl_vlan
111
- uint8 :dl_vlan_pcp
109
+ mac_address :ether_source_address
110
+ mac_address :ether_destination_address
111
+ uint16 :vlan_vid
112
+ uint8 :vlan_priority
112
113
  uint8 :padding1
113
114
  hide :padding1
114
- uint16 :dl_type
115
- uint8 :nw_tos
116
- uint8 :nw_proto
115
+ uint16 :ether_type
116
+ uint8 :ip_tos
117
+ uint8 :ip_protocol
117
118
  uint16 :padding2
118
119
  hide :padding2
119
- match_ip_address :nw_src, bitcount: -> { wildcards.nw_src }
120
- match_ip_address :nw_dst, bitcount: -> { wildcards.nw_dst }
121
- uint16 :tp_src
122
- uint16 :tp_dst
120
+ match_ip_address :ip_source_address,
121
+ bitcount: -> { wildcards.ip_source_address }
122
+ match_ip_address :ip_destination_address,
123
+ bitcount: -> { wildcards.ip_destination_address }
124
+ uint16 :transport_source_port
125
+ uint16 :transport_destination_port
123
126
  end
124
127
 
125
128
  def self.read(binary)
File without changes
@@ -0,0 +1,12 @@
1
+ module Pio
2
+ # OpenFlow specific types.
3
+ module OpenFlow
4
+ remove_const :VERSION
5
+ VERSION = 4
6
+ end
7
+ end
8
+
9
+ require 'pio/open_flow13/echo'
10
+ require 'pio/open_flow13/features_reply'
11
+ require 'pio/open_flow13/features_request'
12
+ require 'pio/open_flow13/hello'
@@ -1,19 +1,11 @@
1
1
  require 'forwardable'
2
2
  require 'pio/open_flow'
3
3
 
4
+ # Base module.
4
5
  module Pio
5
- # OpenFlow 1.0 Echo Request and Reply message.
6
- module Echo
7
- # OpenFlow 1.0 Echo Request message.
8
- class Request; end
9
- OpenFlow::Message.factory(Request, OpenFlow::ECHO_REQUEST)
10
-
11
- # OpenFlow 1.0 Echo Reply message.
12
- class Reply; end
13
- OpenFlow::Message.factory(Reply, OpenFlow::ECHO_REPLY)
14
- end
6
+ remove_const :Echo
15
7
 
16
- module Echo13
8
+ module Echo
17
9
  # Base class of Echo Request and Reply.
18
10
  class Message
19
11
  def self.message_name
@@ -54,12 +46,16 @@ module Pio
54
46
  def_delegators :open_flow_header, :message_length
55
47
  def_delegators :open_flow_header, :transaction_id
56
48
  def_delegator :open_flow_header, :transaction_id, :xid
49
+
50
+ def to_binary
51
+ to_binary_s
52
+ end
57
53
  end
58
54
 
59
55
  # OpenFlow 1.3 Echo Request message.
60
56
  class Request < Message
61
57
  # OpenFlow 1.3 Echo Request message format.
62
- class Format < Echo13::Format
58
+ class Format < Echo::Format
63
59
  endian :big
64
60
  open_flow_header :open_flow_header,
65
61
  ofp_version_value: 4, message_type_value: 2
@@ -70,7 +66,7 @@ module Pio
70
66
  # OpenFlow 1.3 Echo Reply message.
71
67
  class Reply < Message
72
68
  # OpenFlow 1.3 Echo Request message format.
73
- class Format < Echo13::Format
69
+ class Format < Echo::Format
74
70
  endian :big
75
71
  open_flow_header :open_flow_header,
76
72
  ofp_version_value: 4, message_type_value: 3
@@ -0,0 +1,91 @@
1
+ require 'forwardable'
2
+ require 'pio/open_flow'
3
+
4
+ # Base module.
5
+ module Pio
6
+ # OpenFlow 1.3 Features Request and Reply message.
7
+ class Features
8
+ remove_const :Reply
9
+
10
+ # OpenFlow 1.3 Features Reply message.
11
+ class Reply
12
+ # OpenFlow 1.3 Features Reply message body.
13
+ class Body < BinData::Record
14
+ extend OpenFlow::Flags
15
+
16
+ flags_32bit(:capabilities,
17
+ [:flow_stats,
18
+ :table_stats,
19
+ :port_stats,
20
+ :group_stats,
21
+ :NOT_USED,
22
+ :ip_reasm,
23
+ :queue_stats,
24
+ :NOT_USED,
25
+ :port_blocked])
26
+
27
+ endian :big
28
+
29
+ uint64 :datapath_id
30
+ uint32 :n_buffers
31
+ uint8 :n_tables
32
+ uint8 :auxiliary_id
33
+ uint16 :padding
34
+ hide :padding
35
+ capabilities :capabilities
36
+ uint32 :reserved
37
+
38
+ def length
39
+ 24
40
+ end
41
+ end
42
+
43
+ # OpenFlow 1.3 Features Reply message format.
44
+ class Format < BinData::Record
45
+ extend Forwardable
46
+
47
+ endian :big
48
+ open_flow_header(:open_flow_header,
49
+ ofp_version_value: 4, message_type_value: 6)
50
+ body :body
51
+
52
+ def_delegators :open_flow_header, :ofp_version
53
+ def_delegators :open_flow_header, :message_type
54
+ def_delegators :open_flow_header, :message_length
55
+ def_delegators :open_flow_header, :transaction_id
56
+ def_delegator :open_flow_header, :transaction_id, :xid
57
+ def_delegators :body, :datapath_id
58
+ def_delegators :body, :n_buffers
59
+ def_delegators :body, :n_tables
60
+ def_delegators :body, :auxiliary_id
61
+ def_delegators :body, :capabilities
62
+ def_delegators :body, :reserved
63
+
64
+ def dpid
65
+ datapath_id
66
+ end
67
+ end
68
+
69
+ def self.read(raw_data)
70
+ allocate.tap do |message|
71
+ message.instance_variable_set(:@format, Format.read(raw_data))
72
+ end
73
+ rescue BinData::ValidityError
74
+ raise Pio::ParseError, 'Invalid Features Reply 1.3 message.'
75
+ end
76
+
77
+ def initialize(user_attrs = {})
78
+ header_options = OpenFlowHeader::Options.parse(user_attrs)
79
+ body_options = user_attrs.dup
80
+ body_options[:datapath_id] =
81
+ body_options[:dpid] || body_options[:datapath_id]
82
+ @format = Format.new(open_flow_header: header_options,
83
+ body: body_options)
84
+ end
85
+
86
+ def method_missing(method, *args, &block)
87
+ @format.__send__ method, *args, &block
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,54 @@
1
+ require 'forwardable'
2
+ require 'pio/open_flow'
3
+
4
+ # Base module.
5
+ module Pio
6
+ # OpenFlow 1.3 Features Request and Reply message.
7
+ class Features
8
+ remove_const :Request
9
+
10
+ # OpenFlow 1.3 Features Request message.
11
+ class Request
12
+ # OpenFlow 1.3 Features Request message format.
13
+ class Format < BinData::Record
14
+ extend Forwardable
15
+
16
+ endian :big
17
+ open_flow_header(:open_flow_header,
18
+ ofp_version_value: 4, message_type_value: 5)
19
+ string :body, value: ''
20
+
21
+ def_delegators :open_flow_header, :ofp_version
22
+ def_delegators :open_flow_header, :message_type
23
+ def_delegators :open_flow_header, :message_length
24
+ def_delegators :open_flow_header, :transaction_id
25
+ def_delegator :open_flow_header, :transaction_id, :xid
26
+
27
+ def to_binary
28
+ to_binary_s
29
+ end
30
+ end
31
+
32
+ def self.read(raw_data)
33
+ allocate.tap do |message|
34
+ message.instance_variable_set(:@format, Format.read(raw_data))
35
+ end
36
+ rescue BinData::ValidityError
37
+ raise Pio::ParseError, 'Invalid Features Request 1.3 message.'
38
+ end
39
+
40
+ def initialize(user_attrs = {})
41
+ unknown_attrs = user_attrs.keys - [:transaction_id, :xid]
42
+ unless unknown_attrs.empty?
43
+ fail "Unknown keyword: #{unknown_attrs.first}"
44
+ end
45
+ header_options = OpenFlowHeader::Options.parse(user_attrs)
46
+ @format = Format.new(open_flow_header: header_options)
47
+ end
48
+
49
+ def method_missing(method, *args, &block)
50
+ @format.__send__ method, *args, &block
51
+ end
52
+ end
53
+ end
54
+ end
@@ -3,9 +3,12 @@ require 'forwardable'
3
3
  require 'pio/open_flow'
4
4
  require 'pio/parse_error'
5
5
 
6
+ # Base module.
6
7
  module Pio
8
+ remove_const :Hello
9
+
7
10
  # OpenFlow 1.3 Hello message parser and generator
8
- class Hello13
11
+ class Hello
9
12
  # ofp_hello_elem_header and value
10
13
  class Element < BinData::Record
11
14
  VERSION_BITMAP = 1
@@ -4,7 +4,7 @@ require 'pio/type/mac_address'
4
4
 
5
5
  module Pio
6
6
  # An action to modify the source/destination Ethernet address of a packet.
7
- class SetEthAddr
7
+ class SetEtherAddress
8
8
  # rubocop:disable MethodLength
9
9
  def self.def_format(action_type)
10
10
  str = %(
@@ -23,10 +23,10 @@ module Pio
23
23
  # rubocop:enable MethodLength
24
24
 
25
25
  def self.read(raw_data)
26
- set_eth_addr = allocate
27
- set_eth_addr.instance_variable_set(:@format,
28
- const_get(:Format).read(raw_data))
29
- set_eth_addr
26
+ set_ether_address = allocate
27
+ set_ether_address.instance_variable_set(:@format,
28
+ const_get(:Format).read(raw_data))
29
+ set_ether_address
30
30
  end
31
31
 
32
32
  extend Forwardable
@@ -41,12 +41,12 @@ module Pio
41
41
  end
42
42
 
43
43
  # An action to modify the source Ethernet address of a packet.
44
- class SetEthSrcAddr < SetEthAddr
44
+ class SetEtherSourceAddr < SetEtherAddress
45
45
  def_format 4
46
46
  end
47
47
 
48
48
  # An action to modify the destination Ethernet address of a packet.
49
- class SetEthDstAddr < SetEthAddr
49
+ class SetEtherDestinationAddr < SetEtherAddress
50
50
  def_format 5
51
51
  end
52
52
  end
@@ -4,7 +4,7 @@ require 'pio/type/ip_address'
4
4
 
5
5
  module Pio
6
6
  # An action to modify the IPv4 source/destination address of a packet.
7
- class SetIpAddr
7
+ class SetIpAddress
8
8
  def self.def_format(action_type)
9
9
  str = %(
10
10
  class Format < BinData::Record
@@ -19,10 +19,10 @@ module Pio
19
19
  end
20
20
 
21
21
  def self.read(raw_data)
22
- set_ip_addr = allocate
23
- set_ip_addr.instance_variable_set(:@format,
24
- const_get(:Format).read(raw_data))
25
- set_ip_addr
22
+ set_ip_address = allocate
23
+ set_ip_address.instance_variable_set(:@format,
24
+ const_get(:Format).read(raw_data))
25
+ set_ip_address
26
26
  end
27
27
 
28
28
  extend Forwardable
@@ -38,12 +38,12 @@ module Pio
38
38
  end
39
39
 
40
40
  # An action to modify the IPv4 source address of a packet.
41
- class SetIpSrcAddr < SetIpAddr
41
+ class SetIpSourceAddress < SetIpAddress
42
42
  def_format 6
43
43
  end
44
44
 
45
45
  # An action to modify the IPv4 source address of a packet.
46
- class SetIpDstAddr < SetIpAddr
46
+ class SetIpDestinationAddress < SetIpAddress
47
47
  def_format 7
48
48
  end
49
49
  end