IP6-MFIB: replace the radix tree with bihash (VPP-1526)
[vpp.git] / src / vnet / mfib / ip4_mfib.c
index 7040fa7..9d70f0b 100644 (file)
@@ -39,7 +39,7 @@ ip4_create_mfib_with_table_id (u32 table_id,
     mfib_table_t *mfib_table;
 
     pool_get_aligned(ip4_main.mfibs, mfib_table, CLIB_CACHE_LINE_BYTES);
-    memset(mfib_table, 0, sizeof(*mfib_table));
+    clib_memset(mfib_table, 0, sizeof(*mfib_table));
 
     mfib_table->mft_proto = FIB_PROTOCOL_IP4;
     mfib_table->mft_index =
@@ -210,7 +210,7 @@ ip4_mfib_table_lookup (const ip4_mfib_t *mfib,
         }
     }
 
-    for (mask_len = 32; mask_len >= 0; mask_len--)
+    for (mask_len = (len == 64 ? 32 : len); mask_len >= 0; mask_len--)
     {
         hash = mfib->fib_entry_by_dst_address[mask_len];
         IP4_MFIB_MK_GRP_KEY(grp, mask_len, key);
@@ -425,12 +425,12 @@ ip4_show_mfib (vlib_main_t * vm,
         }
         else if (unformat (input, "%U/%d", unformat_ip4_address, &grp, &mask))
         {
-            memset(&src, 0, sizeof(src));
+            clib_memset(&src, 0, sizeof(src));
             matching = 1;
         }
         else if (unformat (input, "%U", unformat_ip4_address, &grp))
         {
-            memset(&src, 0, sizeof(src));
+            clib_memset(&src, 0, sizeof(src));
             matching = 1;
             mask = 32;
         }