ipsec: IPSec protection for multi-point tunnel interfaces
[vpp.git] / src / vnet / l2 / l2_flood.c
index 1bc5281..10e0877 100644 (file)
@@ -213,7 +213,6 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
          else if (n_clones > 1)
            {
              vec_validate (msm->clones[thread_index], n_clones);
-             vec_reset_length (msm->clones[thread_index]);
 
              /*
               * the header offset needs to be large enough to incorporate
@@ -226,6 +225,8 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
                                            n_clones,
                                            VLIB_BUFFER_CLONE_HEAD_SIZE);
 
+             vec_set_len (msm->clones[thread_index], n_cloned);
+
              if (PREDICT_FALSE (n_cloned != n_clones))
                {
                  b0->error = node->errors[L2FLOOD_ERROR_REPL_FAIL];
@@ -250,9 +251,6 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
                      ethernet_header_t *h0;
                      l2flood_trace_t *t;
 
-                     if (c0 != b0)
-                       vlib_buffer_copy_trace_flag (vm, b0, ci0);
-
                      t = vlib_add_trace (vm, node, c0, sizeof (*t));
                      h0 = vlib_buffer_get_current (c0);
                      t->sw_if_index = sw_if_index0;
@@ -301,9 +299,6 @@ VLIB_NODE_FN (l2flood_node) (vlib_main_t * vm,
              ethernet_header_t *h0;
              l2flood_trace_t *t;
 
-             if (c0 != b0)
-               vlib_buffer_copy_trace_flag (vm, b0, ci0);
-
              t = vlib_add_trace (vm, node, c0, sizeof (*t));
              h0 = vlib_buffer_get_current (c0);
              t->sw_if_index = sw_if_index0;