All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xueming Li <xuemingl@mellanox.com>
To: Wenzhuo Lu <wenzhuo.lu@intel.com>,
	Jingjing Wu <jingjing.wu@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Nelio Laranjeiro <nelio.laranjeiro@6wind.com>,
	Adrien Mazarguil <adrien.mazarguil@6wind.com>,
	Shahaf Shuler <shahafs@mellanox.com>,
	Olivier Matz <olivier.matz@6wind.com>
Cc: Xueming Li <xuemingl@mellanox.com>, dev@dpdk.org
Subject: [PATCH v1 13/21] net/mlx5: support 16 hardware priorities
Date: Fri,  9 Mar 2018 19:29:13 +0800	[thread overview]
Message-ID: <20180309112921.2105-14-xuemingl@mellanox.com> (raw)
In-Reply-To: <20180309112921.2105-1-xuemingl@mellanox.com>
In-Reply-To: <20180226150947.107179-2-xuemingl@mellanox.com>

Since OFED 4.3-0.1.3.0, new driver support 16 Verbs priorities, adjust
RTE FLOW priority mapping to:
0-3: RTE FLOW tunnel rule
4-7: RTE FLOW non-tunnel rule
8-15: PMD default control flow

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 27183d5..5e5184b 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -28,7 +28,16 @@
 #include "mlx5_glue.h"
 
 /* Define minimal priority for control plane flows. */
+#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT
+/* 16 verb priorities since OFED 4.3, control flow start from 8. */
+#define MLX5_CTRL_FLOW_PRIORITY 8
+#else
+/* 8 Verb priorities before OFED4.3, control flow start from 4. */
 #define MLX5_CTRL_FLOW_PRIORITY 4
+#endif
+
+/* Define verb priority span for each flow. */
+#define MLX5_FLOW_PRIORITY_SPAN 4
 
 /* Internet Protocol versions. */
 #define MLX5_IPV4 4
@@ -1215,6 +1224,7 @@ struct ibv_spec_header {
 		  struct mlx5_flow_parse *parser)
 {
 	const struct mlx5_flow_items *cur_item = mlx5_flow_items;
+	unsigned int priority_shift = attr->priority;
 	unsigned int i;
 	int ret;
 
@@ -1234,13 +1244,20 @@ struct ibv_spec_header {
 	if (ret)
 		return ret;
 	priv_flow_convert_finalise(priv, parser);
+#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT
+	/*
+	 * 16 priorities since OFED4.3, tunnel rules use highest priority 0-3,
+	 * other user-flows use 4-7, control flows use lowest start from 8.
+	 */
+	if (!parser->tunnel)
+		priority_shift += MLX5_FLOW_PRIORITY_SPAN;
+#endif
 	/*
 	 * Second step.
 	 * Allocate the memory space to store verbs specifications.
 	 */
 	if (parser->drop) {
-		unsigned int priority =
-			attr->priority +
+		unsigned int priority = priority_shift +
 			hash_rxq_init[HASH_RXQ_ETH].flow_priority;
 		unsigned int offset = parser->queue[HASH_RXQ_ETH].offset;
 
@@ -1253,8 +1270,7 @@ struct ibv_spec_header {
 			sizeof(struct ibv_flow_attr);
 	} else {
 		for (i = 0; i != hash_rxq_init_n; ++i) {
-			unsigned int priority =
-				attr->priority +
+			unsigned int priority = priority_shift +
 				hash_rxq_init[i].flow_priority;
 			unsigned int offset;
 
@@ -1298,7 +1314,7 @@ struct ibv_spec_header {
 		priv_flow_convert_finalise(priv, parser);
 	} else {
 		parser->queue[HASH_RXQ_ETH].ibv_attr->priority =
-			attr->priority +
+			priority_shift +
 			hash_rxq_init[parser->layer].flow_priority;
 	}
 	if (parser->mark)
-- 
1.8.3.1

  parent reply	other threads:[~2018-03-09 11:30 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-26 15:09 [PATCH 00/18] MLX5 tunnel Rx offloading Xueming Li
2018-02-26 15:09 ` [PATCH 01/18] ethdev: support tunnel RSS level Xueming Li
2018-02-27 13:09   ` Ferruh Yigit
2018-03-09 11:29   ` [PATCH v1 00/21] MLX5 tunnel Rx offloading Xueming Li
2018-03-09 11:29   ` [PATCH v1 01/21] ethdev: support tunnel RSS level Xueming Li
2018-03-09 11:29   ` [PATCH v1 02/21] app/testpmd: support flow RSS level parsing Xueming Li
2018-03-09 11:29   ` [PATCH v1 03/21] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-03-09 11:29   ` [PATCH v1 04/21] app/testpmd: " Xueming Li
2018-03-09 11:29   ` [PATCH v1 05/21] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-03-09 11:29   ` [PATCH v1 06/21] net/mlx5: fix tunnel offloads cap query Xueming Li
2018-03-09 11:29   ` [PATCH v1 07/21] net/mlx5: support GRE tunnel flow Xueming Li
2018-03-09 11:29   ` [PATCH v1 08/21] net/mlx5: support L3 vxlan Xueming Li
2018-03-09 11:29   ` [PATCH v1 09/21] net/mlx5: support tunnel inner csum offloads Xueming Li
2018-03-09 11:29   ` [PATCH v1 10/21] net/mlx5: support packet tunnel type Xueming Li
2018-03-09 11:29   ` [PATCH v1 11/21] net/mlx5: split flow RSS handling logic Xueming Li
2018-03-09 11:29   ` [PATCH v1 12/21] net/mlx5: support tunnel RSS level Xueming Li
2018-03-09 11:29   ` Xueming Li [this message]
2018-03-09 11:29   ` [PATCH v1 14/21] net/mlx5: add hardware flow debug dump Xueming Li
2018-03-09 11:29   ` [PATCH v1 15/21] net/mlx5: fix control flow create failure Xueming Li
2018-03-09 11:29   ` [PATCH v1 16/21] net/mlx5: introduce new tunnel VXLAN-GPE Xueming Li
2018-03-09 11:29   ` [PATCH v1 17/21] net/mlx5: allow flow tunnel ID 0 with outer pattern Xueming Li
2018-03-09 11:29   ` [PATCH v1 18/21] doc: update mlx5 guide on tunnel offloading Xueming Li
2018-03-09 11:29   ` [PATCH v1 19/21] doc: remove announce of ethdev API change for RSS configuration Xueming Li
2018-03-09 11:29   ` [PATCH v1 20/21] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-03-09 11:29   ` [PATCH v1 21/21] net/mlx5: support MPLS-in-GRE and MPLS-in-UDP flow pattern Xueming Li
2018-04-10 13:00   ` [PATCH v2 0/5] introduce new tunnel types Xueming Li
2018-04-10 13:00   ` [PATCH v2 1/5] doc: remove RSS configuration change announcement Xueming Li
2018-04-11  9:57     ` Adrien Mazarguil
2018-04-10 13:00   ` [PATCH v2 2/5] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-11  9:59     ` Adrien Mazarguil
2018-04-11 12:04       ` Xueming(Steven) Li
2018-04-10 13:00   ` [PATCH v2 3/5] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-04-11  9:58     ` Adrien Mazarguil
2018-04-10 13:00   ` [PATCH v2 4/5] app/testpmd: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-10 14:07     ` Nélio Laranjeiro
2018-04-11  9:59     ` Adrien Mazarguil
2018-04-10 13:00   ` [PATCH v2 5/5] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-12  7:33   ` [PATCH v3 0/5] introduce new tunnel types Xueming Li
2018-04-12  7:33   ` [PATCH v3 1/5] doc: remove RSS configuration change announcement Xueming Li
2018-04-12  7:33   ` [PATCH v3 2/5] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-12 12:01     ` Adrien Mazarguil
2018-04-12  7:33   ` [PATCH v3 3/5] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-04-12  7:33   ` [PATCH v3 4/5] app/testpmd: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-12 12:01     ` Adrien Mazarguil
2018-04-12  7:33   ` [PATCH v3 5/5] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-13 11:02   ` [PATCH v4 0/5] introduce new tunnel types Xueming Li
2018-04-16 22:33     ` Thomas Monjalon
2018-04-17 15:04     ` [PATCH v5 0/4] " Xueming Li
2018-04-17 16:05       ` Iremonger, Bernard
2018-04-18 11:55         ` Xueming(Steven) Li
2018-04-18 15:11           ` Iremonger, Bernard
2018-04-19 14:24             ` Xueming(Steven) Li
2018-04-19 14:57               ` Thomas Monjalon
2018-04-19 19:56                 ` Ferruh Yigit
2018-04-17 15:04     ` [PATCH v5 1/4] doc: remove RSS configuration change announcement Xueming Li
2018-04-17 15:04     ` [PATCH v5 2/4] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-17 20:56       ` Thomas Monjalon
2018-04-18  8:12         ` Adrien Mazarguil
2018-04-17 15:04     ` [PATCH v5 3/4] app/testpmd: " Xueming Li
2018-04-17 15:04     ` [PATCH v5 4/4] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-17 15:33     ` [PATCH v5 2/4] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-20 11:56     ` [PATCH v6 0/5] introduce new tunnel types Xueming Li
2018-04-23 12:16       ` [PATCH v7 " Xueming Li
2018-04-25 21:31         ` Ferruh Yigit
2018-04-23 12:16       ` [PATCH v7 1/5] doc: remove RSS configuration change announcement Xueming Li
2018-04-23 16:13         ` Ferruh Yigit
2018-04-23 16:56           ` Thomas Monjalon
2018-04-24  5:07           ` Xueming(Steven) Li
2018-04-25 17:38             ` Ferruh Yigit
2018-04-23 12:16       ` [PATCH v7 2/5] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-23 12:16       ` [PATCH v7 3/5] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-04-23 15:15         ` Thomas Monjalon
2018-04-23 12:16       ` [PATCH v7 4/5] app/testpmd: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-23 12:16       ` [PATCH v7 5/5] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-20 11:56     ` [PATCH v6 1/5] doc: remove RSS configuration change announcement Xueming Li
2018-04-20 11:56     ` [PATCH v6 2/5] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-23  9:43       ` Olivier Matz
2018-04-20 11:56     ` [PATCH v6 3/5] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-04-23  9:43       ` Olivier Matz
2018-04-20 11:56     ` [PATCH v6 4/5] app/testpmd: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-20 11:56     ` [PATCH v6 5/5] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-13 11:02   ` [PATCH v4 1/5] doc: remove RSS configuration change announcement Xueming Li
2018-04-17 15:16     ` Iremonger, Bernard
2018-04-17 15:37       ` Xueming(Steven) Li
2018-04-13 11:02   ` [PATCH v4 2/5] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-16 22:23     ` Thomas Monjalon
2018-04-17  8:54       ` Mohammad Abdul Awal
2018-04-13 11:02   ` [PATCH v4 3/5] ethdev: introduce tunnel type MPLS-in-GRE and MPLS-in-UDP Xueming Li
2018-04-13 11:02   ` [PATCH v4 4/5] app/testpmd: introduce new tunnel VXLAN-GPE Xueming Li
2018-04-13 11:02   ` [PATCH v4 5/5] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-04-17 15:12     ` Iremonger, Bernard
2018-02-26 15:09 ` [PATCH 02/18] app/testpmd: support flow RSS level parsing Xueming Li
2018-02-27 13:10   ` Ferruh Yigit
2018-03-05 10:36     ` Xueming(Steven) Li
2018-02-26 15:09 ` [PATCH 03/18] ethdev: introduce new tunnel VXLAN-GPE Xueming Li
2018-02-27 15:25   ` Mohammad Abdul Awal
2018-02-26 15:09 ` [PATCH 04/18] app/testpmd: " Xueming Li
2018-02-26 15:09 ` [PATCH 05/18] app/testpmd: add more GRE extension support to csum engine Xueming Li
2018-02-26 15:09 ` [PATCH 06/18] net/mlx5: fix tunnel offloads cap query Xueming Li
2018-02-26 15:09 ` [PATCH 07/18] net/mlx5: support GRE tunnel flow Xueming Li
2018-02-26 15:09 ` [PATCH 08/18] net/mlx5: support L3 vxlan Xueming Li
2018-02-26 15:09 ` [PATCH 09/18] net/mlx5: support tunnel inner csum offloads Xueming Li
2018-02-26 15:09 ` [PATCH 10/18] net/mlx5: support packet tunnel type Xueming Li
2018-02-26 15:09 ` [PATCH 11/18] net/mlx5: split flow RSS handling logic Xueming Li
2018-02-26 15:09 ` [PATCH 12/18] net/mlx5: support tunnel RSS level Xueming Li
2018-02-26 15:09 ` [PATCH 13/18] net/mlx5: support 16 hardware priorities Xueming Li
2018-02-26 15:09 ` [PATCH 14/18] net/mlx5: add hardware flow debug dump Xueming Li
2018-02-26 15:09 ` [PATCH 15/18] net/mlx5: fix control flow create failure Xueming Li
2018-02-26 15:09 ` [PATCH 16/18] net/mlx5: introduce new tunnel VXLAN-GPE Xueming Li
2018-02-26 15:09 ` [PATCH 17/18] net/mlx5: allow flow tunnel ID 0 with outer pattern Xueming Li
2018-02-26 15:09 ` [PATCH 18/18] doc: update mlx5 guide on tunnel offloading Xueming Li

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=20180309112921.2105-14-xuemingl@mellanox.com \
    --to=xuemingl@mellanox.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=nelio.laranjeiro@6wind.com \
    --cc=olivier.matz@6wind.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    --cc=wenzhuo.lu@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.