FD.io VPP  v16.06
Vector Packet Processing
l2_input.h File Reference
+ Include dependency graph for l2_input.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  l2_input_config_t
 
struct  l2input_main_t
 

Macros

#define foreach_l2input_feat
 
#define IP4_FEAT_MASK
 
#define IP6_FEAT_MASK
 
#define IP_UDP_TCP_FEAT_MASK
 
#define MPLS_FEAT_MASK
 
#define MODE_L3   0
 
#define MODE_L2_BRIDGE   1
 
#define MODE_L2_XC   2
 
#define MODE_L2_CLASSIFY   3
 
#define MODE_ERROR_ETH   1
 
#define MODE_ERROR_BVI_DEF   2
 

Enumerations

enum  l2input_feat_t { L2INPUT_N_FEAT }
 
enum  l2input_feat_masks_t { foreach_l2input_feat }
 

Functions

static_always_inline l2_bridge_domain_tl2input_bd_config_from_index (l2input_main_t *l2im, u32 bd_index)
 
char ** l2input_get_feat_names (void)
 
static_always_inline u8 bd_feature_flood (l2_bridge_domain_t *bd_config)
 
static_always_inline u8 bd_feature_uu_flood (l2_bridge_domain_t *bd_config)
 
static_always_inline u8 bd_feature_forward (l2_bridge_domain_t *bd_config)
 
static_always_inline u8 bd_feature_learn (l2_bridge_domain_t *bd_config)
 
static_always_inline u8 bd_feature_arp_term (l2_bridge_domain_t *bd_config)
 
l2_input_config_tl2input_intf_config (u32 sw_if_index)
 
u32 l2input_intf_bitmap_enable (u32 sw_if_index, u32 feature_bitmap, u32 enable)
 
u32 l2input_set_bridge_features (u32 bd_index, u32 feat_mask, u32 feat_value)
 
u32 set_int_l2_mode (vlib_main_t *vm, vnet_main_t *vnet_main, u32 mode, u32 sw_if_index, u32 bd_index, u32 bvi, u32 shg, u32 xc_sw_if_index)
 
static void vnet_update_l2_len (vlib_buffer_t *b)
 
static u32 vnet_l2_compute_flow_hash (vlib_buffer_t *b)
 

Variables

l2input_main_t l2input_main
 
vlib_node_registration_t l2input_node
 (constructor) VLIB_REGISTER_NODE (l2input_node) More...
 

Macro Definition Documentation

#define foreach_l2input_feat
Value:
_(DROP, "feature-bitmap-drop") \
_(CLASSIFY, "l2-classify") \
_(XCONNECT, "l2-output") \
_(IPIW, "feature-bitmap-drop") \
_(FLOOD, "l2-flood") \
_(ARP_TERM, "arp-term-l2bd") \
_(UU_FLOOD, "l2-flood") \
_(FWD, "l2-fwd") \
_(RW, "l2-rw") \
_(LEARN, "l2-learn") \
_(VTR, "l2-input-vtr") \
_(VPATH, "vpath-input-l2") \
_(CTRL_PKT, "feature-bitmap-drop") \
_(L2PT, "feature-bitmap-drop") \
_(IGMP_SNOOP, "feature-bitmap-drop") \
_(MLD_SNOOP, "feature-bitmap-drop") \
_(DHCP_SNOOP, "feature-bitmap-drop") \
_(DAI, "feature-bitmap-drop") \
_(IPSG, "feature-bitmap-drop") \
_(ACL, "l2-input-acl") \
_(QOS, "feature-bitmap-drop") \
_(CFM, "feature-bitmap-drop") \
_(SPAN, "feature-bitmap-drop")
DROP
Definition: error.def:41

Definition at line 89 of file l2_input.h.

#define IP4_FEAT_MASK
Value:
~(L2INPUT_FEAT_CTRL_PKT | \
L2INPUT_FEAT_MLD_SNOOP | \
L2INPUT_FEAT_L2PT | \
L2INPUT_FEAT_CFM | \
L2INPUT_FEAT_DAI)

Definition at line 165 of file l2_input.h.

#define IP6_FEAT_MASK
Value:
~(L2INPUT_FEAT_CTRL_PKT | \
L2INPUT_FEAT_IGMP_SNOOP | \
L2INPUT_FEAT_L2PT | \
L2INPUT_FEAT_CFM | \
L2INPUT_FEAT_DAI)

Definition at line 171 of file l2_input.h.

#define IP_UDP_TCP_FEAT_MASK
Value:
~(L2INPUT_FEAT_CTRL_PKT | \
L2INPUT_FEAT_L2PT | \
L2INPUT_FEAT_IGMP_SNOOP | \
L2INPUT_FEAT_MLD_SNOOP | \
L2INPUT_FEAT_DHCP_SNOOP | \
L2INPUT_FEAT_CFM | \
L2INPUT_FEAT_DAI)

Definition at line 177 of file l2_input.h.

#define MODE_ERROR_BVI_DEF   2

Definition at line 214 of file l2_input.h.

#define MODE_ERROR_ETH   1

Definition at line 213 of file l2_input.h.

#define MODE_L2_BRIDGE   1

Definition at line 209 of file l2_input.h.

#define MODE_L2_CLASSIFY   3

Definition at line 211 of file l2_input.h.

#define MODE_L2_XC   2

Definition at line 210 of file l2_input.h.

#define MODE_L3   0

Definition at line 208 of file l2_input.h.

#define MPLS_FEAT_MASK
Value:
~(L2INPUT_FEAT_CTRL_PKT | \
L2INPUT_FEAT_L2PT | \
L2INPUT_FEAT_IGMP_SNOOP | \
L2INPUT_FEAT_MLD_SNOOP | \
L2INPUT_FEAT_DHCP_SNOOP | \
L2INPUT_FEAT_CFM | \
L2INPUT_FEAT_DAI)

Definition at line 185 of file l2_input.h.

Enumeration Type Documentation

Enumerator
foreach_l2input_feat 

Definition at line 123 of file l2_input.h.

Enumerator
L2INPUT_N_FEAT 

Definition at line 115 of file l2_input.h.

Function Documentation

static_always_inline u8 bd_feature_arp_term ( l2_bridge_domain_t bd_config)

Definition at line 157 of file l2_input.h.

+ Here is the caller graph for this function:

static_always_inline u8 bd_feature_flood ( l2_bridge_domain_t bd_config)

Definition at line 133 of file l2_input.h.

+ Here is the caller graph for this function:

static_always_inline u8 bd_feature_forward ( l2_bridge_domain_t bd_config)

Definition at line 145 of file l2_input.h.

+ Here is the caller graph for this function:

static_always_inline u8 bd_feature_learn ( l2_bridge_domain_t bd_config)

Definition at line 151 of file l2_input.h.

+ Here is the caller graph for this function:

static_always_inline u8 bd_feature_uu_flood ( l2_bridge_domain_t bd_config)

Definition at line 139 of file l2_input.h.

+ Here is the caller graph for this function:

static_always_inline l2_bridge_domain_t* l2input_bd_config_from_index ( l2input_main_t l2im,
u32  bd_index 
)

Definition at line 78 of file l2_input.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

char** l2input_get_feat_names ( void  )

Definition at line 45 of file l2_input.c.

+ Here is the caller graph for this function:

u32 l2input_intf_bitmap_enable ( u32  sw_if_index,
u32  feature_bitmap,
u32  enable 
)

Definition at line 473 of file l2_input.c.

+ Here is the caller graph for this function:

l2_input_config_t* l2input_intf_config ( u32  sw_if_index)

Definition at line 464 of file l2_input.c.

+ Here is the caller graph for this function:

u32 l2input_set_bridge_features ( u32  bd_index,
u32  feat_mask,
u32  feat_value 
)

Definition at line 492 of file l2_input.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 set_int_l2_mode ( vlib_main_t vm,
vnet_main_t vnet_main,
u32  mode,
u32  sw_if_index,
u32  bd_index,
u32  bvi,
u32  shg,
u32  xc_sw_if_index 
)

Definition at line 509 of file l2_input.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vnet_l2_compute_flow_hash ( vlib_buffer_t b)
inlinestatic

Definition at line 266 of file l2_input.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vnet_update_l2_len ( vlib_buffer_t b)
inlinestatic

Definition at line 226 of file l2_input.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

l2input_main_t l2input_main

Definition at line 72 of file l2_input.c.

(constructor) VLIB_REGISTER_NODE (l2input_node)

Definition at line 415 of file l2_input.c.