IPv6-Opts - Destination Options for IPv6¶
pcapkit.protocols.internet.ipv6_opts.protocol contains
IPv6_Opts
only, which implements the extractor for Destination Options
for IPv6 (IPv6-Opts) [*], whose structure is:
Octets |
Bits |
Name |
Description |
|---|---|---|---|
0 |
0 |
|
Next Header |
1 |
8 |
|
Header Extension Length |
2 |
16 |
|
Options |
- class pcapkit.protocols.internet.ipv6_opts.protocol.IPv6_Opts(file=None, length=None, **kwargs)[source]¶
Bases:
IPv6_Ext[IPv6_Opts,IPv6_Opts]This class implements Destination Options for IPv6.
This class parses the following IPv6 destination options, which are registered in the
self.__option__attribute:Option Code
Option Parser
Option Constructor
Changed in version 1.5.0:
The ILNP nonce is sized with a ceiling rather than a floor (#601).
The RPL option keeps its reserved flag bits on rebuild and accepts RFC 6553 sub-TLVs (#1199).
A rebuild reproduces the option area byte for byte: its padding, a PadN with no data, the SMF_DPD, CALIPSO, PDM and ILNP Nonce options, and unassigned Quick-Start function codes (#1200, #1228, #1229, #1232 to #1234, #1237); a CALIPSO option keeps its trailing pad and its length (#1403).
The MPL,
IP_DFFand Quick-Start options keep their reserved bits on rebuild, andIP_DFFtakes theOpt Data Lenof3that RFC 6971 Errata ID 3937 gives, where it took2(#1235).A PadN option’s data and the “Not Used” octet of a Quick-Start report are kept as captured rather than zeroed (#1223).
Changed in version 1.6.0:
A Quick-Start rate the four-bit rate code cannot carry, or a TTL, nonce or reserved value outside its field, raises
ProtocolError, rather than a bareValueError, anOverflowErroror aFieldValueError, or a different value written in its place (#2617).The Quick-Start maker builds an unassigned function code as an unassigned option, the form the reader keeps one in (#2617).
An option maker given a value its fixed-width field cannot carry – negative, too wide, or a
boolfor a field wider than one bit – raisesProtocolError, rather than writing a different value or raising another exception; so doesmake()for options too long for theHdr Ext Len(#2614).A PDM scale, given or derived from its delta, that does not fit its octet raises
ProtocolError, where it warned and was written wrapped (#2614).Each enumeration field of
make()and of the option makers, including the type of each option given tomake(), takes a member or anintcode, resolved with the enumeration’sget; a name, aboolfor a field wider than one bit, or a code the field cannot carry raisesProtocolError, rather than resolving against an enumeration inferred from the caller’s frame, writing a different value or raising another exception (#2594).The CALIPSO option’s checksum and the “Not Used” octet of a Quick-Start report, given the wrong number of octets, raise
ProtocolError, rather than being padded or cut to their field (#2676).An option given to
make()as empty raw octets, which hold no type octet, raisesProtocolErrorrather than anIndexError(#2723).
Removed in version 1.6.0: The
*_default,*_namespaceand*_reversedarguments that went with each enumeration field ofmake()and of the option makers –next,alert,mode,tid_type,funcandseed_type; resolve a name withresolve_index()first (#2594).- __option__: DefaultDict[Option | int, str | tuple[Callable[[Option, OrderedMultiDict[Option, Option]], Option], Callable[[Option, Option | None, Any], Option]]]¶
Option code to method mapping, see
_read_ipv6_opts()and/or_make_ipv6_opts(). Astrvalue names the methods_read_opt_${name}and_make_opt_${name}, falling back to_read_opt_none/_make_opt_nonewhen they do not exist; any other value is a(parser, constructor)pair of callables.
- 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 Destination Options for IPv6.
Structure of IPv6-Opts header [RFC 8200]:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- make(next=TransType.UDP, options=None, payload=b'', *, len=None, **kwargs)[source]¶
Make (construct) packet data.
- Parameters:
options (
list[Option|tuple[Option|int,dict[str,Any]] |bytes] |OrderedMultiDict[Option,Option] |None) – Destination Options.payload (
bytes|ProtocolBase|Schema) – Payload of current protocol.len (
int|None) –Hdr Ext Lento declare, rather than the one the options fill. A header the capture cut short declares one its parsed options do not fill, whichfrom_data()passes on, so that the rebuild declares it too (#2694). Options that fill less than it declares are not padded out to it, so the header then declares more octets than it packs, as a cut one does.**kwargs (
Any) – Arbitrary keyword arguments.
- Return type:
- Returns:
Constructed packet data.
- Raises:
ProtocolError – If
next, or the type of an option, is a name, abool, or a member or code that does not fit in one octet; or if the options make a header too long for its one-octetHdr Ext Len, or longer thanlendeclares.
Changed in version 1.6.0: Takes
len, theHdr Ext Lenof a header the capture cut short (#2694).
- classmethod register_option(code, meth)[source]¶
Register an option parser.
- Parameters:
- Warns:
RegistryWarning– If a different entry is already registered forcode; it is overwritten. Handing back the entry already stored, or one equal to it, is a silent no-op. The entrycodeshipped with is accepted like any other, so an override can be undone (#1362, #1363).
- __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.
- _read_ipv6_opts(length)[source]¶
Read IPv6-Opts options.
- Parameters:
length (
int) – Length of the options area, in octets.- Return type:
- Returns:
Extracted IPv6-Opts options
- Raises:
ProtocolError – If the parsed options do not total exactly
lengthoctets, unless the capture cut the header short, as its short read records. Or if the capture cut an option short and its parser refuses the zeros it lacks, or its maker does not write the octets captured back.
Changed in version 1.6.0: A header the capture cut short reads as the short read it is, and an option it cuts as its parser reads the zeros it lacks, rather than being refused (#2694).
- _make_ipv6_opts(options)[source]¶
Make options for IPv6-Opts.
- Parameters:
options (
list[Option|tuple[Option|int,dict[str,Any]] |bytes] |OrderedMultiDict[Option,Option]) – IPv6-Opts options- Return type:
- Returns:
Tuple of options and total length of options.
- Raises:
ProtocolError – If the type of an option, given in a
(type, kwargs)pair or as the key of a container, is a name, aboolor a code its field cannot carry, or if an option given as raw octets is empty (#2723).
Note
Options given as a
listare fresh input: padding options in it are dropped, and padding is inserted after each option to align the header. Options given as a mapping, such as theOrderedMultiInfoof parsed data, are emitted in order with their own padding options kept, and padding is added only at the end if the header is not aligned.The returned length is that of the options area alone, the value
make()derives theHdr Ext Lenfield from. Since the two octets of the fixed header precede it, an options area is well formed only when it is 2 octets short of a multiple of 8 – including when it holds no real options at all, in which case it is 6 octets of pure padding rather than empty.
- _read_opt_none(schema, *, options)[source]¶
Read IPv6-Opts unassigned options.
Structure of IPv6-Opts unassigned options [RFC 8200]:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - - | Option Type | Opt Data Len | Option Data +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
- Parameters:
schema (
UnassignedOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- _read_opt_pad(schema, *, options)[source]¶
Read IPv6-Opts padding options.
Structure of IPv6-Opts padding options [RFC 8200]:
Pad1option:+-+-+-+-+-+-+-+-+ | 0 | +-+-+-+-+-+-+-+-+
PadNoption:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - - | 1 | Opt Data Len | Option Data +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
- Parameters:
schema (
PadOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
codeis NOT0or1.
Note
A
Pad1option occupies a single octet and carries noOpt Data Lenfield, so itslengthis1rather thanlen + 2. That one-octet wire shape is enforced byPadOptionitself, which sizes both the length octet and the padding data from the option type;clenis therefore always0here for a parsedPad1, and the length check this method makes only guards a schema built by hand. APadNwhoseOpt Data Lenis0is a valid two-octet padding option [RFC 8200 Section 4.2].
- _read_opt_tun(schema, *, options)[source]¶
Read IPv6-Opts Tunnel Encapsulation Limit option.
Structure of IPv6-Opts Tunnel Encapsulation Limit option [RFC 2473]:
Option Type Opt Data Len Opt Data Len 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 1 0 0| 1 | Tun Encap Lim | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
TunnelEncapsulationLimitOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT1.
- _read_opt_ra(schema, *, options)[source]¶
Read IPv6-Opts Router Alert option.
Structure of IPv6-Opts Router Alert option [RFC 2711]:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0|0 0 1 0 1|0 0 0 0 0 0 1 0| Value (2 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RouterAlertOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT2.
- _read_opt_calipso(schema, *, options)[source]¶
Read IPv6-Opts Common Architecture Label IPv6 Security Option (CALIPSO) option.
Structure of IPv6-Opts CALIPSO option [RFC 5570]:
------------------------------------------------------------ | Next Header | Hdr Ext Len | Option Type | Option Length| +-------------+---------------+-------------+--------------+ | CALIPSO Domain of Interpretation | +-------------+---------------+-------------+--------------+ | Cmpt Length | Sens Level | Checksum (CRC-16) | +-------------+---------------+-------------+--------------+ | Compartment Bitmap (Optional; variable length) | +-------------+---------------+-------------+--------------+
- Parameters:
schema (
CALIPSOOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
Note
Cmpt Lengthcounts 32-bit words and may be odd [RFC 5570 Section 5.2]; it only has to fit insideOpt Data Len, whichcalipso_pad_len()has already checked while the option was unpacked.
- _read_opt_smf_dpd(schema, *, options)[source]¶
Read IPv6-Opts Simplified Multicast Forwarding Duplicate Packet Detection (
SMF_DPD) option.Structure of IPv6-Opts
SMF_DPDoption [RFC 6621]:IPv6
SMF_DPDoption header in I-DPD (Identification-Based DPD) mode0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... |0|0|0| 01000 | Opt. Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|TidTy| TidLen| TaggerID (optional) ... | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Identifier ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+IPv6
SMF_DPDoption header in H-DPD (Hash-Based) mode0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... |0|0|0| OptType | Opt. Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Hash Assist Value (HAV) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
SMFDPDOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If the option is malformed.
- _read_opt_pdm(schema, *, options)[source]¶
Read IPv6-Opts Performance and Diagnostic Metrics (PDM) option.
Structure of IPv6-Opts PDM option [RFC 8250]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | ScaleDTLR | ScaleDTLS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PSN This Packet | PSN Last Received | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Delta Time Last Received | Delta Time Last Sent | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
PDMOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT10.
- _read_opt_rpl(schema, *, options)[source]¶
Read IPv6-Opts Routing Protocol for Low-Power and Lossy Networks (RPL) option.
Structure of IPv6-Opts RPL option [RFC 6553]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |O|R|F|0|0|0|0|0| RPLInstanceID | SenderRank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (sub-TLVs) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+The sub-TLVs, which RFC 6553 Section 3 says MUST be skipped when unrecognised, are kept as raw octets in
sub_tlvs.- Parameters:
schema (
RPLOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis less than4.
- _read_opt_qs(schema, *, options)[source]¶
Read IPv6-Opts Quick Start option.
Structure of IPv6-Opts Quick-Start option [RFC 4782]:
A Quick-Start Request:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option | Length=6 | Func. | Rate | QS TTL | | | | 0000 |Request| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Report of Approved Rate:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option | Length=6 | Func. | Rate | Not Used | | | | 1000 | Report| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
QuickStartOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If the option is malformed.
Note
An option whose QS function is neither of the two above has no defined layout, so the schema keeps it as an unassigned option and it is parsed as one, see
_read_opt_none(). That dispatch is by the schema’s own class, decided from the octets a file read hands it; aQuickStartRequestOptionorQuickStartReportOptionbuilt directly with an unassignedfuncreaches this method regardless, which is why it still raises below rather than returning early.
- _read_opt_mpl(schema, *, options)[source]¶
Read IPv6-Opts Multicast Protocol for Low-Power and Lossy Networks (MPL) option.
Structure of IPv6-Opts MPL option [RFC 7731]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | S |M|V| rsv | sequence | seed-id (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Parameters:
schema (
MPLOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If the option is malformed.
- _read_opt_ilnp(schema, *, options)[source]¶
Read IPv6-Opts Identifier-Locator Network Protocol (ILNP) Nonce option.
Structure of IPv6-Opts ILNP Nonce option [RFC 6744]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Option Type | Option Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / Nonce Value / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ILNPOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- _read_opt_lio(schema, *, options)[source]¶
Read IPv6-Opts Line-Identification option.
Structure of IPv6-Opts Line-Identification option [RFC 6788]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LineIDLen | Line ID... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Parameters:
schema (
LineIdentificationOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- _read_opt_jumbo(schema, *, options)[source]¶
Read IPv6-Opts Jumbo Payload option.
Structure of IPv6-Opts Jumbo Payload option [RFC 2675]:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Jumbo Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Parameters:
schema (
JumboPayloadOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT4.
- _read_opt_home(schema, *, options)[source]¶
Read IPv6-Opts Home Address option.
Structure of IPv6-Opts Home Address option [RFC 6275]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Home Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Parameters:
schema (
HomeAddressOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT16.
- _read_opt_ip_dff(schema, *, options)[source]¶
Read IPv6-Opts Depth-First Forwarding (
IP_DFF) option.Structure of IPv6-Opts
IP_DFFoption [RFC 6971]:1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | OptTypeDFF | OptDataLenDFF | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |VER|D|R|0|0|0|0| Sequence Number | Pad1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
OptDataLenDFFis3, the flags octet and the sequence number, as corrected by RFC 6971 Errata ID 3937; the RFC text says2.- Parameters:
schema (
IPDFFOption) – parsed parameter schemaoptions (
OrderedMultiDict[Option,Option]) – extracted IPv6-Opts options
- Return type:
- Returns:
Parsed option data.
- Raises:
ProtocolError – If
schema.lenis NOT3.
- _make_opt_none(code, opt=None, *, data=b'', **kwargs)[source]¶
Make IPv6-Opts unassigned option.
- Parameters:
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
datais too long for the one-octetOpt Data Len.
- _make_opt_pad(code, opt=None, *, length=0, pad=b'', **kwargs)[source]¶
Make IPv6-Opts pad option.
- Parameters:
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
lengthdoes not fit the one-octetOpt Data Len.- Warns:
ProtocolWarning– IfcodeisPad1butlengthis not0; aPadNoption is made instead.
Note
Data_PadOption.lengthcounts the whole option, whereasSchema_PadOption.lenis theOpt Data Lenfield: two octets fewer, and absent altogether for aPad1.optis honoured so that re-making a parsed padding option keeps its type and size. APadNwithlength0is a valid two-octet option [RFC 8200 Section 4.2] and is kept.
- _make_opt_tun(code, opt=None, *, limit=0, **kwargs)[source]¶
Make IPv6-Opts tunnel encapsulation limit option.
- Parameters:
code (
Option) – option type valueopt (
TunnelEncapsulationLimitOption|None) – option datalimit (
int) – tunnel encapsulation limit**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
limitdoes not fit in one octet.
- _make_opt_ra(code, opt=None, *, alert=RouterAlert.Datagram_contains_a_Multicast_Listener_Discovery_message, **kwargs)[source]¶
Make IPv6-Opts router alert option.
- Parameters:
code (
Option) – option type valueopt (
RouterAlertOption|None) – option dataalert (
RouterAlert|int) – router alert value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If the router alert value is a name, a
bool, or a member or code that does not fit in two octets.
- _make_opt_calipso(code, opt=None, *, domain=0, level=0, checksum=b'\x00\x00', bitmap=None, pad=b'', **kwargs)[source]¶
Make IPv6-Opts calipso option.
- Parameters:
code (
Option) – option type valueopt (
CALIPSOOption|None) – option datadomain (
int) – CALIPSO domain of interpretationlevel (
int) – sensitivity levelchecksum (
bytes) – checksum of the optionbitmap (
bytes|tuple[int,...] |None) – compartment bitmap, as a bytes-like object or as an iterable of octets, such as thetuplethe reader stores; its length must be a multiple of 4 octetspad (
bytes) – octets after the compartment bitmap, counted inOpt Data Len**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
domainorleveldoes not fit its field, ifchecksumis not two octets, if the bitmap is not bytes-like or an iterable of octets, or is not a whole number of 32-bit words, ifpadis notbytes, or if the option data would exceed the 255 octetsOpt Data Lencan count.
Note
Cmpt Lengthon the wire counts 32-bit words [RFC 5570 Section 5.1], whereas the bitmap here is sized in octets.
- _make_opt_smf_dpd(code, opt=None, *, mode=SMFDPDMode.I_DPD, tid_type=None, tid=None, id=b'', hav=b'', **kwargs)[source]¶
Make IPv6-Opts SMF DPD option.
- Parameters:
code (
Option) – option type valueopt (
SMFIdentificationBasedDPDOption|SMFHashBasedDPDOption|None) – option datamode (
SMFDPDMode|int) – DPD modetid_type (
TaggerID|int|None) – TaggerID type (TidTyfield); inferred from the length oftidif not giventid (
bytes|IPv4Address|IPv6Address|None) – Tagger IDid (
bytes) – identifierhav (
bytes) – hash assist value (HAV)**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If the DPD mode is a name, or a member or code that does not fit in one bit; if the TaggerID type is a name, a
bool, or a member or code that does not fit in three bits; if the Tagger ID does not fit the TaggerID type, the H-DPD Hash Assist Value is empty, or the option data is too long for its one-octetOpt Data Len.
- _make_opt_pdm(code, opt=None, *, psntp=0, psnlr=0, deltatlr=0, deltatls=0, scaledtlr=None, scaledtls=None, **kwargs)[source]¶
Make IPv6-Opts PDM option.
- Parameters:
code (
Option) – option type valuepsntp (
int) – packet sequence number (PSN) this packetpsnlr (
int) – packet sequence number (PSN) last receiveddeltatlr (
int) – delta time last received (in attoseconds)deltatls (
int) – delta time last sent (in attoseconds)scaledtlr (
int|None) – scale of delta time last received; derived fromdeltatlrif not givenscaledtls (
int|None) – scale of delta time last sent; derived fromdeltatlsif not given**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
psntporpsnlrdoes not fit in two octets, a scale does not fit in one octet, or a delta is negative or, at the scale given for it, does not fit two octets.
- _make_opt_rpl(code, opt=None, *, down=False, rank_err=False, fwd_err=False, id=0, rank=0, reserved=0, sub_tlvs=b'', **kwargs)[source]¶
Make IPv6-Opts RPL option.
- Parameters:
code (
Option) – option type valuedown (
bool) – down flagrank_err (
bool) – rank error flagfwd_err (
bool) – forwarding error flagid (
int) – RPL instance IDrank (
int) – sender rankreserved (
int) – reserved flag bits, i.e. the low five bits of the flags octetsub_tlvs (
bytes) – sub-TLVs, as raw octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
reserved,idorrankdoes not fit its field, orsub_tlvsdoes not fit in the option.
- _make_opt_qs(code, opt=None, *, func=QSFunction.Quick_Start_Request, rate=0, ttl=0, nonce=0, reserved=0, unused=b'\x00', **kwargs)[source]¶
Make IPv6-Opts QS option.
- Parameters:
code (
Option) – option type valueopt (
QuickStartOption|UnassignedOption|None) – option datafunc (
QSFunction|int) – QS function typerate (
int) – rate (in kbps), rounded down to the nearest rate the four-bit rate code carries (RFC 4782 Section 3.1)nonce (
int) – nonce valuereserved (
int) – reserved bits (R) after the nonceunused (
bytes) – the “Not Used” octet of a report of approved rate**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema. An unassigned option schema if
optis a Quick-Start option parsed as unassigned, see_read_opt_qs(), or iffuncis neither of the assigned functions, in which case the option data takes the layout of a Quick-Start Request.- Raises:
ProtocolError – If
funcis a name, abool, or a member or code that does not fit in four bits, the rate code cannot carryrate,ttl,nonceorreserveddoes not fit its field, orunusedis not one octet.
- _make_opt_mpl(code, opt=None, *, seed_type=None, max=False, drop=False, reserved=0, seq=0, seed=None, **kwargs)[source]¶
Make IPv6-Opts MPL option.
- Parameters:
code (
Option) – option type valueseed_type (
SeedID|int|None) – seed-id type (Sfield); inferred fromseedif not givenmax (
bool) – maximum sequence number flagdrop (
bool) – drop packet flagreserved (
int) – reserved bits (rsv), i.e. the low four bits of the flags octetseq (
int) – MPL sequence numberseed (
int|IPv6Address|None) – MPL seed ID, ignored when the seed-id type isIPV6_SOURCE_ADDRESS, as the seed is then the IPv6 source address**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If the seed-id type is a name, a
bool, or a member or code that does not fit in two bits; if the seed ID is missing or does not fit the seed-id type, orreservedorseqdoes not fit its field.
- _make_opt_ilnp(code, opt=None, *, nonce=0, **kwargs)[source]¶
Make IPv6-Opts ILNP option.
- Parameters:
code (
Option) – option type valueopt (
ILNPOption|None) – option datanonce (
int) – ILNP nonce value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
nonceis negative, or needs more octets thanOpt Data Lencan count.
- _make_opt_lio(code, opt=None, *, id=b'', **kwargs)[source]¶
Make IPv6-Opts LIO option.
- Parameters:
code (
Option) – option type valueopt (
LineIdentificationOption|None) – option dataid (
bytes) – line ID value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
idis too long for the one-octetOpt Data Len.
- _make_opt_jumbo(code, opt=None, *, len=0, **kwargs)[source]¶
Make IPv6-Opts Jumbo Payload option.
- Parameters:
code (
Option) – option type valueopt (
JumboPayloadOption|None) – option datalen (
int) – jumbo payload length**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
lendoes not fit in four octets.
- _make_opt_home(code, opt=None, *, addr='::', **kwargs)[source]¶
Make IPv6-Opts Home Address option.
- Parameters:
code (
Option) – option type valueopt (
HomeAddressOption|None) – option dataaddr (
IPv6Address|str|bytes|int) – home address value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- _make_opt_ip_dff(code, opt=None, *, version=0, dup=False, ret=False, reserved=0, seq=0, **kwargs)[source]¶
Make IPv6-Opts IP DFF option.
- Parameters:
code (
Option) – option type valueopt (
IPDFFOption|None) – option dataversion (
int) – DFF versiondup (
bool) – duplicate packet flagret (
bool) – return packet flagreserved (
int) – reserved bits, i.e. the low four bits of the flags octetseq (
int) – DFF sequence number**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
Constructed option schema.
- Raises:
ProtocolError – If
version,reservedorseqdoes not fit its field.
Header Schemas¶
Removed in version 1.6.0: pcapkit.protocols.schema.internet.ipv6_opts, with no alias: the module moved here
(#2534).
- class pcapkit.protocols.internet.ipv6_opts.schema.IPv6_Opts(next=NO_VALUE, len=NO_VALUE, options=NO_VALUE, payload=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
SchemaHeader schema for IPv6-Opts packet.
- class pcapkit.protocols.internet.ipv6_opts.schema.Option(*args, **kwargs)[source]¶
Bases:
EnumSchema[Option]Header schema for IPv6-Opts options.
- class pcapkit.protocols.internet.ipv6_opts.schema.UnassignedOption(type=NO_VALUE, len=NO_VALUE, data=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts unassigned options.
- class pcapkit.protocols.internet.ipv6_opts.schema.PadOption(type=NO_VALUE, len=NO_VALUE, pad=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts padding options.
The two padding options do not share a wire shape: a
Pad1option is a lone type octet, whereas aPadNoption is a type octet, anOpt Data Lenoctet, and that many padding octets [RFC 8200 Section 4.2]. Both theOpt Data Lenoctet (Option.len) and the padding data (self.pad) are therefore sized from the option type, so that aPad1option consumes exactly one octet.
- class pcapkit.protocols.internet.ipv6_opts.schema.TunnelEncapsulationLimitOption(type=NO_VALUE, len=NO_VALUE, limit=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts tunnel encapsulation limit options.
- class pcapkit.protocols.internet.ipv6_opts.schema.RouterAlertOption(type=NO_VALUE, len=NO_VALUE, alert=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts router alert options.
- alert: RouterAlert = <EnumField alert>¶
Router alert.
- class pcapkit.protocols.internet.ipv6_opts.schema.CALIPSOOption(type=NO_VALUE, len=NO_VALUE, domain=NO_VALUE, cmpt_len=NO_VALUE, level=NO_VALUE, checksum=NO_VALUE, bitmap=NO_VALUE, pad=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts common architecture label IPv6 security options.
- class pcapkit.protocols.internet.ipv6_opts.schema._SMFDPDOption(test=NO_VALUE, data=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
SchemaHeader schema for IPv6-Opts SMF DPD options with generic representation.
The
testfield forward-matches the first three octets of the option –Option Type,Opt Data Lenand the octet carrying the DPD mode bit – without consuming them, so thatsmf_dpd_data_selector()can size and choose the schema which then reads the option properly. Itsnamespaceoffsets are therefore bit offsets into the option, not into any one field of it:Opt Data Lenis octet 1, i.e. bits 8 to 15, and the mode bit is the first bit of octet 2 [RFC 6621 Section 6.1.1].- test: SMFDPDTestFlag = <ForwardMatchField test>¶
SMF DPD mode.
- data: SMFIdentificationBasedDPDOption | SMFHashBasedDPDOption = <SwitchField data>¶
SMF DPD data.
- class pcapkit.protocols.internet.ipv6_opts.schema.SMFDPDOption(*args, **kwargs)[source]¶
Bases:
Option,EnumSchema[SMFDPDMode]Header schema for IPv6-Opts simplified multicast forwarding duplicate packet detection (
SMF_DPD) options.
- class pcapkit.protocols.internet.ipv6_opts.schema.SMFIdentificationBasedDPDOption(type=NO_VALUE, len=NO_VALUE, info=NO_VALUE, tid=NO_VALUE, id=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
SMFDPDOptionHeader schema for IPv6-Opts SMF identification-based DPD options.
Removed in version 1.5.0:
test, a field the HOPOPT schema lacks, so that the same octets parse alike under both headers (#441).- info: TaggerIDInfo = <BitField info>¶
TaggerID information.
- tid: bytes | IPv4Address | IPv6Address = <ConditionalField tid>¶
TaggerID.
- class pcapkit.protocols.internet.ipv6_opts.schema.SMFHashBasedDPDOption(type=NO_VALUE, len=NO_VALUE, hav=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
SMFDPDOptionHeader schema for IPv6-Opts SMF hash-based DPD options.
- class pcapkit.protocols.internet.ipv6_opts.schema.PDMOption(type=NO_VALUE, len=NO_VALUE, scaledtlr=NO_VALUE, scaledtls=NO_VALUE, psntp=NO_VALUE, psnlr=NO_VALUE, deltatlr=NO_VALUE, deltatls=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts performance and diagnostic metrics (PDM) options.
- class pcapkit.protocols.internet.ipv6_opts.schema._QuickStartOption(flags=NO_VALUE, data=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
SchemaHeader schema for IPv6-Opts quick start options in generic representation.
- flags: QSTestFlags = <ForwardMatchField flags>¶
Flags.
- data: QuickStartRequestOption | QuickStartReportOption = <SwitchField data>¶
QS data.
- class pcapkit.protocols.internet.ipv6_opts.schema.QuickStartOption(*args, **kwargs)[source]¶
Bases:
Option,EnumSchema[QSFunction]Header schema for IPv6-Opts quick start options.
- flags: QuickStartFlags = <BitField flags>¶
Flags.
- class pcapkit.protocols.internet.ipv6_opts.schema.QuickStartRequestOption(type=NO_VALUE, len=NO_VALUE, flags=NO_VALUE, ttl=NO_VALUE, nonce=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
QuickStartOptionHeader schema for IPv6-Opts quick start request options.
- class pcapkit.protocols.internet.ipv6_opts.schema.QuickStartReportOption(type=NO_VALUE, len=NO_VALUE, flags=NO_VALUE, reserved=NO_VALUE, nonce=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
QuickStartOptionHeader schema for IPv6-Opts quick start report of approved rate options.
- class pcapkit.protocols.internet.ipv6_opts.schema.RPLOption(type=NO_VALUE, len=NO_VALUE, flags=NO_VALUE, id=NO_VALUE, rank=NO_VALUE, sub_tlvs=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts routing protocol for low-power and lossy networks (RPL) options.
- class pcapkit.protocols.internet.ipv6_opts.schema.MPLOption(type=NO_VALUE, len=NO_VALUE, flags=NO_VALUE, seq=NO_VALUE, seed=NO_VALUE, pad=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts multicast protocol for low-power and lossy networks (MPL) options.
- seed: int | IPv6Address = <ConditionalField seed>¶
MPL Seed-ID.
- class pcapkit.protocols.internet.ipv6_opts.schema.ILNPOption(type=NO_VALUE, len=NO_VALUE, nonce=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts identifier-locator network protocol (ILNP) options.
- class pcapkit.protocols.internet.ipv6_opts.schema.LineIdentificationOption(type=NO_VALUE, len=NO_VALUE, id_len=NO_VALUE, id=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts line-identification options.
- class pcapkit.protocols.internet.ipv6_opts.schema.JumboPayloadOption(type=NO_VALUE, len=NO_VALUE, jumbo_len=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts jumbo payload options.
- class pcapkit.protocols.internet.ipv6_opts.schema.HomeAddressOption(type=NO_VALUE, len=NO_VALUE, addr=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts home address options.
- addr: IPv6Address = <IPv6AddressField addr>¶
Home address.
- class pcapkit.protocols.internet.ipv6_opts.schema.IPDFFOption(type=NO_VALUE, len=NO_VALUE, flags=NO_VALUE, seq=NO_VALUE, *, __packet__=None, **kwargs)[source]¶
Bases:
OptionHeader schema for IPv6-Opts depth-first forwarding (
IP_DFF) options.
Type Stubs¶
- class pcapkit.protocols.internet.ipv6_opts.schema.TaggerIDInfo[source]¶
Bases:
TypedDictTaggerID information.
- class pcapkit.protocols.internet.ipv6_opts.schema.QuickStartFlags[source]¶
Bases:
TypedDictQuick-Start flags.
- class pcapkit.protocols.internet.ipv6_opts.schema.MPLFlags[source]¶
Bases:
TypedDictMPL flags.
- class pcapkit.protocols.internet.ipv6_opts.schema.SMFDPDTestFlag[source]¶
Bases:
TypedDictSMF_DPDtest flag.
Auxiliary Functions¶
The option helpers are shared with
schema and documented in
pcapkit.protocols.internet.ipv6_ext.schema. The functions below bind
them to this module’s error prefix and option schemas;
rpl_opt_sub_tlv_len() and
pad_opt_data_len() are
used unchanged.
- pcapkit.protocols.internet.ipv6_opts.schema.mpl_opt_seed_id_len(pkt)[source]¶
Return MPL Seed-ID length.
See
pcapkit.protocols.internet.ipv6_ext.schema.mpl_opt_seed_id_len(); errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.calipso_pad_len(pkt)[source]¶
Return CALIPSO option padding length.
See
pcapkit.protocols.internet.ipv6_ext.schema.calipso_pad_len(); errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.mpl_opt_pad_len(pkt)[source]¶
Return MPL option padding length.
See
pcapkit.protocols.internet.ipv6_ext.schema.mpl_opt_pad_len(); errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.smf_dpd_data_selector(pkt)[source]¶
Selector function for
_SMFDPDOption.datafield.See
pcapkit.protocols.internet.ipv6_ext.schema.smf_dpd_data_selector(), choosing among the schemas registered withSMFDPDOption; errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.smf_i_dpd_tid_selector(pkt)[source]¶
Selector function for
SMFIdentificationBasedDPDOption.tidfield.See
pcapkit.protocols.internet.ipv6_ext.schema.smf_i_dpd_tid_selector(); errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.smf_i_dpd_id_len(pkt)[source]¶
Return SMF I-DPD identifier length.
See
pcapkit.protocols.internet.ipv6_ext.schema.smf_i_dpd_id_len(); errors are reported asIPv6-Opts.- Return type:
- pcapkit.protocols.internet.ipv6_opts.schema.quick_start_data_selector(pkt)[source]¶
Selector function for
_QuickStartOption.datafield.See
pcapkit.protocols.internet.ipv6_ext.schema.quick_start_data_selector(), choosing among the schemas registered withQuickStartOption, andUnassignedOptionfor an unassigned QS function.- Return type:
Data Models¶
Removed in version 1.6.0: pcapkit.protocols.data.internet.ipv6_opts, with no alias: the module moved here
(#2534).
- class pcapkit.protocols.internet.ipv6_opts.data.IPv6_Opts(next, length, options)[source]¶
Bases:
ProtocolData model for IPv6-Opts protocol.
Changed in version 1.5.0:
optionsis an immutableOrderedMultiInforather than anOrderedMultiDict(#1484).- options: OrderedMultiInfo[Option, Option]¶
IPv6-Opts options.
- class pcapkit.protocols.internet.ipv6_opts.data.Option(*args, **kwargs)[source]¶
Bases:
DataData model for IPv6-Opts option data.
- action: OptionAction¶
Unknown option action.
- class pcapkit.protocols.internet.ipv6_opts.data.UnassignedOption(type, action, change, length, data)[source]¶
Bases:
OptionData model for IPv6-Opts unassigned option.
- class pcapkit.protocols.internet.ipv6_opts.data.PadOption(type, action, change, length, pad)[source]¶
Bases:
OptionData model for IPv6-Opts padding options.
Changed in version 1.5.0: New required field
pad(#1223).
- class pcapkit.protocols.internet.ipv6_opts.data.TunnelEncapsulationLimitOption(type, action, change, length, limit)[source]¶
Bases:
OptionData model for IPv6-Opts tunnel encapsulation limit option.
- class pcapkit.protocols.internet.ipv6_opts.data.RouterAlertOption(type, action, change, length, value)[source]¶
Bases:
OptionData model for IPv6-Opts router alert option.
- value: RouterAlert¶
Router alert value.
- class pcapkit.protocols.internet.ipv6_opts.data.CALIPSOOption(type, action, change, length, domain, cmpt_len, level, checksum, pad)[source]¶
Bases:
OptionData model for IPv6-Opts Common Architecture Label IPv6 Security Option (CALIPSO) option.
Changed in version 1.5.0: New required field
pad(#1403).
- class pcapkit.protocols.internet.ipv6_opts.data.SMFDPDOption(*args, **kwargs)[source]¶
Bases:
OptionData model for IPv6-Opts Simplified Multicast Forwarding Duplicate Packet Detection (
SMF_DPD) option.- dpd_type: SMFDPDMode¶
DPD type.
- class pcapkit.protocols.internet.ipv6_opts.data.SMFIdentificationBasedDPDOption(type, action, change, length, dpd_type, tid_type, tid_len, tid, id)[source]¶
Bases:
SMFDPDOptionData model for IPv6-Opts I-DPD (Identification-Based DPD) option.
- tid_len: int¶
TidLenfield as on the wire – the TaggerID length in octets minus one, or0when there is no TaggerID [RFC 6621 Section 6.1.1].
- tid: bytes | IPv4Address | IPv6Address | None¶
TaggerID.
- class pcapkit.protocols.internet.ipv6_opts.data.SMFHashBasedDPDOption(type, action, change, length, dpd_type, hav)[source]¶
Bases:
SMFDPDOptionData model for IPv6-Opts H-DPD (Hash-Based DPD) option.
- class pcapkit.protocols.internet.ipv6_opts.data.PDMOption(type, action, change, length, scaledtlr, scaledtls, psntp, psnlr, deltatlr, deltatls)[source]¶
Bases:
OptionData model for IPv6-Opts Performance and Diagnostic Metrics (PDM) option.
- class pcapkit.protocols.internet.ipv6_opts.data.QuickStartOption(*args, **kwargs)[source]¶
Bases:
OptionData model for IPv6-Opts Quick Start option.
- func: QSFunction¶
QS function.
- class pcapkit.protocols.internet.ipv6_opts.data.QuickStartRequestOption(type, action, change, length, func, rate, ttl, nonce, reserved)[source]¶
Bases:
QuickStartOptionData model for IPv6-Opts Quick Start request option.
Changed in version 1.5.0: New required field
reserved(#1235).
- class pcapkit.protocols.internet.ipv6_opts.data.QuickStartReportOption(type, action, change, length, func, rate, nonce, reserved, unused)[source]¶
Bases:
QuickStartOptionData model for IPv6-Opts Quick Start report of approved rate option.
- class pcapkit.protocols.internet.ipv6_opts.data.RPLOption(type, action, change, length, flags, id, rank, sub_tlvs)[source]¶
Bases:
OptionData model for IPv6-Opts Routing Protocol for Low-Power and Lossy Networks (RPL) option.
Changed in version 1.5.0: New required field
sub_tlvs(#1199).- sub_tlvs: bytes¶
Sub-TLVs [RFC 6553 Section 3], kept as raw octets.
- class pcapkit.protocols.internet.ipv6_opts.data.RPLFlags(down, rank_err, fwd_err, reserved)[source]¶
Bases:
DataData model for IPv6-Opts RPL option flags fields.
Changed in version 1.5.0: New required field
reserved(#1199).
- class pcapkit.protocols.internet.ipv6_opts.data.MPLOption(type, action, change, length, seed_type, flags, seq, seed_id)[source]¶
Bases:
OptionData model for IPv6-Opts Multicast Protocol for Low-Power and Lossy Networks (MPL) option.
Changed in version 1.5.0:
seed_idmay be anIPv6Address, the source address, for a seed-id type ofIPV6_SOURCE_ADDRESS(#1185).- seed_id: int | IPv6Address | None¶
Seed ID.
- class pcapkit.protocols.internet.ipv6_opts.data.MPLFlags(max, drop, reserved)[source]¶
Bases:
DataData model for IPv6-Opts MPL option flags fields.
Changed in version 1.5.0: New required field
reserved(#1235).
- class pcapkit.protocols.internet.ipv6_opts.data.ILNPOption(type, action, change, length, nonce)[source]¶
Bases:
OptionData model for IPv6-Opts Identifier-Locator Network Protocol (ILNP) Nonce option.
- class pcapkit.protocols.internet.ipv6_opts.data.LineIdentificationOption(type, action, change, length, line_id_len, line_id)[source]¶
Bases:
OptionData model for IPv6-Opts Line-Identification option.
- class pcapkit.protocols.internet.ipv6_opts.data.JumboPayloadOption(type, action, change, length, jumbo_len)[source]¶
Bases:
OptionData model for Jumbo Payload option.
- class pcapkit.protocols.internet.ipv6_opts.data.HomeAddressOption(type, action, change, length, address)[source]¶
Bases:
OptionData model for IPv6-Opts Home Address option.
- address: IPv6Address¶
Home address.
- class pcapkit.protocols.internet.ipv6_opts.data.IPDFFOption(type, action, change, length, version, flags, seq)[source]¶
Bases:
OptionData model for IPv6-Opts Depth-First Forwarding (
IP_DFF) option.
- class pcapkit.protocols.internet.ipv6_opts.data.DFFFlags(dup, ret, reserved)[source]¶
Bases:
DataData model for IPv6-Opts
IP_DFFoption flags.Changed in version 1.5.0: New required field
reserved(#1235).
Footnotes