aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2015-12-12 10:43:29 -0500
committerDave Barach <dave@barachs.net>2015-12-12 10:43:44 -0500
commit59842a844d52ca38eb8aab855180debbc16e9afe (patch)
treee6b06bb06a08a7770e853edf043bd15e7c802925
parentcb9cadad578297ffd78fa8a33670bdf1ab669e7e (diff)
Clear one-time test key, add missing cast in big-endian l2 fib key computation
Change-Id: I014fdd3cc174f787ed00af8e3861fb40585522a1 Signed-off-by: Dave Barach <dave@barachs.net>
-rw-r--r--vnet/vnet/l2/l2_fib.c1
-rw-r--r--vnet/vnet/l2/l2_fib.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/vnet/vnet/l2/l2_fib.c b/vnet/vnet/l2/l2_fib.c
index 198ffd281bb..050eba563cc 100644
--- a/vnet/vnet/l2/l2_fib.c
+++ b/vnet/vnet/l2/l2_fib.c
@@ -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);
diff --git a/vnet/vnet/l2/l2_fib.h b/vnet/vnet/l2/l2_fib.h
index 1dcc0200f60..5498abf29b0 100644
--- a/vnet/vnet/l2/l2_fib.h
+++ b/vnet/vnet/l2/l2_fib.h
@@ -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;