[dpdk-dev,v2,1/4] ether: add flow action to redirect packet to a port
Checks
Commit Message
Add action RTE_FLOW_ACTION_TYPE_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@intel.com>
---
doc/guides/prog_guide/rte_flow.rst | 22 ++++++++++++++++++++++
lib/librte_ether/rte_flow.h | 19 ++++++++++++++++++-
2 files changed, 40 insertions(+), 1 deletion(-)
Comments
On Sun, Apr 01, 2018 at 05:19:19PM -0400, Qi Zhang wrote:
> Add action RTE_FLOW_ACTION_TYPE_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@intel.com>
Just to let every one know that as discussed [1], this patch is superseded
by "ethdev: add port ID item and action to flow API" [2].
It is therefore not a candidate for inclusion and does not need to be
reviewed.
[1] http://dpdk.org/ml/archives/dev/2018-April/095525.html
[2] http://dpdk.org/ml/archives/dev/2018-April/096538.html
@@ -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
~~~~~~~~~~~~~~
@@ -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.
+ *
+ * Terminating by default.
+ */
+struct rte_flow_action_port {
+ uint16_t port_id; /**< identification of the forward destination. */
+};
+
/**
* Definition of a single action.
*