HIP - Host Identity Protocol ============================ :mod:`pcapkit.protocols.internet.hip` contains :class:`~pcapkit.protocols.internet.hip.HIP` only, which implements extractor for Host Identity Protocol (HIP) [*]_, whose structure is described as below: ======= ========= ====================== ================================== Octets Bits Name Description ======= ========= ====================== ================================== 0 0 ``hip.next`` Next Header 1 8 ``hip.length`` Header Length 2 16 Reserved (``\x00``) 2 17 ``hip.type`` Packet Type 3 24 ``hip.version`` Version 3 28 Reserved 3 31 Reserved (``\x01``) 4 32 ``hip.chksum`` Checksum 6 48 ``hip.control`` Controls 8 64 ``hip.shit`` Sender's Host Identity Tag 24 192 ``hip.rhit`` Receiver's Host Identity Tag 40 320 ``hip.parameters`` HIP Parameters ======= ========= ====================== ================================== .. raw:: html
.. automodule:: pcapkit.protocols.internet.hip :members: :undoc-members: :private-members: :show-inheritance: Data Structure -------------- .. important:: Following classes are only for *documentation* purpose. They do **NOT** exist in the :mod:`pcapkit` module. .. class:: DataType_HIP :bases: TypedDict HIP header [:rfc:`5201`][:rfc:`7401`]. .. attribute:: next :type: pcapkit.const.reg.transtype.TransType Next header. .. attribute:: length :type: int Header length. .. attribute:: type :type: pcapkit.const.hip.packet.Packet Packet type. .. attribute:: version :type: Literal[1, 2] Version. .. attribute:: chksum :type: bytes Checksum. .. attribute:: control :type: DataType_Control Controls. .. attribute:: shit :type: int Sender's host identity tag. .. attribute:: rhit :type: int Receiver's host identity tag. .. attribute:: parameters :type: Optional[Tuple[pcapkit.const.hip.parameter.Parameter]] HIP parameters. .. class:: DataType_Control :bases: TypedDict HIP controls. .. attribute:: anonymous :type: bool Anonymous. .. class:: DataType_Parameter :bases: TypedDict HIP parameters. .. attribute:: type :type: pcapkit.const.hip.parameter.Parameter Parameter type. .. attribute:: critical :type: bool Critical bit. .. attribute:: length :type: int Length of contents. HIP Unassigned Parameters ~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP unassigned parameters as described in :rfc:`5201` and :rfc:`7401`, its structure is described as below: ======= ========= ==================== ======================== Octets Bits Name Description ======= ========= ==================== ======================== 0 0 ``para.type`` Parameter Type 1 15 ``para.critical`` Critical Bit 2 16 ``para.length`` Length of Contents 4 32 ``para.contents`` Contents Padding ======= ========= ==================== ======================== .. raw:: html
.. class:: DataType_Param_Unassigned :bases: DataType_Parameter Structure of HIP unassigned parameters [:rfc:`5201`][:rfc:`7401`]. .. attribute:: contents :type: bytes Contents. HIP ``ESP_INFO`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ESP_INFO`` parameter as described in :rfc:`7402`, its structure is described as below: ======= ========= ====================== ======================= Octets Bits Name Description ======= ========= ====================== ======================= 0 0 ``esp_info.type`` Parameter Type 1 15 ``esp_info.critical`` Critical Bit 2 16 ``esp_info.length`` Length of Contents 4 32 Reserved 6 48 ``esp_info.index`` KEYMAT Index 8 64 ``esp_info.old_spi`` OLD SPI 12 96 ``esp_info.new_spi`` NEW SPI ======= ========= ====================== ======================= .. raw:: html
.. class:: DataType_Param_ESP_Info :bases: DataType_Parameter Structure of HIP ``ESP_INFO`` parameter [:rfc:`7402`]. .. attribute:: index :type: int ``KEYMAT`` index. .. attribute:: old_spi :type: int Old SPI. .. attribute:: new_spi :type: int New SPI. HIP ``R1_COUNTER`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``R1_COUNTER`` parameter as described in :rfc:`5201` and :rfc:`7401`, its structure is described as below: ======= ========= ======================= =============================== Octets Bits Name Description ======= ========= ======================= =============================== 0 0 ``ri_counter.type`` Parameter Type 1 15 ``ri_counter.critical`` Critical Bit 2 16 ``ri_counter.length`` Length of Contents 4 32 Reserved 8 64 ``ri_counter.count`` Generation of Valid Puzzles ======= ========= ======================= =============================== .. raw:: html
.. class:: DataType_Param_R1_Counter :bases: DataType_Parameter Structure of HIP ``R1_COUNTER`` parameter [:rfc:`5201`][:rfc:`7401`]. .. attribute:: count :type: int Generation of valid puzzles. HIP ``LOCATOR_SET`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``LOCATOR_SET`` parameter as described in :rfc:`8046`, its structure is described as below: ======= ========= =========================== ======================= Octets Bits Name Description ======= ========= =========================== ======================= 0 0 ``locator_set.type`` Parameter Type 1 15 ``locator_set.critical`` Critical Bit 2 16 ``locator_set.length`` Length of Contents ? ? ... ... 4 32 ``locator.traffic`` Traffic Type 5 40 ``locator.type`` Locator Type 6 48 ``locator.length`` Locator Length 7 56 Reserved 7 63 ``locator.preferred`` Preferred Locator 8 64 ``locator.lifetime`` Locator Lifetime 12 96 ``locator.object`` Locator ? ? ... ... ======= ========= =========================== ======================= .. raw:: html
.. class:: DataType_Param_Locator_Set :bases: DataType_Parameter Structure of HIP ``LOCATOR_SET`` parameter [:rfc:`8046`]. .. attribute:: locator :type: Tuple[DataType_Locator] Locator set. .. class:: DataType_Locator :bases: TypedDict Locator. .. attribute:: traffic :type: int Traffic type. .. attribute:: type :type: int Locator type. .. attribute:: length :type: int Locator length. .. attribute:: preferred :type: int Preferred length. .. attribute:: lifetime :type: int Locator lifetime. .. attribute:: object :type: DataType_Locator_Dict Locator. .. class:: DataType_Locator_Dict :bases: TypedDict Locator type 2. .. attribute:: spi :type: int SPI. .. attribute:: ip :type: ipaddress.IPv4Address HIP ``PUZZLE`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``PUZZLE`` parameter as described in :rfc:`5201` and :rfc:`7401`, its structure is described as below: ======= ========= ===================== ============================== Octets Bits Name Description ======= ========= ===================== ============================== 0 0 ``puzzle.type`` Parameter Type 1 15 ``puzzle.critical`` Critical Bit 2 16 ``puzzle.length`` Length of Contents 4 32 ``puzzle.number`` Number of Verified Bits 5 40 ``puzzle.lifetime`` Lifetime 6 48 ``puzzle.opaque`` Opaque 8 64 ``puzzle.random`` Random Number ======= ========= ===================== ============================== .. raw:: html
.. class:: DataType_Param_Puzzle :bases: DataType_Parameter Structure of HIP ``PUZZLE`` parameter [:rfc:`5201`][:rfc:`7401`]. .. attribute:: number :type: int Number of verified bits. .. attribute:: lifetime :type: int Lifetime. .. attribute:: opaque :type: bytes Opaque. .. attribute:: random :type: int Random number. HIP ``SOLUTION`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``SOLUTION`` parameter as described in :rfc:`5201` and :rfc:`7401`, its structure is described as below: ======= ========= ===================== ============================= Octets Bits Name Description ======= ========= ===================== ============================= 0 0 ``solution.type`` Parameter Type 1 15 ``solution.critical`` Critical Bit 2 16 ``solution.length`` Length of Contents 4 32 ``solution.number`` Number of Verified Bits 5 40 ``solution.lifetime`` Lifetime 6 48 ``solution.opaque`` Opaque 8 64 ``solution.random`` Random Number ? ? ``solution.solution`` Puzzle Solution ======= ========= ===================== ============================= .. raw:: html
.. class:: DataType_Param_Solution :bases: DataType_Parameter Structure of HIP ``SOLUTION`` parameter [:rfc:`5201`][:rfc:`7401`]. .. attribute:: number :type: number Number of verified bits. .. attribute:: lifetime :type: int Lifetime. .. attribute:: opaque :type: bytes Opaque. .. attribute:: random :type: int Random number. .. attribute:: solution :type: int Puzzle solution. HIP ``SEQ`` Parameter ~~~~~~~~~~~~~~~~~~~~~ For HIP ``SEQ`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================= ================================= Octets Bits Name Description ======= ========= ================= ================================= 0 0 ``seq.type`` Parameter Type 1 15 ``seq.critical`` Critical Bit 2 16 ``seq.length`` Length of Contents 4 32 ``seq.id`` Update ID ======= ========= ================= ================================= .. raw:: html
.. class:: DataType_Param_SEQ :bases: DataType_Parameter Structure of HIP ``SEQ`` parameter [:rfc:`7401`]. .. attribute:: id :type: int Update ID. HIP ``ACK`` Parameter ~~~~~~~~~~~~~~~~~~~~~ For HIP ``ACK`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================== ============================= Octets Bits Name Description ======= ========= ================== ============================= 0 0 ``ack.type`` Parameter Type 1 15 ``ack.critical`` Critical Bit 2 16 ``ack.length`` Length of Contents 4 32 ``ack.id`` Peer Update ID ======= ========= ================== ============================= .. raw:: html
.. class:: DataType_Param_ACK :bases: DataType_Parameter .. attribute:: id :type: Tuple[int] Array of peer update IDs. HIP ``DH_GROUP_LIST`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``DH_GROUP_LIST`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ========================== =================== Octets Bits Name Description ======= ========= ========================== =================== 0 0 ``dh_group_list.type`` Parameter Type 1 15 ``dh_group_list.critical`` Critical Bit 2 16 ``dh_group_list.length`` Length of Contents 4 32 ``dh_group_list.id`` DH GROUP ID ======= ========= ========================== =================== .. raw:: html
.. class:: DataType_Param_DH_Group_List :bases: DataType_Parameter Structure of HIP ``DH_GROUP_LIST`` parameter [:rfc:`7401`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.group.Group] Array of DH group IDs. HIP ``DEFFIE_HELLMAN`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``DEFFIE_HELLMAN`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= =========================== =================== Octets Bits Name Description ======= ========= =========================== =================== 0 0 ``diffie_hellman.type`` Parameter Type 1 15 ``diffie_hellman.critical`` Critical Bit 2 16 ``diffie_hellman.length`` Length of Contents 4 32 ``diffie_hellman.id`` Group ID 5 40 ``diffie_hellman.pub_len`` Public Value Length 6 48 ``diffie_hellman.pub_val`` Public Value ? ? Padding ======= ========= =========================== =================== .. raw:: html
.. class:: DataType_Param_Deffie_Hellman :bases: DataType_Parameter Structure of HIP ``DEFFIE_HELLMAN`` parameter [:rfc:`7401`]. .. attribute:: id :type: pcapkit.const.hip.group.Group Group ID. .. attribute:: pub_len :type: int Public value length. .. attribute:: pub_val :type: bytes Public value. HIP ``HIP_TRANSFORM`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_TRANSFORM`` parameter as described in :rfc:`5201`, its structure is described as below: ======= ========= ========================== ==================== Octets Bits Name Description ======= ========= ========================== ==================== 0 0 ``hip_transform.type`` Parameter Type 1 15 ``hip_transform.critical`` Critical Bit 2 16 ``hip_transform.length`` Length of Contents 4 32 ``hip_transform.id`` Group ID ? ? ... ... ? ? Padding ======= ========= ========================== ==================== .. raw:: html
.. class:: DataType_Param_Transform :bases: DataType_Parameter Structure of HIP ``HIP_TRANSFORM`` parameter [:rfc:`5201`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.suite.Suite] Array of group IDs. HIP ``HIP_CIPHER`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_CIPHER`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ======================== ====================== Octets Bits Name Description ======= ========= ======================== ====================== 0 0 hip_cipher.type Parameter Type 1 15 hip_cipher.critical Critical Bit 2 16 hip_cipher.length Length of Contents 4 32 hip_cipher.id Cipher ID ? ? ... ... ? ? - Padding ======= ========= ======================== ====================== .. raw:: html
.. class:: DataType_Param_Cipher :bases: DataType_Parameter Structure of HIP ``HIP_CIPHER`` parameter [:rfc:`7401`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.cipher.Cipher] Array of cipher IDs. HIP ``NAT_TRAVERSAL_MODE`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``NAT_TRAVERSAL_MODE`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ========= =============================== ==================== Octets Bits Name Description ======= ========= =============================== ==================== 0 0 ``nat_traversal_mode.type`` Parameter Type 1 15 ``nat_traversal_mode.critical`` Critical Bit 2 16 ``nat_traversal_mode.length`` Length of Contents 4 32 Reserved 6 48 ``nat_traversal_mode.id`` Mode ID ? ? ... ... ? ? Padding ======= ========= =============================== ==================== .. raw:: html
.. class:: DataType_Param_NET_Traversal_Mode :bases: DataType_Parameter Structure of HIP ``NAT_TRAVERSAL_MODE`` parameter [:rfc:`5770`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.nat_traversal.NETTraversal] Array of mode IDs. HIP ``TRANSACTION_PACING`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``TRANSACTION_PACING`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ========= =============================== ==================== Octets Bits Name Description ======= ========= =============================== ==================== 0 0 ``transaction_pacing.type`` Parameter Type 1 15 ``transaction_pacing.critical`` Critical Bit 2 16 ``transaction_pacing.length`` Length of Contents 4 32 ``transaction_pacing.min_ta`` Min Ta ======= ========= =============================== ==================== .. raw:: html
.. class:: DataType_Param_Transaction_Pacing :bases: DataType_Parameter Structure of HIP ``TRANSACTION_PACING`` parameter [:rfc:`5770`]. .. attribute:: min_ta :type: int Min Ta. HIP ``ENCRYPTED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ENCRYPTED`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ======================= ==================== Octets Bits Name Description ======= ========= ======================= ==================== 0 0 ``encrypted.type`` Parameter Type 1 15 ``encrypted.critical`` Critical Bit 2 16 ``encrypted.length`` Length of Contents 4 32 Reserved 8 48 ``encrypted.iv`` Initialization Vector ? ? ``encrypted.data`` Encrypted data ? ? Padding ======= ========= ======================= ==================== .. raw:: html
.. class:: DataType_Param_Encrypted :bases: DataType_Parameter Structure of HIP ``ENCRYPTED`` parameter [:rfc:`7401`]. .. attribute:: raw :type: bytes Raw content data. HIP ``HOST_ID`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HOST_ID`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ======================= ==================== Octets Bits Name Description ======= ========= ======================= ==================== 0 0 ``host_id.type`` Parameter Type 1 15 ``host_id.critical`` Critical Bit 2 16 ``host_id.length`` Length of Contents 4 32 ``host_id.id_len`` Host Identity Length 6 48 ``host_id.di_type`` Domain Identifier Type 6 52 ``host_id.di_len`` Domain Identifier Length 8 64 ``host_id.algorithm`` Algorithm 10 80 ``host_id.host_id`` Host Identity ? ? ``host_id.domain_id`` Domain Identifier ? ? Padding ======= ========= ======================= ==================== .. raw:: html
.. class:: DataType_Param_Host_ID :bases: DataType_Parameter Structure of HIP ``HOST_ID`` parameter [:rfc:`7401`]. .. attribute:: id_len :type: int Host identity length. .. attribute:: di_type :type: pcapkit.const.hip.di_type.DIType Domain identifier type. .. attribute:: di_len :type: int Domain identifier length. .. attribute:: algorithm :type: pcapkit.const.hip.hi_algorithm.HIAlgorithm Algorithm. .. attribute:: host_id :type: Union[bytes, DataType_Host_ID_ECDSA_Curve, DataType_Host_ID_ECDSA_LOW_Curve] Host identity. .. attribute:: domain_id :type: bytes Domain identifier. .. class:: DataType_Host_ID_ECDSA_Curve :bases: TypedDict Host identity data. .. attribute:: curve :type: pcapkit.const.hip.ecdsa_curve.ECDSACurve ECDSA curve. .. attribute:: pubkey :type: bytes Public key. .. class:: DataType_Host_ID_ECDSA_LOW_Curve :bases: TypedDict Host identity data. .. attribute:: curve :type: pcapkit.const.hip.ecdsa_low_curve.ECDSALowCurve ECDSA_Low curve. .. attribute:: pubkey :type: bytes Public key. HIP ``HIT_SUITE_LIST`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIT_SUITE_LIST`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ============================== ===================== Octets Bits Name Description ======= ========= ============================== ===================== 0 0 ``hit_suite_list.type`` Parameter Type 1 15 ``hit_suite_list.critical`` Critical Bit 2 16 ``hit_suite_list.length`` Length of Contents 4 32 ``hit_suite_list.id`` HIT Suite ID ? ? ... ... ? ? Padding ======= ========= ============================== ===================== .. raw:: html
.. class:: DataType_Param_HIT_Suite_List :bases: DataType_Parameter Structure of HIP ``HIT_SUITE_LIST`` parameter [:rfc:`7401`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.hit_suite.HITSuite] Array of HIT suite IDs. HIP ``CERT`` Parameter ~~~~~~~~~~~~~~~~~~~~~~ For HIP ``CERT`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ======== ===================== ====================== Octets Bits Name Description ======= ======== ===================== ====================== 0 0 ``cert.type`` Parameter Type 1 15 ``cert.critical`` Critical Bit 2 16 ``cert.length`` Length of Contents 4 32 ``cert.group`` ``CERT`` Group 5 40 ``cert.count`` ``CERT`` Count 6 48 ``cert.id`` ``CERT`` ID 7 56 ``cert.cert_type`` ``CERT`` Type 8 64 ``cert.certificate`` Certificate ? ? Padding ======= ======== ===================== ====================== .. raw:: html
.. class:: DataType_Param_Cert :bases: DataType_Parameter Structure of HIP ``CERT`` parameter [:rfc:`7401`]. .. attribute:: group :type: pcapkit.const.hip.group.Group ``CERT`` group. .. attribute:: count :type: int ``CERT`` count. .. attribute:: id :type: int ``CERT`` ID. .. attribute:: cert_type :type: pcapkit.const.hip.certificate.Certificate .. attribute:: certificate :type: bytes Certificate. HIP ``NOTIFICATION`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``NOTIFICATION`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ======== ========================== ===================== Octets Bits Name Description ======= ======== ========================== ===================== 0 0 ``notification.type`` Parameter Type 1 15 ``notification.critical`` Critical Bit 2 16 ``notification.length`` Length of Contents 4 32 Reserved 6 48 ``notification.msg_type`` Notify Message Type 8 64 ``notification.data`` Notification Data ? ? Padding ======= ======== ========================== ===================== .. raw:: html
.. class:: DataType_Param_Notification :bases: DataType_Parameter Structure of HIP ``NOTIFICATION`` parameter [:rfc:`7401`]. .. attribute:: msg_type :type: pcapkit.const.hip.notify_message.NotifyMessage Notify message type. .. attribute:: data :type: bytes Notification data. HIP ``ECHO_REQUEST_SIGNED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ECHO_REQUEST_SIGNED`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================ ==================== Octets Bits Name Description ======= ========= ================================ ==================== 0 0 ``echo_request_signed.type`` Parameter Type 1 15 ``echo_request_signed.critical`` Critical Bit 2 16 ``echo_request_signed.length`` Length of Contents 4 32 ``echo_request_signed.data`` Opaque Data ======= ========= ================================ ==================== .. raw:: html
.. class:: DataType_Param_Echo_Request_Signed :bases: DataType_Parameter Structure of HIP ``ECHO_REQUEST_SIGNED`` parameter [:rfc:`7401`]. .. attribute:: data :type: bytes Opaque data. HIP ``REG_INFO`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``REG_INFO`` parameter as described in :rfc:`8003`, its structure is described as below: ====== ========= ========================== ======================== Octets Bits Name Description ====== ========= ========================== ======================== 0 0 ``reg_info.type`` Parameter Type 1 15 ``reg_info.critical`` Critical Bit 2 16 ``reg_info.length`` Length of Contents 4 32 ``reg_info.lifetime`` Lifetime 4 32 ``reg_info.lifetime.min`` Min Lifetime 5 40 ``reg_info.lifetime.max`` Max Lifetime 6 48 ``reg_info.reg_type`` Reg Type ? ? ... ... ? ? Padding ====== ========= ========================== ======================== .. raw:: html
.. class:: DataType_Param_Reg_Info :bases: DataType_Parameter Structure of HIP ``REG_INFO`` parameter [:rfc:`8003`]. .. attribute:: lifetime :type: DataType_Lifetime Lifetime. .. attribute:: reg_type :type: Tuple[pcapkit.const.hip.registration.Registration] Array of registration type. .. class:: DataType_Lifetime :bases: NamedTuple Lifetime. .. attribute:: min :type: int Minimum lifetime. .. attribute:: maz :type: int Maximum lifetime. HIP ``REG_REQUEST`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``REG_REQUEST`` parameter as described in :rfc:`8003`, its structure is described as below: ======= ========= ============================ ======================== Octets Bits Name Description ======= ========= ============================ ======================== 0 0 ``reg_request.type`` Parameter Type 1 15 ``reg_request.critical`` Critical Bit 2 16 ``reg_request.length`` Length of Contents 4 32 ``reg_request.lifetime`` Lifetime 4 32 ``reg_request.lifetime.min`` Min Lifetime 5 40 ``reg_request.lifetime.max`` Max Lifetime 6 48 ``reg_request.reg_type`` Reg Type ? ? ... ... ? ? Padding ======= ========= ============================ ======================== .. raw:: html
.. class:: DataType_Param_Reg_Request :bases: DataType_Parameter Structure of HIP ``REG_REQUEST`` parameter [:rfc:`8003`]. .. attribute:: lifetime :type: DataType_Lifetime Lifetime. .. attribute:: reg_type :type: Tuple[pcapkit.const.hip.registration.Registration] Array of registration type. HIP ``REG_RESPONSE`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``REG_RESPONSE`` parameter as described in :rfc:`8003`, its structure is described as below: ======= ========= ============================= ======================= Octets Bits Name Description ======= ========= ============================= ======================= 0 0 ``reg_response.type`` Parameter Type 1 15 ``reg_response.critical`` Critical Bit 2 16 ``reg_response.length`` Length of Contents 4 32 ``reg_response.lifetime`` Lifetime 4 32 ``reg_response.lifetime.min`` Min Lifetime 5 40 ``reg_response.lifetime.max`` Max Lifetime 6 48 ``reg_response.reg_type`` Reg Type ? ? ... ... ? ? Padding ======= ========= ============================= ======================= .. raw:: html
.. class:: DataType_Param_Reg_Response :bases: DataType_Parameter Structure of HIP ``REG_RESPONSE`` parameter [:rfc:`8003`]. .. attribute:: lifetime :type: DataType_Lifetime Lifetime. .. attribute:: reg_type :type: Tuple[pcapkit.const.hip.registration.Registration] Array of registration type. HIP ``REG_FAILED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``REG_FAILED`` parameter as described in :rfc:`8003`, its structure is described as below: ======= ========= ============================= ======================= Octets Bits Name Description ======= ========= ============================= ======================= 0 0 ``reg_failed.type`` Parameter Type 1 15 ``reg_failed.critical`` Critical Bit 2 16 ``reg_failed.length`` Length of Contents 4 32 ``reg_failed.lifetime`` Lifetime 4 32 ``reg_failed.lifetime.min`` Min Lifetime 5 40 ``reg_failed.lifetime.max`` Max Lifetime 6 48 ``reg_failed.reg_type`` Reg Type ? ? ... ... ? ? Padding ======= ========= ============================= ======================= .. raw:: html
.. class:: DataType_Param_Reg_Failed :bases: DataType_Parameter Structure of HIP ``REG_FAILED`` parameter [:rfc:`8003`]. .. attribute:: lifetime :type: DataType_Lifetime Lifetime. .. attribute:: reg_type :type: Tuple[pcapkit.const.hip.registration.Registration] Array of registration type. HIP ``REG_FROM`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``REG_FROM`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ======== ======================== ============================= Octets Bits Name Description ======= ======== ======================== ============================= 0 0 ``reg_from.type`` Parameter Type 1 15 ``reg_from.critical`` Critical Bit 2 16 ``reg_from.length`` Length of Contents 4 32 ``reg_from.port`` Port 6 48 ``reg_from.protocol`` Protocol 7 56 Reserved 8 64 ``reg_from.ip`` Address (IPv6) ======= ======== ======================== ============================= .. raw:: html
.. class:: DataType_Param_Reg_From :bases: DataType_Parameter Structure of HIP ``REG_FROM`` parameter [:rfc:`5770`]. .. attribute:: port :type: int Port. .. attribute:: protocol :type: pcapkit.const.reg.transtype.TransType Protocol. .. attribute:: ip :type: ipaddress.IPv6Address IPv6 address. HIP ``ECHO_RESPONSE_SIGNED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ECHO_RESPONSE_SIGNED`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================= =================== Octets Bits Name Description ======= ========= ================================= =================== 0 0 ``echo_response_signed.type`` Parameter Type 1 15 ``echo_response_signed.critical`` Critical Bit 2 16 ``echo_response_signed.length`` Length of Contents 4 32 ``echo_response_signed.data`` Opaque Data ======= ========= ================================= =================== .. raw:: html
.. class:: DataType_Param_Echo_Response_Signed :bases: DataType_Parameter Structure of HIP ``ECHO_RESPONSE_SIGNED`` parameter [:rfc:`7401`]. .. attribute:: data :type: bytes Opaque data. HIP ``TRANSPORT_FORMAT_LIST`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``TRANSPORT_FORMAT_LIST`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= =================================== ===================== Octets Bits Name Description ======= ========= =================================== ===================== 0 0 ``transport_format_list.type`` Parameter Type 1 15 ``transport_format_list.critical`` Critical Bit 2 16 ``transport_format_list.length`` Length of Contents 4 32 ``transport_format_list.tf_type`` TF Type ? ? ... ... ? ? Padding ======= ========= =================================== ===================== .. raw:: html
.. class:: DataType_Param_Transform_Format_List :bases: DataType_Parameter Structure of HIP ``TRANSPORT_FORMAT_LIST`` parameter [:rfc:`7401`]. .. attribute:: tf_type :type: Tuple[int] Array of TF types. HIP ``ESP_TRANSFORM`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ESP_TRANSFORM`` parameter as described in :rfc:`7402`, its structure is described as below: ======= ========= =================================== ===================== Octets Bits Name Description ======= ========= =================================== ===================== 0 0 ``esp_transform.type`` Parameter Type 1 15 ``esp_transform.critical`` Critical Bit 2 16 ``esp_transform.length`` Length of Contents 4 32 Reserved 6 48 ``esp_transform.id`` Suite ID ? ? ... ... ? ? Padding ======= ========= =================================== ===================== .. raw:: html
.. class:: DataType_Param_ESP_Transform :bases: DataType_Parameter Structure of HIP ``ESP_TRANSFORM`` parameter [:rfc:`7402`]. .. attribute:: id :type: Tuple[pcapkit.const.hip.esp_transform_suite.ESPTransformSuite] Array of suite IDs. HIP ``SEQ_DATA`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``SEQ_DATA`` parameter as described in :rfc:`6078`, its structure is described as below: ======= ========= =================================== ===================== Octets Bits Name Description ======= ========= =================================== ===================== 0 0 ``seq_data.type`` Parameter Type 1 15 ``seq_data.critical`` Critical Bit 2 16 ``seq_data.length`` Length of Contents 4 32 ``seq_data.seq`` Sequence number ======= ========= =================================== ===================== .. raw:: html
.. class:: DataType_Param_SEQ_Data :bases: DataType_Parameter Structure of HIP ``SEQ_DATA`` parameter [:rfc:`6078`]. .. attribute:: seq :type: int Sequence number. HIP ``ACK_DATA`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ACK_DATA`` parameter as described in :rfc:`6078`, its structure is described as below: ======= ========= ======================= ================================ Octets Bits Name Description ======= ========= ======================= ================================ 0 0 ``ack_data.type`` Parameter Type 1 15 ``ack_data.critical`` Critical Bit 2 16 ``ack_data.length`` Length of Contents 4 32 ``ack_data.ack`` Acked Sequence number ======= ========= ======================= ================================ .. raw:: html
.. class:: DataType_Param_ACK_Data :bases: DataType_Parameter Structure of HIP ``ACK_DATA`` parameter [:rfc:`6078`]. .. attribute:: ack :type: Tuple[int] Array of ACKed sequence number. HIP ``PAYLOAD_MIC`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``PAYLOAD_MIC`` parameter as described in :rfc:`6078`, its structure is described as below: ======= ========= ======================== ================================ Octets Bits Name Description ======= ========= ======================== ================================ 0 0 ``payload_mic.type`` Parameter Type 1 15 ``payload_mic.critical`` Critical Bit 2 16 ``payload_mic.length`` Length of Contents 4 32 ``payload_mic.next`` Next Header 5 40 Reserved 8 64 ``payload_mic.data`` Payload Data 12 96 ``payload_mic.value`` MIC Value ? ? Padding ======= ========= ======================== ================================ .. raw:: html
.. class:: DataType_Param_Payload_MIC :bases: DataType_Parameter Structure of HIP ``PAYLOAD_MIC`` parameter [:rfc:`6078`]. .. attribute:: next :type: pcapkit.const.reg.transtype.TransType Next header. .. attribute:: data :type: bytes Payload data. .. attribute:: value :type: bytes MIC value. HIP ``TRANSACTION_ID`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``TRANSACTION_ID`` parameter as described in :rfc:`6078`, its structure is described as below: ======= ========= =========================== ================================ Octets Bits Name Description ======= ========= =========================== ================================ 0 0 ``transaction_id.type`` Parameter Type 1 15 ``transaction_id.critical`` Critical Bit 2 16 ``transaction_id.length`` Length of Contents 4 32 ``transaction_id.id`` Identifier ======= ========= =========================== ================================ .. raw:: html
.. class:: DataType_Param_Transaction_ID :bases: DataType_Parameter Structure of HIP ``TRANSACTION_ID`` parameter [:rfc:`6078`]. .. attribute:: id :type: int Identifier. HIP ``OVERLAY_ID`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``OVERLAY_ID`` parameter as described in :rfc:`6079`, its structure is described as below: ======= ========= =========================== ================================ Octets Bits Name Description ======= ========= =========================== ================================ 0 0 ``overlay_id.type`` Parameter Type 1 15 ``overlay_id.critical`` Critical Bit 2 16 ``overlay_id.length`` Length of Contents 4 32 ``overlay_id.id`` Identifier ======= ========= =========================== ================================ .. raw:: html
.. class:: DataType_Param_Overlay_ID :bases: DataType_Parameter Structure of HIP ``OVERLAT_ID`` parameter [:rfc:`6079`]. .. attribute:: id :type: int Identifier. HIP ``ROUTE_DST`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ROUTE_DST`` parameter as described in :rfc:`6079`, its structure is described as below: ======= ========= ================================ ================================ Octets Bits Name Description ======= ========= ================================ ================================ 0 0 ``route_dst.type`` Parameter Type 1 15 ``route_dst.critical`` Critical Bit 2 16 ``route_dst.length`` Length of Contents 4 32 ``route_dst.flags`` Flags 4 32 ``route_dst.flags.symmetric`` SYMMETRIC [:rfc:`6028`] 4 33 ``route_dst.flags.must_follow`` MUST_FOLLOW [:rfc:`6028`] 6 48 Reserved 8 64 ``route_dst.ip`` HIT ? ? ... ... ======= ========= ================================ ================================ .. raw:: html
.. class:: DataType_Param_Route_Dst :bases: DataType_Parameter Structure of HIP ``ROUTE_DST`` parameter [:rfc:`6028`]. .. attribute:: flags :type: DataType_Flags Flags. .. attribute:: ip :type: Tuple[ipaddress.IPv6Address] Array of HIT addresses. .. class:: DataType_Flags :bases: TypedDict Flags. .. attribute:: symmetric :type: bool ``SYMMETRIC`` flag [:rfc:`6028`]. .. attribute:: must_follow :type: bool ``MUST_FOLLOW`` flag [:rfc:`6028`]. HIP ``HIP_TRANSPORT_MODE`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_TRANSPORT_MODE`` parameter as described in :rfc:`6261`, its structure is described as below: ======= ========= ================================ ===================== Octets Bits Name Description ======= ========= ================================ ===================== 0 0 ``hip_transport_mode.type`` Parameter Type 1 15 ``hip_transport_mode.critical`` Critical Bit 2 16 ``hip_transport_mode.length`` Length of Contents 4 32 ``hip_transport_mode.port`` Port 6 48 ``hip_transport_mode.id`` Mode ID ? ? ... ... ? ? Padding ======= ========= ================================ ===================== .. raw:: html
.. class:: DataType_Param_Transport_Mode :bases: DataType_Parameter Structure of HIP ``HIP_TRANSPORT_MODE`` parameter [:rfc:`6261`]. .. attribute:: port :type: int Port. .. attribute:: id :type: Tuple[pcapkit.const.hip.transport.Transport] Array of transport mode IDs. HIP ``HIP_MAC`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_MAC`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================ ===================== Octets Bits Name Description ======= ========= ================================ ===================== 0 0 ``hip_mac.type`` Parameter Type 1 15 ``hip_mac.critical`` Critical Bit 2 16 ``hip_mac.length`` Length of Contents 4 32 ``hip_mac.hmac`` HMAC ? ? Padding ======= ========= ================================ ===================== .. raw:: html
.. class:: DataType_Param_HMAC :bases: DataType_Parameter Structure of HIP ``HIP_MAC`` parameter [:rfc:`7401`]. .. attribute:: hmac :type: bytes HMAC. HIP ``HIP_MAC_2`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_MAC_2`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================ ===================== Octets Bits Name Description ======= ========= ================================ ===================== 0 0 ``hip_mac_2.type`` Parameter Type 1 15 ``hip_mac_2.critical`` Critical Bit 2 16 ``hip_mac_2.length`` Length of Contents 4 32 ``hip_mac_2.hmac`` HMAC ? ? Padding ======= ========= ================================ ===================== .. raw:: html
.. class:: DataType_Param_HMAC_2 :bases: DataType_Parameter Structure of HIP ``HIP_MAC_2`` parameter [:rfc:`7401`]. .. attribute:: hmac :type: bytes HMAC. HIP ``HIP_SIGNATURE_2`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_SIGNATURE_2`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================ ===================== Octets Bits Name Description ======= ========= ================================ ===================== 0 0 ``hip_signature_2.type`` Parameter Type 1 15 ``hip_signature_2.critical`` Critical Bit 2 16 ``hip_signature_2.length`` Length of Contents 4 32 ``hip_signature_2.algorithm`` SIG Algorithm 6 48 ``hip_signature_2.signature`` Signature ? ? Padding ======= ========= ================================ ===================== .. raw:: html
.. class:: DataType_Param_Signature_2 :bases: DataType_Parameter Structure of HIP ``HIP_SIGNATURE_2`` parameter [:rfc:`7401`]. .. attribute:: algorithm :type: pcapkit.const.hip.hi_algorithm.HIAlgorithm SIG algorithm. .. attribute:: signature :type: bytes Signature. HIP ``HIP_SIGNATURE`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``HIP_SIGNATURE`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ============================== ===================== Octets Bits Name Description ======= ========= ============================== ===================== 0 0 ``hip_signature.type`` Parameter Type 1 15 ``hip_signature.critical`` Critical Bit 2 16 ``hip_signature.length`` Length of Contents 4 32 ``hip_signature.algorithm`` SIG Algorithm 6 48 ``hip_signature.signature`` Signature ? ? Padding ======= ========= ============================== ===================== .. raw:: html
.. class:: DataType_Param_Signature :bases: DataType_Parameter Structure of HIP ``HIP_SIGNATURE`` parameter [:rfc:`7401`]. .. attribute:: algorithm :type: pcapkit.const.hip.hi_algorithm.HIAlgorithm SIG algorithm. .. attribute:: signature :type: bytes Signature. HIP ``ECHO_REQUEST_UNSIGNED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ECHO_REQUEST_UNSIGNED`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= ================================== ===================== Octets Bits Name Description ======= ========= ================================== ===================== 0 0 ``echo_request_unsigned.type`` Parameter Type 1 15 ``echo_request_unsigned.critical`` Critical Bit 2 16 ``echo_request_unsigned.length`` Length of Contents 4 32 ``echo_request_unsigned.data`` Opaque Data ======= ========= ================================== ===================== .. raw:: html
.. class:: DataType_Param_Echo_Request_Unsigned :bases: DataType_Parameter Structure of HIP ``ECHO_REQUEST_UNSIGNED`` parameter [:rfc:`7401`]. .. attribute:: data :type: bytes Opaque data. HIP ``ECHO_RESPONSE_UNSIGNED`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ECHO_RESPONSE_UNSIGNED`` parameter as described in :rfc:`7401`, its structure is described as below: ======= ========= =================================== ===================== Octets Bits Name Description ======= ========= =================================== ===================== 0 0 ``echo_response_unsigned.type`` Parameter Type 1 15 ``echo_response_unsigned.critical`` Critical Bit 2 16 ``echo_response_unsigned.length`` Length of Contents 4 32 ``echo_response_unsigned.data`` Opaque Data ======= ========= =================================== ===================== .. raw:: html
.. class:: DataType_Param_Echo_Response_Unsigned :bases: DataType_Parameter Structure of HIP ``ECHO_RESPONSE_UNSIGNED`` parameter [:rfc:`7401`]. .. attribute:: data :type: bytes Opaque data. HIP ``RELAY_FROM`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``RELAY_FROM`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ========= ======================== ============================= Octets Bits Name Description ======= ========= ======================== ============================= 0 0 ``relay_from.type`` Parameter Type 1 15 ``relay_from.critical`` Critical Bit 2 16 ``relay_from.length`` Length of Contents 4 32 ``relay_from.port`` Port 6 48 ``relay_from.protocol`` Protocol 7 56 Reserved 8 64 ``relay_from.ip`` Address (IPv6) ======= ========= ======================== ============================= .. raw:: html
.. class:: DataType_Param_Relay_From :bases: DataType_Parameter Structure of HIP ``RELAY_FROM`` parameter [:rfc:`5770`]. .. attribute:: port :type: int Port. .. attribute:: protocol :type: pcapkit.const.reg.transtype.TransType Protocol. .. attribute:: ip :type: ipaddress.IPv6Address IPv6 address. HIP ``RELAY_TO`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``RELAY_TO`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ========= ======================== ============================= Octets Bits Name Description ======= ========= ======================== ============================= 0 0 ``relay_to.type`` Parameter Type 1 15 ``relay_to.critical`` Critical Bit 2 16 ``relay_to.length`` Length of Contents 4 32 ``relay_to.port`` Port 6 48 ``relay_to.protocol`` Protocol 7 56 Reserved 8 64 ``relay_to.ip`` Address (IPv6) ======= ========= ======================== ============================= .. raw:: html
.. class:: DataType_Param_Relay_To :bases: DataType_Parameter Structure of HIP ``RELAY_TO`` parameter [:rfc:`5770`]. .. attribute:: port :type: in Port. .. attribute:: protocol :type: pcapkit.const.reg.transtype.TransType Protocol. .. attribute:: ip :type: ipaddress.IPv6Address IPv6 address. HIP ``OVERLAY_TTL`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``OVERLAY_TTL`` parameter as described in :rfc:`6078`, its structure is described as below: ======= ========= ======================== ============================= Octets Bits Name Description ======= ========= ======================== ============================= 0 0 ``overlay_ttl.type`` Parameter Type 1 15 ``overlay_ttl.critical`` Critical Bit 2 16 ``overlay_ttl.length`` Length of Contents 4 32 ``overlay_ttl.ttl`` TTL 6 48 Reserved ======= ========= ======================== ============================= .. raw:: html
.. class:: DataType_Param_Overlay_TTL :bases: DataType_Parameter .. attribute:: ttl :type: int TTL. HIP ``ROUTE_VIA`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``ROUTE_VIA`` parameter as described in :rfc:`6028`, its structure is described as below: ======= ========= ================================ =============================== Octets Bits Name Description ======= ========= ================================ =============================== 0 0 ``route_via.type`` Parameter Type 1 15 ``route_via.critical`` Critical Bit 2 16 ``route_via.length`` Length of Contents 4 32 ``route_via.flags`` Flags 4 32 ``route_via.flags.symmetric`` ``SYMMETRIC`` [:rfc:`6028`] 4 33 ``route_via.flags.must_follow`` ``MUST_FOLLOW`` [:rfc:`6028`] 6 48 - Reserved 8 64 ``route_dst.ip`` HIT ? ? ... ... ======= ========= ================================ =============================== .. raw:: html
.. class:: DataType_Param_Route_Via :bases: DataType_Parameter Structure of HIP ``ROUTE_VIA`` parameter [:rfc:`6028`]. .. attribute:: flags :type: DataType_Flags Flags. .. attribute:: ip :type: Tuple[ipaddress.IPv6Address] Array of HITs. HIP ``FROM`` Parameter ~~~~~~~~~~~~~~~~~~~~~~ For HIP ``FROM`` parameter as described in :rfc:`8004`, its structure is described as below: ======= ========= ================================ =============================== Octets Bits Name Description ======= ========= ================================ =============================== 0 0 ``from.type`` Parameter Type 1 15 ``from.critical`` Critical Bit 2 16 ``from.length`` Length of Contents 4 32 ``from.ip`` Address ======= ========= ================================ =============================== .. raw:: html
.. class:: DataType_Param_From :bases: DataType_Parameter Structure of HIP ``FROM`` parameter [:rfc:`8004`]. .. attribute:: ip :type: ipaddress.IPv6Address IPv6 address. HIP ``RVS_HMAC`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``RVS_HMAC`` parameter as described in :rfc:`8004`, its structure is described as below: ======= ========= ================================ =============================== Octets Bits Name Description ======= ========= ================================ =============================== 0 0 ``rvs_hmac.type`` Parameter Type 1 15 ``rvs_hmac.critical`` Critical Bit 2 16 ``rvs_hmac.length`` Length of Contents 4 32 ``rvs_hmac.hmac`` HMAC ? ? Padding ======= ========= ================================ =============================== .. raw:: html
.. class:: DataType_Param_RVS_HMAC :bases: DataType_Parameter Structure of HIP ``RVS_HMAC`` parameter [:rfc:`8004`]. .. attribute:: hmac :type: bytes HMAC. HIP ``VIA_RVS`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``VIA_RVS`` parameter as described in :rfc:`6028`, its structure is described as below: ======= ========= ================================ =============================== Octets Bits Name Description ======= ========= ================================ =============================== 0 0 ``via_rvs.type`` Parameter Type 1 15 ``via_rvs.critical`` Critical Bit 2 16 ``via_rvs.length`` Length of Contents 4 32 ``via_rvs.ip`` Address ? ? ... ... ======= ========= ================================ =============================== .. raw:: html
.. class:: DataType_Param_Via_RVS :bases: DataType_Parameter Structure of HIP ``VIA_RVS`` parameter [:rfc:`6028`]. .. attribute:: ip :type: Tuple[ipaddress.IPv6] Array of IPv6 addresses. HIP ``RELAY_HMAC`` Parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For HIP ``RELAY_HMAC`` parameter as described in :rfc:`5770`, its structure is described as below: ======= ========= ================================ =============================== Octets Bits Name Description ======= ========= ================================ =============================== 0 0 ``relay_hmac.type`` Parameter Type 1 15 ``relay_hmac.critical`` Critical Bit 2 16 ``relay_hmac.length`` Length of Contents 4 32 ``relay_hmac.hmac`` HMAC ? ? Padding ======= ========= ================================ =============================== .. raw:: html
.. class:: DataType_Param_Relay_HMAC :bases: DataType_Parameter .. attribute:: hmac :type: bytes HMAC. .. raw:: html
.. [*] https://en.wikipedia.org/wiki/Host_Identity_Protocol