ikev2: add support for custom ipsec-over-udp port
[vpp.git] / src / vnet / l2 / l2_fib.h
index 77b5e7b..a1dbc9d 100644 (file)
@@ -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
  */
@@ -212,12 +214,7 @@ l2fib_compute_hash_bucket (l2fib_entry_key_t * key)
   return result % L2FIB_NUM_BUCKETS;
 }
 
-/**
- * make address sanitizer skip this:
- * The 6-Bytes mac-address is cast into an 8-Bytes u64, with 2 additional Bytes.
- * l2fib_make_key() does read those two Bytes but does not use them.
- */
-always_inline u64 __attribute__ ((no_sanitize_address))
+always_inline u64
 l2fib_make_key (const u8 * mac_address, u16 bd_index)
 {
   u64 temp;
@@ -231,14 +228,14 @@ l2fib_make_key (const u8 * mac_address, u16 bd_index)
    * Create the in-register key as F:E:D:C:B:A:H:L
    * In memory the key is L:H:A:B:C:D:E:F
    */
-  temp = *((u64 *) (mac_address)) << 16;
+  temp = CLIB_MEM_OVERFLOW_LOAD (*, (u64 *) mac_address) << 16;
   temp = (temp & ~0xffff) | (u64) (bd_index);
 #else
   /*
    * Create the in-register key as H:L:A:B:C:D:E:F
    * In memory the key is H:L:A:B:C:D:E:F
    */
-  temp = *((u64 *) (mac_address)) >> 16;
+  temp = CLIB_MEM_OVERFLOW_LOAD (*, (u64 *) mac_address) >> 16;
   temp = temp | (((u64) bd_index) << 48);
 #endif
 
@@ -255,9 +252,8 @@ l2fib_make_key (const 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 +262,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 +310,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 +322,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 +352,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 +364,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 +383,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
     {