Skip to content

Commit 8e79406

Browse files
committed
revised MH schema based on changes in Schema and fields
1 parent 2041c4d commit 8e79406

File tree

9 files changed

+91
-137
lines changed

9 files changed

+91
-137
lines changed

docs/source/pcapkit/protocols/internet/mh.rst

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ Header Schemas
166166
:param \*args: Arbitrary positional arguments.
167167
:param \*\*kwargs: Arbitrary keyword arguments.
168168

169-
.. autoclass:: pcapkit.protocols.schema.internet.mh.BindRefreshAdviceOption
169+
.. autoclass:: pcapkit.protocols.schema.internet.mh.BindingRefreshAdviceOption
170170
:members:
171171
:show-inheritance:
172172

@@ -187,7 +187,7 @@ Header Schemas
187187
:param \*args: Arbitrary positional arguments.
188188
:param \*\*kwargs: Arbitrary keyword arguments.
189189

190-
.. autoclass:: pcapkit.protocols.schema.internet.mh.BindingAuthorizationDataOption
190+
.. autoclass:: pcapkit.protocols.schema.internet.mh.AuthorizationDataOption
191191
:members:
192192
:show-inheritance:
193193

@@ -407,12 +407,6 @@ Auxiliary Functions
407407
.. autofunction:: pcapkit.protocols.schema.internet.mh.mh_data_selector
408408
.. autofunction:: pcapkit.protocols.schema.internet.mh.mn_id_selector
409409

410-
Miscellaneous Data
411-
~~~~~~~~~~~~~~~~~~
412-
413-
.. autodata:: pcapkit.protocols.schema.internet.mh.MAP_MH_DATA
414-
:no-value:
415-
416410
Data Models
417411
-----------
418412

@@ -446,7 +440,7 @@ Data Models
446440
:param \*args: Arbitrary positional arguments.
447441
:param \*\*kwargs: Arbitrary keyword arguments.
448442

449-
.. autoclass:: pcapkit.protocols.data.internet.mh.BindRefreshAdviceOption
443+
.. autoclass:: pcapkit.protocols.data.internet.mh.BindingRefreshAdviceOption
450444
:members:
451445
:show-inheritance:
452446

@@ -467,7 +461,7 @@ Data Models
467461
:param \*args: Arbitrary positional arguments.
468462
:param \*\*kwargs: Arbitrary keyword arguments.
469463

470-
.. autoclass:: pcapkit.protocols.data.internet.mh.BindingAuthorizationDataOption
464+
.. autoclass:: pcapkit.protocols.data.internet.mh.AuthorizationDataOption
471465
:members:
472466
:show-inheritance:
473467

pcapkit/foundation/registry/protocols.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@
3030
from pcapkit.protocols.schema.internet.ipv6_opts import Option as Schema_IPv6_Opts_Option
3131
from pcapkit.protocols.schema.internet.ipv6_route import \
3232
RoutingType as Schema_IPv6_Route_RoutingType
33-
from pcapkit.protocols.schema.internet.mh import MAP_MH_DATA
34-
from pcapkit.protocols.schema.internet.mh import CGAParameter as Schema_MH_CGAParameter
33+
from pcapkit.protocols.schema.internet.mh import CGAExtension as Schema_MH_CGAExtension
34+
from pcapkit.protocols.schema.internet.mh import Option as Schema_MH_Option
35+
from pcapkit.protocols.schema.internet.mh import Packet as Schema_MH_Packet
3536
from pcapkit.protocols.schema.internet.mh import Packet as Schema_MH_Packet
3637
from pcapkit.protocols.schema.misc.pcapng import BlockType as Schema_PCAPNG_BlockType
3738
from pcapkit.protocols.schema.misc.pcapng import DSBSecrets as Schema_PCAPNG_DSBSecrets
@@ -95,9 +96,6 @@
9596
from pcapkit.protocols.misc.pcapng import RecordParser as PCAPNG_RecordParser
9697
from pcapkit.protocols.misc.pcapng import SecretsConstructor as PCAPNG_SecretsConstructor
9798
from pcapkit.protocols.misc.pcapng import SecretsParser as PCAPNG_SecretsParser
98-
from pcapkit.protocols.schema.internet.mh import CGAExtension as Schema_MH_CGAExtension
99-
from pcapkit.protocols.schema.internet.mh import Option as Schema_MH_Option
100-
from pcapkit.protocols.schema.internet.mh import Packet as Schema_MH_Packet
10199
from pcapkit.protocols.schema.transport.tcp import MPTCP as Schema_TCP_MPTCP
102100
from pcapkit.protocols.schema.transport.tcp import Option as Schema_TCP_Option
103101
from pcapkit.protocols.transport.tcp import MPOptionConstructor as TCP_MPOptionConstructor
@@ -456,7 +454,7 @@ def register_mh_message(code: 'MH_Packet', meth: 'str | tuple[MH_PacketParser, M
456454

457455
MH.register_message(code, meth)
458456
if schema is not None:
459-
MAP_MH_DATA[code] = schema
457+
Schema_MH_Packet.register(code, schema)
460458
logger.info('registered MH message type parser: %s', code.name)
461459

462460

@@ -481,10 +479,7 @@ def register_mh_option(code: 'MH_Option', meth: 'str | tuple[MH_OptionParser, MH
481479

482480
MH.register_option(code, meth)
483481
if schema is not None:
484-
for subclass in Schema_MH_Packet.__subclasses__():
485-
if not hasattr(subclass, 'options'):
486-
continue
487-
cast('OptionField[Schema_MH_Option]', subclass.options).registry[code] = schema
482+
Schema_MH_Option.register(code, schema)
488483
logger.info('registered MH option parser: %s', code.name)
489484

490485

@@ -509,7 +504,7 @@ def register_mh_extension(code: 'MH_CGAExtension', meth: 'str | tuple[MH_Extensi
509504

510505
MH.register_extension(code, meth)
511506
if schema is not None:
512-
cast('OptionField[Schema_MH_CGAExtension]', Schema_MH_CGAParameter.extensions).registry[code] = schema
507+
Schema_MH_CGAExtension.register(code, schema)
513508
logger.info('registered MH CGA extension: %s', code.name)
514509

515510

pcapkit/protocols/data/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@
138138
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
139139
'MH_BindingErrorMessage',
140140
'MH_Option',
141-
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
142-
'MH_NonceIndicesOption', 'MH_BindingAuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
141+
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindingRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
142+
'MH_NonceIndicesOption', 'MH_AuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
143143
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
144144
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
145145
'MH_CareofTestOption',

pcapkit/protocols/data/internet/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,12 @@
179179
from pcapkit.protocols.data.internet.mh import \
180180
BindingAcknowledgementMessage as MH_BindingAcknowledgementMessage
181181
from pcapkit.protocols.data.internet.mh import \
182-
BindingAuthorizationDataOption as MH_BindingAuthorizationDataOption
182+
AuthorizationDataOption as MH_AuthorizationDataOption
183183
from pcapkit.protocols.data.internet.mh import BindingErrorMessage as MH_BindingErrorMessage
184184
from pcapkit.protocols.data.internet.mh import \
185185
BindingRefreshRequestMessage as MH_BindingRefreshRequestMessage
186186
from pcapkit.protocols.data.internet.mh import BindingUpdateMessage as MH_BindingUpdateMessage
187-
from pcapkit.protocols.data.internet.mh import BindRefreshAdviceOption as MH_BindRefreshAdviceOption
187+
from pcapkit.protocols.data.internet.mh import BindingRefreshAdviceOption as MH_BindingRefreshAdviceOption
188188
from pcapkit.protocols.data.internet.mh import CareofTestInitMessage as MH_CareofTestInitMessage
189189
from pcapkit.protocols.data.internet.mh import CareofTestInitOption as MH_CareofTestInitOption
190190
from pcapkit.protocols.data.internet.mh import CareofTestMessage as MH_CareofTestMessage
@@ -287,8 +287,8 @@
287287
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
288288
'MH_BindingErrorMessage',
289289
'MH_Option',
290-
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
291-
'MH_NonceIndicesOption', 'MH_BindingAuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
290+
'MH_UnassignedOption', 'MH_PadOption', 'MH_BindingRefreshAdviceOption', 'MH_AlternateCareofAddressOption',
291+
'MH_NonceIndicesOption', 'MH_AuthorizationDataOption', 'MH_MobileNetworkPrefixOption',
292292
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
293293
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
294294
'MH_CareofTestOption',

pcapkit/protocols/data/internet/mh.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
'BindingErrorMessage',
7171

7272
'Option',
73-
'UnassignedOption', 'PadOption', 'BindRefreshAdviceOption', 'AlternateCareofAddressOption',
74-
'NonceIndicesOption', 'BindingAuthorizationDataOption', 'MobileNetworkPrefixOption',
73+
'UnassignedOption', 'PadOption', 'BindingRefreshAdviceOption', 'AlternateCareofAddressOption',
74+
'NonceIndicesOption', 'AuthorizationDataOption', 'MobileNetworkPrefixOption',
7575
'LinkLayerAddressOption', 'MNIDOption', 'AuthOption', 'MesgIDOption', 'CGAParametersRequestOption',
7676
'CGAParametersOption', 'SignatureOption', 'PermanentHomeKeygenTokenOption', 'CareofTestInitOption',
7777
'CareofTestOption',
@@ -281,7 +281,7 @@ def __init__(self, type: 'Enum_Option', length: 'int') -> 'None': ...
281281

282282

283283
@info_final
284-
class BindRefreshAdviceOption(Option):
284+
class BindingRefreshAdviceOption(Option):
285285
"""Data model for Binding Refresh Advice option."""
286286

287287
#: Refresh interval.
@@ -316,7 +316,7 @@ def __init__(self, type: 'Enum_Option', length: 'int', home: 'int', careof: 'int
316316

317317

318318
@info_final
319-
class BindingAuthorizationDataOption(Option):
319+
class AuthorizationDataOption(Option):
320320
"""Data model for Binding Authorization Data option."""
321321

322322
#: Authenticator.

pcapkit/protocols/internet/mh.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@
8080
from pcapkit.protocols.data.internet.mh import \
8181
BindingAcknowledgementMessage as Data_BindingAcknowledgementMessage
8282
from pcapkit.protocols.data.internet.mh import \
83-
BindingAuthorizationDataOption as Data_BindingAuthorizationDataOption
83+
AuthorizationDataOption as Data_AuthorizationDataOption
8484
from pcapkit.protocols.data.internet.mh import BindingErrorMessage as Data_BindingErrorMessage
8585
from pcapkit.protocols.data.internet.mh import \
8686
BindingRefreshRequestMessage as Data_BindingRefreshRequestMessage
8787
from pcapkit.protocols.data.internet.mh import BindingUpdateMessage as Data_BindingUpdateMessage
8888
from pcapkit.protocols.data.internet.mh import \
89-
BindRefreshAdviceOption as Data_BindRefreshAdviceOption
89+
BindingRefreshAdviceOption as Data_BindingRefreshAdviceOption
9090
from pcapkit.protocols.data.internet.mh import CareofTestInitMessage as Data_CareofTestInitMessage
9191
from pcapkit.protocols.data.internet.mh import CareofTestInitOption as Data_CareofTestInitOption
9292
from pcapkit.protocols.data.internet.mh import CareofTestMessage as Data_CareofTestMessage
@@ -120,13 +120,13 @@
120120
from pcapkit.protocols.schema.internet.mh import \
121121
BindingAcknowledgementMessage as Schema_BindingAcknowledgementMessage
122122
from pcapkit.protocols.schema.internet.mh import \
123-
BindingAuthorizationDataOption as Schema_BindingAuthorizationDataOption
123+
AuthorizationDataOption as Schema_AuthorizationDataOption
124124
from pcapkit.protocols.schema.internet.mh import BindingErrorMessage as Schema_BindingErrorMessage
125125
from pcapkit.protocols.schema.internet.mh import \
126126
BindingRefreshRequestMessage as Schema_BindingRefreshRequestMessage
127127
from pcapkit.protocols.schema.internet.mh import BindingUpdateMessage as Schema_BindingUpdateMessage
128128
from pcapkit.protocols.schema.internet.mh import \
129-
BindRefreshAdviceOption as Schema_BindRefreshAdviceOption
129+
BindingRefreshAdviceOption as Schema_BindingRefreshAdviceOption
130130
from pcapkit.protocols.schema.internet.mh import \
131131
CareofTestInitMessage as Schema_CareofTestInitMessage
132132
from pcapkit.protocols.schema.internet.mh import CareofTestInitOption as Schema_CareofTestInitOption
@@ -1125,8 +1125,8 @@ def _read_opt_pad(self, schema: 'Schema_PadOption', *,
11251125
)
11261126
return data
11271127

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':
11301130
"""Read MH binding refresh advice option.
11311131
11321132
Structure of MH Binding Refresh Advice option [:rfc:`6275`]:
@@ -1152,7 +1152,7 @@ def _read_opt_bra(self, schema: 'Schema_BindRefreshAdviceOption', *,
11521152
if schema.length != 2:
11531153
raise ProtocolError(f'{self.alias}: [Opt {schema.type}] invalid format')
11541154

1155-
data = Data_BindRefreshAdviceOption(
1155+
data = Data_BindingRefreshAdviceOption(
11561156
type=schema.type,
11571157
length=schema.length + 2,
11581158
interval=schema.interval,
@@ -1234,8 +1234,8 @@ def _read_opt_ni(self, schema: 'Schema_NonceIndicesOption', *,
12341234
)
12351235
return data
12361236

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':
12391239
"""Read MH binding authorization data option.
12401240
12411241
Structure of MH Binding Authorization Data option [:rfc:`6275`]:
@@ -1265,7 +1265,7 @@ def _read_opt_bad(self, schema: 'Schema_BindingAuthorizationDataOption', *,
12651265
if schema.length % 8 != 0:
12661266
raise ProtocolError(f'{self.alias}: [Opt {schema.type}] invalid format')
12671267

1268-
data = Data_BindingAuthorizationDataOption(
1268+
data = Data_AuthorizationDataOption(
12691269
type=schema.type,
12701270
length=schema.length + 2,
12711271
data=schema.data,
@@ -2196,9 +2196,9 @@ def _make_opt_pad(self, type: 'Enum_Option', option: 'Optional[Data_PadOption]'
21962196
length=length,
21972197
)
21982198

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, *,
22002200
interval: 'int' = 0,
2201-
**kwargs: 'Any') -> 'Schema_BindRefreshAdviceOption':
2201+
**kwargs: 'Any') -> 'Schema_BindingRefreshAdviceOption':
22022202
"""Make MH binding refresh advice option.
22032203
22042204
Args:
@@ -2214,7 +2214,7 @@ def _make_opt_bra(self, type: 'Enum_Option', option: 'Optional[Data_BindRefreshA
22142214
if option is not None:
22152215
interval = option.interval
22162216

2217-
return Schema_BindRefreshAdviceOption(
2217+
return Schema_BindingRefreshAdviceOption(
22182218
type=type,
22192219
length=2,
22202220
interval=interval,
@@ -2272,9 +2272,9 @@ def _make_opt_ni(self, type: 'Enum_Option', option: 'Optional[Data_NonceIndicesO
22722272
careof=careof,
22732273
)
22742274

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, *,
22762276
data: 'bytes' = b'',
2277-
**kwargs: 'Any') -> 'Schema_BindingAuthorizationDataOption':
2277+
**kwargs: 'Any') -> 'Schema_AuthorizationDataOption':
22782278
"""Make MH binding authorization data option.
22792279
22802280
Args:
@@ -2293,7 +2293,7 @@ def _make_opt_bad(self, type: 'Enum_Option', option: 'Optional[Data_BindingAutho
22932293
if len(data) % 8 != 0:
22942294
raise ProtocolError(f'{self.alias}: [OptNo {type}] invalid format')
22952295

2296-
return Schema_BindingAuthorizationDataOption(
2296+
return Schema_AuthorizationDataOption(
22972297
type=type,
22982298
length=len(data),
22992299
data=data,

pcapkit/protocols/schema/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@
7575
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
7676
'MH_BindingErrorMessage',
7777
'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',
8080
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
8181
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
8282
'MH_CareofTestOption',

pcapkit/protocols/schema/internet/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,13 @@
176176
from pcapkit.protocols.schema.internet.mh import \
177177
BindingAcknowledgementMessage as MH_BindingAcknowledgementMessage
178178
from pcapkit.protocols.schema.internet.mh import \
179-
BindingAuthorizationDataOption as MH_BindingAuthorizationDataOption
179+
AuthorizationDataOption as MH_AuthorizationDataOption
180180
from pcapkit.protocols.schema.internet.mh import BindingErrorMessage as MH_BindingErrorMessage
181181
from pcapkit.protocols.schema.internet.mh import \
182182
BindingRefreshRequestMessage as MH_BindingRefreshRequestMessage
183183
from pcapkit.protocols.schema.internet.mh import BindingUpdateMessage as MH_BindingUpdateMessage
184184
from pcapkit.protocols.schema.internet.mh import \
185-
BindRefreshAdviceOption as MH_BindRefreshAdviceOption
185+
BindingRefreshAdviceOption as MH_BindingRefreshAdviceOption
186186
from pcapkit.protocols.schema.internet.mh import CareofTestInitMessage as MH_CareofTestInitMessage
187187
from pcapkit.protocols.schema.internet.mh import CareofTestInitOption as MH_CareofTestInitOption
188188
from pcapkit.protocols.schema.internet.mh import CareofTestMessage as MH_CareofTestMessage
@@ -283,8 +283,8 @@
283283
'MH_HomeTestMessage', 'MH_CareofTestMessage', 'MH_BindingUpdateMessage', 'MH_BindingAcknowledgementMessage',
284284
'MH_BindingErrorMessage',
285285
'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',
288288
'MH_LinkLayerAddressOption', 'MH_MNIDOption', 'MH_AuthOption', 'MH_MesgIDOption', 'MH_CGAParametersRequestOption',
289289
'MH_CGAParametersOption', 'MH_SignatureOption', 'MH_PermanentHomeKeygenTokenOption', 'MH_CareofTestInitOption',
290290
'MH_CareofTestOption',

0 commit comments

Comments
 (0)