packetgen 3.3.3 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +38 -22
  3. data/lib/packetgen/capture.rb +2 -2
  4. data/lib/packetgen/config.rb +0 -1
  5. data/lib/packetgen/deprecation.rb +14 -8
  6. data/lib/packetgen/header/arp.rb +17 -18
  7. data/lib/packetgen/header/asn1_base.rb +2 -1
  8. data/lib/packetgen/header/base.rb +42 -40
  9. data/lib/packetgen/header/bootp.rb +35 -37
  10. data/lib/packetgen/header/dhcp/option.rb +21 -21
  11. data/lib/packetgen/header/dhcp/options.rb +3 -3
  12. data/lib/packetgen/header/dhcp.rb +8 -9
  13. data/lib/packetgen/header/dhcpv6/duid.rb +16 -16
  14. data/lib/packetgen/header/dhcpv6/option.rb +83 -61
  15. data/lib/packetgen/header/dhcpv6/options.rb +4 -4
  16. data/lib/packetgen/header/dhcpv6/relay.rb +6 -5
  17. data/lib/packetgen/header/dhcpv6.rb +17 -18
  18. data/lib/packetgen/header/dns/name.rb +21 -16
  19. data/lib/packetgen/header/dns/opt.rb +5 -2
  20. data/lib/packetgen/header/dns/option.rb +14 -14
  21. data/lib/packetgen/header/dns/qdsection.rb +3 -3
  22. data/lib/packetgen/header/dns/question.rb +7 -8
  23. data/lib/packetgen/header/dns/rr.rb +56 -43
  24. data/lib/packetgen/header/dns/rrsection.rb +6 -6
  25. data/lib/packetgen/header/dns.rb +103 -90
  26. data/lib/packetgen/header/dot11/control.rb +12 -12
  27. data/lib/packetgen/header/dot11/data.rb +25 -24
  28. data/lib/packetgen/header/dot11/element.rb +4 -4
  29. data/lib/packetgen/header/dot11/management.rb +21 -18
  30. data/lib/packetgen/header/dot11/sub_mngt.rb +40 -53
  31. data/lib/packetgen/header/dot11.rb +117 -122
  32. data/lib/packetgen/header/dot1q.rb +12 -13
  33. data/lib/packetgen/header/dot1x.rb +13 -13
  34. data/lib/packetgen/header/eap/fast.rb +4 -4
  35. data/lib/packetgen/header/eap/md5.rb +16 -8
  36. data/lib/packetgen/header/eap/tls.rb +18 -19
  37. data/lib/packetgen/header/eap/ttls.rb +22 -21
  38. data/lib/packetgen/header/eap.rb +73 -48
  39. data/lib/packetgen/header/eth.rb +41 -27
  40. data/lib/packetgen/header/gre.rb +33 -11
  41. data/lib/packetgen/header/http/headers.rb +7 -6
  42. data/lib/packetgen/header/http/request.rb +38 -29
  43. data/lib/packetgen/header/http/response.rb +35 -27
  44. data/lib/packetgen/header/http/verbs.rb +1 -3
  45. data/lib/packetgen/header/icmp.rb +14 -14
  46. data/lib/packetgen/header/icmpv6.rb +10 -9
  47. data/lib/packetgen/header/igmp.rb +26 -15
  48. data/lib/packetgen/header/igmpv3/group_record.rb +18 -13
  49. data/lib/packetgen/header/igmpv3/mq.rb +16 -18
  50. data/lib/packetgen/header/igmpv3/mr.rb +5 -5
  51. data/lib/packetgen/header/igmpv3.rb +12 -11
  52. data/lib/packetgen/header/ip/addr.rb +19 -15
  53. data/lib/packetgen/header/ip/option.rb +47 -36
  54. data/lib/packetgen/header/ip/options.rb +1 -1
  55. data/lib/packetgen/header/ip.rb +77 -95
  56. data/lib/packetgen/header/ipv6/addr.rb +28 -27
  57. data/lib/packetgen/header/ipv6/extension.rb +13 -11
  58. data/lib/packetgen/header/ipv6/hop_by_hop.rb +32 -13
  59. data/lib/packetgen/header/ipv6.rb +42 -35
  60. data/lib/packetgen/header/llc.rb +28 -21
  61. data/lib/packetgen/header/mdns.rb +10 -3
  62. data/lib/packetgen/header/mld.rb +15 -13
  63. data/lib/packetgen/header/mldv2/mcast_address_record.rb +17 -12
  64. data/lib/packetgen/header/mldv2/mlq.rb +22 -24
  65. data/lib/packetgen/header/mldv2/mlr.rb +8 -8
  66. data/lib/packetgen/header/mldv2.rb +1 -1
  67. data/lib/packetgen/header/ospfv2/db_description.rb +17 -18
  68. data/lib/packetgen/header/ospfv2/hello.rb +18 -17
  69. data/lib/packetgen/header/ospfv2/ls_ack.rb +6 -7
  70. data/lib/packetgen/header/ospfv2/ls_request.rb +14 -13
  71. data/lib/packetgen/header/ospfv2/ls_update.rb +9 -9
  72. data/lib/packetgen/header/ospfv2/lsa.rb +79 -60
  73. data/lib/packetgen/header/ospfv2/lsa_header.rb +12 -11
  74. data/lib/packetgen/header/ospfv2.rb +49 -46
  75. data/lib/packetgen/header/ospfv3/db_description.rb +20 -22
  76. data/lib/packetgen/header/ospfv3/hello.rb +17 -16
  77. data/lib/packetgen/header/ospfv3/ipv6_prefix.rb +22 -20
  78. data/lib/packetgen/header/ospfv3/ls_ack.rb +7 -8
  79. data/lib/packetgen/header/ospfv3/ls_request.rb +18 -18
  80. data/lib/packetgen/header/ospfv3/ls_update.rb +10 -10
  81. data/lib/packetgen/header/ospfv3/lsa.rb +62 -51
  82. data/lib/packetgen/header/ospfv3/lsa_header.rb +12 -11
  83. data/lib/packetgen/header/ospfv3.rb +54 -52
  84. data/lib/packetgen/header/sctp/chunk.rb +80 -56
  85. data/lib/packetgen/header/sctp/error.rb +174 -202
  86. data/lib/packetgen/header/sctp/padded32.rb +3 -3
  87. data/lib/packetgen/header/sctp/parameter.rb +89 -136
  88. data/lib/packetgen/header/sctp.rb +19 -8
  89. data/lib/packetgen/header/snmp.rb +108 -7
  90. data/lib/packetgen/header/tcp/option.rb +52 -39
  91. data/lib/packetgen/header/tcp/options.rb +13 -5
  92. data/lib/packetgen/header/tcp.rb +83 -65
  93. data/lib/packetgen/header/tftp.rb +31 -25
  94. data/lib/packetgen/header/udp.rb +21 -19
  95. data/lib/packetgen/header.rb +23 -18
  96. data/lib/packetgen/headerable.rb +21 -5
  97. data/lib/packetgen/inspect.rb +3 -8
  98. data/lib/packetgen/packet.rb +146 -71
  99. data/lib/packetgen/pcap.rb +15 -4
  100. data/lib/packetgen/pcapng/block.rb +20 -18
  101. data/lib/packetgen/pcapng/epb.rb +13 -15
  102. data/lib/packetgen/pcapng/file.rb +44 -111
  103. data/lib/packetgen/pcapng/idb.rb +11 -12
  104. data/lib/packetgen/pcapng/shb.rb +15 -16
  105. data/lib/packetgen/pcapng/spb.rb +9 -11
  106. data/lib/packetgen/pcapng/unknown_block.rb +6 -17
  107. data/lib/packetgen/pcapng.rb +6 -4
  108. data/lib/packetgen/pcaprub_wrapper.rb +17 -1
  109. data/lib/packetgen/proto.rb +5 -1
  110. data/lib/packetgen/unknown_packet.rb +5 -5
  111. data/lib/packetgen/utils/arp_spoofer.rb +18 -19
  112. data/lib/packetgen/utils.rb +4 -3
  113. data/lib/packetgen/version.rb +1 -1
  114. data/lib/packetgen.rb +12 -5
  115. metadata +29 -38
  116. data/lib/packetgen/types/abstract_tlv.rb +0 -278
  117. data/lib/packetgen/types/array.rb +0 -287
  118. data/lib/packetgen/types/cstring.rb +0 -109
  119. data/lib/packetgen/types/enum.rb +0 -171
  120. data/lib/packetgen/types/fieldable.rb +0 -66
  121. data/lib/packetgen/types/fields.rb +0 -622
  122. data/lib/packetgen/types/int.rb +0 -473
  123. data/lib/packetgen/types/int_string.rb +0 -102
  124. data/lib/packetgen/types/length_from.rb +0 -54
  125. data/lib/packetgen/types/oui.rb +0 -52
  126. data/lib/packetgen/types/string.rb +0 -97
  127. data/lib/packetgen/types/tlv.rb +0 -161
  128. data/lib/packetgen/types.rb +0 -26
@@ -12,31 +12,31 @@ module PacketGen
12
12
  # RFC 951}
13
13
  #
14
14
  # A BOOTP header consists of:
15
- # * an operation code field ({#op} of type {Types::Int8Enum}),
16
- # * a hardware address type ({#htype} of type {Types::Int8}),
17
- # * a hardware address length ({#hlen} of type {Types::Int8}),
18
- # * a {#hops} field ({Types::Int8}),
19
- # * a transaction ID ({#xid} of type {Types::Int32}),
20
- # * a {#secs} field (){Types::Int16}),
21
- # * a {#flags} field (){Types::Int16}):
15
+ # * an operation code field ({#op} of type +BinStruct::Int8Enum+),
16
+ # * a hardware address type ({#htype} of type +BinStruct::Int8+),
17
+ # * a hardware address length ({#hlen} of type +BinStruct::Int8+),
18
+ # * a {#hops} field (+BinStruct::Int8+),
19
+ # * a transaction ID ({#xid} of type +BinStruct::Int32+),
20
+ # * a {#secs} field (+BinStruct::Int16+),
21
+ # * a {#flags} field (+BinStruct::Int16+):
22
22
  # * a 1-bit broadcast flag ({#b}),
23
23
  # * a 15-bit Must Be Zero field ({#mbz}),
24
24
  # * a {#ciaddr} field ({IP::Addr}),
25
25
  # * a {#yiaddr} field ({IP::Addr}),
26
26
  # * a {#siaddr} field ({IP::Addr}),
27
27
  # * a {#giaddr} field ({IP::Addr}),
28
- # * a {#chaddr} field (16-byte {Types::String}),
29
- # * a {#sname} field (64-byte {Types::CString}),
30
- # * a {#file} field (128-byte {Types::CString}),
31
- # * and a body ({Types::String}).
28
+ # * a {#chaddr} field (16-byte +BinStruct::String+),
29
+ # * a {#sname} field (64-byte +BinStruct::CString+),
30
+ # * a {#file} field (128-byte +BinStruct::CString+),
31
+ # * and a body (+BinStruct::String+).
32
32
  #
33
- # == Create a BOOTP header
33
+ # @example Create a BOOTP header
34
34
  # # standalone
35
35
  # bootp = PacketGen::Header::BOOTP.new
36
36
  # # in a packet
37
- # pkt = PacketGen.gen('IP').add('BOOTP')
37
+ # pkt = PacketGen.gen('IP').add('UDP').add('BOOTP')
38
38
  # # access to BOOTP header
39
- # pkt.bootp # => PacketGen::Header::BOOTP
39
+ # pkt.bootp.protocol_name # => "BOOTP"
40
40
  # @author Sylvain Daubert
41
41
  # @since 2.2.0
42
42
  class BOOTP < Base
@@ -52,84 +52,82 @@ module PacketGen
52
52
  # @!attribute op
53
53
  # 8-bit opcode
54
54
  # @return [Integer]
55
- define_field :op, Types::Int8Enum, enum: OPCODES
55
+ define_attr :op, BinStruct::Int8Enum, enum: OPCODES
56
56
 
57
57
  # @!attribute htype
58
58
  # 8-bit hardware address type
59
59
  # @return [Integer]
60
- define_field :htype, Types::Int8, default: 1
60
+ define_attr :htype, BinStruct::Int8, default: 1
61
61
 
62
62
  # @!attribute hlen
63
63
  # 8-bit hardware address length
64
64
  # @return [Integer]
65
- define_field :hlen, Types::Int8, default: 6
65
+ define_attr :hlen, BinStruct::Int8, default: 6
66
66
 
67
67
  # @!attribute hops
68
68
  # @return [Integer]
69
- define_field :hops, Types::Int8
69
+ define_attr :hops, BinStruct::Int8
70
70
 
71
71
  # @!attribute xid
72
72
  # 32-bit Transaction ID
73
73
  # @return [Integer]
74
- define_field :xid, Types::Int32
74
+ define_attr :xid, BinStruct::Int32
75
75
 
76
76
  # @!attribute secs
77
77
  # 16-bit integer: number of seconds elapsed since client began address
78
78
  # acquisition or renewal process
79
79
  # @return [Integer]
80
- define_field :secs, Types::Int16
80
+ define_attr :secs, BinStruct::Int16
81
81
 
82
82
  # @!attribute flags
83
83
  # 16-bit flag field
84
84
  # @return [Integer]
85
- define_field :flags, Types::Int16
85
+ # @!attribute b
86
+ # Broadcast flag, from {#flags}
87
+ # @return [Boolean]
88
+ # @!attribute mbz
89
+ # 15-bit Must Be Zero bits, from {#flags}
90
+ # @return [Boolean]
91
+ define_bit_attr :flags, b: 1, mbz: 15
86
92
 
87
93
  # @!attribute ciaddr
88
94
  # client IP address
89
95
  # @return [String]
90
- define_field :ciaddr, IP::Addr
96
+ define_attr :ciaddr, IP::Addr
91
97
 
92
98
  # @!attribute yiaddr
93
99
  # 'your' (client) IP address
94
100
  # @return [String]
95
- define_field :yiaddr, IP::Addr
101
+ define_attr :yiaddr, IP::Addr
96
102
 
97
103
  # @!attribute siaddr
98
104
  # IP address of next server to use in bootstrap
99
105
  # @return [String]
100
- define_field :siaddr, IP::Addr
106
+ define_attr :siaddr, IP::Addr
101
107
 
102
108
  # @!attribute giaddr
103
109
  # Relay agent IP address, used in booting via a relay agent
104
110
  # @return [String]
105
- define_field :giaddr, IP::Addr
111
+ define_attr :giaddr, IP::Addr
106
112
 
107
113
  # @!attribute chaddr
108
114
  # client hardware address
109
115
  # @return [String]
110
- define_field :chaddr, Types::String, static_length: 16
116
+ define_attr :chaddr, BinStruct::String, static_length: 16
111
117
 
112
118
  # @!attribute sname
113
119
  # optional server hostname, null-terminated string
114
120
  # @return [String]
115
- define_field :sname, Types::CString, static_length: 64
121
+ define_attr :sname, BinStruct::CString, static_length: 64
116
122
 
117
123
  # @!attribute file
118
124
  # Boot file name, null terminated string
119
125
  # @return [String]
120
- define_field :file, Types::CString, static_length: 128
126
+ define_attr :file, BinStruct::CString, static_length: 128
121
127
 
122
128
  # @!attribute body
123
129
  # @return [String]
124
- define_field :body, Types::String
125
-
126
- # @!attribute b
127
- # Broadcast flag, from {#flags}
128
- # @return [Boolean]
129
- # @!attribute mbz
130
- # 15-bit Must Be Zero bits, from {#flags}
131
- # @return [Boolean]
132
- define_bit_fields_on :flags, :b, :mbz, 15
130
+ define_attr :body, BinStruct::String
133
131
 
134
132
  # @return [String]
135
133
  def inspect
@@ -58,52 +58,52 @@ module PacketGen
58
58
  }.freeze
59
59
 
60
60
  # @!parse
61
- # # Option class with string value. {#type #type} and {#length #length} are
62
- # # {Types::Int8}.
61
+ # # Option class with string value. +#type+ and +#length+ are
62
+ # # +BinStruct::Int8+.
63
63
  # #
64
- # # See also {IPAddrOption}, {Int8Option}, {Int16Option} and {Int32Option}.
64
+ # # See also specialized {IPAddrOption}, {Int8Option}, {Int16Option} and {Int32Option}.
65
65
  # # @since 2.2.0
66
- # # @since 3.1.0 subclass of {Types::AbstractTLV}
67
- # class Option < Types::AbstractTLV; end
66
+ # # @since 3.1.0 subclass of +BinStruct::AbstractTLV+
67
+ # class Option < BinStruct::AbstractTLV; end
68
68
  # @private
69
- Option = Types::AbstractTLV.create
69
+ Option = BinStruct::AbstractTLV.create
70
70
  Option.define_type_enum DHCP_OPTIONS
71
71
  # @!parse
72
72
  # # {Option} class with IP address value
73
73
  # # @since 2.2.0
74
- # # @since 3.1.0 subclass of {Types::AbstractTLV}
75
- # class IPAddrOption < Types::AbstractTLV; end
74
+ # # @since 3.1.0 subclass of +BinStruct::AbstractTLV+
75
+ # class IPAddrOption < BinStruct::AbstractTLV; end
76
76
  # @private
77
- IPAddrOption = Types::AbstractTLV.create(value_class: IP::Addr)
77
+ IPAddrOption = BinStruct::AbstractTLV.create(value_class: IP::Addr)
78
78
  IPAddrOption.define_type_enum DHCP_OPTIONS
79
79
  # @!parse
80
80
  # # {Option} class with int8 value
81
81
  # # @since 2.2.0
82
- # # @since 3.1.0 subclass of {Types::AbstractTLV}
83
- # class Int8Option < Types::AbstractTLV; end
82
+ # # @since 3.1.0 subclass of +BinStruct::AbstractTLV+
83
+ # class Int8Option < BinStruct::AbstractTLV; end
84
84
  # @private
85
- Int8Option = Types::AbstractTLV.create(value_class: Types::Int8)
85
+ Int8Option = BinStruct::AbstractTLV.create(value_class: BinStruct::Int8)
86
86
  Int8Option.define_type_enum DHCP_OPTIONS
87
87
  # @!parse
88
88
  # # {Option} class with int16 value
89
89
  # # @since 2.2.0
90
- # # @since 3.1.0 subclass of {Types::AbstractTLV}
91
- # class Int16Option < Types::AbstractTLV; end
90
+ # # @since 3.1.0 subclass of {+inStruct::AbstractTLV+
91
+ # class Int16Option < BinStruct::AbstractTLV; end
92
92
  # @private
93
- Int16Option = Types::AbstractTLV.create(value_class: Types::Int16)
93
+ Int16Option = BinStruct::AbstractTLV.create(value_class: BinStruct::Int16)
94
94
  Int16Option.define_type_enum DHCP_OPTIONS
95
95
  # @!parse
96
96
  # # {Option} class with int32 value
97
97
  # # @since 2.2.0
98
- # # @since 3.1.0 subclass of {Types::AbstractTLV}
99
- # class Int32Option < Types::AbstractTLV; end
98
+ # # @since 3.1.0 subclass of +BinStruct::AbstractTLV+
99
+ # class Int32Option < BinStruct::AbstractTLV; end
100
100
  # @private
101
- Int32Option = Types::AbstractTLV.create(value_class: Types::Int32)
101
+ Int32Option = BinStruct::AbstractTLV.create(value_class: BinStruct::Int32)
102
102
  Int32Option.define_type_enum DHCP_OPTIONS
103
103
 
104
104
  # Class to indicate DHCP options end
105
- class End < Types::Int8
106
- def initialize(value=255)
105
+ class End < BinStruct::Int8
106
+ def initialize(options={ value: 255 })
107
107
  super
108
108
  end
109
109
 
@@ -115,7 +115,7 @@ module PacketGen
115
115
 
116
116
  # Class to indicate padding after DHCP options
117
117
  class Pad < End
118
- def initialize(value=0)
118
+ def initialize(options={ value: 0 })
119
119
  super
120
120
  end
121
121
  end
@@ -9,9 +9,9 @@
9
9
  module PacketGen
10
10
  module Header
11
11
  class DHCP
12
- # Container class for {Option DHCP Options}.
12
+ # Container class for {Option DHCP Options}. Accepted options are listed on {DHCP::DHCP_OPTIONS}.
13
13
  #
14
- # == Add DHCP options to an +Options+ instance
14
+ # @example Add DHCP options to an +Options+ instance
15
15
  # options = PacketGen::Header::DHCP::Options.new
16
16
  # # Add a lease_time option
17
17
  # options << { type: 'lease_time', value: 3600 }
@@ -22,7 +22,7 @@ module PacketGen
22
22
  # # And finish with padding
23
23
  # options << { type: 'pad' }
24
24
  # @author Sylvain Daubert
25
- class Options < Types::Array
25
+ class Options < BinStruct::Array
26
26
  set_of Option
27
27
 
28
28
  private
@@ -12,22 +12,21 @@ module PacketGen
12
12
  # RFC 2131}
13
13
  #
14
14
  # A DHCP header is quite simple. It is composed of:
15
- # * a {#magic} field ({Types::Int32}) to retrieve it in a BOOTP header,
16
- # * a, {#options} field ({Options} type, which is a collection of DHCP
15
+ # * a {#magic} field (+BinStruct::Int32+) to retrieve it in a BOOTP header,
16
+ # * a {#options} field ({Options} type, which is a collection of DHCP
17
17
  # options).
18
18
  #
19
19
  # In PacketGen, a DHCP header is always a secondary header after {BOOTP} one.
20
20
  #
21
- # == Create a DHCP header
21
+ # @example Create a DHCP header
22
22
  # # standalone
23
23
  # dhcp = PacketGen::Header::DHCP.new
24
24
  # # in a packet
25
- # pkt = PacketGen.gen('IP').add('BOOTP').add('DHCP')
25
+ # pkt = PacketGen.gen('IP').add('UDP').add('BOOTP').add('DHCP')
26
26
  # # access to DHCP header
27
- # pkt.dhcp # => PacketGen::Header::DHCP
27
+ # pkt.dhcp.class # => PacketGen::Header::DHCP
28
28
  #
29
- # == Add options
30
- # Options may be added these ways:
29
+ # @example Add options to a DHCP header
31
30
  # dhcp = PacketGen::Header::DHCP.new
32
31
  # # Add a lease_time option
33
32
  # dhcp.options << { type: 'lease_time', value: 3600 }
@@ -50,10 +49,10 @@ module PacketGen
50
49
 
51
50
  # @!attribute magic
52
51
  # @return [Integer]
53
- define_field :magic, Types::Int32, default: 0x63825563
52
+ define_attr :magic, BinStruct::Int32, default: 0x63825563
54
53
  # @!attribute options
55
54
  # @return [DHCP::Options]
56
- define_field :options, DHCP::Options
55
+ define_attr :options, DHCP::Options
57
56
 
58
57
  # differentiate from BOOTP by checking presence of DHCP magic
59
58
  # @return [Boolean]
@@ -11,8 +11,8 @@ module PacketGen
11
11
  class DHCPv6
12
12
  # @abstract Base class for DUID (DHCP Unique ID)
13
13
  # @author Sylvain Daubert
14
- class DUID < Types::Fields
15
- include Types::Fieldable
14
+ class DUID < BinStruct::Struct
15
+ include BinStruct::Structable
16
16
 
17
17
  TYPES = {
18
18
  'DUID-LLT' => 1,
@@ -23,12 +23,12 @@ module PacketGen
23
23
  # @!attribute type
24
24
  # 16-bit DUID type
25
25
  # @return [Integer]
26
- define_field :type, Types::Int16Enum, enum: TYPES
26
+ define_attr :type, BinStruct::Int16Enum, enum: TYPES
27
27
  # @!attribute body
28
- # @abstract replaced by specific fields in subclasses
28
+ # @abstract replaced by specific attributes in subclasses
29
29
  # DUID data.
30
30
  # @return [String]
31
- define_field :body, Types::String
31
+ define_attr :body, BinStruct::String
32
32
 
33
33
  alias private_read read
34
34
  private :private_read
@@ -50,7 +50,7 @@ module PacketGen
50
50
  self
51
51
  end
52
52
  else
53
- private_read str
53
+ private_read(str)
54
54
  end
55
55
  end
56
56
 
@@ -72,7 +72,7 @@ module PacketGen
72
72
  # DUID Based on Link-layer Address Plus Time
73
73
  # @author Sylvain Daubert
74
74
  class DUID_LLT < DUID
75
- remove_field :body
75
+ remove_attr :body
76
76
 
77
77
  # Base time for time computation
78
78
  BASE_TIME = Time.utc(2000, 1, 1)
@@ -80,14 +80,14 @@ module PacketGen
80
80
  # @!attribute htype
81
81
  # 16-bit hardware protocol type
82
82
  # @return [Integer]
83
- define_field :htype, Types::Int16, default: 1
83
+ define_attr :htype, BinStruct::Int16, default: 1
84
84
  # @!attribute time
85
85
  # 32-bit time information
86
86
  # @return [Time]
87
- define_field :time, Types::Int32, default: (Time.now - BASE_TIME).to_i
87
+ define_attr :time, BinStruct::Int32, default: (Time.now - BASE_TIME).to_i
88
88
  # @!attribute link_addr
89
89
  # @return [Eth::MacAddr]
90
- define_field :link_addr, Eth::MacAddr
90
+ define_attr :link_addr, Eth::MacAddr
91
91
 
92
92
  undef time, time=
93
93
 
@@ -112,15 +112,15 @@ module PacketGen
112
112
  # DUID Based on Enterprise Number
113
113
  # @author Sylvain Daubert
114
114
  class DUID_EN < DUID
115
- remove_field :body
115
+ remove_attr :body
116
116
 
117
117
  # @!attribute en
118
118
  # 32-bit entreprise number
119
119
  # @return [Integer]
120
- define_field :en, Types::Int32
120
+ define_attr :en, BinStruct::Int32
121
121
  # @!attribute identifier
122
122
  # @return [String]
123
- define_field :identifier, Types::String
123
+ define_attr :identifier, BinStruct::String
124
124
 
125
125
  # Get human-readable DUID description
126
126
  # @return [String]
@@ -132,15 +132,15 @@ module PacketGen
132
132
  # DUID Based on Link-layer
133
133
  # @author Sylvain Daubert
134
134
  class DUID_LL < DUID
135
- remove_field :body
135
+ remove_attr :body
136
136
 
137
137
  # @!attribute htype
138
138
  # 16-bit hardware protocol type
139
139
  # @return [Integer]
140
- define_field :htype, Types::Int16, default: 1
140
+ define_attr :htype, BinStruct::Int16, default: 1
141
141
  # @!attribute link_addr
142
142
  # @return [Eth::MacAddr]
143
- define_field :link_addr, Eth::MacAddr
143
+ define_attr :link_addr, Eth::MacAddr
144
144
 
145
145
  # Get human-readable DUID description
146
146
  # @return [String]