gbp: disable L2 BD learning per-interface
[vpp.git] / src / plugins / gbp / gbp_endpoint_group.c
index d6e42e8..bacbb0c 100644 (file)
@@ -138,9 +138,8 @@ gbp_endpoint_group_add_and_lock (vnid_t vnid,
           * Add the uplink to the BD
           * packets direct from the uplink have had policy applied
           */
-         set_int_l2_mode (vlib_get_main (), vnet_get_main (),
-                          MODE_L2_BRIDGE, gg->gg_uplink_sw_if_index,
-                          gg->gg_bd_index, L2_BD_PORT_TYPE_NORMAL, 0, 0);
+         gbp_bridge_domain_itf_add (gg->gg_uplink_sw_if_index,
+                                    gg->gg_bd_index, L2_BD_PORT_TYPE_NORMAL);
          l2input_intf_bitmap_enable (gg->gg_uplink_sw_if_index,
                                      L2INPUT_FEAT_GBP_NULL_CLASSIFY, 1);
        }
@@ -179,10 +178,8 @@ gbp_endpoint_group_unlock (index_t ggi)
 
       if (~0 != gg->gg_uplink_sw_if_index)
        {
-         set_int_l2_mode (vlib_get_main (), vnet_get_main (),
-                          MODE_L3, gg->gg_uplink_sw_if_index,
-                          gg->gg_bd_index, L2_BD_PORT_TYPE_NORMAL, 0, 0);
-
+         gbp_bridge_domain_itf_del (gg->gg_uplink_sw_if_index,
+                                    gg->gg_bd_index, L2_BD_PORT_TYPE_NORMAL);
          l2input_intf_bitmap_enable (gg->gg_uplink_sw_if_index,
                                      L2INPUT_FEAT_GBP_NULL_CLASSIFY, 0);
        }
@@ -293,8 +290,6 @@ gbp_endpoint_group_cli (vlib_main_t * vm,
 
   if (add)
     {
-      if (~0 == uplink_sw_if_index)
-       return clib_error_return (0, "interface must be specified");
       if (~0 == bd_id)
        return clib_error_return (0, "Bridge-domain must be specified");
       if (~0 == rd_id)
@@ -313,13 +308,13 @@ gbp_endpoint_group_cli (vlib_main_t * vm,
  * Configure a GBP Endpoint Group
  *
  * @cliexpar
- * @cliexstart{set gbp endpoint-group [del] epg <ID> bd <ID> <interface>}
+ * @cliexstart{gbp endpoint-group [del] epg <ID> bd <ID> rd <ID> [sclass <ID>] [<interface>]}
  * @cliexend
  ?*/
 /* *INDENT-OFF* */
 VLIB_CLI_COMMAND (gbp_endpoint_group_cli_node, static) = {
   .path = "gbp endpoint-group",
-  .short_help = "gbp endpoint-group [del] epg <ID> bd <ID> rd <ID> <interface>",
+  .short_help = "gbp endpoint-group [del] epg <ID> bd <ID> rd <ID> [sclass <ID>] [<interface>]",
   .function = gbp_endpoint_group_cli,
 };
 
@@ -340,7 +335,7 @@ format_gbp_endpoint_group (u8 * s, va_list * args)
   vnet_main_t *vnm = vnet_get_main ();
 
   if (NULL != gg)
-    s = format (s, "[%d] %d, sclass:%d bd:[%d,%d] rd:[%d] uplink:%U retnetion:%U locks:%d",
+    s = format (s, "[%d] %d, sclass:%d bd:[%d,%d] rd:[%d] uplink:%U retention:%U locks:%d",
                 gg - gbp_endpoint_group_pool,
                 gg->gg_vnid,
                 gg->gg_sclass,