@@ -13,10 +13,10 @@ class NonESPMarker < PacketGen::Header::Base
1313 # @!attribute non_esp_marker
1414 # 32-bit zero marker to differentiate IKE packet over UDP port 4500 from ESP ones
1515 # @return [Integer]
16- define_field :non_esp_marker , PacketGen :: Types ::Int32 , default : 0
16+ define_attr :non_esp_marker , BinStruct ::Int32 , default : 0
1717 # @!attribute body
18- # @return [PacketGen::Types ::String,PacketGen::Header::Base]
19- define_field :body , PacketGen :: Types ::String
18+ # @return [BinStruct ::String,PacketGen::Header::Base]
19+ define_attr :body , BinStruct ::String
2020
2121 # Check non_esp_marker field
2222 # @see [PacketGen::Header::Base#parse?]
@@ -48,15 +48,15 @@ def parse?
4848 # | Length |
4949 # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5050 # A IKE Plugin consists of:
51- # * a IKE SA initiator SPI ({#init_spi}, {PacketGen::Types ::Int64} type),
52- # * a IKE SA responder SPI ({#resp_spi}, {PacketGen::Types ::Int64} type),
53- # * a Next Payload field ({#next}, {PacketGen::Types ::Int8} type),
54- # * a Version field ({#version}, {PacketGen::Types ::Int8} type, with first 4-bit field
51+ # * a IKE SA initiator SPI ({#init_spi}, {BinStruct ::Int64} type),
52+ # * a IKE SA responder SPI ({#resp_spi}, {BinStruct ::Int64} type),
53+ # * a Next Payload field ({#next}, {BinStruct ::Int8} type),
54+ # * a Version field ({#version}, {BinStruct ::Int8} type, with first 4-bit field
5555 # as major number, and last 4-bit field as minor number),
56- # * a Exchange type ({#exchange_type}, {PacketGen::Types ::Int8} type),
57- # * a {#flags} field ({PacketGen::Types ::Int8} type),
58- # * a Message ID ({#message_id}, {PacketGen::Types ::Int32} type),
59- # * and a {#length} ({PacketGen::Types ::Int32} type).
56+ # * a Exchange type ({#exchange_type}, {BinStruct ::Int8} type),
57+ # * a {#flags} field ({BinStruct ::Int8} type),
58+ # * a Message ID ({#message_id}, {BinStruct ::Int32} type),
59+ # * and a {#length} ({BinStruct ::Int32} type).
6060 #
6161 # == Create a IKE Plugin
6262 # === Standalone
@@ -94,48 +94,32 @@ class IKE < PacketGen::Header::Base
9494 # @!attribute init_spi
9595 # 64-bit initiator SPI
9696 # @return [Integer]
97- define_field :init_spi , PacketGen :: Types ::Int64
97+ define_attr :init_spi , BinStruct ::Int64
9898 # @!attribute resp_spi
9999 # 64-bit responder SPI
100100 # @return [Integer]
101- define_field :resp_spi , PacketGen :: Types ::Int64
101+ define_attr :resp_spi , BinStruct ::Int64
102102 # @!attribute next
103103 # 8-bit next payload type
104104 # @return [Integer]
105- define_field :next , PacketGen :: Types ::Int8
105+ define_attr :next , BinStruct ::Int8
106106 # @!attribute version
107107 # 8-bit IKE version
108108 # @return [Integer]
109- define_field :version , PacketGen ::Types ::Int8 , default : 0x20
109+ # @!attribute mjver
110+ # 4-bit major version value ({#version}'s 4 most significant bits)
111+ # @return [Integer]
112+ # @!attribute mnver
113+ # 4-bit minor version value ({#version}'s 4 least significant bits)
114+ # @return [Integer]
115+ define_bit_attr :version , default : 0x20 , mjver : 4 , mver : 4
110116 # @!attribute [r] exchange_type
111117 # 8-bit exchange type
112118 # @return [Integer]
113- define_field :exchange_type , PacketGen :: Types ::Int8Enum , enum : EXCHANGE_TYPES
114- # @!attribute flags
119+ define_attr :exchange_type , BinStruct ::Int8Enum , enum : EXCHANGE_TYPES
120+ # @!attribute flags. See {#flag_r}, {#flag_v} and {#flag_i}.
115121 # 8-bit flags
116122 # @return [Integer]
117- define_field :flags , PacketGen ::Types ::Int8
118- # @!attribute message_id
119- # 32-bit message ID
120- # @return [Integer]
121- define_field :message_id , PacketGen ::Types ::Int32
122- # @!attribute length
123- # 32-bit length of total message (Plugin + payloads)
124- # @return [Integer]
125- define_field :length , PacketGen ::Types ::Int32
126-
127- # Defining a body permits using Packet#parse to parse IKE payloads.
128- # But this method is hidden as prefered way to access payloads is via #payloads
129- define_field :body , PacketGen ::Types ::String
130-
131- # @!attribute mjver
132- # 4-bit major version value
133- # @return [Integer]
134- # @!attribute mnver
135- # 4-bit minor version value
136- # @return [Integer]
137- define_bit_fields_on :version , :mjver , 4 , :mnver , 4
138-
139123 # @!attribute rsv1
140124 # @return [Integer]
141125 # @!attribute rsv2
@@ -149,7 +133,19 @@ class IKE < PacketGen::Header::Base
149133 # @!attribute flag_v
150134 # version flag. Ignored by IKEv2 peers, and should be set to 0
151135 # @return [Boolean]
152- define_bit_fields_on :flags , :rsv1 , 2 , :flag_r , :flag_v , :flag_i , :rsv2 , 3
136+ define_bit_attr :flags , rsv1 : 2 , flag_r : 1 , flag_v : 1 , flag_i : 1 , rsv2 : 3
137+ # @!attribute message_id
138+ # 32-bit message ID
139+ # @return [Integer]
140+ define_attr :message_id , BinStruct ::Int32
141+ # @!attribute length
142+ # 32-bit length of total message (Plugin + payloads)
143+ # @return [Integer]
144+ define_attr :length , BinStruct ::Int32
145+
146+ # Defining a body permits using Packet#parse to parse IKE payloads.
147+ # But this method is hidden as prefered way to access payloads is via #payloads
148+ define_attr :body , BinStruct ::String
153149
154150 # @param [Hash] options
155151 # @see PacketGen::Header::Base#initialize
0 commit comments