DPDK  23.07.0
Data Structures
rte_l2tpv2.h File Reference
#include <stdint.h>
#include <rte_byteorder.h>

Go to the source code of this file.

Data Structures

struct  rte_l2tpv2_common_hdr
 
struct  rte_l2tpv2_msg_with_all_options
 
struct  rte_l2tpv2_msg_without_length
 
struct  rte_l2tpv2_msg_without_ns_nr
 
struct  rte_l2tpv2_msg_without_offset
 
struct  rte_l2tpv2_msg_with_offset
 
struct  rte_l2tpv2_msg_with_ns_nr
 
struct  rte_l2tpv2_msg_with_length
 
struct  rte_l2tpv2_msg_without_all_options
 
struct  rte_l2tpv2_combined_msg_hdr
 

Detailed Description

L2TP header:

-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)

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Type (T) bit indicates the type of message. It is set to 0 for a data message and 1 for a control message.

If the Length (L) bit is 1, the Length field is present. This bit MUST be set to 1 for control messages.

The x bits are reserved for future extensions. All reserved bits MUST be set to 0 on outgoing messages and ignored on incoming messages.

If the Sequence (S) bit is set to 1 the Ns and Nr fields are present. The S bit MUST be set to 1 for control messages.

If the Offset (O) bit is 1, the Offset Size field is present. The O bit MUST be set to 0 for control messages.

If the Priority (P) bit is 1, this data message should receive preferential treatment in its local queuing and transmission. The P bit MUST be set to 0 for control messages.

Ver MUST be 2, indicating the version of the L2TP data message header.

The Length field indicates the total length of the message in octets.

Tunnel ID indicates the identifier for the control connection.

Session ID indicates the identifier for a session within a tunnel.

Ns indicates the sequence number for this data or control message.

Nr indicates the sequence number expected in the next control message to be received.

The Offset Size field, if present, specifies the number of octets past the L2TP header at which the payload data is expected to start. Actual data within the offset padding is undefined. If the offset field is present, the L2TP header ends after the last octet of the offset padding.

Definition in file rte_l2tpv2.h.