pypcapkit 1.0.3__cp310-none-any.whl → 1.1.0__cp310-none-any.whl
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.
- pcapkit/__init__.py +1 -1
- pcapkit/const/pcapng/option_type.py +4 -1
- pcapkit/const/reg/apptype.py +19019 -19015
- pcapkit/corekit/fields/collections.py +14 -14
- pcapkit/corekit/fields/field.py +33 -8
- pcapkit/corekit/fields/ipaddress.py +0 -1
- pcapkit/corekit/fields/misc.py +14 -19
- pcapkit/corekit/fields/numbers.py +2 -3
- pcapkit/corekit/fields/strings.py +2 -3
- pcapkit/corekit/infoclass.py +59 -6
- pcapkit/corekit/protochain.py +8 -1
- pcapkit/foundation/registry/protocols.py +108 -16
- pcapkit/protocols/data/__init__.py +4 -4
- pcapkit/protocols/data/internet/__init__.py +4 -4
- pcapkit/protocols/data/internet/mh.py +8 -6
- pcapkit/protocols/data/transport/__init__.py +4 -4
- pcapkit/protocols/data/transport/tcp.py +4 -4
- pcapkit/protocols/internet/mh.py +21 -21
- pcapkit/protocols/protocol.py +3 -2
- pcapkit/protocols/schema/__init__.py +4 -4
- pcapkit/protocols/schema/application/httpv2.py +17 -33
- pcapkit/protocols/schema/internet/__init__.py +4 -4
- pcapkit/protocols/schema/internet/hip.py +62 -111
- pcapkit/protocols/schema/internet/hopopt.py +46 -48
- pcapkit/protocols/schema/internet/ipv4.py +36 -41
- pcapkit/protocols/schema/internet/ipv6_opts.py +48 -52
- pcapkit/protocols/schema/internet/ipv6_route.py +12 -21
- pcapkit/protocols/schema/internet/mh.py +57 -86
- pcapkit/protocols/schema/misc/pcapng.py +182 -193
- pcapkit/protocols/schema/schema.py +252 -53
- pcapkit/protocols/schema/transport/__init__.py +4 -4
- pcapkit/protocols/schema/transport/tcp.py +54 -81
- pcapkit/protocols/transport/tcp.py +14 -14
- pcapkit/vendor/pcapng/option_type.py +29 -2
- pcapkit/vendor/reg/apptype.py +34 -4
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/METADATA +1 -1
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/RECORD +41 -41
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/LICENSE +0 -0
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/WHEEL +0 -0
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/entry_points.txt +0 -0
- {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/top_level.txt +0 -0
pcapkit/protocols/internet/mh.py
CHANGED
@@ -78,15 +78,15 @@ from pcapkit.protocols.data.internet.mh import \
|
|
78
78
|
AlternateCareofAddressOption as Data_AlternateCareofAddressOption
|
79
79
|
from pcapkit.protocols.data.internet.mh import AuthOption as Data_AuthOption
|
80
80
|
from pcapkit.protocols.data.internet.mh import \
|
81
|
-
|
81
|
+
AuthorizationDataOption as Data_AuthorizationDataOption
|
82
82
|
from pcapkit.protocols.data.internet.mh import \
|
83
|
-
|
83
|
+
BindingAcknowledgementMessage as Data_BindingAcknowledgementMessage
|
84
84
|
from pcapkit.protocols.data.internet.mh import BindingErrorMessage as Data_BindingErrorMessage
|
85
|
+
from pcapkit.protocols.data.internet.mh import \
|
86
|
+
BindingRefreshAdviceOption as Data_BindingRefreshAdviceOption
|
85
87
|
from pcapkit.protocols.data.internet.mh import \
|
86
88
|
BindingRefreshRequestMessage as Data_BindingRefreshRequestMessage
|
87
89
|
from pcapkit.protocols.data.internet.mh import BindingUpdateMessage as Data_BindingUpdateMessage
|
88
|
-
from pcapkit.protocols.data.internet.mh import \
|
89
|
-
BindRefreshAdviceOption as Data_BindRefreshAdviceOption
|
90
90
|
from pcapkit.protocols.data.internet.mh import CareofTestInitMessage as Data_CareofTestInitMessage
|
91
91
|
from pcapkit.protocols.data.internet.mh import CareofTestInitOption as Data_CareofTestInitOption
|
92
92
|
from pcapkit.protocols.data.internet.mh import CareofTestMessage as Data_CareofTestMessage
|
@@ -118,15 +118,15 @@ from pcapkit.protocols.schema.internet.mh import \
|
|
118
118
|
AlternateCareofAddressOption as Schema_AlternateCareofAddressOption
|
119
119
|
from pcapkit.protocols.schema.internet.mh import AuthOption as Schema_AuthOption
|
120
120
|
from pcapkit.protocols.schema.internet.mh import \
|
121
|
-
|
121
|
+
AuthorizationDataOption as Schema_AuthorizationDataOption
|
122
122
|
from pcapkit.protocols.schema.internet.mh import \
|
123
|
-
|
123
|
+
BindingAcknowledgementMessage as Schema_BindingAcknowledgementMessage
|
124
124
|
from pcapkit.protocols.schema.internet.mh import BindingErrorMessage as Schema_BindingErrorMessage
|
125
|
+
from pcapkit.protocols.schema.internet.mh import \
|
126
|
+
BindingRefreshAdviceOption as Schema_BindingRefreshAdviceOption
|
125
127
|
from pcapkit.protocols.schema.internet.mh import \
|
126
128
|
BindingRefreshRequestMessage as Schema_BindingRefreshRequestMessage
|
127
129
|
from pcapkit.protocols.schema.internet.mh import BindingUpdateMessage as Schema_BindingUpdateMessage
|
128
|
-
from pcapkit.protocols.schema.internet.mh import \
|
129
|
-
BindRefreshAdviceOption as Schema_BindRefreshAdviceOption
|
130
130
|
from pcapkit.protocols.schema.internet.mh import \
|
131
131
|
CareofTestInitMessage as Schema_CareofTestInitMessage
|
132
132
|
from pcapkit.protocols.schema.internet.mh import CareofTestInitOption as Schema_CareofTestInitOption
|
@@ -1125,8 +1125,8 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
1125
1125
|
)
|
1126
1126
|
return data
|
1127
1127
|
|
1128
|
-
def _read_opt_bra(self, schema: '
|
1129
|
-
options: 'Option') -> '
|
1128
|
+
def _read_opt_bra(self, schema: 'Schema_BindingRefreshAdviceOption', *,
|
1129
|
+
options: 'Option') -> 'Data_BindingRefreshAdviceOption':
|
1130
1130
|
"""Read MH binding refresh advice option.
|
1131
1131
|
|
1132
1132
|
Structure of MH Binding Refresh Advice option [:rfc:`6275`]:
|
@@ -1152,7 +1152,7 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
1152
1152
|
if schema.length != 2:
|
1153
1153
|
raise ProtocolError(f'{self.alias}: [Opt {schema.type}] invalid format')
|
1154
1154
|
|
1155
|
-
data =
|
1155
|
+
data = Data_BindingRefreshAdviceOption(
|
1156
1156
|
type=schema.type,
|
1157
1157
|
length=schema.length + 2,
|
1158
1158
|
interval=schema.interval,
|
@@ -1234,8 +1234,8 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
1234
1234
|
)
|
1235
1235
|
return data
|
1236
1236
|
|
1237
|
-
def _read_opt_bad(self, schema: '
|
1238
|
-
options: 'Option') -> '
|
1237
|
+
def _read_opt_bad(self, schema: 'Schema_AuthorizationDataOption', *,
|
1238
|
+
options: 'Option') -> 'Data_AuthorizationDataOption':
|
1239
1239
|
"""Read MH binding authorization data option.
|
1240
1240
|
|
1241
1241
|
Structure of MH Binding Authorization Data option [:rfc:`6275`]:
|
@@ -1265,7 +1265,7 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
1265
1265
|
if schema.length % 8 != 0:
|
1266
1266
|
raise ProtocolError(f'{self.alias}: [Opt {schema.type}] invalid format')
|
1267
1267
|
|
1268
|
-
data =
|
1268
|
+
data = Data_AuthorizationDataOption(
|
1269
1269
|
type=schema.type,
|
1270
1270
|
length=schema.length + 2,
|
1271
1271
|
data=schema.data,
|
@@ -1738,7 +1738,7 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
1738
1738
|
extensions: 'Extension') -> 'Data_MultiPrefixExtension':
|
1739
1739
|
"""Read multi-prefix CGA extension.
|
1740
1740
|
|
1741
|
-
Structure of Multi-Prefix CGA extension [:rfc:`5535`]
|
1741
|
+
Structure of Multi-Prefix CGA extension [:rfc:`5535`]:
|
1742
1742
|
|
1743
1743
|
.. code-block:: text
|
1744
1744
|
|
@@ -2196,9 +2196,9 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
2196
2196
|
length=length,
|
2197
2197
|
)
|
2198
2198
|
|
2199
|
-
def _make_opt_bra(self, type: 'Enum_Option', option: 'Optional[
|
2199
|
+
def _make_opt_bra(self, type: 'Enum_Option', option: 'Optional[Data_BindingRefreshAdviceOption]' = None, *,
|
2200
2200
|
interval: 'int' = 0,
|
2201
|
-
**kwargs: 'Any') -> '
|
2201
|
+
**kwargs: 'Any') -> 'Schema_BindingRefreshAdviceOption':
|
2202
2202
|
"""Make MH binding refresh advice option.
|
2203
2203
|
|
2204
2204
|
Args:
|
@@ -2214,7 +2214,7 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
2214
2214
|
if option is not None:
|
2215
2215
|
interval = option.interval
|
2216
2216
|
|
2217
|
-
return
|
2217
|
+
return Schema_BindingRefreshAdviceOption(
|
2218
2218
|
type=type,
|
2219
2219
|
length=2,
|
2220
2220
|
interval=interval,
|
@@ -2272,9 +2272,9 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
2272
2272
|
careof=careof,
|
2273
2273
|
)
|
2274
2274
|
|
2275
|
-
def _make_opt_bad(self, type: 'Enum_Option', option: 'Optional[
|
2275
|
+
def _make_opt_bad(self, type: 'Enum_Option', option: 'Optional[Data_AuthorizationDataOption]' = None, *,
|
2276
2276
|
data: 'bytes' = b'',
|
2277
|
-
**kwargs: 'Any') -> '
|
2277
|
+
**kwargs: 'Any') -> 'Schema_AuthorizationDataOption':
|
2278
2278
|
"""Make MH binding authorization data option.
|
2279
2279
|
|
2280
2280
|
Args:
|
@@ -2293,7 +2293,7 @@ class MH(Internet[Data_MH, Schema_MH],
|
|
2293
2293
|
if len(data) % 8 != 0:
|
2294
2294
|
raise ProtocolError(f'{self.alias}: [OptNo {type}] invalid format')
|
2295
2295
|
|
2296
|
-
return
|
2296
|
+
return Schema_AuthorizationDataOption(
|
2297
2297
|
type=type,
|
2298
2298
|
length=len(data),
|
2299
2299
|
data=data,
|
pcapkit/protocols/protocol.py
CHANGED
@@ -528,12 +528,13 @@ class Protocol(Generic[PT, ST], metaclass=abc.ABCMeta):
|
|
528
528
|
self._info = self.unpack(length, **kwargs)
|
529
529
|
|
530
530
|
def __init_subclass__(cls, /, schema: 'Optional[Type[ST]]' = None,
|
531
|
-
data: 'Optional[Type[PT]]' = None, **kwargs: 'Any') -> 'None':
|
531
|
+
data: 'Optional[Type[PT]]' = None, *args: 'Any', **kwargs: 'Any') -> 'None':
|
532
532
|
"""Initialisation for subclasses.
|
533
533
|
|
534
534
|
Args:
|
535
535
|
schema: Schema class.
|
536
536
|
data: Data class.
|
537
|
+
*args: Arbitrary positional arguments.
|
537
538
|
**kwargs: Arbitrary keyword arguments.
|
538
539
|
|
539
540
|
This method is called when a subclass of :class:`Protocol` is defined.
|
@@ -549,7 +550,7 @@ class Protocol(Generic[PT, ST], metaclass=abc.ABCMeta):
|
|
549
550
|
:class:`~pcapkit.protocols.data.data.Data_Raw` classes will be used.
|
550
551
|
|
551
552
|
"""
|
552
|
-
super().__init_subclass__(
|
553
|
+
super().__init_subclass__()
|
553
554
|
|
554
555
|
if schema is None:
|
555
556
|
schema = cast('Type[ST]', getattr(schema_module, cls.__name__, Schema_Raw))
|
@@ -75,8 +75,8 @@ __all__ = [
|
|
75
75
|
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
|
76
76
|
'MH_BindingErrorMessage',
|
77
77
|
'MH_Option',
|
78
|
-
'MH_UnassignedOption', 'MH_PadOption', '
|
79
|
-
'MH_NonceIndicesOption', '
|
78
|
+
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindingRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
|
79
|
+
'MH_NonceIndicesOption', 'MH_AuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
|
80
80
|
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
|
81
81
|
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
|
82
82
|
'MH_CareofTestOption',
|
@@ -89,8 +89,8 @@ __all__ = [
|
|
89
89
|
'TCP_SACKBlock',
|
90
90
|
'TCP_Option',
|
91
91
|
'TCP_UnassignedOption', 'TCP_EndOfOptionList', 'TCP_NoOperation', 'TCP_MaximumSegmentSize', 'TCP_WindowScale',
|
92
|
-
'TCP_SACKPermitted', 'TCP_SACK', 'TCP_Echo', 'TCP_EchoReply', '
|
93
|
-
'
|
92
|
+
'TCP_SACKPermitted', 'TCP_SACK', 'TCP_Echo', 'TCP_EchoReply', 'TCP_Timestamps', 'TCP_PartialOrderConnectionPermitted', # pylint: disable=line-too-long
|
93
|
+
'TCP_PartialOrderServiceProfile', 'TCP_CC', 'TCP_CCNew', 'TCP_CCEcho', 'TCP_AlternateChecksumRequest',
|
94
94
|
'TCP_AlternateChecksumData', 'TCP_MD5Signature', 'TCP_QuickStartResponse', 'TCP_UserTimeout',
|
95
95
|
'TCP_Authentication', 'TCP_FastOpenCookie',
|
96
96
|
'TCP_MPTCP',
|
@@ -2,6 +2,7 @@
|
|
2
2
|
# mypy: disable-error-code=assignment
|
3
3
|
"""header schema for HTTP/2 protocol"""
|
4
4
|
|
5
|
+
import collections
|
5
6
|
import enum
|
6
7
|
from typing import TYPE_CHECKING, cast
|
7
8
|
|
@@ -12,7 +13,7 @@ from pcapkit.corekit.fields.collections import ListField
|
|
12
13
|
from pcapkit.corekit.fields.misc import ConditionalField, SchemaField, SwitchField
|
13
14
|
from pcapkit.corekit.fields.numbers import EnumField, NumberField, UInt8Field, UInt32Field
|
14
15
|
from pcapkit.corekit.fields.strings import BitField, BytesField, PaddingField
|
15
|
-
from pcapkit.protocols.schema.schema import Schema, schema_final
|
16
|
+
from pcapkit.protocols.schema.schema import EnumSchema, Schema, schema_final
|
16
17
|
from pcapkit.utilities.logging import SPHINX_TYPE_CHECKING
|
17
18
|
|
18
19
|
__all__ = [
|
@@ -78,27 +79,8 @@ def http_frame_selector(pkt: 'dict[str, Any]') -> 'Field':
|
|
78
79
|
|
79
80
|
"""
|
80
81
|
type = cast('Enum_Frame', pkt['type'])
|
81
|
-
|
82
|
-
|
83
|
-
if type == Enum_Frame.HEADERS:
|
84
|
-
return SchemaField(length=pkt['__length__'], schema=HeadersFrame)
|
85
|
-
if type == Enum_Frame.PRIORITY:
|
86
|
-
return SchemaField(length=pkt['__length__'], schema=PriorityFrame)
|
87
|
-
if type == Enum_Frame.RST_STREAM:
|
88
|
-
return SchemaField(length=pkt['__length__'], schema=RSTStreamFrame)
|
89
|
-
if type == Enum_Frame.SETTINGS:
|
90
|
-
return SchemaField(length=pkt['__length__'], schema=SettingsFrame)
|
91
|
-
if type == Enum_Frame.PUSH_PROMISE:
|
92
|
-
return SchemaField(length=pkt['__length__'], schema=PushPromiseFrame)
|
93
|
-
if type == Enum_Frame.PING:
|
94
|
-
return SchemaField(length=pkt['__length__'], schema=PingFrame)
|
95
|
-
if type == Enum_Frame.GOAWAY:
|
96
|
-
return SchemaField(length=pkt['__length__'], schema=GoawayFrame)
|
97
|
-
if type == Enum_Frame.WINDOW_UPDATE:
|
98
|
-
return SchemaField(length=pkt['__length__'], schema=WindowUpdateFrame)
|
99
|
-
if type == Enum_Frame.CONTINUATION:
|
100
|
-
return SchemaField(length=pkt['__length__'], schema=ContinuationFrame)
|
101
|
-
return SchemaField(length=pkt['__length__'], schema=UnassignedFrame)
|
82
|
+
schema = FrameType.registry[type]
|
83
|
+
return SchemaField(length=pkt['__length__'], schema=schema)
|
102
84
|
|
103
85
|
|
104
86
|
@schema_final
|
@@ -133,12 +115,14 @@ class HTTP(Schema):
|
|
133
115
|
def __init__(self, length: 'int', type: 'Enum_Frame', flags: 'FrameFlags', stream: 'StreamID', frame: 'FrameType | bytes') -> 'None': ...
|
134
116
|
|
135
117
|
|
136
|
-
class FrameType(
|
118
|
+
class FrameType(EnumSchema[Enum_Frame]):
|
137
119
|
"""Header schema for HTTP/2 frame payload."""
|
138
120
|
|
139
121
|
if TYPE_CHECKING:
|
140
122
|
__flags__: 'Flags'
|
141
123
|
|
124
|
+
__enum__ = collections.defaultdict(lambda: UnassignedFrame)
|
125
|
+
|
142
126
|
class Flags(enum.IntFlag):
|
143
127
|
"""Flags enumeration for HTTP/2 frames."""
|
144
128
|
|
@@ -176,7 +160,7 @@ class UnassignedFrame(FrameType):
|
|
176
160
|
|
177
161
|
|
178
162
|
@schema_final
|
179
|
-
class DataFrame(FrameType):
|
163
|
+
class DataFrame(FrameType, code=Enum_Frame.DATA):
|
180
164
|
"""Header schema for HTTP/2 ``DATA`` frames."""
|
181
165
|
|
182
166
|
class Flags(FrameType.Flags):
|
@@ -203,7 +187,7 @@ class DataFrame(FrameType):
|
|
203
187
|
|
204
188
|
|
205
189
|
@schema_final
|
206
|
-
class HeadersFrame(FrameType):
|
190
|
+
class HeadersFrame(FrameType, code=Enum_Frame.HEADERS):
|
207
191
|
"""Header schema for HTTP/2 ``HEADERS`` frames."""
|
208
192
|
|
209
193
|
class Flags(FrameType.Flags):
|
@@ -247,7 +231,7 @@ class HeadersFrame(FrameType):
|
|
247
231
|
|
248
232
|
|
249
233
|
@schema_final
|
250
|
-
class PriorityFrame(FrameType):
|
234
|
+
class PriorityFrame(FrameType, code=Enum_Frame.PRIORITY):
|
251
235
|
"""Header schema for HTTP/2 ``PRIORITY`` frames."""
|
252
236
|
|
253
237
|
#: Stream dependency (exclusive, stream ID).
|
@@ -263,7 +247,7 @@ class PriorityFrame(FrameType):
|
|
263
247
|
|
264
248
|
|
265
249
|
@schema_final
|
266
|
-
class RSTStreamFrame(FrameType):
|
250
|
+
class RSTStreamFrame(FrameType, code=Enum_Frame.RST_STREAM):
|
267
251
|
"""Header schema for HTTP/2 ``RST_STREAM`` frames."""
|
268
252
|
|
269
253
|
#: Error code.
|
@@ -287,7 +271,7 @@ class SettingPair(Schema):
|
|
287
271
|
|
288
272
|
|
289
273
|
@schema_final
|
290
|
-
class SettingsFrame(FrameType):
|
274
|
+
class SettingsFrame(FrameType, code=Enum_Frame.SETTINGS):
|
291
275
|
"""Header schema for HTTP/2 ``SETTINGS`` frames."""
|
292
276
|
|
293
277
|
class Flags(FrameType.Flags):
|
@@ -306,7 +290,7 @@ class SettingsFrame(FrameType):
|
|
306
290
|
|
307
291
|
|
308
292
|
@schema_final
|
309
|
-
class PushPromiseFrame(FrameType):
|
293
|
+
class PushPromiseFrame(FrameType, code=Enum_Frame.PUSH_PROMISE):
|
310
294
|
"""Header schema for HTTP/2 ``PUSH_PROMISE`` frames."""
|
311
295
|
|
312
296
|
class Flags(FrameType.Flags):
|
@@ -339,7 +323,7 @@ class PushPromiseFrame(FrameType):
|
|
339
323
|
|
340
324
|
|
341
325
|
@schema_final
|
342
|
-
class PingFrame(FrameType):
|
326
|
+
class PingFrame(FrameType, code=Enum_Frame.PING):
|
343
327
|
"""Header schema for HTTP/2 ``PING`` frames."""
|
344
328
|
|
345
329
|
class Flags(FrameType.Flags):
|
@@ -355,7 +339,7 @@ class PingFrame(FrameType):
|
|
355
339
|
|
356
340
|
|
357
341
|
@schema_final
|
358
|
-
class GoawayFrame(FrameType):
|
342
|
+
class GoawayFrame(FrameType, code=Enum_Frame.GOAWAY):
|
359
343
|
"""Header schema for HTTP/2 ``GOAWAY`` frames."""
|
360
344
|
|
361
345
|
#: Last stream ID.
|
@@ -372,7 +356,7 @@ class GoawayFrame(FrameType):
|
|
372
356
|
|
373
357
|
|
374
358
|
@schema_final
|
375
|
-
class WindowUpdateFrame(FrameType):
|
359
|
+
class WindowUpdateFrame(FrameType, code=Enum_Frame.WINDOW_UPDATE):
|
376
360
|
"""Header schema for HTTP/2 ``WINDOW_UPDATE`` frames."""
|
377
361
|
|
378
362
|
#: Window size increment.
|
@@ -385,7 +369,7 @@ class WindowUpdateFrame(FrameType):
|
|
385
369
|
|
386
370
|
|
387
371
|
@schema_final
|
388
|
-
class ContinuationFrame(FrameType):
|
372
|
+
class ContinuationFrame(FrameType, code=Enum_Frame.CONTINUATION):
|
389
373
|
"""Header schema for HTTP/2 ``CONTINUATION`` frames."""
|
390
374
|
|
391
375
|
class Flags(FrameType.Flags):
|
@@ -176,13 +176,13 @@ from pcapkit.protocols.schema.internet.mh import AuthOption as MH_AuthOption
|
|
176
176
|
from pcapkit.protocols.schema.internet.mh import \
|
177
177
|
BindingAcknowledgementMessage as MH_BindingAcknowledgementMessage
|
178
178
|
from pcapkit.protocols.schema.internet.mh import \
|
179
|
-
|
179
|
+
AuthorizationDataOption as MH_AuthorizationDataOption
|
180
180
|
from pcapkit.protocols.schema.internet.mh import BindingErrorMessage as MH_BindingErrorMessage
|
181
181
|
from pcapkit.protocols.schema.internet.mh import \
|
182
182
|
BindingRefreshRequestMessage as MH_BindingRefreshRequestMessage
|
183
183
|
from pcapkit.protocols.schema.internet.mh import BindingUpdateMessage as MH_BindingUpdateMessage
|
184
184
|
from pcapkit.protocols.schema.internet.mh import \
|
185
|
-
|
185
|
+
BindingRefreshAdviceOption as MH_BindingRefreshAdviceOption
|
186
186
|
from pcapkit.protocols.schema.internet.mh import CareofTestInitMessage as MH_CareofTestInitMessage
|
187
187
|
from pcapkit.protocols.schema.internet.mh import CareofTestInitOption as MH_CareofTestInitOption
|
188
188
|
from pcapkit.protocols.schema.internet.mh import CareofTestMessage as MH_CareofTestMessage
|
@@ -283,8 +283,8 @@ __all__ = [
|
|
283
283
|
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
|
284
284
|
'MH_BindingErrorMessage',
|
285
285
|
'MH_Option',
|
286
|
-
'MH_UnassignedOption', 'MH_PadOption', '
|
287
|
-
'MH_NonceIndicesOption', '
|
286
|
+
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindingRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
|
287
|
+
'MH_NonceIndicesOption', 'MH_AuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
|
288
288
|
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
|
289
289
|
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
|
290
290
|
'MH_CareofTestOption',
|