From: Jack Min <jackmin@mellanox.com>
To: Adrien Mazarguil <adrien.mazarguil@6wind.com>,
John McNamara <john.mcnamara@intel.com>,
Marko Kovacevic <marko.kovacevic@intel.com>,
Thomas Monjalon <thomas@monjalon.net>,
Ferruh Yigit <ferruh.yigit@intel.com>,
Andrew Rybchenko <arybchenko@solarflare.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] [PATCH v3 1/3] ethdev: add generic TTL rewrite actions
Date: Wed, 10 Oct 2018 13:05:49 +0000 [thread overview]
Message-ID: <20181010130524.23590-2-jackmin@mellanox.com> (raw)
In-Reply-To: <20181010130524.23590-1-jackmin@mellanox.com>
rewrite TTL by decrease or just set it directly
it's not necessary to check if the final result
is zero or not
This is slightly different from the one defined
by openflow and more generic
Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
doc/guides/prog_guide/rte_flow.rst | 30 +++++++++++++++++++++++++++++
lib/librte_ethdev/rte_flow.c | 2 ++
lib/librte_ethdev/rte_flow.h | 31 ++++++++++++++++++++++++++++++
3 files changed, 63 insertions(+)
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 93daceca2..e8df1e488 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -2166,6 +2166,36 @@ Set a new TCP/UDP destination port number.
| ``port`` | new TCP/UDP destination port |
+---------------+-------------------------+
+Action: ``DEC_TTL``
+^^^^^^^^^^^^^^^^^^^
+
+Decrease TTL value.
+
+.. _table_rte_flow_action_dec_ttl:
+
+.. table:: DEC_TTL
+
+ +---------------+
+ | Field |
+ +===============+
+ | no properties |
+ +---------------+
+
+Action: ``SET_TTL``
+^^^^^^^^^^^^^^^^^^^
+
+Assigns a new TTL value.
+
+.. _table_rte_flow_action_set_ttl:
+
+.. table:: SET_TTL
+
+ +---------------+--------------------+
+ | Field | Value |
+ +===============+====================+
+ | ``ttl_value`` | new TTL value |
+ +---------------+--------------------+
+
Negative types
~~~~~~~~~~~~~~
diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index 4eeb392b6..458a05994 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -135,6 +135,8 @@ static const struct rte_flow_desc_data rte_flow_desc_action[] = {
sizeof(struct rte_flow_action_set_tp)),
MK_FLOW_ACTION(SET_TP_DST,
sizeof(struct rte_flow_action_set_tp)),
+ MK_FLOW_ACTION(DEC_TTL, 0),
+ MK_FLOW_ACTION(SET_TTL, sizeof(struct rte_flow_action_set_ttl)),
};
static int
diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
index fe7e2434f..bb07eba9d 100644
--- a/lib/librte_ethdev/rte_flow.h
+++ b/lib/librte_ethdev/rte_flow.h
@@ -1548,6 +1548,26 @@ enum rte_flow_action_type {
* See struct rte_flow_action_set_tp.
*/
RTE_FLOW_ACTION_TYPE_SET_TP_DST,
+
+ /**
+ * Decrease TTL value directly
+ *
+ * If flow pattern doesn't define a valid RTE_FLOW_ITEM_TYPE_IPV4, or
+ * RTE_FLOW_ITEM_TYPE_IPV6, the PMD should return a
+ * RTE_FLOW_ERROR_TYPE_ACTION error.
+ */
+ RTE_FLOW_ACTION_TYPE_DEC_TTL,
+
+ /**
+ * Set TTL value
+ *
+ * If flow pattern doesn't define a valid RTE_FLOW_ITEM_TYPE_IPV4, or
+ * RTE_FLOW_ITEM_TYPE_IPV6, the PMD should return a
+ * RTE_FLOW_ERROR_TYPE_ACTION error.
+ *
+ * See struct rte_flow_action_set_ttl
+ */
+ RTE_FLOW_ACTION_TYPE_SET_TTL,
};
/**
@@ -1956,6 +1976,17 @@ struct rte_flow_action_set_tp {
uint16_t port;
};
+/**
+ * RTE_FLOW_ACTION_TYPE_SET_TTL
+ *
+ * Set the TTL value directly for IPv4 or IPv6
+ * The RTE_FLOW_ITEM_TYPE_IPV4 or RTE_FLOW_ITEM_TYPE_IPV6
+ * must be present in pattern
+ */
+struct rte_flow_action_set_ttl {
+ uint8_t ttl_value;
+};
+
/*
* Definition of a single action.
*
--
2.17.1
next prev parent reply other threads:[~2018-10-10 13:05 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-25 13:47 [dpdk-dev] [PATCH 0/3] " Xiaoyu Min
2018-09-25 13:47 ` [dpdk-dev] [PATCH 1/3] " Xiaoyu Min
2018-09-25 13:47 ` [dpdk-dev] [PATCH 2/3] app/testpmd: add commands of modify TTL Xiaoyu Min
2018-09-25 13:47 ` [dpdk-dev] [PATCH 3/3] net/mlx5: eswitch-modify TTL actions Xiaoyu Min
2018-10-03 20:07 ` Yongseok Koh
2018-10-08 6:57 ` Xiaoyu Min
2018-09-25 14:37 ` [dpdk-dev] [PATCH v2 0/3] ethdev: add generic TTL rewrite actions Xiaoyu Min
2018-09-25 14:37 ` [dpdk-dev] [PATCH v2 1/3] " Xiaoyu Min
2018-10-03 19:50 ` Yongseok Koh
2018-09-25 14:37 ` [dpdk-dev] [PATCH v2 2/3] app/testpmd: add commands of modify TTL Xiaoyu Min
2018-10-03 19:51 ` Yongseok Koh
2018-09-25 14:37 ` [dpdk-dev] [PATCH v2 3/3] net/mlx5: eswitch-modify TTL actions Xiaoyu Min
2018-10-05 12:48 ` Ferruh Yigit
2018-10-05 18:17 ` Yongseok Koh
2018-10-03 20:35 ` [dpdk-dev] [PATCH v2 0/3] ethdev: add generic TTL rewrite actions Thomas Monjalon
2018-10-05 12:52 ` Ferruh Yigit
2018-10-08 2:30 ` Xiaoyu Min
2018-10-10 13:05 ` [dpdk-dev] [PATCH v3 " Jack Min
2018-10-10 13:05 ` Jack Min [this message]
2018-10-10 13:05 ` [dpdk-dev] [PATCH v3 2/3] app/testpmd: add commands of modify TTL Jack Min
2018-10-10 13:06 ` [dpdk-dev] [PATCH v3 3/3] net/mlx5: rewrite TTL by E-Switch Jack Min
2018-10-11 5:47 ` Yongseok Koh
2018-10-11 13:27 ` [dpdk-dev] [PATCH v4 0/3] ethdev: add generic TTL rewrite actions Jack Min
2018-10-11 13:27 ` [dpdk-dev] [PATCH v4 1/3] " Jack Min
2018-10-12 14:12 ` Ferruh Yigit
2018-10-13 2:16 ` Jack Min
2018-10-11 13:27 ` [dpdk-dev] [PATCH v4 2/3] app/testpmd: add commands of modify TTL Jack Min
2018-10-11 13:27 ` [dpdk-dev] [PATCH v4 3/3] net/mlx5: rewrite TTL by E-Switch Jack Min
2018-10-13 3:24 ` [dpdk-dev] [PATCH v5 0/3] ethdev: add generic TTL rewrite actions Jack Min
2018-10-13 3:24 ` [dpdk-dev] [PATCH v5 1/3] " Jack Min
2018-10-14 7:35 ` Andrew Rybchenko
2018-10-16 2:03 ` Jack Min
2018-10-13 3:24 ` [dpdk-dev] [PATCH v5 2/3] app/testpmd: add commands of modify TTL Jack Min
2018-10-13 3:24 ` [dpdk-dev] [PATCH v5 3/3] net/mlx5: rewrite TTL by E-Switch Jack Min
2018-10-16 8:14 ` [dpdk-dev] [PATCH v6 0/3] ethdev: add generic TTL rewrite actions Jack Min
2018-10-16 8:14 ` [dpdk-dev] [PATCH v6 1/3] " Jack Min
2018-10-16 8:25 ` Andrew Rybchenko
2018-10-16 8:48 ` Ferruh Yigit
2018-10-16 8:14 ` [dpdk-dev] [PATCH v6 2/3] app/testpmd: add commands of modify TTL Jack Min
2018-10-16 8:14 ` [dpdk-dev] [PATCH v6 3/3] net/mlx5: rewrite TTL by E-Switch Jack Min
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181010130524.23590-2-jackmin@mellanox.com \
--to=jackmin@mellanox.com \
--cc=adrien.mazarguil@6wind.com \
--cc=arybchenko@solarflare.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=john.mcnamara@intel.com \
--cc=marko.kovacevic@intel.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).