|
| STATIC_ASSERT_SIZEOF (l2fib_entry_key_t, 8) |
|
| STATIC_ASSERT_SIZEOF (l2fib_entry_result_flags_t, 1) |
|
| STATIC_ASSERT_SIZEOF (l2fib_entry_result_t, 8) |
|
static foreach_l2fib_entry_result_attr void | l2fib_entry_result_set_bits (l2fib_entry_result_t *r, l2fib_entry_result_flags_t bits) |
|
static void | l2fib_entry_result_clear_bits (l2fib_entry_result_t *r, l2fib_entry_result_flags_t bits) |
|
static u32 | l2fib_compute_hash_bucket (l2fib_entry_key_t *key) |
| Compute the hash for the given key and return the corresponding bucket index. More...
|
|
static u64 | l2fib_make_key (const u8 *mac_address, u16 bd_index) |
| make address sanitizer skip this: The 6-Bytes mac-address is cast into an 8-Bytes u64, with 2 additional Bytes. More...
|
|
static_always_inline void | l2fib_lookup_1 (BVT(clib_bihash)*mac_table, l2fib_entry_key_t *cached_key, l2fib_entry_result_t *cached_result, u8 *mac0, u16 bd_index0, l2fib_entry_key_t *key0, u32 *bucket0, l2fib_entry_result_t *result0) |
| Lookup the entry for mac and bd_index in the mac table for 1 packet. More...
|
|
static_always_inline void | l2fib_lookup_2 (BVT(clib_bihash)*mac_table, l2fib_entry_key_t *cached_key, l2fib_entry_result_t *cached_result, u8 *mac0, u8 *mac1, u16 bd_index0, u16 bd_index1, l2fib_entry_key_t *key0, l2fib_entry_key_t *key1, u32 *bucket0, u32 *bucket1, l2fib_entry_result_t *result0, l2fib_entry_result_t *result1) |
| Lookup the entry for mac and bd_index in the mac table for 2 packets. More...
|
|
static_always_inline void | l2fib_lookup_4 (BVT(clib_bihash)*mac_table, l2fib_entry_key_t *cached_key, l2fib_entry_result_t *cached_result, const u8 *mac0, const u8 *mac1, const u8 *mac2, const u8 *mac3, u16 bd_index0, u16 bd_index1, u16 bd_index2, u16 bd_index3, l2fib_entry_key_t *key0, l2fib_entry_key_t *key1, l2fib_entry_key_t *key2, l2fib_entry_key_t *key3, u32 *bucket0, u32 *bucket1, u32 *bucket2, u32 *bucket3, l2fib_entry_result_t *result0, l2fib_entry_result_t *result1, l2fib_entry_result_t *result2, l2fib_entry_result_t *result3) |
|
void | l2fib_clear_table (void) |
|
void | l2fib_add_entry (const u8 *mac, u32 bd_index, u32 sw_if_index, l2fib_entry_result_flags_t flags) |
| Add an entry to the l2fib. More...
|
|
static void | l2fib_add_filter_entry (const u8 *mac, u32 bd_index) |
|
u32 | l2fib_del_entry (const u8 *mac, u32 bd_index, u32 sw_if_index) |
| Delete an entry from the l2fib. More...
|
|
void | l2fib_start_ager_scan (vlib_main_t *vm) |
| Kick off ager to scan MACs to age/delete MAC entries. More...
|
|
void | l2fib_flush_int_mac (vlib_main_t *vm, u32 sw_if_index) |
| Flush all non static MACs from an interface. More...
|
|
void | l2fib_flush_bd_mac (vlib_main_t *vm, u32 bd_index) |
| Flush all non static MACs in a bridge domain. More...
|
|
void | l2fib_flush_all_mac (vlib_main_t *vm) |
| Flush all non static MACs - flushes all valid BDs. More...
|
|
void | l2fib_table_dump (u32 bd_index, l2fib_entry_key_t **l2fe_key, l2fib_entry_result_t **l2fe_res) |
|
u8 * | format_vnet_sw_if_index_name_with_NA (u8 *s, va_list *args) |
| Format sw_if_index. More...
|
|
static_always_inline u8 * | l2fib_swif_seq_num (u32 sw_if_index) |
|
static_always_inline u8 * | l2fib_valid_swif_seq_num (u32 sw_if_index) |
|
| BVT (clib_bihash)*get_mac_table(void) |
|
Lookup the entry for mac and bd_index in the mac table for 1 packet.
Cached_key and cached_result are used as a one-entry cache. The function reads and updates them as needed.
mac0 and bd_index0 are the keys. The entry is written to result0. If the entry was not found, result0 is set to ~0.
key0 and bucket0 return with the computed key and hash bucket, convenient if the entry needs to be updated afterward. If the cached_result was used, bucket0 is set to ~0.
Definition at line 264 of file l2_fib.h.
static_always_inline void l2fib_lookup_2 |
( |
BVT(clib_bihash)* |
mac_table, |
|
|
l2fib_entry_key_t * |
cached_key, |
|
|
l2fib_entry_result_t * |
cached_result, |
|
|
u8 * |
mac0, |
|
|
u8 * |
mac1, |
|
|
u16 |
bd_index0, |
|
|
u16 |
bd_index1, |
|
|
l2fib_entry_key_t * |
key0, |
|
|
l2fib_entry_key_t * |
key1, |
|
|
u32 * |
bucket0, |
|
|
u32 * |
bucket1, |
|
|
l2fib_entry_result_t * |
result0, |
|
|
l2fib_entry_result_t * |
result1 |
|
) |
| |
Lookup the entry for mac and bd_index in the mac table for 2 packets.
The lookups for the two packets are interleaved.
Cached_key and cached_result are used as a one-entry cache. The function reads and updates them as needed.
mac0 and bd_index0 are the keys. The entry is written to result0. If the entry was not found, result0 is set to ~0. The same holds for mac1/bd_index1/result1.
Definition at line 310 of file l2_fib.h.