nat: Include platform specific headers on FreeBSD
[vpp.git] / src / vnet / l2 / l2_flood.c
index 10e0877..f8cb3cb 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <vlib/vlib.h>
 #include <vnet/vnet.h>
-#include <vnet/pg/pg.h>
 #include <vnet/ethernet/ethernet.h>
 #include <vlib/cli.h>
 #include <vnet/l2/l2_input.h>
@@ -230,6 +229,13 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
              if (PREDICT_FALSE (n_cloned != n_clones))
                {
                  b0->error = node->errors[L2FLOOD_ERROR_REPL_FAIL];
+                 /* Worst-case, no clones, consume the original buf */
+                 if (n_cloned == 0)
+                   {
+                     ci0 = bi0;
+                     member = msm->members[thread_index][0];
+                     goto use_original_buffer;
+                   }
                }
 
              /*
@@ -284,6 +290,7 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
              member = msm->members[thread_index][0];
            }
 
+       use_original_buffer:
          /*
           * the last clone that might go to a BVI
           */
@@ -306,8 +313,6 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
              clib_memcpy_fast (t->src, h0->src_address, 6);
              clib_memcpy_fast (t->dst, h0->dst_address, 6);
            }
-
-
          /* Forward packet to the current member */
          if (PREDICT_FALSE (member->flags & L2_FLOOD_MEMBER_BVI))
            {
@@ -357,7 +362,6 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
 }
 
 
-/* *INDENT-OFF* */
 VLIB_REGISTER_NODE (l2flood_node) = {
   .name = "l2-flood",
   .vector_size = sizeof (u32),
@@ -375,7 +379,6 @@ VLIB_REGISTER_NODE (l2flood_node) = {
         [L2FLOOD_NEXT_DROP] = "error-drop",
   },
 };
-/* *INDENT-ON* */
 
 #ifndef CLIB_MARCH_VARIANT
 clib_error_t *
@@ -463,13 +466,11 @@ done:
  * Example of how to disable flooding:
  * @cliexcmd{set interface l2 flood GigabitEthernet0/8/0 disable}
 ?*/
-/* *INDENT-OFF* */
 VLIB_CLI_COMMAND (int_flood_cli, static) = {
   .path = "set interface l2 flood",
   .short_help = "set interface l2 flood <interface> [disable]",
   .function = int_flood,
 };
-/* *INDENT-ON* */
 
 /*
  * fd.io coding-style-patch-verification: ON