GBP: l3-out subnets
[vpp.git] / src / vnet / l2 / l2_learn.c
index 2c99661..e473657 100644 (file)
@@ -269,7 +269,6 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
       const ethernet_header_t *h0, *h1, *h2, *h3;
       l2fib_entry_key_t key0, key1, key2, key3;
       l2fib_entry_result_t result0, result1, result2, result3;
-      u32 bucket0, bucket1, bucket2, bucket3;
 
       /* Prefetch next iteration. */
       {
@@ -307,8 +306,8 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
                vlib_add_trace (vm, node, b[0], sizeof (*t));
              t->sw_if_index = sw_if_index0;
              t->bd_index = vnet_buffer (b[0])->l2.bd_index;
-             clib_memcpy (t->src, h0->src_address, 6);
-             clib_memcpy (t->dst, h0->dst_address, 6);
+             clib_memcpy_fast (t->src, h0->src_address, 6);
+             clib_memcpy_fast (t->dst, h0->dst_address, 6);
            }
          if (b[1]->flags & VLIB_BUFFER_IS_TRACED)
            {
@@ -316,8 +315,8 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
                vlib_add_trace (vm, node, b[1], sizeof (*t));
              t->sw_if_index = sw_if_index1;
              t->bd_index = vnet_buffer (b[1])->l2.bd_index;
-             clib_memcpy (t->src, h1->src_address, 6);
-             clib_memcpy (t->dst, h1->dst_address, 6);
+             clib_memcpy_fast (t->src, h1->src_address, 6);
+             clib_memcpy_fast (t->dst, h1->dst_address, 6);
            }
          if (b[2]->flags & VLIB_BUFFER_IS_TRACED)
            {
@@ -325,8 +324,8 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
                vlib_add_trace (vm, node, b[2], sizeof (*t));
              t->sw_if_index = sw_if_index2;
              t->bd_index = vnet_buffer (b[2])->l2.bd_index;
-             clib_memcpy (t->src, h2->src_address, 6);
-             clib_memcpy (t->dst, h2->dst_address, 6);
+             clib_memcpy_fast (t->src, h2->src_address, 6);
+             clib_memcpy_fast (t->dst, h2->dst_address, 6);
            }
          if (b[3]->flags & VLIB_BUFFER_IS_TRACED)
            {
@@ -334,8 +333,8 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
                vlib_add_trace (vm, node, b[3], sizeof (*t));
              t->sw_if_index = sw_if_index3;
              t->bd_index = vnet_buffer (b[3])->l2.bd_index;
-             clib_memcpy (t->src, h3->src_address, 6);
-             clib_memcpy (t->dst, h3->dst_address, 6);
+             clib_memcpy_fast (t->src, h3->src_address, 6);
+             clib_memcpy_fast (t->dst, h3->dst_address, 6);
            }
        }
 
@@ -353,7 +352,6 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
                      vnet_buffer (b[2])->l2.bd_index,
                      vnet_buffer (b[3])->l2.bd_index,
                      &key0, &key1, &key2, &key3,
-                     &bucket0, &bucket1, &bucket2, &bucket3,
                      &result0, &result1, &result2, &result3);
 
       l2learn_process (node, msm, &em->counters[node_counter_base_index],
@@ -383,7 +381,6 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
       ethernet_header_t *h0;
       l2fib_entry_key_t key0;
       l2fib_entry_result_t result0;
-      u32 bucket0;
 
       sw_if_index0 = vnet_buffer (b[0])->sw_if_index[VLIB_RX];
 
@@ -394,8 +391,8 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
          l2learn_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
          t->sw_if_index = sw_if_index0;
          t->bd_index = vnet_buffer (b[0])->l2.bd_index;
-         clib_memcpy (t->src, h0->src_address, 6);
-         clib_memcpy (t->dst, h0->dst_address, 6);
+         clib_memcpy_fast (t->src, h0->src_address, 6);
+         clib_memcpy_fast (t->dst, h0->dst_address, 6);
        }
 
       /* process 1 pkt */
@@ -405,7 +402,7 @@ l2learn_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
 
       l2fib_lookup_1 (msm->mac_table, &cached_key, &cached_result,
                      h0->src_address, vnet_buffer (b[0])->l2.bd_index,
-                     &key0, &bucket0, &result0);
+                     &key0, &result0);
 
       l2learn_process (node, msm, &em->counters[node_counter_base_index],
                       b[0], sw_if_index0, &key0, &cached_key,