Merge "Clear one-time test key, add missing cast in big-endian l2 fib key computation"
authorDamjan Marion <damarion@cisco.com>
Sun, 13 Dec 2015 15:24:06 +0000 (15:24 +0000)
committerGerrit Code Review <gerrit@projectrotterdam.info>
Sun, 13 Dec 2015 15:24:06 +0000 (15:24 +0000)
vnet/vnet/l2/l2_fib.c
vnet/vnet/l2/l2_fib.h

index 198ffd2..050eba5 100644 (file)
@@ -554,6 +554,7 @@ clib_error_t *l2fib_init (vlib_main_t *vm)
                         L2FIB_NUM_BUCKETS, L2FIB_MEMORY_SIZE);
 
   // verify the key constructor is good, since it is endian-sensitive
+  memset (test_mac, 0, sizeof(test_mac));
   test_mac[0] = 0x11;
   test_key.raw = 0;
   test_key.raw = l2fib_make_key ((u8 *)&test_mac, 0x1234);
index 1dcc020..5498abf 100644 (file)
@@ -95,7 +95,7 @@ u64 l2fib_make_key (u8 * mac_address, u16 bd_index) {
   // 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 = temp | (bd_index << 48);
+  temp = temp | (((u64)bd_index) << 48);
 #endif
 
   return temp;