BD ARP entry use common API types
[vpp.git] / src / vnet / l2 / l2_rw.c
index c54509d..5b0034c 100644 (file)
@@ -22,7 +22,7 @@
  * @brief Layer 2 Rewrite.
  *
  * Layer 2-Rewrite node uses classify tables to match packets. Then, using
- * the provisioned mask and value, modfies the packet header.
+ * the provisioned mask and value, modifies the packet header.
  */
 
 
@@ -179,8 +179,8 @@ l2_rw_node_fn (vlib_main_t * vm,
 
       while (n_left_from >= 4 && n_left_to_next >= 2)
        {
-         u32 bi0, next0, sw_if_index0, feature_bitmap0, rwe_index0;
-         u32 bi1, next1, sw_if_index1, feature_bitmap1, rwe_index1;
+         u32 bi0, next0, sw_if_index0, rwe_index0;
+         u32 bi1, next1, sw_if_index1, rwe_index1;
          vlib_buffer_t *b0, *b1;
          ethernet_header_t *h0, *h1;
          l2_rw_config_t *config0, *config1;
@@ -273,16 +273,10 @@ l2_rw_node_fn (vlib_main_t * vm,
            }
 
          /* Update feature bitmap and get next feature index */
-         feature_bitmap0 =
-           vnet_buffer (b0)->l2.feature_bitmap & ~L2INPUT_FEAT_RW;
-         feature_bitmap1 =
-           vnet_buffer (b1)->l2.feature_bitmap & ~L2INPUT_FEAT_RW;
-         vnet_buffer (b0)->l2.feature_bitmap = feature_bitmap0;
-         vnet_buffer (b1)->l2.feature_bitmap = feature_bitmap1;
-         next0 = feat_bitmap_get_next_node_index (rw->feat_next_node_index,
-                                                  feature_bitmap0);
-         next1 = feat_bitmap_get_next_node_index (rw->feat_next_node_index,
-                                                  feature_bitmap1);
+         next0 = vnet_l2_feature_next (b0, rw->feat_next_node_index,
+                                       L2INPUT_FEAT_RW);
+         next1 = vnet_l2_feature_next (b1, rw->feat_next_node_index,
+                                       L2INPUT_FEAT_RW);
 
          vlib_validate_buffer_enqueue_x2 (vm, node, next_index,
                                           to_next, n_left_to_next,
@@ -291,7 +285,7 @@ l2_rw_node_fn (vlib_main_t * vm,
 
       while (n_left_from > 0 && n_left_to_next > 0)
        {
-         u32 bi0, next0, sw_if_index0, feature_bitmap0, rwe_index0;
+         u32 bi0, next0, sw_if_index0, rwe_index0;
          vlib_buffer_t *b0;
          ethernet_header_t *h0;
          l2_rw_config_t *config0;
@@ -341,11 +335,8 @@ l2_rw_node_fn (vlib_main_t * vm,
            }
 
          /* Update feature bitmap and get next feature index */
-         feature_bitmap0 =
-           vnet_buffer (b0)->l2.feature_bitmap & ~L2INPUT_FEAT_RW;
-         vnet_buffer (b0)->l2.feature_bitmap = feature_bitmap0;
-         next0 = feat_bitmap_get_next_node_index (rw->feat_next_node_index,
-                                                  feature_bitmap0);
+         next0 = vnet_l2_feature_next (b0, rw->feat_next_node_index,
+                                       L2INPUT_FEAT_RW);
 
          vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
                                           to_next, n_left_to_next,
@@ -390,9 +381,9 @@ l2_rw_mod_entry (u32 * index,
   skip -= e->skip_n_vectors * sizeof (u32x4);
   e->rewrite_n_vectors = (skip + len - 1) / sizeof (u32x4) + 1;
   vec_alloc_aligned (e->mask, e->rewrite_n_vectors, sizeof (u32x4));
-  memset (e->mask, 0, e->rewrite_n_vectors * sizeof (u32x4));
+  clib_memset (e->mask, 0, e->rewrite_n_vectors * sizeof (u32x4));
   vec_alloc_aligned (e->value, e->rewrite_n_vectors, sizeof (u32x4));
-  memset (e->value, 0, e->rewrite_n_vectors * sizeof (u32x4));
+  clib_memset (e->value, 0, e->rewrite_n_vectors * sizeof (u32x4));
 
   clib_memcpy (((u8 *) e->value) + skip, value, len);
   clib_memcpy (((u8 *) e->mask) + skip, mask, len);
@@ -448,7 +439,7 @@ l2_rw_entry_cli_fn (vlib_main_t * vm,
 
 /*?
  * Layer 2-Rewrite node uses classify tables to match packets. Then, using
- * the provisioned mask and value, modfies the packet header.
+ * the provisioned mask and value, modifies the packet header.
  *
  * @cliexpar
  * @todo This is incomplete. This needs a detailed description and a
@@ -520,7 +511,7 @@ l2_rw_interface_cli_fn (vlib_main_t * vm,
 
 /*?
  * Layer 2-Rewrite node uses classify tables to match packets. Then, using
- * the provisioned mask and value, modfies the packet header.
+ * the provisioned mask and value, modifies the packet header.
  *
  * @cliexpar
  * @todo This is incomplete. This needs a detailed description and a
@@ -555,7 +546,7 @@ l2_rw_show_interfaces_cli_fn (vlib_main_t * vm,
 
 /*?
  * Layer 2-Rewrite node uses classify tables to match packets. Then, using
- * the provisioned mask and value, modfies the packet header.
+ * the provisioned mask and value, modifies the packet header.
  *
  * @cliexpar
  * @todo This is incomplete. This needs a detailed description and a
@@ -589,7 +580,7 @@ l2_rw_show_entries_cli_fn (vlib_main_t * vm,
 
 /*?
  * Layer 2-Rewrite node uses classify tables to match packets. Then, using
- * the provisioned mask and value, modfies the packet header.
+ * the provisioned mask and value, modifies the packet header.
  *
  * @cliexpar
  * @todo This is incomplete. This needs a detailed description and a