FD.io VPP  v17.01.1-3-gc6833f8
Vector Packet Processing
l2_bd.h File Reference
+ Include dependency graph for l2_bd.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  bd_main_t
 
struct  l2_flood_member_t
 
struct  l2_bridge_domain_t
 

Macros

#define L2_FLOOD_MEMBER_NORMAL   0
 
#define L2_FLOOD_MEMBER_BVI   1
 
#define L2_LEARN   (1<<0)
 
#define L2_FWD   (1<<1)
 
#define L2_FLOOD   (1<<2)
 
#define L2_UU_FLOOD   (1<<3)
 
#define L2_ARP_TERM   (1<<4)
 

Functions

static u32 bd_is_valid (l2_bridge_domain_t *bd_config)
 
void bd_validate (l2_bridge_domain_t *bd_config)
 Init bridge domain if not done already. More...
 
void bd_add_member (l2_bridge_domain_t *bd_config, l2_flood_member_t *member)
 
u32 bd_remove_member (l2_bridge_domain_t *bd_config, u32 sw_if_index)
 
u32 bd_set_flags (vlib_main_t *vm, u32 bd_index, u32 flags, u32 enable)
 Set the learn/forward/flood flags for the bridge domain. More...
 
void bd_set_mac_age (vlib_main_t *vm, u32 bd_index, u8 age)
 Set the mac age for the bridge domain. More...
 
u32 bd_find_or_add_bd_index (bd_main_t *bdm, u32 bd_id)
 Get or create a bridge domain. More...
 
int bd_delete_bd_index (bd_main_t *bdm, u32 bd_id)
 Delete a bridge domain. More...
 
u32 bd_add_del_ip_mac (u32 bd_index, u8 *ip_addr, u8 *mac_addr, u8 is_ip6, u8 is_add)
 Add/delete IP address to MAC address mapping. More...
 

Variables

bd_main_t bd_main
 

Macro Definition Documentation

#define L2_ARP_TERM   (1<<4)

Definition at line 112 of file l2_bd.h.

#define L2_FLOOD   (1<<2)

Definition at line 110 of file l2_bd.h.

#define L2_FLOOD_MEMBER_BVI   1

Definition at line 42 of file l2_bd.h.

#define L2_FLOOD_MEMBER_NORMAL   0

Definition at line 41 of file l2_bd.h.

#define L2_FWD   (1<<1)

Definition at line 109 of file l2_bd.h.

#define L2_LEARN   (1<<0)

Definition at line 108 of file l2_bd.h.

#define L2_UU_FLOOD   (1<<3)

Definition at line 111 of file l2_bd.h.

Function Documentation

u32 bd_add_del_ip_mac ( u32  bd_index,
u8 ip_addr,
u8 mac_addr,
u8  is_ip6,
u8  is_add 
)

Add/delete IP address to MAC address mapping.

The clib hash implementation stores uword entries in the hash table. The hash table mac_by_ip4 is keyed via IP4 address and store the 6-byte MAC address directly in the hash table entry uword.

Warning
This only works for 64-bit processor with 8-byte uword; which means this code WILL NOT WORK for a 32-bit prcessor with 4-byte uword.

Definition at line 695 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bd_add_member ( l2_bridge_domain_t bd_config,
l2_flood_member_t member 
)

Definition at line 129 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bd_delete_bd_index ( bd_main_t bdm,
u32  bd_id 
)

Delete a bridge domain.

Delete an existing bridge domain with the given bridge domain ID.

Parameters
bdmbd_main pointer.
bd_idThe bridge domain ID.
Returns
0 on success and -1 if the bridge domain does not exist.

Definition at line 100 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 bd_find_or_add_bd_index ( bd_main_t bdm,
u32  bd_id 
)

Get or create a bridge domain.

Get or create a bridge domain with the given bridge domain ID.

Parameters
bdmbd_main pointer.
bd_idThe bridge domain ID or ~0 if an arbitrary unused bridge domain should be used.
Returns
The bridge domain index in l2input_main->l2_bridge_domain_t vector.

Definition at line 68 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 bd_is_valid ( l2_bridge_domain_t bd_config)
inlinestatic

Definition at line 93 of file l2_bd.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 bd_remove_member ( l2_bridge_domain_t bd_config,
u32  sw_if_index 
)

Definition at line 168 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 bd_set_flags ( vlib_main_t vm,
u32  bd_index,
u32  flags,
u32  enable 
)

Set the learn/forward/flood flags for the bridge domain.

Return 0 if ok, non-zero if for an error.

Definition at line 224 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bd_set_mac_age ( vlib_main_t vm,
u32  bd_index,
u8  age 
)

Set the mac age for the bridge domain.

Definition at line 272 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bd_validate ( l2_bridge_domain_t bd_config)

Init bridge domain if not done already.

For feature bitmap, set all bits except ARP termination

Definition at line 51 of file l2_bd.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

bd_main_t bd_main

Definition at line 37 of file l2_bd.h.