FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
pppoe.h File Reference
+ Include dependency graph for pppoe.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pppoe_header_t
 
struct  pppoe_session_t
 
struct  pppoe_entry_key_t
 
struct  pppoe_entry_result_t
 
struct  pppoe_main_t
 
struct  vnet_pppoe_add_del_session_args_t
 
struct  vnet_pppoe_add_del_tap_args_t
 

Macros

#define PPPOE_VER_TYPE   0x11
 
#define PPPOE_PADS   0x65
 
#define foreach_pppoe_input_next
 
#define pppoe_error(n, s)   PPPOE_ERROR_##n,
 
#define MTU   1500
 
#define MTU_BUFFERS   ((MTU + VLIB_BUFFER_DATA_SIZE - 1) / VLIB_BUFFER_DATA_SIZE)
 
#define NUM_BUFFERS_TO_ALLOC   32
 
#define PPPOE_NUM_BUCKETS   (64 * 1024)
 
#define PPPOE_MEMORY_SIZE   (8<<20)
 

Enumerations

enum  pppoe_input_next_t { PPPOE_INPUT_N_NEXT }
 
enum  pppoe_input_error_t { PPPOE_N_ERROR }
 

Functions

int vnet_pppoe_add_del_session (vnet_pppoe_add_del_session_args_t *a, u32 *sw_if_indexp)
 
static u64 pppoe_make_key (u8 *mac_address, u16 session_id)
 
static_always_inline void pppoe_learn_process (BVT(clib_bihash) *table, u32 sw_if_index0, pppoe_entry_key_t *key0, pppoe_entry_key_t *cached_key, u32 *bucket0, pppoe_entry_result_t *result0)
 Perform learning on one packet based on the mac table lookup result. More...
 
static_always_inline void pppoe_lookup_1 (BVT(clib_bihash) *table, pppoe_entry_key_t *cached_key, pppoe_entry_result_t *cached_result, u8 *mac0, u16 session_id0, pppoe_entry_key_t *key0, u32 *bucket0, pppoe_entry_result_t *result0)
 
static_always_inline void pppoe_update_1 (BVT(clib_bihash) *table, u8 *mac0, u16 session_id0, pppoe_entry_key_t *key0, u32 *bucket0, pppoe_entry_result_t *result0)
 

Variables

pppoe_main_t pppoe_main
 
vlib_node_registration_t pppoe_input_node
 (constructor) VLIB_REGISTER_NODE (pppoe_input_node) More...
 
vlib_node_registration_t pppoe_cp_dispatch_node
 (constructor) VLIB_REGISTER_NODE (pppoe_cp_dispatch_node) More...
 

Macro Definition Documentation

◆ foreach_pppoe_input_next

#define foreach_pppoe_input_next
Value:
_(DROP, "error-drop") \
_(IP4_INPUT, "ip4-input") \
_(IP6_INPUT, "ip6-input" ) \
_(CP_INPUT, "pppoe-cp-dispatch" ) \
DROP
Definition: error.def:41

Definition at line 75 of file pppoe.h.

◆ MTU

#define MTU   1500

Definition at line 98 of file pppoe.h.

◆ MTU_BUFFERS

#define MTU_BUFFERS   ((MTU + VLIB_BUFFER_DATA_SIZE - 1) / VLIB_BUFFER_DATA_SIZE)

Definition at line 99 of file pppoe.h.

◆ NUM_BUFFERS_TO_ALLOC

#define NUM_BUFFERS_TO_ALLOC   32

Definition at line 100 of file pppoe.h.

◆ pppoe_error

#define pppoe_error (   n,
 
)    PPPOE_ERROR_##n,

Definition at line 91 of file pppoe.h.

◆ PPPOE_MEMORY_SIZE

#define PPPOE_MEMORY_SIZE   (8<<20)

Definition at line 106 of file pppoe.h.

◆ PPPOE_NUM_BUCKETS

#define PPPOE_NUM_BUCKETS   (64 * 1024)

Definition at line 105 of file pppoe.h.

◆ PPPOE_PADS

#define PPPOE_PADS   0x65

Definition at line 47 of file pppoe.h.

◆ PPPOE_VER_TYPE

#define PPPOE_VER_TYPE   0x11

Definition at line 46 of file pppoe.h.

Enumeration Type Documentation

◆ pppoe_input_error_t

Enumerator
PPPOE_N_ERROR 

Definition at line 89 of file pppoe.h.

◆ pppoe_input_next_t

Enumerator
PPPOE_INPUT_N_NEXT 

Definition at line 81 of file pppoe.h.

Function Documentation

◆ pppoe_learn_process()

static_always_inline void pppoe_learn_process ( BVT(clib_bihash) *  table,
u32  sw_if_index0,
pppoe_entry_key_t key0,
pppoe_entry_key_t cached_key,
u32 bucket0,
pppoe_entry_result_t result0 
)

Perform learning on one packet based on the mac table lookup result.

Definition at line 239 of file pppoe.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pppoe_lookup_1()

static_always_inline void pppoe_lookup_1 ( BVT(clib_bihash) *  table,
pppoe_entry_key_t cached_key,
pppoe_entry_result_t cached_result,
u8 mac0,
u16  session_id0,
pppoe_entry_key_t key0,
u32 bucket0,
pppoe_entry_result_t result0 
)

Definition at line 274 of file pppoe.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pppoe_make_key()

static u64 pppoe_make_key ( u8 mac_address,
u16  session_id 
)
inlinestatic

Definition at line 208 of file pppoe.h.

+ Here is the caller graph for this function:

◆ pppoe_update_1()

static_always_inline void pppoe_update_1 ( BVT(clib_bihash) *  table,
u8 mac0,
u16  session_id0,
pppoe_entry_key_t key0,
u32 bucket0,
pppoe_entry_result_t result0 
)

Definition at line 308 of file pppoe.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_pppoe_add_del_session()

int vnet_pppoe_add_del_session ( vnet_pppoe_add_del_session_args_t a,
u32 sw_if_indexp 
)

Definition at line 257 of file pppoe.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ pppoe_cp_dispatch_node

vlib_node_registration_t pppoe_cp_dispatch_node
Initial value:
= {
.function = pppoe_cp_dispatch,
.name = "pppoe-cp-dispatch",
.vector_size = sizeof (u32),
.n_next_nodes = PPPOE_CP_N_NEXT,
.next_nodes = {
#define _(s,n)
},
.format_trace = format_pppoe_cp_trace,
}
static uword pppoe_cp_dispatch(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: pppoe_cp_node.c:70
unsigned int u32
Definition: types.h:88
static u8 * format_pppoe_cp_trace(u8 *s, va_list *args)
Definition: pppoe_cp_node.c:45
#define foreach_pppoe_cp_next
Definition: pppoe_cp_node.c:24

(constructor) VLIB_REGISTER_NODE (pppoe_cp_dispatch_node)

Definition at line 238 of file pppoe_cp_node.c.

◆ pppoe_input_node

vlib_node_registration_t pppoe_input_node

(constructor) VLIB_REGISTER_NODE (pppoe_input_node)

Definition at line 401 of file pppoe_decap.c.

◆ pppoe_main

pppoe_main_t pppoe_main

Definition at line 38 of file pppoe.c.