[dpdk-dev] [PATCH 1/4] ether: add flow action to redirect packet in a switch domain
Qi Zhang
qi.z.zhang at intel.com
Thu Mar 29 01:29:37 CEST 2018
Add action RTE_FLOW_ACTION_TYPE_SWITCH_PORT, it can be used to redirect
a packet to a network interface that connect to the same switch domain,
rte_ethdev's port_id is used as an identification of the destination.
A typical use case is: with a smart NIC for vSwitch acceleration, flow
is defined to forward packets between the switch port that is managed by
Port Representor.
Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
---
doc/guides/prog_guide/rte_flow.rst | 22 ++++++++++++++++++++++
lib/librte_ether/rte_flow.h | 19 ++++++++++++++++++-
2 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 961943d..aa5c818 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -1486,6 +1486,28 @@ fields in the pattern items.
| 1 | END |
+-------+----------+
+Action: ``PORT``
+^^^^^^^^^^^^^^^^
+
+Redirect packets to an interface that connect to the same switch domain.
+
+The desitnation should be managed by a rte_ethdev instance, port_id is
+the identification of the destination. A typical use case is to define
+a flow that redirect packet to a interface that mananged by a Port
+Representor.
+
+- Terminating by default.
+
+.. _table_rte_flow_action_port:
+
+.. table:: PORT
+
+ +--------------+-----------------------------------+
+ | Field | Value |
+ +==============+===================================+
+ | ``port_id`` | identification of the destination |
+ +--------------+-----------------------------------+
+
Negative types
~~~~~~~~~~~~~~
diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h
index 13e4202..9649519 100644
--- a/lib/librte_ether/rte_flow.h
+++ b/lib/librte_ether/rte_flow.h
@@ -1010,7 +1010,14 @@ enum rte_flow_action_type {
*
* See struct rte_flow_action_security.
*/
- RTE_FLOW_ACTION_TYPE_SECURITY
+ RTE_FLOW_ACTION_TYPE_SECURITY,
+
+ /**
+ * Redirect packets to a network interface in the same switch domain.
+ *
+ * See struct rte_flow_action_port.
+ */
+ RTE_FLOW_ACTION_TYPE_PORT,
};
/**
@@ -1148,6 +1155,16 @@ struct rte_flow_action_security {
void *security_session; /**< Pointer to security session structure. */
};
+/** RTE_FLOW_ACTION_TYPE_PORT
+ *
+ * Redirect packets to a network interface in the same switch domain.
+ *
+ * Terminateing by default.
+ */
+struct rte_flow_action_port {
+ uint16_t port_id; /**< identification of the forward destination. */
+};
+
/**
* Definition of a single action.
*
--
2.7.4
More information about the dev
mailing list