IPv6-Frag - Fragment Header for IPv6¶
pcapkit.protocols.internet.ipv6_frag.protocol contains
IPv6_Frag
only, which implements the extractor for Fragment Header for
IPv6 (IPv6-Frag) [*], whose structure is:
Octets |
Bits |
Name |
Description |
|---|---|---|---|
0 |
0 |
|
Next Header |
1 |
8 |
|
Reserved |
2 |
16 |
|
Fragment Offset |
3 |
29 |
|
Reserved |
3 |
31 |
|
More Flag |
4 |
32 |
|
Identification |
- class pcapkit.protocols.internet.ipv6_frag.protocol.IPv6_Frag(file=None, length=None, **kwargs)[source]¶
Bases:
IPv6_Ext[IPv6_Frag,IPv6_Frag]This class implements Fragment Header for IPv6.
Changed in version 1.5.0: A rebuild keeps the reserved bits (#1235).
Changed in version 1.6.0:
nextofmake()takes a member or anintcode, resolved with the enumeration’sget; a name, abool, or a code that does not fit in one octet raisesProtocolError, rather than resolving against an enumeration inferred from the caller’s frame or writing a different value (#2594).make()raisesProtocolErrorfor areserved_octetthat is not one octet, rather than padding or cutting it (#2676).Removed in version 1.6.0: The
next_default,next_namespaceandnext_reversedarguments ofmake(); resolve a name withresolve_index()first (#2594).- property payload: ProtocolBase | NoReturn¶
Payload of current instance.
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- property protocol: str | None | NoReturn¶
Name of next layer protocol (if any).
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- property protochain: ProtoChain | NoReturn¶
Protocol chain of current instance.
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- read(length=None, *, extension=False, **kwargs)[source]¶
Read Fragment Header for IPv6.
Structure of IPv6-Frag header [RFC 8200]:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Reserved | Fragment Offset |Res|M| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- make(next=TransType.UDP, reserved_octet=b'\x00', offset=0, reserved=0, mf=False, id=0, payload=b'', **kwargs)[source]¶
Make (construct) packet data.
- Parameters:
reserved_octet (
bytes) – The reserved octet after the next header.offset (
int) – Fragment offset, in on-wire 8-octet units (RFC 8200 Section 4.5). Note that the data model’soffsetis in octets, so it must be divided by 8 before being passed here.reserved (
int) – Reserved bits (Res) between the offset and the M flag.mf (
bool) – More fragments flag.id (
int) – Identification.payload (
bytes|ProtocolBase|Schema) – Payload of current instance.**kwargs (
Any) – Arbitrary keyword arguments.
- Return type:
- Returns:
Constructed packet data.
- Raises:
ProtocolError – If
nextis a name, abool, or a member or code that does not fit in one octet, orreserved_octetis not one octet.
- __post_init__(file=None, length=None, *, extension=False, **kwargs)[source]¶
Post initialisation hook.
- Overloads:
- Parameters:
See also
For construction arguments, please refer to
self.make.
Header Schemas¶
Removed in version 1.6.0: pcapkit.protocols.schema.internet.ipv6_frag, with no alias: the module moved here
(#2534).
Data Models¶
Removed in version 1.6.0: pcapkit.protocols.data.internet.ipv6_frag, with no alias: the module moved here
(#2534).
- class pcapkit.protocols.internet.ipv6_frag.data.IPv6_Frag(next, reserved_octet, offset, reserved, mf, id)[source]¶
Bases:
ProtocolData model for IPv6 fragment header.
Footnotes