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.
Files changed (41) hide show
  1. pcapkit/__init__.py +1 -1
  2. pcapkit/const/pcapng/option_type.py +4 -1
  3. pcapkit/const/reg/apptype.py +19019 -19015
  4. pcapkit/corekit/fields/collections.py +14 -14
  5. pcapkit/corekit/fields/field.py +33 -8
  6. pcapkit/corekit/fields/ipaddress.py +0 -1
  7. pcapkit/corekit/fields/misc.py +14 -19
  8. pcapkit/corekit/fields/numbers.py +2 -3
  9. pcapkit/corekit/fields/strings.py +2 -3
  10. pcapkit/corekit/infoclass.py +59 -6
  11. pcapkit/corekit/protochain.py +8 -1
  12. pcapkit/foundation/registry/protocols.py +108 -16
  13. pcapkit/protocols/data/__init__.py +4 -4
  14. pcapkit/protocols/data/internet/__init__.py +4 -4
  15. pcapkit/protocols/data/internet/mh.py +8 -6
  16. pcapkit/protocols/data/transport/__init__.py +4 -4
  17. pcapkit/protocols/data/transport/tcp.py +4 -4
  18. pcapkit/protocols/internet/mh.py +21 -21
  19. pcapkit/protocols/protocol.py +3 -2
  20. pcapkit/protocols/schema/__init__.py +4 -4
  21. pcapkit/protocols/schema/application/httpv2.py +17 -33
  22. pcapkit/protocols/schema/internet/__init__.py +4 -4
  23. pcapkit/protocols/schema/internet/hip.py +62 -111
  24. pcapkit/protocols/schema/internet/hopopt.py +46 -48
  25. pcapkit/protocols/schema/internet/ipv4.py +36 -41
  26. pcapkit/protocols/schema/internet/ipv6_opts.py +48 -52
  27. pcapkit/protocols/schema/internet/ipv6_route.py +12 -21
  28. pcapkit/protocols/schema/internet/mh.py +57 -86
  29. pcapkit/protocols/schema/misc/pcapng.py +182 -193
  30. pcapkit/protocols/schema/schema.py +252 -53
  31. pcapkit/protocols/schema/transport/__init__.py +4 -4
  32. pcapkit/protocols/schema/transport/tcp.py +54 -81
  33. pcapkit/protocols/transport/tcp.py +14 -14
  34. pcapkit/vendor/pcapng/option_type.py +29 -2
  35. pcapkit/vendor/reg/apptype.py +34 -4
  36. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/METADATA +1 -1
  37. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/RECORD +41 -41
  38. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/LICENSE +0 -0
  39. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/WHEEL +0 -0
  40. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/entry_points.txt +0 -0
  41. {pypcapkit-1.0.3.dist-info → pypcapkit-1.1.0.dist-info}/top_level.txt +0 -0
@@ -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
- BindingAcknowledgementMessage as Data_BindingAcknowledgementMessage
81
+ AuthorizationDataOption as Data_AuthorizationDataOption
82
82
  from pcapkit.protocols.data.internet.mh import \
83
- BindingAuthorizationDataOption as Data_BindingAuthorizationDataOption
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
- BindingAcknowledgementMessage as Schema_BindingAcknowledgementMessage
121
+ AuthorizationDataOption as Schema_AuthorizationDataOption
122
122
  from pcapkit.protocols.schema.internet.mh import \
123
- BindingAuthorizationDataOption as Schema_BindingAuthorizationDataOption
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: 'Schema_BindRefreshAdviceOption', *,
1129
- options: 'Option') -> 'Data_BindRefreshAdviceOption':
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 = Data_BindRefreshAdviceOption(
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: 'Schema_BindingAuthorizationDataOption', *,
1238
- options: 'Option') -> 'Data_BindingAuthorizationDataOption':
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 = Data_BindingAuthorizationDataOption(
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[Data_BindRefreshAdviceOption]' = None, *,
2199
+ def _make_opt_bra(self, type: 'Enum_Option', option: 'Optional[Data_BindingRefreshAdviceOption]' = None, *,
2200
2200
  interval: 'int' = 0,
2201
- **kwargs: 'Any') -> 'Schema_BindRefreshAdviceOption':
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 Schema_BindRefreshAdviceOption(
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[Data_BindingAuthorizationDataOption]' = None, *,
2275
+ def _make_opt_bad(self, type: 'Enum_Option', option: 'Optional[Data_AuthorizationDataOption]' = None, *,
2276
2276
  data: 'bytes' = b'',
2277
- **kwargs: 'Any') -> 'Schema_BindingAuthorizationDataOption':
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 Schema_BindingAuthorizationDataOption(
2296
+ return Schema_AuthorizationDataOption(
2297
2297
  type=type,
2298
2298
  length=len(data),
2299
2299
  data=data,
@@ -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__(**kwargs)
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', 'MH_BindRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
79
- 'MH_NonceIndicesOption', 'MH_BindingAuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
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', 'TCP_Timestamp', 'TCP_PartialOrderConnectionPermitted', # pylint: disable=line-too-long
93
- 'TCP_PartialOrderConnectionProfile', 'TCP_CC', 'TCP_CCNew', 'TCP_CCEcho', 'TCP_AlternateChecksumRequest',
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
- if type == Enum_Frame.DATA:
82
- return SchemaField(length=pkt['__length__'], schema=DataFrame)
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(Schema):
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
- BindingAuthorizationDataOption as MH_BindingAuthorizationDataOption
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
- BindRefreshAdviceOption as MH_BindRefreshAdviceOption
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', 'MH_BindRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
287
- 'MH_NonceIndicesOption', 'MH_BindingAuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
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',