FD.io VPP  v20.01-48-g3e0dafb74
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 int 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 int 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, cb, 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 926 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 884 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 502 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 684 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 740 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 953 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 904 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 600 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 813 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 368 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 1027 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 int 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 int foreach_sfib6_subprefix ( BVT(clib_bihash_kv) *  kvp,
void *  arg 
)
static

Definition at line 82 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 58 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 102 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,
cb  ,
void *  ht 
)

Definition at line 144 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 126 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 978 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 1062 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 399 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 443 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 485 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 208 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 187 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 558 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 668 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 260 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 240 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 766 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 291 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 1010 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 163 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 344 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 154 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 360 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 384 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 1045 of file gid_dictionary.c.

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