|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
46 #define PPPOE_VER_TYPE 0x11
47 #define PPPOE_PADS 0x65
75 #define foreach_pppoe_input_next \
76 _(DROP, "error-drop") \
77 _(IP4_INPUT, "ip4-input") \
78 _(IP6_INPUT, "ip6-input" ) \
79 _(CP_INPUT, "pppoe-cp-dispatch" ) \
83 #define _(s,n) PPPOE_INPUT_NEXT_##s,
91 #define pppoe_error(n,s) PPPOE_ERROR_##n,
100 #define MTU_BUFFERS ((MTU + vlib_buffer_get_default_data_size(vm) - 1) / vlib_buffer_get_default_data_size(vm))
101 #define NUM_BUFFERS_TO_ALLOC 32
106 #define PPPOE_NUM_BUCKETS (64 * 1024)
107 #define PPPOE_MEMORY_SIZE (8<<20)
158 BVT (clib_bihash) link_table;
161 BVT (clib_bihash) session_table;
219 #if CLIB_ARCH_IS_LITTLE_ENDIAN
256 else if (result0->
fields.sw_if_index == ~0)
259 result0->
fields.sw_if_index = sw_if_index0;
260 result0->
fields.session_index = ~0;
261 cached_key->
raw = ~0;
266 result0->
fields.sw_if_index = sw_if_index0;
270 BVT (clib_bihash_kv) kv;
272 kv.value = result0->
raw;
289 if (key0->
raw == cached_key->
raw)
292 result0->
raw = cached_result->
raw;
297 BVT (clib_bihash_kv) kv;
302 result0->
raw = kv.value;
305 cached_key->
raw = key0->
raw;
306 cached_result->
raw = result0->
raw;
322 BVT (clib_bihash_kv) kv;
324 kv.value = result0->
raw;
u32 decap_fib_index
FIB indices - inner IP packet lookup here.
char * pppoe_error_strings[]
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
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.
int vnet_pppoe_add_del_session(vnet_pppoe_add_del_session_args_t *a, u32 *sw_if_indexp)
int clib_bihash_search_inline(clib_bihash *h, clib_bihash_kv *in_out_kv)
Search a bi-hash table.
vlib_node_registration_t pppoe_input_node
(constructor) VLIB_REGISTER_NODE (pppoe_input_node)
#define static_always_inline
BVT(clib_bihash)
The table of adjacencies indexed by the rewrite string.
struct _vlib_node_registration vlib_node_registration_t
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)
struct pppoe_entry_result_t::@776::@778 fields
u32 * session_index_by_sw_if_index
int clib_bihash_add_del(clib_bihash *h, clib_bihash_kv *add_v, int is_add)
Add or delete a (key,value) pair from a bi-hash table.
static u64 pppoe_make_key(u8 *mac_address, u16 session_id)
#define foreach_pppoe_input_next
u32 * free_pppoe_session_hw_if_indices
int pppoe_add_del_cp(u32 cp_if_index, u8 is_add)
pppoe_session_t * sessions
vlib_node_registration_t pppoe_cp_dispatch_node
(constructor) VLIB_REGISTER_NODE (pppoe_cp_dispatch_node)
manual_print typedef u8 mac_address[6]