packetgen 2.6.0 → 2.7.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +28 -0
- data/Rakefile +6 -6
- data/bin/pgconsole +6 -6
- data/lib/packetgen.rb +4 -3
- data/lib/packetgen/capture.rb +5 -7
- data/lib/packetgen/config.rb +3 -3
- data/lib/packetgen/deprecation.rb +17 -0
- data/lib/packetgen/header.rb +40 -38
- data/lib/packetgen/header/arp.rb +46 -31
- data/lib/packetgen/header/asn1_base.rb +8 -8
- data/lib/packetgen/header/base.rb +108 -36
- data/lib/packetgen/header/bootp.rb +28 -19
- data/lib/packetgen/header/crypto.rb +6 -8
- data/lib/packetgen/header/dhcp.rb +4 -5
- data/lib/packetgen/header/dhcp/option.rb +46 -34
- data/lib/packetgen/header/dhcp/options.rb +0 -1
- data/lib/packetgen/header/dhcpv6.rb +10 -10
- data/lib/packetgen/header/dhcpv6/duid.rb +2 -3
- data/lib/packetgen/header/dhcpv6/option.rb +16 -21
- data/lib/packetgen/header/dhcpv6/relay.rb +6 -4
- data/lib/packetgen/header/dns.rb +13 -11
- data/lib/packetgen/header/dns/name.rb +4 -6
- data/lib/packetgen/header/dns/opt.rb +31 -31
- data/lib/packetgen/header/dns/option.rb +0 -2
- data/lib/packetgen/header/dns/qdsection.rb +1 -2
- data/lib/packetgen/header/dns/question.rb +19 -13
- data/lib/packetgen/header/dns/rr.rb +11 -14
- data/lib/packetgen/header/dns/rrsection.rb +5 -7
- data/lib/packetgen/header/dot11.rb +45 -29
- data/lib/packetgen/header/dot11/control.rb +3 -5
- data/lib/packetgen/header/dot11/data.rb +34 -6
- data/lib/packetgen/header/dot11/element.rb +0 -1
- data/lib/packetgen/header/dot11/management.rb +9 -5
- data/lib/packetgen/header/dot11/sub_mngt.rb +13 -14
- data/lib/packetgen/header/dot1q.rb +2 -2
- data/lib/packetgen/header/dot1x.rb +3 -4
- data/lib/packetgen/header/eap.rb +62 -53
- data/lib/packetgen/header/eap/fast.rb +0 -1
- data/lib/packetgen/header/eap/md5.rb +1 -2
- data/lib/packetgen/header/eap/tls.rb +9 -10
- data/lib/packetgen/header/eap/ttls.rb +9 -10
- data/lib/packetgen/header/esp.rb +33 -33
- data/lib/packetgen/header/eth.rb +11 -8
- data/lib/packetgen/header/gre.rb +5 -6
- data/lib/packetgen/header/http/headers.rb +11 -14
- data/lib/packetgen/header/http/request.rb +20 -20
- data/lib/packetgen/header/http/response.rb +16 -18
- data/lib/packetgen/header/http/verbs.rb +5 -5
- data/lib/packetgen/header/icmp.rb +1 -3
- data/lib/packetgen/header/icmpv6.rb +1 -3
- data/lib/packetgen/header/igmp.rb +5 -6
- data/lib/packetgen/header/igmpv3.rb +5 -9
- data/lib/packetgen/header/igmpv3/group_record.rb +4 -5
- data/lib/packetgen/header/igmpv3/mq.rb +2 -2
- data/lib/packetgen/header/igmpv3/mr.rb +4 -3
- data/lib/packetgen/header/ike.rb +33 -8
- data/lib/packetgen/header/ike/auth.rb +4 -6
- data/lib/packetgen/header/ike/cert.rb +0 -2
- data/lib/packetgen/header/ike/certreq.rb +1 -3
- data/lib/packetgen/header/ike/id.rb +1 -3
- data/lib/packetgen/header/ike/ke.rb +0 -2
- data/lib/packetgen/header/ike/nonce.rb +0 -2
- data/lib/packetgen/header/ike/notify.rb +22 -24
- data/lib/packetgen/header/ike/payload.rb +198 -199
- data/lib/packetgen/header/ike/sa.rb +21 -30
- data/lib/packetgen/header/ike/sk.rb +16 -17
- data/lib/packetgen/header/ike/ts.rb +22 -24
- data/lib/packetgen/header/ike/vendor_id.rb +0 -2
- data/lib/packetgen/header/ip.rb +30 -23
- data/lib/packetgen/header/ip/addr.rb +5 -6
- data/lib/packetgen/header/ip/option.rb +11 -15
- data/lib/packetgen/header/ip/options.rb +1 -2
- data/lib/packetgen/header/ipv6.rb +27 -12
- data/lib/packetgen/header/ipv6/addr.rb +2 -2
- data/lib/packetgen/header/ipv6/extension.rb +1 -1
- data/lib/packetgen/header/ipv6/hop_by_hop.rb +11 -11
- data/lib/packetgen/header/llc.rb +4 -3
- data/lib/packetgen/header/mdns.rb +11 -5
- data/lib/packetgen/header/mld.rb +4 -4
- data/lib/packetgen/header/mldv2.rb +4 -3
- data/lib/packetgen/header/mldv2/mcast_address_record.rb +3 -4
- data/lib/packetgen/header/mldv2/mlq.rb +3 -4
- data/lib/packetgen/header/mldv2/mlr.rb +4 -3
- data/lib/packetgen/header/netbios.rb +18 -5
- data/lib/packetgen/header/ospfv2.rb +6 -7
- data/lib/packetgen/header/ospfv2/db_description.rb +3 -4
- data/lib/packetgen/header/ospfv2/hello.rb +2 -3
- data/lib/packetgen/header/ospfv2/ls_ack.rb +2 -3
- data/lib/packetgen/header/ospfv2/ls_request.rb +2 -3
- data/lib/packetgen/header/ospfv2/ls_update.rb +5 -6
- data/lib/packetgen/header/ospfv2/lsa.rb +13 -14
- data/lib/packetgen/header/ospfv2/lsa_header.rb +4 -5
- data/lib/packetgen/header/ospfv3.rb +3 -4
- data/lib/packetgen/header/ospfv3/db_description.rb +3 -5
- data/lib/packetgen/header/ospfv3/hello.rb +2 -3
- data/lib/packetgen/header/ospfv3/ipv6_prefix.rb +7 -8
- data/lib/packetgen/header/ospfv3/ls_ack.rb +2 -3
- data/lib/packetgen/header/ospfv3/ls_request.rb +2 -3
- data/lib/packetgen/header/ospfv3/ls_update.rb +5 -6
- data/lib/packetgen/header/ospfv3/lsa.rb +10 -11
- data/lib/packetgen/header/ospfv3/lsa_header.rb +3 -4
- data/lib/packetgen/header/snmp.rb +45 -32
- data/lib/packetgen/header/tcp.rb +13 -9
- data/lib/packetgen/header/tcp/option.rb +16 -11
- data/lib/packetgen/header/tcp/options.rb +3 -4
- data/lib/packetgen/header/tftp.rb +15 -17
- data/lib/packetgen/header/udp.rb +10 -4
- data/lib/packetgen/inspect.rb +7 -9
- data/lib/packetgen/packet.rb +44 -22
- data/lib/packetgen/pcapng.rb +1 -5
- data/lib/packetgen/pcapng/block.rb +17 -11
- data/lib/packetgen/pcapng/epb.rb +6 -11
- data/lib/packetgen/pcapng/file.rb +37 -44
- data/lib/packetgen/pcapng/idb.rb +17 -22
- data/lib/packetgen/pcapng/shb.rb +7 -10
- data/lib/packetgen/pcapng/spb.rb +21 -17
- data/lib/packetgen/pcapng/unknown_block.rb +17 -13
- data/lib/packetgen/proto.rb +1 -2
- data/lib/packetgen/types/array.rb +119 -34
- data/lib/packetgen/types/cstring.rb +1 -5
- data/lib/packetgen/types/enum.rb +8 -10
- data/lib/packetgen/types/fields.rb +34 -28
- data/lib/packetgen/types/int.rb +11 -13
- data/lib/packetgen/types/int_string.rb +6 -8
- data/lib/packetgen/types/oui.rb +3 -6
- data/lib/packetgen/types/string.rb +4 -6
- data/lib/packetgen/types/tlv.rb +11 -14
- data/lib/packetgen/utils.rb +15 -23
- data/lib/packetgen/utils/arp_spoofer.rb +12 -18
- data/lib/packetgen/version.rb +1 -1
- data/packetgen.gemspec +9 -8
- metadata +19 -17
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Certificate payloads.
|
14
13
|
#
|
15
14
|
# A Cert payload consists of the IKE generic payload header (see {Payload})
|
@@ -37,7 +36,6 @@ module PacketGen
|
|
37
36
|
# pkt.calc_length
|
38
37
|
# @author Sylvain Daubert
|
39
38
|
class Cert < Payload
|
40
|
-
|
41
39
|
# Payload type number
|
42
40
|
PAYLOAD_TYPE = 37
|
43
41
|
|
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Certificate Request payloads.
|
14
13
|
#
|
15
14
|
# A CertReq payload consists of the IKE generic payload header (see {Payload})
|
@@ -36,7 +35,6 @@ module PacketGen
|
|
36
35
|
# pkt.calc_length
|
37
36
|
# @author Sylvain Daubert
|
38
37
|
class CertReq < Cert
|
39
|
-
|
40
38
|
# Payload type number
|
41
39
|
PAYLOAD_TYPE = 38
|
42
40
|
|
@@ -45,7 +43,7 @@ module PacketGen
|
|
45
43
|
def human_content
|
46
44
|
strs = []
|
47
45
|
idx = 0
|
48
|
-
while idx < content.size
|
46
|
+
while idx < content.size
|
49
47
|
strs << content[idx, 20]
|
50
48
|
idx += 20
|
51
49
|
end
|
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Identification - Initiator payloads, denoted IDi
|
14
13
|
# (see RFC 7296, §3.5).
|
15
14
|
#
|
@@ -38,7 +37,6 @@ module PacketGen
|
|
38
37
|
# pkt.calc_length
|
39
38
|
# @author Sylvain Daubert
|
40
39
|
class IDi < Payload
|
41
|
-
|
42
40
|
# Payload type number
|
43
41
|
PAYLOAD_TYPE = 35
|
44
42
|
|
@@ -50,7 +48,7 @@ module PacketGen
|
|
50
48
|
'DER_ASN1_DN' => 9,
|
51
49
|
'DER_ASN1_GN' => 10,
|
52
50
|
'KEY_ID' => 11
|
53
|
-
}
|
51
|
+
}.freeze
|
54
52
|
|
55
53
|
# @attribute [r] type
|
56
54
|
# 8-bit ID type
|
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Key Exchange payloads, as defined in RFC 7296 §3.4
|
14
13
|
#
|
15
14
|
# A KE payload contains a generic payload header (see {Payload}) and some
|
@@ -40,7 +39,6 @@ module PacketGen
|
|
40
39
|
# pkt.calc_length
|
41
40
|
# @author Sylvain Daubert
|
42
41
|
class KE < Payload
|
43
|
-
|
44
42
|
# Payload type number
|
45
43
|
PAYLOAD_TYPE = 34
|
46
44
|
|
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Nonce payloads, as defined in RFC 7296 §3.9.
|
14
13
|
#
|
15
14
|
# A Nonce payload contains a generic payload header (see {Payload}) and
|
@@ -31,7 +30,6 @@ module PacketGen
|
|
31
30
|
# pkt.calc_length
|
32
31
|
# @author Sylvain Daubert
|
33
32
|
class Nonce < Payload
|
34
|
-
|
35
33
|
# Payload type number
|
36
34
|
PAYLOAD_TYPE = 40
|
37
35
|
end
|
@@ -9,7 +9,6 @@
|
|
9
9
|
module PacketGen
|
10
10
|
module Header
|
11
11
|
class IKE
|
12
|
-
|
13
12
|
# This class handles Notify payloads, as defined in RFC 7296 §3.10.
|
14
13
|
#
|
15
14
|
# A Notify payload contains a generic payload header (see {Payload}) and
|
@@ -49,7 +48,6 @@ module PacketGen
|
|
49
48
|
# pkt.calc_length
|
50
49
|
# @author Sylvain Daubert
|
51
50
|
class Notify < Payload
|
52
|
-
|
53
51
|
# Payload type number
|
54
52
|
PAYLOAD_TYPE = 41
|
55
53
|
|
@@ -72,18 +70,18 @@ module PacketGen
|
|
72
70
|
'INVALID_SELECTORS' => 39,
|
73
71
|
'TEMPORARY_FAILURE' => 43,
|
74
72
|
'CHILD_SA_NOT_FOUND' => 44,
|
75
|
-
'INITIAL_CONTACT' =>
|
76
|
-
'SET_WINDOW_SIZE' =>
|
77
|
-
'ADDITIONAL_TS_POSSIBLE' =>
|
78
|
-
'IPCOMP_SUPPORTED' =>
|
79
|
-
'NAT_DETECTION_SOURCE_IP' =>
|
80
|
-
'NAT_DETECTION_DESTINATION_IP' =>
|
81
|
-
'COOKIE' =>
|
82
|
-
'USE_TRANSPORT_MODE' =>
|
83
|
-
'HTTP_CERT_LOOKUP_SUPPORTED' =>
|
84
|
-
'REKEY_SA' =>
|
85
|
-
'ESP_TFC_PADDING_NOT_SUPPORTED' =>
|
86
|
-
'NON_FIRST_FRAGMENTS_ALSO' =>
|
73
|
+
'INITIAL_CONTACT' => 16_384,
|
74
|
+
'SET_WINDOW_SIZE' => 16_385,
|
75
|
+
'ADDITIONAL_TS_POSSIBLE' => 16_386,
|
76
|
+
'IPCOMP_SUPPORTED' => 16_387,
|
77
|
+
'NAT_DETECTION_SOURCE_IP' => 16_388,
|
78
|
+
'NAT_DETECTION_DESTINATION_IP' => 16_389,
|
79
|
+
'COOKIE' => 16_390,
|
80
|
+
'USE_TRANSPORT_MODE' => 16_391,
|
81
|
+
'HTTP_CERT_LOOKUP_SUPPORTED' => 16_392,
|
82
|
+
'REKEY_SA' => 16_393,
|
83
|
+
'ESP_TFC_PADDING_NOT_SUPPORTED' => 16_394,
|
84
|
+
'NON_FIRST_FRAGMENTS_ALSO' => 16_395,
|
87
85
|
}.freeze
|
88
86
|
|
89
87
|
# @!attribute [r] protocol
|
@@ -119,7 +117,7 @@ module PacketGen
|
|
119
117
|
alias type message_type
|
120
118
|
|
121
119
|
def initialize(options={})
|
122
|
-
if options[:spi]
|
120
|
+
if options[:spi] && options[:spi_size].nil?
|
123
121
|
options[:spi_size] = options[:spi].size
|
124
122
|
end
|
125
123
|
super
|
@@ -133,12 +131,12 @@ module PacketGen
|
|
133
131
|
# @return [Integer]
|
134
132
|
def protocol=(value)
|
135
133
|
proto = case value
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
134
|
+
when Integer
|
135
|
+
value
|
136
|
+
else
|
137
|
+
c = IKE.constants.grep(/PROTO_#{value}/).first
|
138
|
+
c ? IKE.const_get(c) : nil
|
139
|
+
end
|
142
140
|
raise ArgumentError, "unknown protocol #{value.inspect}" unless proto
|
143
141
|
self[:protocol].value = proto
|
144
142
|
end
|
@@ -148,8 +146,8 @@ module PacketGen
|
|
148
146
|
# Get protocol name
|
149
147
|
# @return [String]
|
150
148
|
def human_protocol
|
151
|
-
name = IKE.constants.grep(/PROTO/)
|
152
|
-
|
149
|
+
name = IKE.constants.grep(/PROTO/)
|
150
|
+
.detect { |c| IKE.const_get(c) == protocol } || "proto #{protocol}"
|
153
151
|
name.to_s.sub(/PROTO_/, '')
|
154
152
|
end
|
155
153
|
|
@@ -165,7 +163,7 @@ module PacketGen
|
|
165
163
|
str = Inspect.dashed_line(self.class, 2)
|
166
164
|
fields.each do |attr|
|
167
165
|
next if attr == :body
|
168
|
-
if %i
|
166
|
+
if %i[protocol message_type].include? attr
|
169
167
|
str << Inspect.shift_level(2)
|
170
168
|
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr,
|
171
169
|
send("human_#{attr}")]
|
@@ -8,7 +8,6 @@
|
|
8
8
|
module PacketGen
|
9
9
|
module Header
|
10
10
|
class IKE
|
11
|
-
|
12
11
|
# Base class for IKE payloads. This class may also be used for unknown payloads.
|
13
12
|
#
|
14
13
|
# This class handles generic IKE payload header:
|
@@ -100,217 +99,217 @@ require_relative 'vendor_id'
|
|
100
99
|
|
101
100
|
module PacketGen
|
102
101
|
module Header
|
103
|
-
IKE.
|
104
|
-
IKE::Payload.
|
105
|
-
IKE::KE.
|
106
|
-
IKE::Nonce.
|
107
|
-
IKE::Notify.
|
108
|
-
IKE::SK.
|
109
|
-
IKE::IDi.
|
110
|
-
IKE::IDr.
|
111
|
-
IKE::Cert.
|
112
|
-
IKE::CertReq.
|
113
|
-
IKE::Auth.
|
114
|
-
IKE::TSi.
|
115
|
-
IKE::TSr.
|
116
|
-
IKE::VendorID.
|
102
|
+
IKE.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
103
|
+
IKE::Payload.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
104
|
+
IKE::KE.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
105
|
+
IKE::Nonce.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
106
|
+
IKE::Notify.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
107
|
+
IKE::SK.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
108
|
+
IKE::IDi.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
109
|
+
IKE::IDr.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
110
|
+
IKE::Cert.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
111
|
+
IKE::CertReq.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
112
|
+
IKE::Auth.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
113
|
+
IKE::TSi.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
114
|
+
IKE::TSr.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
115
|
+
IKE::VendorID.bind IKE::SA, next: IKE::SA::PAYLOAD_TYPE
|
117
116
|
|
118
|
-
IKE.
|
119
|
-
IKE::Payload.
|
120
|
-
IKE::SA.
|
121
|
-
IKE::Nonce.
|
122
|
-
IKE::Notify.
|
123
|
-
IKE::SK.
|
124
|
-
IKE::IDi.
|
125
|
-
IKE::IDr.
|
126
|
-
IKE::Cert.
|
127
|
-
IKE::CertReq.
|
128
|
-
IKE::Auth.
|
129
|
-
IKE::TSi.
|
130
|
-
IKE::TSr.
|
131
|
-
IKE::VendorID.
|
117
|
+
IKE.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
118
|
+
IKE::Payload.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
119
|
+
IKE::SA.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
120
|
+
IKE::Nonce.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
121
|
+
IKE::Notify.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
122
|
+
IKE::SK.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
123
|
+
IKE::IDi.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
124
|
+
IKE::IDr.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
125
|
+
IKE::Cert.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
126
|
+
IKE::CertReq.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
127
|
+
IKE::Auth.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
128
|
+
IKE::TSi.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
129
|
+
IKE::TSr.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
130
|
+
IKE::VendorID.bind IKE::KE, next: IKE::KE::PAYLOAD_TYPE
|
132
131
|
|
133
|
-
IKE.
|
134
|
-
IKE::Payload.
|
135
|
-
IKE::SA.
|
136
|
-
IKE::KE.
|
137
|
-
IKE::Notify.
|
138
|
-
IKE::SK.
|
139
|
-
IKE::IDi.
|
140
|
-
IKE::IDr.
|
141
|
-
IKE::Cert.
|
142
|
-
IKE::CertReq.
|
143
|
-
IKE::Auth.
|
144
|
-
IKE::TSi.
|
145
|
-
IKE::TSr.
|
146
|
-
IKE::VendorID.
|
132
|
+
IKE.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
133
|
+
IKE::Payload.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
134
|
+
IKE::SA.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
135
|
+
IKE::KE.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
136
|
+
IKE::Notify.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
137
|
+
IKE::SK.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
138
|
+
IKE::IDi.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
139
|
+
IKE::IDr.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
140
|
+
IKE::Cert.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
141
|
+
IKE::CertReq.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
142
|
+
IKE::Auth.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
143
|
+
IKE::TSi.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
144
|
+
IKE::TSr.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
145
|
+
IKE::VendorID.bind IKE::Nonce, next: IKE::Nonce::PAYLOAD_TYPE
|
147
146
|
|
148
|
-
IKE.
|
149
|
-
IKE::Payload.
|
150
|
-
IKE::SA.
|
151
|
-
IKE::KE.
|
152
|
-
IKE::Nonce.
|
153
|
-
IKE::Notify.
|
154
|
-
IKE::SK.
|
155
|
-
IKE::IDi.
|
156
|
-
IKE::IDr.
|
157
|
-
IKE::Cert.
|
158
|
-
IKE::CertReq.
|
159
|
-
IKE::Auth.
|
160
|
-
IKE::TSi.
|
161
|
-
IKE::TSr.
|
162
|
-
IKE::VendorID.
|
147
|
+
IKE.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
148
|
+
IKE::Payload.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
149
|
+
IKE::SA.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
150
|
+
IKE::KE.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
151
|
+
IKE::Nonce.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
152
|
+
IKE::Notify.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
153
|
+
IKE::SK.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
154
|
+
IKE::IDi.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
155
|
+
IKE::IDr.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
156
|
+
IKE::Cert.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
157
|
+
IKE::CertReq.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
158
|
+
IKE::Auth.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
159
|
+
IKE::TSi.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
160
|
+
IKE::TSr.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
161
|
+
IKE::VendorID.bind IKE::Notify, next: IKE::Notify::PAYLOAD_TYPE
|
163
162
|
|
164
|
-
IKE.
|
165
|
-
IKE::Payload.
|
166
|
-
IKE::SA.
|
167
|
-
IKE::KE.
|
168
|
-
IKE::Nonce.
|
169
|
-
IKE::Notify.
|
170
|
-
IKE::IDi.
|
171
|
-
IKE::IDr.
|
172
|
-
IKE::Cert.
|
173
|
-
IKE::CertReq.
|
174
|
-
IKE::Auth.
|
175
|
-
IKE::TSi.
|
176
|
-
IKE::TSr.
|
177
|
-
IKE::VendorID.
|
163
|
+
IKE.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
164
|
+
IKE::Payload.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
165
|
+
IKE::SA.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
166
|
+
IKE::KE.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
167
|
+
IKE::Nonce.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
168
|
+
IKE::Notify.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
169
|
+
IKE::IDi.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
170
|
+
IKE::IDr.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
171
|
+
IKE::Cert.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
172
|
+
IKE::CertReq.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
173
|
+
IKE::Auth.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
174
|
+
IKE::TSi.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
175
|
+
IKE::TSr.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
176
|
+
IKE::VendorID.bind IKE::SK, next: IKE::SK::PAYLOAD_TYPE
|
178
177
|
|
179
|
-
IKE.
|
180
|
-
IKE::Payload.
|
181
|
-
IKE::SA.
|
182
|
-
IKE::KE.
|
183
|
-
IKE::Nonce.
|
184
|
-
IKE::Notify.
|
185
|
-
IKE::SK.
|
186
|
-
IKE::IDr.
|
187
|
-
IKE::Cert.
|
188
|
-
IKE::CertReq.
|
189
|
-
IKE::Auth.
|
190
|
-
IKE::TSi.
|
191
|
-
IKE::TSr.
|
192
|
-
IKE::VendorID.
|
178
|
+
IKE.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
179
|
+
IKE::Payload.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
180
|
+
IKE::SA.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
181
|
+
IKE::KE.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
182
|
+
IKE::Nonce.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
183
|
+
IKE::Notify.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
184
|
+
IKE::SK.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
185
|
+
IKE::IDr.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
186
|
+
IKE::Cert.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
187
|
+
IKE::CertReq.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
188
|
+
IKE::Auth.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
189
|
+
IKE::TSi.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
190
|
+
IKE::TSr.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
191
|
+
IKE::VendorID.bind IKE::IDi, next: IKE::IDi::PAYLOAD_TYPE
|
193
192
|
|
194
|
-
IKE.
|
195
|
-
IKE::Payload.
|
196
|
-
IKE::SA.
|
197
|
-
IKE::KE.
|
198
|
-
IKE::Nonce.
|
199
|
-
IKE::Notify.
|
200
|
-
IKE::SK.
|
201
|
-
IKE::IDi.
|
202
|
-
IKE::Cert.
|
203
|
-
IKE::CertReq.
|
204
|
-
IKE::Auth.
|
205
|
-
IKE::TSi.
|
206
|
-
IKE::TSr.
|
207
|
-
IKE::VendorID.
|
193
|
+
IKE.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
194
|
+
IKE::Payload.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
195
|
+
IKE::SA.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
196
|
+
IKE::KE.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
197
|
+
IKE::Nonce.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
198
|
+
IKE::Notify.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
199
|
+
IKE::SK.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
200
|
+
IKE::IDi.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
201
|
+
IKE::Cert.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
202
|
+
IKE::CertReq.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
203
|
+
IKE::Auth.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
204
|
+
IKE::TSi.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
205
|
+
IKE::TSr.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
206
|
+
IKE::VendorID.bind IKE::IDr, next: IKE::IDr::PAYLOAD_TYPE
|
208
207
|
|
209
|
-
IKE.
|
210
|
-
IKE::Payload.
|
211
|
-
IKE::SA.
|
212
|
-
IKE::KE.
|
213
|
-
IKE::Nonce.
|
214
|
-
IKE::Notify.
|
215
|
-
IKE::SK.
|
216
|
-
IKE::IDi.
|
217
|
-
IKE::IDr.
|
218
|
-
IKE::CertReq.
|
219
|
-
IKE::Auth.
|
220
|
-
IKE::TSi.
|
221
|
-
IKE::TSr.
|
222
|
-
IKE::VendorID.
|
208
|
+
IKE.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
209
|
+
IKE::Payload.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
210
|
+
IKE::SA.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
211
|
+
IKE::KE.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
212
|
+
IKE::Nonce.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
213
|
+
IKE::Notify.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
214
|
+
IKE::SK.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
215
|
+
IKE::IDi.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
216
|
+
IKE::IDr.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
217
|
+
IKE::CertReq.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
218
|
+
IKE::Auth.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
219
|
+
IKE::TSi.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
220
|
+
IKE::TSr.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
221
|
+
IKE::VendorID.bind IKE::Cert, next: IKE::Cert::PAYLOAD_TYPE
|
223
222
|
|
224
|
-
IKE.
|
225
|
-
IKE::Payload.
|
226
|
-
IKE::SA.
|
227
|
-
IKE::KE.
|
228
|
-
IKE::Nonce.
|
229
|
-
IKE::Notify.
|
230
|
-
IKE::SK.
|
231
|
-
IKE::IDi.
|
232
|
-
IKE::IDr.
|
233
|
-
IKE::Cert.
|
234
|
-
IKE::Auth.
|
235
|
-
IKE::TSi.
|
236
|
-
IKE::TSr.
|
237
|
-
IKE::VendorID.
|
223
|
+
IKE.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
224
|
+
IKE::Payload.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
225
|
+
IKE::SA.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
226
|
+
IKE::KE.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
227
|
+
IKE::Nonce.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
228
|
+
IKE::Notify.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
229
|
+
IKE::SK.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
230
|
+
IKE::IDi.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
231
|
+
IKE::IDr.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
232
|
+
IKE::Cert.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
233
|
+
IKE::Auth.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
234
|
+
IKE::TSi.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
235
|
+
IKE::TSr.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
236
|
+
IKE::VendorID.bind IKE::CertReq, next: IKE::CertReq::PAYLOAD_TYPE
|
238
237
|
|
239
|
-
IKE.
|
240
|
-
IKE::Payload.
|
241
|
-
IKE::SA.
|
242
|
-
IKE::KE.
|
243
|
-
IKE::Nonce.
|
244
|
-
IKE::Notify.
|
245
|
-
IKE::SK.
|
246
|
-
IKE::IDi.
|
247
|
-
IKE::IDr.
|
248
|
-
IKE::Cert.
|
249
|
-
IKE::CertReq.
|
250
|
-
IKE::TSi.
|
251
|
-
IKE::TSr.
|
252
|
-
IKE::VendorID.
|
238
|
+
IKE.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
239
|
+
IKE::Payload.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
240
|
+
IKE::SA.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
241
|
+
IKE::KE.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
242
|
+
IKE::Nonce.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
243
|
+
IKE::Notify.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
244
|
+
IKE::SK.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
245
|
+
IKE::IDi.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
246
|
+
IKE::IDr.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
247
|
+
IKE::Cert.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
248
|
+
IKE::CertReq.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
249
|
+
IKE::TSi.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
250
|
+
IKE::TSr.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
251
|
+
IKE::VendorID.bind IKE::Auth, next: IKE::Auth::PAYLOAD_TYPE
|
253
252
|
|
254
|
-
IKE.
|
255
|
-
IKE::Payload.
|
256
|
-
IKE::SA.
|
257
|
-
IKE::KE.
|
258
|
-
IKE::Nonce.
|
259
|
-
IKE::Notify.
|
260
|
-
IKE::SK.
|
261
|
-
IKE::IDi.
|
262
|
-
IKE::IDr.
|
263
|
-
IKE::Cert.
|
264
|
-
IKE::CertReq.
|
265
|
-
IKE::Auth.
|
266
|
-
IKE::TSr.
|
267
|
-
IKE::VendorID.
|
253
|
+
IKE.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
254
|
+
IKE::Payload.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
255
|
+
IKE::SA.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
256
|
+
IKE::KE.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
257
|
+
IKE::Nonce.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
258
|
+
IKE::Notify.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
259
|
+
IKE::SK.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
260
|
+
IKE::IDi.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
261
|
+
IKE::IDr.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
262
|
+
IKE::Cert.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
263
|
+
IKE::CertReq.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
264
|
+
IKE::Auth.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
265
|
+
IKE::TSr.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
266
|
+
IKE::VendorID.bind IKE::TSi, next: IKE::TSi::PAYLOAD_TYPE
|
268
267
|
|
269
|
-
IKE.
|
270
|
-
IKE::Payload.
|
271
|
-
IKE::SA.
|
272
|
-
IKE::KE.
|
273
|
-
IKE::Nonce.
|
274
|
-
IKE::Notify.
|
275
|
-
IKE::SK.
|
276
|
-
IKE::IDi.
|
277
|
-
IKE::IDr.
|
278
|
-
IKE::Cert.
|
279
|
-
IKE::CertReq.
|
280
|
-
IKE::Auth.
|
281
|
-
IKE::TSi.
|
282
|
-
IKE::VendorID.
|
268
|
+
IKE.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
269
|
+
IKE::Payload.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
270
|
+
IKE::SA.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
271
|
+
IKE::KE.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
272
|
+
IKE::Nonce.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
273
|
+
IKE::Notify.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
274
|
+
IKE::SK.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
275
|
+
IKE::IDi.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
276
|
+
IKE::IDr.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
277
|
+
IKE::Cert.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
278
|
+
IKE::CertReq.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
279
|
+
IKE::Auth.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
280
|
+
IKE::TSi.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
281
|
+
IKE::VendorID.bind IKE::TSr, next: IKE::TSr::PAYLOAD_TYPE
|
283
282
|
|
284
|
-
IKE.
|
285
|
-
IKE::Payload.
|
286
|
-
IKE::SA.
|
287
|
-
IKE::KE.
|
288
|
-
IKE::Nonce.
|
289
|
-
IKE::Notify.
|
290
|
-
IKE::SK.
|
291
|
-
IKE::IDi.
|
292
|
-
IKE::IDr.
|
293
|
-
IKE::Cert.
|
294
|
-
IKE::CertReq.
|
295
|
-
IKE::Auth.
|
296
|
-
IKE::TSi.
|
297
|
-
IKE::TSr.
|
283
|
+
IKE.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
284
|
+
IKE::Payload.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
285
|
+
IKE::SA.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
286
|
+
IKE::KE.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
287
|
+
IKE::Nonce.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
288
|
+
IKE::Notify.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
289
|
+
IKE::SK.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
290
|
+
IKE::IDi.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
291
|
+
IKE::IDr.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
292
|
+
IKE::Cert.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
293
|
+
IKE::CertReq.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
294
|
+
IKE::Auth.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
295
|
+
IKE::TSi.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
296
|
+
IKE::TSr.bind IKE::VendorID, next: IKE::VendorID::PAYLOAD_TYPE
|
298
297
|
|
299
298
|
# Last defined. To be used as default if no other may be parsed.
|
300
|
-
IKE::SA.
|
301
|
-
IKE::KE.
|
302
|
-
IKE::Nonce.
|
303
|
-
IKE::Notify.
|
304
|
-
IKE::SK.
|
305
|
-
IKE::IDi.
|
306
|
-
IKE::IDr.
|
307
|
-
IKE::Cert.
|
308
|
-
IKE::CertReq.
|
309
|
-
IKE::Auth.
|
310
|
-
IKE::TSi.
|
311
|
-
IKE::TSr.
|
312
|
-
IKE::VendorID.
|
313
|
-
IKE.
|
314
|
-
IKE::Payload.
|
299
|
+
IKE::SA.bind IKE::Payload, next: ->(v) { v > 0 }
|
300
|
+
IKE::KE.bind IKE::Payload, next: ->(v) { v > 0 }
|
301
|
+
IKE::Nonce.bind IKE::Payload, next: ->(v) { v > 0 }
|
302
|
+
IKE::Notify.bind IKE::Payload, next: ->(v) { v > 0 }
|
303
|
+
IKE::SK.bind IKE::Payload, next: ->(v) { v > 0 }
|
304
|
+
IKE::IDi.bind IKE::Payload, next: ->(v) { v > 0 }
|
305
|
+
IKE::IDr.bind IKE::Payload, next: ->(v) { v > 0 }
|
306
|
+
IKE::Cert.bind IKE::Payload, next: ->(v) { v > 0 }
|
307
|
+
IKE::CertReq.bind IKE::Payload, next: ->(v) { v > 0 }
|
308
|
+
IKE::Auth.bind IKE::Payload, next: ->(v) { v > 0 }
|
309
|
+
IKE::TSi.bind IKE::Payload, next: ->(v) { v > 0 }
|
310
|
+
IKE::TSr.bind IKE::Payload, next: ->(v) { v > 0 }
|
311
|
+
IKE::VendorID.bind IKE::Payload, next: ->(v) { v > 0 }
|
312
|
+
IKE.bind IKE::Payload, next: ->(v) { v > 0 }
|
313
|
+
IKE::Payload.bind IKE::Payload, next: ->(v) { v > 0 }
|
315
314
|
end
|
316
315
|
end
|