X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fl2%2Fl2_fib.h;h=20ba3da9aa38dda230ca9db76ee815abe045a0ff;hb=1e3aa5e213c23588981ee17d1413a0441a40527a;hp=a958023eaea8921bd0bd21fade703bb47adfc668;hpb=b54d081873ac975e06be2569a17e6150779e3018;p=vpp.git diff --git a/src/vnet/l2/l2_fib.h b/src/vnet/l2/l2_fib.h index a958023eaea..20ba3da9aa3 100644 --- a/src/vnet/l2/l2_fib.h +++ b/src/vnet/l2/l2_fib.h @@ -55,7 +55,7 @@ typedef struct /* delay between event scans, default to 100 msec */ f64 event_scan_delay; - /* max macs in evet message, default to 100 entries */ + /* max macs in event message, default to 100 entries */ u32 max_macs_in_event; /* convenience variables */ @@ -129,6 +129,8 @@ typedef enum l2fib_entry_result_flags_t_ STATIC_ASSERT_SIZEOF (l2fib_entry_result_flags_t, 1); +extern u8 *format_l2fib_entry_result_flags (u8 * s, va_list * args); + /* * The l2fib entry results */ @@ -218,7 +220,7 @@ l2fib_compute_hash_bucket (l2fib_entry_key_t * key) * l2fib_make_key() does read those two Bytes but does not use them. */ always_inline u64 __attribute__ ((no_sanitize_address)) -l2fib_make_key (u8 * mac_address, u16 bd_index) +l2fib_make_key (const u8 * mac_address, u16 bd_index) { u64 temp; @@ -255,9 +257,8 @@ l2fib_make_key (u8 * mac_address, u16 bd_index) * 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. + * key0 return with the computed key, convenient if the entry needs, + * to be updated afterward. */ static_always_inline void @@ -266,12 +267,10 @@ l2fib_lookup_1 (BVT (clib_bihash) * mac_table, l2fib_entry_result_t * cached_result, u8 * mac0, u16 bd_index0, - l2fib_entry_key_t * key0, - u32 * bucket0, l2fib_entry_result_t * result0) + l2fib_entry_key_t * key0, l2fib_entry_result_t * result0) { /* set up key */ key0->raw = l2fib_make_key (mac0, bd_index0); - *bucket0 = ~0; if (key0->raw == cached_key->raw) { @@ -316,8 +315,6 @@ l2fib_lookup_2 (BVT (clib_bihash) * mac_table, 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) { @@ -330,9 +327,6 @@ l2fib_lookup_2 (BVT (clib_bihash) * mac_table, /* Both hit in the one-entry cache */ result0->raw = cached_result->raw; result1->raw = cached_result->raw; - *bucket0 = ~0; - *bucket1 = ~0; - } else { @@ -363,10 +357,10 @@ static_always_inline void l2fib_lookup_4 (BVT (clib_bihash) * mac_table, l2fib_entry_key_t * cached_key, l2fib_entry_result_t * cached_result, - u8 * mac0, - u8 * mac1, - u8 * mac2, - u8 * mac3, + const u8 * mac0, + const u8 * mac1, + const u8 * mac2, + const u8 * mac3, u16 bd_index0, u16 bd_index1, u16 bd_index2, @@ -375,10 +369,6 @@ l2fib_lookup_4 (BVT (clib_bihash) * mac_table, 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, @@ -398,11 +388,6 @@ l2fib_lookup_4 (BVT (clib_bihash) * mac_table, result1->raw = cached_result->raw; result2->raw = cached_result->raw; result3->raw = cached_result->raw; - *bucket0 = ~0; - *bucket1 = ~0; - *bucket2 = ~0; - *bucket3 = ~0; - } else { @@ -440,19 +425,19 @@ l2fib_lookup_4 (BVT (clib_bihash) * mac_table, void l2fib_clear_table (void); void -l2fib_add_entry (u8 * mac, +l2fib_add_entry (const u8 * mac, u32 bd_index, u32 sw_if_index, l2fib_entry_result_flags_t flags); static inline void -l2fib_add_filter_entry (u8 * mac, u32 bd_index) +l2fib_add_filter_entry (const u8 * mac, u32 bd_index) { l2fib_add_entry (mac, bd_index, ~0, (L2FIB_ENTRY_RESULT_FLAG_FILTER | L2FIB_ENTRY_RESULT_FLAG_STATIC)); } -u32 l2fib_del_entry (u8 * mac, u32 bd_index, u32 sw_if_index); +u32 l2fib_del_entry (const u8 * mac, u32 bd_index, u32 sw_if_index); void l2fib_start_ager_scan (vlib_main_t * vm);