FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
protocol.h File Reference
+ Include dependency graph for protocol.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lacp_state_struct
 
struct  lacp_event_struct
 

Macros

#define LACP_CHURN_DETECTION_TIME   60
 
#define LACP_AGGREGATE_WAIT_TIME   2.0
 
#define LACP_SUBTYPE   1
 
#define LACP_ACTOR_LACP_VERSION   1
 
#define foreach_lacp_tlv
 
#define foreach_lacp_port
 
#define foreach_lacp_state
 
#define LACP_STEADY_STATE
 
#define foreach_lacp_state_flag
 
#define LACP_MAX_TX_IN_SECOND   3
 
#define LACP_DEFAULT_PORT_PRIORITY   0x00ff
 
#define LACP_DEFAULT_SYSTEM_PRIORITY   0xffff
 
#define MARKER_SUBTYPE   2
 
#define MARKER_PROTOCOL_VERSION   1
 
#define foreach_marker_tlv
 

Enumerations

enum  lacp_tlv_t { foreach_lacp_tlv }
 
enum  lacp_port_t { foreach_lacp_port }
 
enum  lacp_state_t { foreach_lacp_state }
 
enum  marker_tlv_t { foreach_marker_tlv }
 

Functions

typedef CLIB_PACKED (struct { u8 tlv_type;u8 tlv_length;lacp_port_info_t port_info;u8 reserved[3];}) lacp_actor_partner_t
 
typedef CLIB_PACKED (struct { u8 tlv_type;u8 tlv_length;u16 max_delay;u8 reserved[12];}) lacp_collector_t
 
typedef CLIB_PACKED (struct { u8 tlv_type;u8 tlv_length;u8 pad[50];}) lacp_terminator_t
 
typedef CLIB_PACKED (struct { u8 subtype;u8 version_number;lacp_actor_partner_t actor;lacp_actor_partner_t partner;lacp_collector_t collector;lacp_terminator_t terminator;}) lacp_pdu_t
 
typedef CLIB_PACKED (struct { ethernet_header_t ethernet;lacp_pdu_t lacp;}) ethernet_lacp_pdu_t
 
typedef CLIB_PACKED (struct { u8 tlv_type;u8 tlv_length;u8 reserved[90];}) marker_terminator_t
 
typedef CLIB_PACKED (struct { u8 tlv_type;u8 tlv_length;u16 requester_port;u8 requester_system[6];u32 requester_transaction_id;u8 pad[2];}) marker_information_t
 
typedef CLIB_PACKED (struct { u8 subtype;u8 version_number;marker_information_t marker_info;marker_terminator_t terminator;}) marker_pdu_t
 
typedef CLIB_PACKED (struct { ethernet_header_t ethernet;marker_pdu_t marker;}) ethernet_marker_pdu_t
 

Macro Definition Documentation

◆ foreach_lacp_port

#define foreach_lacp_port
Value:
_ (UNSELECTED, 0) \
_ (SELECTED, 1) \
_ (STANDBY, 2)

Definition at line 41 of file protocol.h.

◆ foreach_lacp_state

#define foreach_lacp_state
Value:
_(0, LACP_ACTIVITY, "activity") \
_(1, LACP_TIMEOUT, "lacp timeout") \
_(2, AGGREGATION, "aggregation") \
_(3, SYNCHRONIZATION, "synchronization") \
_(4, COLLECTING, "collecting") \
_(5, DISTRIBUTING, "distributing") \
_(6, DEFAULTED, "defaulted") \
_(7, EXPIRED, "expired")

Definition at line 54 of file protocol.h.

◆ foreach_lacp_state_flag

#define foreach_lacp_state_flag
Value:
_(0, LACP_STATE_LACP_ACTIVITY, "activity") \
_(1, LACP_STATE_LACP_TIMEOUT, "lacp timeout") \
_(2, LACP_STATE_AGGREGATION, "aggregation") \
_(3, LACP_STATE_SYNCHRONIZATION, "synchronization") \
_(4, LACP_STATE_COLLECTIING, "collecting") \
_(5, LACP_STATE_DISTRIBUTING, "distributing") \
_(6, LACP_STATE_DEFAULTED, "defaulted") \
_(7, LACP_STATE_EXPIRED, "expired")

Definition at line 75 of file protocol.h.

◆ foreach_lacp_tlv

#define foreach_lacp_tlv
Value:
_ (TERMINATOR_INFORMATION, 0) \
_ (ACTOR_INFORMATION, 1) \
_ (PARTNER_INFORMATION , 2) \
_ (COLLECTOR_INFORMATION, 3)

Definition at line 28 of file protocol.h.

◆ foreach_marker_tlv

#define foreach_marker_tlv
Value:
_ (TERMINATOR_INFORMATION, 0) \
_ (INFORMATION, 1) \
_ (RESPONSE_INFORMATION , 2)

Definition at line 135 of file protocol.h.

◆ LACP_ACTOR_LACP_VERSION

#define LACP_ACTOR_LACP_VERSION   1

Definition at line 26 of file protocol.h.

◆ LACP_AGGREGATE_WAIT_TIME

#define LACP_AGGREGATE_WAIT_TIME   2.0

Definition at line 23 of file protocol.h.

◆ LACP_CHURN_DETECTION_TIME

#define LACP_CHURN_DETECTION_TIME   60

Definition at line 22 of file protocol.h.

◆ LACP_DEFAULT_PORT_PRIORITY

#define LACP_DEFAULT_PORT_PRIORITY   0x00ff

Definition at line 98 of file protocol.h.

◆ LACP_DEFAULT_SYSTEM_PRIORITY

#define LACP_DEFAULT_SYSTEM_PRIORITY   0xffff

Definition at line 99 of file protocol.h.

◆ LACP_MAX_TX_IN_SECOND

#define LACP_MAX_TX_IN_SECOND   3

Definition at line 97 of file protocol.h.

◆ LACP_STEADY_STATE

#define LACP_STEADY_STATE
Value:
(LACP_STATE_SYNCHRONIZATION | \
LACP_STATE_COLLECTING | \
LACP_STATE_DISTRIBUTING)

Definition at line 64 of file protocol.h.

◆ LACP_SUBTYPE

#define LACP_SUBTYPE   1

Definition at line 25 of file protocol.h.

◆ MARKER_PROTOCOL_VERSION

#define MARKER_PROTOCOL_VERSION   1

Definition at line 133 of file protocol.h.

◆ MARKER_SUBTYPE

#define MARKER_SUBTYPE   2

Definition at line 132 of file protocol.h.

Enumeration Type Documentation

◆ lacp_port_t

Enumerator
foreach_lacp_port 

Definition at line 46 of file protocol.h.

◆ lacp_state_t

Enumerator
foreach_lacp_state 

Definition at line 68 of file protocol.h.

◆ lacp_tlv_t

enum lacp_tlv_t
Enumerator
foreach_lacp_tlv 

Definition at line 34 of file protocol.h.

◆ marker_tlv_t

Enumerator
foreach_marker_tlv 

Definition at line 140 of file protocol.h.

Function Documentation

◆ CLIB_PACKED() [1/9]

typedef CLIB_PACKED ( struct { ethernet_header_t ethernet;lacp_pdu_t lacp;}  )

◆ CLIB_PACKED() [2/9]

typedef CLIB_PACKED ( struct { ethernet_header_t ethernet;marker_pdu_t marker;}  )

◆ CLIB_PACKED() [3/9]

typedef CLIB_PACKED ( struct { u8 subtype;u8 version_number;lacp_actor_partner_t actor;lacp_actor_partner_t partner;lacp_collector_t collector;lacp_terminator_t terminator;}  )

◆ CLIB_PACKED() [4/9]

typedef CLIB_PACKED ( struct { u8 subtype;u8 version_number;marker_information_t marker_info;marker_terminator_t terminator;}  )

◆ CLIB_PACKED() [5/9]

typedef CLIB_PACKED ( struct { u8 tlv_type;u8 tlv_length;lacp_port_info_t port_info;u8 reserved[3];}  )

◆ CLIB_PACKED() [6/9]

typedef CLIB_PACKED ( struct { u8 tlv_type;u8 tlv_length;u16 max_delay;u8 reserved[12];}  )

◆ CLIB_PACKED() [7/9]

typedef CLIB_PACKED ( struct { u8 tlv_type;u8 tlv_length;u16 requester_port;u8 requester_system[6];u32 requester_transaction_id;u8 pad[2];}  )

◆ CLIB_PACKED() [8/9]

typedef CLIB_PACKED ( struct { u8 tlv_type;u8 tlv_length;u8 pad[50];}  )

◆ CLIB_PACKED() [9/9]

typedef CLIB_PACKED ( struct { u8 tlv_type;u8 tlv_length;u8 reserved[90];}  )