L2-fib-dump: send 1 or 0 rather than flag value
[vpp.git] / src / vnet / l2 / l2_api.c
index 5ec7581..3a37938 100644 (file)
@@ -142,9 +142,9 @@ send_l2fib_table_entry (vpe_api_main_t * am,
 
   clib_memcpy (mp->mac, l2fe_key->fields.mac, 6);
   mp->sw_if_index = ntohl (l2fe_res->fields.sw_if_index);
-  mp->static_mac = l2fe_res->fields.static_mac;
-  mp->filter_mac = l2fe_res->fields.filter;
-  mp->bvi_mac = l2fe_res->fields.bvi;
+  mp->static_mac = (l2fib_entry_result_is_set_STATIC (l2fe_res) ? 1 : 0);
+  mp->filter_mac = (l2fib_entry_result_is_set_FILTER (l2fe_res) ? 1 : 0);
+  mp->bvi_mac = (l2fib_entry_result_is_set_BVI (l2fe_res) ? 1 : 0);
   mp->context = context;
 
   vl_api_send_msg (reg, (u8 *) mp);
@@ -215,6 +215,7 @@ vl_api_l2fib_add_del_t_handler (vl_api_l2fib_add_del_t * mp)
        l2fib_add_filter_entry (mac, bd_index);
       else
        {
+         l2fib_entry_result_flags_t flags = L2FIB_ENTRY_RESULT_FLAG_NONE;
          u32 sw_if_index = ntohl (mp->sw_if_index);
          VALIDATE_SW_IF_INDEX (mp);
          if (vec_len (l2im->configs) <= sw_if_index)
@@ -232,10 +233,11 @@ vl_api_l2fib_add_del_t_handler (vl_api_l2fib_add_del_t * mp)
                  goto bad_sw_if_index;
                }
            }
-         u8 static_mac = mp->static_mac ? 1 : 0;
-         u8 bvi_mac = mp->bvi_mac ? 1 : 0;
-         l2fib_add_fwd_entry (mac, bd_index, sw_if_index, static_mac,
-                              bvi_mac);
+         if (mp->static_mac)
+           flags |= L2FIB_ENTRY_RESULT_FLAG_STATIC;
+         if (mp->bvi_mac)
+           flags |= L2FIB_ENTRY_RESULT_FLAG_BVI;
+         l2fib_add_entry (mac, bd_index, sw_if_index, flags);
        }
     }
   else
@@ -731,7 +733,7 @@ vl_api_bd_ip_mac_dump_t_handler (vl_api_bd_ip_mac_dump_t * mp)
   bd_main_t *bdm = &bd_main;
   l2_bridge_domain_t *bd_config;
   u32 bd_id = ntohl (mp->bd_id);
-  u32 bd_index, start = 1, end;
+  u32 bd_index, start, end;
   vl_api_registration_t *reg;
   uword *p;
 
@@ -739,11 +741,12 @@ vl_api_bd_ip_mac_dump_t_handler (vl_api_bd_ip_mac_dump_t * mp)
   if (!reg)
     return;
 
-  end = vec_len (l2input_main.bd_configs);
-
   /* see bd_id: ~0 means "any" */
   if (bd_id == ~0)
-    bd_index = ~0;
+    {
+      start = 1;
+      end = vec_len (l2input_main.bd_configs);
+    }
   else
     {
       p = hash_get (bdm->bd_index_by_bd_id, bd_id);