flow:redirect to node 87/12587/4
authorEyal Bari <ebari@cisco.com>
Wed, 16 May 2018 09:15:32 +0000 (12:15 +0300)
committerDamjan Marion <dmarion.lists@gmail.com>
Thu, 17 May 2018 11:07:22 +0000 (11:07 +0000)
Change-Id: I4b6577b496c56f27f07dd0066fcfdfd0cebb6f1a
Signed-off-by: Eyal Bari <ebari@cisco.com>
src/plugins/dpdk/device/flow.c
src/vnet/flow/flow.c

index a0eb95f..af0c4b6 100644 (file)
@@ -220,11 +220,10 @@ dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance,
       goto done;
     }
 
-
   *private_data = fe - xd->flow_entries;
 
   /* install entry in the lookup table */
-  memset (fle, ~1, sizeof (*fle));
+  memset (fle, -1, sizeof (*fle));
   if (flow->actions & VNET_FLOW_ACTION_MARK)
     fle->flow_id = flow->mark_flow_id;
   if (flow->actions & VNET_FLOW_ACTION_REDIRECT_TO_NODE)
index 91e5112..c4f57a2 100644 (file)
@@ -109,6 +109,14 @@ vnet_flow_enable (vnet_main_t * vnm, u32 flow_index, u32 hw_if_index)
   if (dev_class->flow_ops_function == 0)
     return VNET_FLOW_ERROR_NOT_SUPPORTED;
 
+  if (f->actions & VNET_FLOW_ACTION_REDIRECT_TO_NODE)
+    {
+      vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, hw_if_index);
+      f->redirect_device_input_next_index =
+       vlib_node_add_next (vnm->vlib_main, hw->input_node_index,
+                           f->redirect_node_index);
+    }
+
   rv = dev_class->flow_ops_function (vnm, VNET_FLOW_DEV_OP_ADD_FLOW,
                                     hi->dev_instance, flow_index,
                                     &private_data);