L2TP - Layer Two Tunnelling Protocol¶
pcapkit.protocols.link.l2tp
contains
L2TP
only,
which implements extractor for Layer Two Tunnelling
Protocol (L2TP) [*], whose structure is described
as below:
Octets |
Bits |
Name |
Description |
---|---|---|---|
0 |
0 |
|
Flags and Version Info |
0 |
0 |
|
Type (control / data) |
0 |
1 |
|
Length |
0 |
2 |
Reserved (must be zero |
|
0 |
4 |
|
Sequence |
0 |
5 |
Reserved (must be zero |
|
0 |
6 |
|
Offset |
0 |
7 |
|
Priority |
1 |
8 |
Reserved (must be zero |
|
1 |
12 |
|
Version ( |
2 |
16 |
|
Length (optional by |
4 |
32 |
|
Tunnel ID |
6 |
48 |
|
Session ID |
8 |
64 |
|
Sequence Number (optional by |
10 |
80 |
|
Next Sequence Number (optional by |
12 |
96 |
|
Offset Size (optional by |
- class pcapkit.protocols.link.l2tp.L2TP(file=None, length=None, **kwargs)[source]¶
-
This class implements Layer Two Tunnelling Protocol.
- property name: Literal['Layer 2 Tunnelling Protocol']¶
Name of current protocol.
- read(length=None, **kwargs)[source]¶
Read Layer Two Tunnelling Protocol.
Structure of L2TP header [RFC 2661]:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T|L|x|x|S|x|O|P|x|x|x|x| Ver | Length (opt) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tunnel ID | Session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ns (opt) | Nr (opt) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset Size (opt) | Offset pad... (opt) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- make(version=2, type=<Type.Data: 1>, type_default=None, type_namespace=None, type_reversed=False, priority=False, length=None, tunnel_id=0, session_id=0, ns=None, nr=None, offset=None, payload=b'', **kwargs)[source]¶
Make (construct) packet data.
- Parameters:
version (
Literal
[2
]) – L2TP version.type_namespace (
Union
[dict
[str
,int
],dict
[int
,str
],Type
[IntEnum
],Type
[IntEnum
],None
]) – Namespace of type.type_reversed (
bool
) – Reversed namespace of type.priority (
bool
) – Priority flag.tunnel_id (
int
) – Tunnel ID.session_id (
int
) – Session ID.payload (
bytes
|ProtocolBase
|Schema
) – Payload data.**kwargs (
Any
) – Arbitrary keyword arguments.
- Return type:
- Returns:
Constructed packet data.
- classmethod __index__()[source]¶
Numeral registry index of the protocol.
- Raises:
UnsupportedCall – This protocol has no registry entry.
- Return type:
Header Schemas¶
- class pcapkit.protocols.schema.link.l2tp.L2TP(dict_=None, **kwargs)[source]¶
Bases:
Schema
Header schema for L2TP packet.
- flags: FlagsType = <BitField flags>¶
Flags and version of L2TP packet.
- length: int = <ConditionalField length>¶
Length of L2TP packet.
- tunnel_id: int = <UInt16Field tunnel_id>¶
Tunnel ID of L2TP packet.
- session_id: int = <UInt16Field session_id>¶
Session ID of L2TP packet.
- ns: int = <ConditionalField ns>¶
Sequence number of L2TP packet.
- nr: int = <ConditionalField nr>¶
Next sequence number of L2TP packet.
- offset: int = <ConditionalField offset>¶
Offset size of L2TP packet.
- padding: bytes = <ConditionalField padding>¶
Padding of L2TP packet.
- payload: bytes = <PayloadField payload>¶
Payload of L2TP packet.
Type Stubs¶
Data Models¶
- class pcapkit.protocols.data.link.l2tp.L2TP(*args: VT, **kwargs: VT)[source]¶
Bases:
Protocol
Data model for L2TP packet.
- flags: Flags¶
Flags and version info.
- version: int¶
Version.
- length: Optional[int]¶
Length.
- tunnelid: int¶
Tunnel ID.
- sessionid: int¶
Session ID.
- ns: Optional[int]¶
Sequence Number.
- nr: Optional[int]¶
Next Sequence Number.
- offset: Optional[int]¶
Offset Size.
- hdr_len: int¶
Header length.
- class pcapkit.protocols.data.link.l2tp.Flags(*args: VT, **kwargs: VT)[source]¶
Bases:
Data
Data model for L2TP flags and version info.
- type: Type¶
Type.
- len: bool¶
Length.
- seq: bool¶
Sequence.
- offset: bool¶
Offset.
- prio: bool¶
Priority.
Footnotes