FD.io VPP  v19.08.3-2-gbabecb413
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)
 
void gid_dict_foreach_l2_arp_ndp_entry (gid_dictionary_t *db, void(*cb)(BVT(clib_bihash_kv) *kvp, void *arg), void *ht)
 
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)
 
static void make_arp_ndp_key (BVT(clib_bihash_kv) *kv, u32 bd, ip_address_t *addr)
 
static void make_nsh_key (BVT(clib_bihash_kv) *kv, u32 vni, u32 spi, u8 si)
 
static u64 arp_ndp_lookup (gid_l2_arp_ndp_table_t *db, u32 bd, ip_address_t *key)
 
static u32 nsh_lookup (gid_nsh_table_t *db, u32 vni, u32 spi, u8 si)
 
u64 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)
 
static u64 add_del_arp_ndp (gid_l2_arp_ndp_table_t *db, u32 bd, ip_address_t *key, u64 value, u8 is_add)
 
static u32 add_del_nsh (gid_nsh_table_t *db, u32 vni, u32 spi, u8 si, u32 value, u8 is_add)
 
u32 gid_dictionary_add_del (gid_dictionary_t *db, gid_address_t *key, u64 value, u8 is_add)
 
static void mac_lookup_init (gid_mac_table_t *db)
 
static void arp_ndp_lookup_init (gid_l2_arp_ndp_table_t *db)
 
static void nsh_lookup_init (gid_nsh_table_t *db)
 
void gid_dictionary_init (gid_dictionary_t *db)
 

Function Documentation

◆ add_del_arp_ndp()

static u64 add_del_arp_ndp ( gid_l2_arp_ndp_table_t db,
u32  bd,
ip_address_t key,
u64  value,
u8  is_add 
)
static

Definition at line 924 of file gid_dictionary.c.

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

◆ add_del_ip()

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 882 of file gid_dictionary.c.

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

◆ add_del_ip4_key()

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 500 of file gid_dictionary.c.

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

◆ add_del_ip6_key()

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 682 of file gid_dictionary.c.

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

◆ add_del_mac()

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 738 of file gid_dictionary.c.

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

◆ add_del_nsh()

static u32 add_del_nsh ( gid_nsh_table_t db,
u32  vni,
u32  spi,
u8  si,
u32  value,
u8  is_add 
)
static

Definition at line 951 of file gid_dictionary.c.

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

◆ add_del_sd()

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

Definition at line 902 of file gid_dictionary.c.

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

◆ add_del_sd_ip4_key()

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 598 of file gid_dictionary.c.

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

◆ add_del_sd_ip6_key()

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 811 of file gid_dictionary.c.

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

◆ arp_ndp_lookup()

static u64 arp_ndp_lookup ( gid_l2_arp_ndp_table_t db,
u32  bd,
ip_address_t key 
)
static

Definition at line 366 of file gid_dictionary.c.

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

◆ arp_ndp_lookup_init()

static void arp_ndp_lookup_init ( gid_l2_arp_ndp_table_t db)
static

Definition at line 1025 of file gid_dictionary.c.

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

◆ foreach_sfib4_subprefix()

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:

◆ foreach_sfib6_subprefix()

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:

◆ gid_dict_foreach_ip4_subprefix()

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:

◆ gid_dict_foreach_ip6_subprefix()

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:

◆ gid_dict_foreach_l2_arp_ndp_entry()

void gid_dict_foreach_l2_arp_ndp_entry ( gid_dictionary_t db,
void(*)(BVT(clib_bihash_kv) *kvp, void *arg)  cb,
void *  ht 
)

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:

◆ gid_dict_foreach_subprefix()

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:

◆ gid_dictionary_add_del()

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

Definition at line 976 of file gid_dictionary.c.

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

◆ gid_dictionary_init()

void gid_dictionary_init ( gid_dictionary_t db)

Definition at line 1060 of file gid_dictionary.c.

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

◆ gid_dictionary_lookup()

u64 gid_dictionary_lookup ( gid_dictionary_t db,
gid_address_t key 
)

Definition at line 397 of file gid_dictionary.c.

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

◆ gid_dictionary_sd_lookup()

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

Definition at line 441 of file gid_dictionary.c.

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

◆ ip4_compute_prefix_lengths_in_search_order()

static void ip4_compute_prefix_lengths_in_search_order ( gid_ip4_table_t db)
static

Definition at line 483 of file gid_dictionary.c.

+ Here is the caller graph for this function:

◆ ip4_lookup()

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

Definition at line 206 of file gid_dictionary.c.

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

◆ ip4_lookup_exact_match()

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

Definition at line 185 of file gid_dictionary.c.

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

◆ ip4_lookup_init()

static void ip4_lookup_init ( gid_ip4_table_t db)
static

Definition at line 556 of file gid_dictionary.c.

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

◆ ip6_compute_prefix_lengths_in_search_order()

static void ip6_compute_prefix_lengths_in_search_order ( gid_ip6_table_t db)
static

Definition at line 666 of file gid_dictionary.c.

+ Here is the caller graph for this function:

◆ ip6_lookup()

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

Definition at line 258 of file gid_dictionary.c.

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

◆ ip6_lookup_exact_match()

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

Definition at line 238 of file gid_dictionary.c.

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

◆ ip6_lookup_init()

static void ip6_lookup_init ( gid_ip6_table_t db)
static

Definition at line 764 of file gid_dictionary.c.

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

◆ ip_sd_lookup()

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

Definition at line 289 of file gid_dictionary.c.

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

◆ mac_lookup_init()

static void mac_lookup_init ( gid_mac_table_t db)
static

Definition at line 1008 of file gid_dictionary.c.

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

◆ mac_sd_lookup()

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

Definition at line 161 of file gid_dictionary.c.

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

◆ make_arp_ndp_key()

static void make_arp_ndp_key ( BVT(clib_bihash_kv) *  kv,
u32  bd,
ip_address_t addr 
)
static

Definition at line 342 of file gid_dictionary.c.

+ Here is the caller graph for this function:

◆ make_mac_sd_key()

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 152 of file gid_dictionary.c.

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

◆ make_nsh_key()

static void make_nsh_key ( BVT(clib_bihash_kv) *  kv,
u32  vni,
u32  spi,
u8  si 
)
static

Definition at line 358 of file gid_dictionary.c.

+ Here is the caller graph for this function:

◆ nsh_lookup()

static u32 nsh_lookup ( gid_nsh_table_t db,
u32  vni,
u32  spi,
u8  si 
)
static

Definition at line 382 of file gid_dictionary.c.

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

◆ nsh_lookup_init()

static void nsh_lookup_init ( gid_nsh_table_t db)
static

Definition at line 1043 of file gid_dictionary.c.

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