FD.io VPP  v17.04-9-g99c0734
Vector Packet Processing
gid_dictionary.c File Reference
+ Include dependency graph for gid_dictionary.c:

Go to the source code of this file.

Data Structures

struct  sfib_entry_arg_t
 

Functions

static u32 ip4_lookup (gid_ip4_table_t *db, u32 vni, ip_prefix_t *key)
 
static u32 ip6_lookup (gid_ip6_table_t *db, u32 vni, ip_prefix_t *key)
 
static void foreach_sfib4_subprefix (BVT(clib_bihash_kv)*kvp, void *arg)
 
static void gid_dict_foreach_ip4_subprefix (gid_dictionary_t *db, u32 vni, ip_prefix_t *src, ip_prefix_t *dst, foreach_subprefix_match_cb_t cb, void *arg)
 
static void foreach_sfib6_subprefix (BVT(clib_bihash_kv)*kvp, void *arg)
 
static void gid_dict_foreach_ip6_subprefix (gid_dictionary_t *db, u32 vni, ip_prefix_t *src, ip_prefix_t *dst, foreach_subprefix_match_cb_t cb, void *arg)
 
void gid_dict_foreach_subprefix (gid_dictionary_t *db, gid_address_t *eid, foreach_subprefix_match_cb_t cb, void *arg)
 
static void make_mac_sd_key (BVT(clib_bihash_kv)*kv, u32 vni, u8 src_mac[6], u8 dst_mac[6])
 
static u32 mac_sd_lookup (gid_mac_table_t *db, u32 vni, u8 *dst, u8 *src)
 
static u32 ip4_lookup_exact_match (gid_ip4_table_t *db, u32 vni, ip_prefix_t *key)
 
static u32 ip6_lookup_exact_match (gid_ip6_table_t *db, u32 vni, ip_prefix_t *key)
 
static u32 ip_sd_lookup (gid_dictionary_t *db, u32 vni, ip_prefix_t *dst, ip_prefix_t *src)
 
u32 gid_dictionary_lookup (gid_dictionary_t *db, gid_address_t *key)
 
u32 gid_dictionary_sd_lookup (gid_dictionary_t *db, gid_address_t *dst, gid_address_t *src)
 
static void ip4_compute_prefix_lengths_in_search_order (gid_ip4_table_t *db)
 
static u32 add_del_ip4_key (gid_ip4_table_t *db, u32 vni, ip_prefix_t *pref, u32 val, u8 is_add)
 
static void ip4_lookup_init (gid_ip4_table_t *db)
 
static u32 add_del_sd_ip4_key (gid_dictionary_t *db, u32 vni, ip_prefix_t *dst_pref, ip_prefix_t *src_pref, u32 val, u8 is_add)
 
static void ip6_compute_prefix_lengths_in_search_order (gid_ip6_table_t *db)
 
static u32 add_del_ip6_key (gid_ip6_table_t *db, u32 vni, ip_prefix_t *pref, u32 val, u8 is_add)
 
static u32 add_del_mac (gid_mac_table_t *db, u32 vni, u8 *dst_mac, u8 *src_mac, u32 val, u8 is_add)
 
static void ip6_lookup_init (gid_ip6_table_t *db)
 
static u32 add_del_sd_ip6_key (gid_dictionary_t *db, u32 vni, ip_prefix_t *dst_pref, ip_prefix_t *src_pref, u32 val, u8 is_add)
 
static u32 add_del_ip (gid_dictionary_t *db, u32 vni, ip_prefix_t *dst_key, ip_prefix_t *src_key, u32 value, u8 is_add)
 
static u32 add_del_sd (gid_dictionary_t *db, u32 vni, source_dest_t *key, u32 value, u8 is_add)
 
u32 gid_dictionary_add_del (gid_dictionary_t *db, gid_address_t *key, u32 value, u8 is_add)
 
static void mac_lookup_init (gid_mac_table_t *db)
 
void gid_dictionary_init (gid_dictionary_t *db)
 

Function Documentation

static u32 add_del_ip ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  dst_key,
ip_prefix_t *  src_key,
u32  value,
u8  is_add 
)
static

Definition at line 787 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_ip4_key ( gid_ip4_table_t db,
u32  vni,
ip_prefix_t *  pref,
u32  val,
u8  is_add 
)
static

Definition at line 425 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_ip6_key ( gid_ip6_table_t db,
u32  vni,
ip_prefix_t *  pref,
u32  val,
u8  is_add 
)
static

Definition at line 597 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_mac ( gid_mac_table_t db,
u32  vni,
u8 dst_mac,
u8 src_mac,
u32  val,
u8  is_add 
)
static

Definition at line 653 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_sd ( gid_dictionary_t db,
u32  vni,
source_dest_t key,
u32  value,
u8  is_add 
)
static

Definition at line 807 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_sd_ip4_key ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  dst_pref,
ip_prefix_t *  src_pref,
u32  val,
u8  is_add 
)
static

Definition at line 513 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 add_del_sd_ip6_key ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  dst_pref,
ip_prefix_t *  src_pref,
u32  val,
u8  is_add 
)
static

Definition at line 716 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void foreach_sfib4_subprefix ( BVT(clib_bihash_kv)*  kvp,
void *  arg 
)
static

Definition at line 35 of file gid_dictionary.c.

+ Here is the caller graph for this function:

static void foreach_sfib6_subprefix ( BVT(clib_bihash_kv)*  kvp,
void *  arg 
)
static

Definition at line 81 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gid_dict_foreach_ip4_subprefix ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  src,
ip_prefix_t *  dst,
foreach_subprefix_match_cb_t  cb,
void *  arg 
)
static

Definition at line 57 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gid_dict_foreach_ip6_subprefix ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  src,
ip_prefix_t *  dst,
foreach_subprefix_match_cb_t  cb,
void *  arg 
)
static

Definition at line 100 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gid_dict_foreach_subprefix ( gid_dictionary_t db,
gid_address_t eid,
foreach_subprefix_match_cb_t  cb,
void *  arg 
)

Definition at line 124 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gid_dictionary_add_del ( gid_dictionary_t db,
gid_address_t key,
u32  value,
u8  is_add 
)

Definition at line 829 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gid_dictionary_init ( gid_dictionary_t db)

Definition at line 868 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gid_dictionary_lookup ( gid_dictionary_t db,
gid_address_t key 
)

Definition at line 332 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gid_dictionary_sd_lookup ( gid_dictionary_t db,
gid_address_t dst,
gid_address_t src 
)

Definition at line 369 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip4_compute_prefix_lengths_in_search_order ( gid_ip4_table_t db)
static

Definition at line 408 of file gid_dictionary.c.

+ Here is the caller graph for this function:

static u32 ip4_lookup ( gid_ip4_table_t db,
u32  vni,
ip_prefix_t *  key 
)
static

Definition at line 196 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip4_lookup_exact_match ( gid_ip4_table_t db,
u32  vni,
ip_prefix_t *  key 
)
static

Definition at line 175 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip4_lookup_init ( gid_ip4_table_t db)
static

Definition at line 481 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_compute_prefix_lengths_in_search_order ( gid_ip6_table_t db)
static

Definition at line 581 of file gid_dictionary.c.

+ Here is the caller graph for this function:

static u32 ip6_lookup ( gid_ip6_table_t db,
u32  vni,
ip_prefix_t *  key 
)
static

Definition at line 248 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip6_lookup_exact_match ( gid_ip6_table_t db,
u32  vni,
ip_prefix_t *  key 
)
static

Definition at line 228 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_lookup_init ( gid_ip6_table_t db)
static

Definition at line 679 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip_sd_lookup ( gid_dictionary_t db,
u32  vni,
ip_prefix_t *  dst,
ip_prefix_t *  src 
)
static

Definition at line 279 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void mac_lookup_init ( gid_mac_table_t db)
static

Definition at line 851 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 mac_sd_lookup ( gid_mac_table_t db,
u32  vni,
u8 dst,
u8 src 
)
static

Definition at line 151 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void make_mac_sd_key ( BVT(clib_bihash_kv)*  kv,
u32  vni,
u8  src_mac[6],
u8  dst_mac[6] 
)
static

Definition at line 142 of file gid_dictionary.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: