[docs]classMH(Protocol):"""Data model for MH protocol."""#: Next header.next:'TransType'#: Header length.length:'int'#: Mobility header type.type:'Packet'#: Checksum.chksum:'bytes'
[docs]@info_finalclassUnknownMessage(MH):"""Data model for MH unknown message type."""#: Message data.data:'bytes'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',data:'bytes')->'None':...# pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
[docs]@info_finalclassBindingRefreshRequestMessage(MH):"""Data model for MH Binding Refresh Request (BRR) message type."""#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...# pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin,line-too-long
[docs]@info_finalclassHomeTestInitMessage(MH):"""Data modelf for MH Home Test Init (HoTI) message type."""#: Home init cookie.cookie:'bytes'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',cookie:'bytes',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
[docs]@info_finalclassCareofTestInitMessage(MH):"""Data model for MH Care-of Test Init (CoTI) message type."""#: Care-of init cookie.cookie:'bytes'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',cookie:'bytes',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
[docs]@info_finalclassHomeTestMessage(MH):"""Data model for MH Home Test (HoT) message type."""#: Home nonce index.nonce_index:'int'#: Home init cookie.cookie:'bytes'#: Home keygen token.token:'bytes'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',nonce_index:'int',cookie:'bytes',token:'bytes',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
[docs]@info_finalclassCareofTestMessage(MH):"""Data model for MH Care-of Test (CoT) message type."""#: Care-of nonce index.nonce_index:'int'#: Care-of init cookie.cookie:'bytes'#: Care-of keygen token.token:'bytes'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',nonce_index:'int',cookie:'bytes',token:'bytes',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
[docs]@info_finalclassBindingUpdateMessage(MH):"""Data model for MH Binding Update message type."""#: Sequence number.seq:'int'#: Acknowledge flag.ack:'bool'#: home registration flag.home:'bool'#: Link-local address compability flag.lla_compat:'bool'#: Key management mobility capability flag.key_mngt:'bool'#: Lifetime.lifetime:'timedelta'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',seq:'int',ack:'bool',home:'bool',lla_compat:'bool',key_mngt:'bool',lifetime:'timedelta',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
[docs]@info_finalclassBindingErrorMessage(MH):"""Data model for MH Binding Error (BE) message type."""#: Status.status:'Enum_BindingError'#: Home address.home:'IPv6Address'#: Mobility options.options:'OrderedMultiDict[Enum_Option, Option]'ifTYPE_CHECKING:def__init__(self,next:'TransType',length:'int',type:'Packet',chksum:'bytes',status:'Enum_BindingError',home:'IPv6Address',options:'OrderedMultiDict[Enum_Option, Option]')->'None':...
# TODO: Implement other message types.
[docs]classOption(Data):"""Data model for MH options."""#: Option type.type:'Enum_Option'#: Option length (incl. type and length fields).length:'int'
[docs]@info_finalclassUnassignedOption(Option):"""Data model for unassigned MH options."""#: Option data.data:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',data:'bytes')->'None':...
[docs]@info_finalclassPadOption(Option):"""Data model for Pad option."""ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int')->'None':...
[docs]@info_finalclassBindingRefreshAdviceOption(Option):"""Data model for Binding Refresh Advice option."""#: Refresh interval.interval:'int'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',interval:'int')->'None':...
[docs]@info_finalclassAlternateCareofAddressOption(Option):"""Data model for Alternate Care-of Address option."""#: Alternate care-of address.address:'IPv6Address'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',address:'IPv6Address')->'None':...
[docs]@info_finalclassNonceIndicesOption(Option):"""Data model for Nonce Indices option."""#: Home nonce index.home:'int'#: Care-of nonce index.careof:'int'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',home:'int',careof:'int')->'None':...
[docs]@info_finalclassAuthorizationDataOption(Option):"""Data model for Binding Authorization Data option."""#: Authenticator.data:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',data:'bytes')->'None':...
[docs]@info_finalclassMobileNetworkPrefixOption(Option):"""Data model for Mobile Network Prefix option."""#: Mobile Network Prefix.prefix:'IPv6Network'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',prefix:'IPv6Network')->'None':...
[docs]@info_finalclassLinkLayerAddressOption(Option):"""Data model for MH Link-Layer Address (MH-LLA) option."""#: Option code.code:'Enum_LLACode'#: Link-layer address (LLA).lla:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',code:'Enum_LLACode',lla:'bytes')->'None':...
[docs]@info_finalclassMNIDOption(Option):"""Data model for MN-ID option."""#: Subtype.subtype:'Enum_MNIDSubtype'#: Identifier.identifier:'bytes | str | IPv6Address'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',subtype:'Enum_MNIDSubtype',identifier:'bytes | str | IPv6Address')->'None':...
[docs]@info_finalclassAuthOption(Option):"""Data model for Mobility Message Authentication option."""#: Subtype.subtype:'Enum_AuthSubtype'#: Mobility SPI.spi:'int'#: Authentication data.data:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',subtype:'Enum_AuthSubtype',spi:'int',data:'bytes')->'None':...
[docs]@info_finalclassMesgIDOption(Option):"""Data model for Mobility Message Replay Protection option."""#: Timestamp.timestamp:'dt_type'#: NTP timestamp, c.f., :rfc:`1305`.ntp_timestamp:'NTPTimestamp'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',timestamp:'dt_type',ntp_timestamp:'NTPTimestamp')->'None':...
[docs]@info_finalclassCGAParametersRequestOption(Option):"""Data model for CGA Parameters Request option."""ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int')->'None':...
[docs]classCGAExtension(Data):"""Data model for CGA extension."""#: Extension type.type:'Enum_CGAExtension'#: Extension length.length:'int'
[docs]@info_finalclassUnknownExtension(CGAExtension):"""Data model for unknown CGA extensions."""#: Extension data.data:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_CGAExtension',length:'int',data:'bytes')->'None':...
[docs]@info_finalclassMultiPrefixExtension(CGAExtension):"""Data model for Multi-Prefix CGA extension."""#: P flag. Set if a public key is included in the Public Key field of#: the CGA Parameter Data Structure, reset otherwise.flag:'bool'#: Prefixes.prefixes:'tuple[int, ...]'ifTYPE_CHECKING:def__init__(self,type:'Enum_CGAExtension',length:'int',flag:'bool',prefixes:'tuple[int, ...]')->'None':...
[docs]@info_finalclassCGAParameter(Data):"""Data model for CGA parameter."""#: Modifier.modifier:'Enum_CGAType'#: Subnet prefix.prefix:'int'#: Collision count.collision_count:'int'#: Publick key (ASN.1 encoded).public_key:'bytes'#: Extension fields.extensions:'OrderedMultiDict[Enum_CGAExtension, CGAExtension]'ifTYPE_CHECKING:def__init__(self,modifier:'Enum_CGAType',prefix:'int',collision_count:'int',public_key:'bytes',extensions:'OrderedMultiDict[Enum_CGAExtension, CGAExtension]')->'None':...
[docs]@info_finalclassCGAParametersOption(Option):"""Data model for CGA Parameters option."""#: CGA parameters, c.f., :rfc:`3972`.parameters:'tuple[CGAParameter, ...]'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',parameters:'tuple[CGAParameter, ...]')->'None':...
[docs]@info_finalclassSignatureOption(Option):"""Data model for MH Signature option."""#: Signature.signature:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',signature:'bytes')->'None':...
[docs]@info_finalclassPermanentHomeKeygenTokenOption(Option):"""Data model for Permanent Home Keygen Token option."""#: Permanent home keygen token.token:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',token:'bytes')->'None':...
[docs]@info_finalclassCareofTestInitOption(Option):"""Header schema for MH Care-of Test Init options."""ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int')->'None':...
[docs]@info_finalclassCareofTestOption(Option):"""Header schema for MH Care-of Test options."""#: Care-of keygen token.token:'bytes'ifTYPE_CHECKING:def__init__(self,type:'Enum_Option',length:'int',token:'bytes')->'None':...