[dpdk-dev] [PATCH 3/5] ethdev: clarify MARK and FLAG actions in flow API
Adrien Mazarguil
adrien.mazarguil at 6wind.com
Tue Jan 10 14:08:28 CET 2017
Both actions share the PKT_RX_FDIR mbuf flag, as a result there is no way
to tell them apart. Moreover, the maximum allowed value for the MARK action
may not necessarily cover the entire 32-bit space.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
Cc: John McNamara <john.mcnamara at intel.com>
---
doc/guides/prog_guide/rte_flow.rst | 24 ++++++++++++------------
lib/librte_ether/rte_flow.h | 19 ++++++++++---------
2 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index f415a73..a6acbbf 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -1049,31 +1049,31 @@ flow rules:
Action: ``MARK``
^^^^^^^^^^^^^^^^
-Attaches a 32 bit value to packets.
+Attaches an integer value to packets and sets ``PKT_RX_FDIR`` and
+``PKT_RX_FDIR_ID`` mbuf flags.
-This value is arbitrary and application-defined. For compatibility with FDIR
-it is returned in the ``hash.fdir.hi`` mbuf field. ``PKT_RX_FDIR_ID`` is
-also set in ``ol_flags``.
+This value is arbitrary and application-defined. Maximum allowed value
+depends on the underlying implementation. It is returned in the
+``hash.fdir.hi`` mbuf field.
.. _table_rte_flow_action_mark:
.. table:: MARK
- +--------+-------------------------------------+
- | Field | Value |
- +========+=====================================+
- | ``id`` | 32 bit value to return with packets |
- +--------+-------------------------------------+
+ +--------+--------------------------------------+
+ | Field | Value |
+ +========+======================================+
+ | ``id`` | integer value to return with packets |
+ +--------+--------------------------------------+
Action: ``FLAG``
^^^^^^^^^^^^^^^^
-Flag packets. Similar to `Action: MARK`_ but only affects ``ol_flags``.
+Flags packets. Similar to `Action: MARK`_ without a specific value; only
+sets the ``PKT_RX_FDIR`` mbuf flag.
- No configurable properties.
-Note: a distinctive flag must be defined for it.
-
.. _table_rte_flow_action_flag:
.. table:: FLAG
diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h
index 98084ac..c2b9fc5 100644
--- a/lib/librte_ether/rte_flow.h
+++ b/lib/librte_ether/rte_flow.h
@@ -556,7 +556,8 @@ enum rte_flow_action_type {
/**
* [META]
*
- * Attaches a 32 bit value to packets.
+ * Attaches an integer value to packets and sets PKT_RX_FDIR and
+ * PKT_RX_FDIR_ID mbuf flags.
*
* See struct rte_flow_action_mark.
*/
@@ -565,9 +566,8 @@ enum rte_flow_action_type {
/**
* [META]
*
- * Flag packets. Similar to MARK but only affects ol_flags.
- *
- * Note: a distinctive flag must be defined for it.
+ * Flags packets. Similar to MARK without a specific value; only
+ * sets the PKT_RX_FDIR mbuf flag.
*
* No associated configuration structure.
*/
@@ -640,14 +640,15 @@ enum rte_flow_action_type {
/**
* RTE_FLOW_ACTION_TYPE_MARK
*
- * Attaches a 32 bit value to packets.
+ * Attaches an integer value to packets and sets PKT_RX_FDIR and
+ * PKT_RX_FDIR_ID mbuf flags.
*
- * This value is arbitrary and application-defined. For compatibility with
- * FDIR it is returned in the hash.fdir.hi mbuf field. PKT_RX_FDIR_ID is
- * also set in ol_flags.
+ * This value is arbitrary and application-defined. Maximum allowed value
+ * depends on the underlying implementation. It is returned in the
+ * hash.fdir.hi mbuf field.
*/
struct rte_flow_action_mark {
- uint32_t id; /**< 32 bit value to return with packets. */
+ uint32_t id; /**< Integer value to return with packets. */
};
/**
--
2.1.4
More information about the dev
mailing list