16 #ifndef VNET_LISP_GPE_GID_DICTIONARY_H_ 17 #define VNET_LISP_GPE_GID_DICTIONARY_H_ 24 #define GID_LOOKUP_MISS ((u32)~0) 27 #define IP4_LOOKUP_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) 28 #define IP4_LOOKUP_DEFAULT_HASH_MEMORY_SIZE (32<<20) 31 #define IP6_LOOKUP_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) 32 #define IP6_LOOKUP_DEFAULT_HASH_MEMORY_SIZE (32<<20) 35 #define MAC_LOOKUP_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) 36 #define MAC_LOOKUP_DEFAULT_HASH_MEMORY_SIZE (32<<20) 42 BVT (clib_bihash) ip4_lookup_table;
48 u32 ip4_prefix_len_refcount[33];
57 BVT (clib_bihash) ip6_lookup_table;
63 u64 ip6_prefix_len_refcount[129];
72 BVT (clib_bihash) mac_lookup_table;
gid_ip4_table_t * src_ip4_table_pool
pool of source IP LPM ip4 lookup tables
struct gid_mac_table gid_mac_table_t
void gid_dictionary_init(gid_dictionary_t *db)
u32 mac_lookup_table_nbuckets
gid_ip4_table_t dst_ip4_table
destination IP LPM ip4 lookup table
u32 gid_dictionary_lookup(gid_dictionary_t *db, gid_address_t *key)
u32 gid_dictionary_add_del(gid_dictionary_t *db, gid_address_t *key, u32 value, u8 is_add)
BVT(clib_bihash) mac_lookup_table
gid_ip6_table_t * src_ip6_table_pool
pool of source IP LPM ip6 lookup tables
gid_ip6_table_t dst_ip6_table
destination IP LPM ip6 lookup table
u32 ip4_lookup_table_nbuckets
u32 ip6_lookup_table_nbuckets
u8 * ip6_prefix_lengths_in_search_order
uword ip6_lookup_table_size
u8 * ip4_prefix_lengths_in_search_order
void(* foreach_subprefix_match_cb_t)(u32, void *)
u32 gid_dictionary_sd_lookup(gid_dictionary_t *db, gid_address_t *dst, gid_address_t *src)
struct _gid_address_t gid_address_t
uword mac_lookup_table_size
uword ip4_lookup_table_size
gid_mac_table_t sd_mac_table
flat source/dest mac lookup table
uword * ip4_non_empty_dst_address_length_bitmap
void gid_dict_foreach_subprefix(gid_dictionary_t *db, gid_address_t *eid, foreach_subprefix_match_cb_t cb, void *arg)
uword * ip6_non_empty_dst_address_length_bitmap