patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Raslan Darawsheh <rasland@mellanox.com>
Cc: Viacheslav Ovsiienko <viacheslavo@mellanox.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/mlx5: fix flow items size calculation' has been queued to LTS release 18.11.10
Date: Fri, 28 Aug 2020 11:12:53 +0100	[thread overview]
Message-ID: <20200828101308.223767-27-ktraynor@redhat.com> (raw)
In-Reply-To: <20200828101308.223767-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to LTS release 18.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 09/02/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e070c7603fcab00ade74e5e651fd3cb9b7f3c356

Thanks.

Kevin.

---
From e070c7603fcab00ade74e5e651fd3cb9b7f3c356 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@mellanox.com>
Date: Thu, 16 Jul 2020 15:14:55 +0300
Subject: [PATCH] net/mlx5: fix flow items size calculation

[ upstream commit d13f9760866884d81563624fbf160f3054b70f19 ]

flow_dv_get_item_len returns the actual header size of
an rte_flow item.

Changing any of the structs for rte_flow items by adding
or removing some extra fields will break this function.

This fixes the behavior by returning the actual header size
of each item.

Fixes: 34d41b7aa3bf ("net/mlx5: add VXLAN encap action to Direct Verbs")

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 460461ab0d..aa8f5977fa 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -27,4 +27,5 @@
 #include <rte_ip.h>
 #include <rte_gre.h>
+#include <rte_mpls.h>
 
 #include "mlx5.h"
@@ -350,5 +351,5 @@ flow_dv_encap_decap_resource_register
 
 /**
- * Get the size of specific rte_flow_item_type
+ * Get the size of specific rte_flow_item_type hdr size
  *
  * @param[in] item_type
@@ -359,5 +360,5 @@ flow_dv_encap_decap_resource_register
  */
 static size_t
-flow_dv_get_item_len(const enum rte_flow_item_type item_type)
+flow_dv_get_item_hdr_len(const enum rte_flow_item_type item_type)
 {
 	size_t retval;
@@ -365,35 +366,31 @@ flow_dv_get_item_len(const enum rte_flow_item_type item_type)
 	switch (item_type) {
 	case RTE_FLOW_ITEM_TYPE_ETH:
-		retval = sizeof(struct rte_flow_item_eth);
+		retval = sizeof(struct ether_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_VLAN:
-		retval = sizeof(struct rte_flow_item_vlan);
+		retval = sizeof(struct vlan_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_IPV4:
-		retval = sizeof(struct rte_flow_item_ipv4);
+		retval = sizeof(struct ipv4_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_IPV6:
-		retval = sizeof(struct rte_flow_item_ipv6);
+		retval = sizeof(struct ipv6_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_UDP:
-		retval = sizeof(struct rte_flow_item_udp);
+		retval = sizeof(struct udp_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_TCP:
-		retval = sizeof(struct rte_flow_item_tcp);
+		retval = sizeof(struct tcp_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_VXLAN:
-		retval = sizeof(struct rte_flow_item_vxlan);
+	case RTE_FLOW_ITEM_TYPE_VXLAN_GPE:
+		retval = sizeof(struct vxlan_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_GRE:
-		retval = sizeof(struct rte_flow_item_gre);
-		break;
 	case RTE_FLOW_ITEM_TYPE_NVGRE:
-		retval = sizeof(struct rte_flow_item_nvgre);
-		break;
-	case RTE_FLOW_ITEM_TYPE_VXLAN_GPE:
-		retval = sizeof(struct rte_flow_item_vxlan_gpe);
+		retval = sizeof(struct gre_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_MPLS:
-		retval = sizeof(struct rte_flow_item_mpls);
+		retval = sizeof(struct mpls_hdr);
 		break;
 	case RTE_FLOW_ITEM_TYPE_VOID: /* Fall through. */
@@ -448,5 +445,5 @@ flow_dv_convert_encap_data(const struct rte_flow_item *items, uint8_t *buf,
 					  NULL, "invalid empty data");
 	for (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) {
-		len = flow_dv_get_item_len(items->type);
+		len = flow_dv_get_item_hdr_len(items->type);
 		if (len + temp_size > MLX5_ENCAP_MAX_LEN)
 			return rte_flow_error_set(error, EINVAL,
-- 
2.26.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-08-28 11:03:26.567266876 +0100
+++ 0027-net-mlx5-fix-flow-items-size-calculation.patch	2020-08-28 11:03:25.954955693 +0100
@@ -1 +1 @@
-From d13f9760866884d81563624fbf160f3054b70f19 Mon Sep 17 00:00:00 2001
+From e070c7603fcab00ade74e5e651fd3cb9b7f3c356 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d13f9760866884d81563624fbf160f3054b70f19 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index f0cc7ad1a4..e7f0a12ac1 100644
+index 460461ab0d..aa8f5977fa 100644
@@ -28,3 +29,3 @@
-@@ -21,4 +21,5 @@
- #include <rte_gtp.h>
- #include <rte_eal_paging.h>
+@@ -27,4 +27,5 @@
+ #include <rte_ip.h>
+ #include <rte_gre.h>
@@ -33,3 +34,3 @@
- #include <mlx5_glue.h>
-@@ -2867,5 +2868,5 @@ flow_dv_push_vlan_action_resource_register
- }
+ #include "mlx5.h"
+@@ -350,5 +351,5 @@ flow_dv_encap_decap_resource_register
+ 
@@ -41 +42 @@
-@@ -2876,5 +2877,5 @@ flow_dv_push_vlan_action_resource_register
+@@ -359,5 +360,5 @@ flow_dv_encap_decap_resource_register
@@ -48 +49 @@
-@@ -2882,35 +2883,31 @@ flow_dv_get_item_len(const enum rte_flow_item_type item_type)
+@@ -365,35 +366,31 @@ flow_dv_get_item_len(const enum rte_flow_item_type item_type)
@@ -52 +53 @@
-+		retval = sizeof(struct rte_ether_hdr);
++		retval = sizeof(struct ether_hdr);
@@ -56 +57 @@
-+		retval = sizeof(struct rte_vlan_hdr);
++		retval = sizeof(struct vlan_hdr);
@@ -60 +61 @@
-+		retval = sizeof(struct rte_ipv4_hdr);
++		retval = sizeof(struct ipv4_hdr);
@@ -64 +65 @@
-+		retval = sizeof(struct rte_ipv6_hdr);
++		retval = sizeof(struct ipv6_hdr);
@@ -68 +69 @@
-+		retval = sizeof(struct rte_udp_hdr);
++		retval = sizeof(struct udp_hdr);
@@ -72 +73 @@
-+		retval = sizeof(struct rte_tcp_hdr);
++		retval = sizeof(struct tcp_hdr);
@@ -77 +78 @@
-+		retval = sizeof(struct rte_vxlan_hdr);
++		retval = sizeof(struct vxlan_hdr);
@@ -87 +88 @@
-+		retval = sizeof(struct rte_gre_hdr);
++		retval = sizeof(struct gre_hdr);
@@ -91 +92 @@
-+		retval = sizeof(struct rte_mpls_hdr);
++		retval = sizeof(struct mpls_hdr);
@@ -94 +95 @@
-@@ -2965,5 +2962,5 @@ flow_dv_convert_encap_data(const struct rte_flow_item *items, uint8_t *buf,
+@@ -448,5 +445,5 @@ flow_dv_convert_encap_data(const struct rte_flow_item *items, uint8_t *buf,


  parent reply	other threads:[~2020-08-28 10:14 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-28 10:12 [dpdk-stable] patch 'net/bonding: fix error code on device creation' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/af_packet: fix check of file descriptors' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/af_packet: fix memory leak on init failure' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/af_packet: fix munmap " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/bonding: fix MAC address when switching active port' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/bonding: fix MAC address when one port resets' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/i40e: fix flow director Rx writeback packet' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/ixgbe: fix MAC control frame forward' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/ixgbe: fix flow control status' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/bonding: delete redundant code' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/i40e: report VLAN filter capability' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/e1000: report VLAN extend " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/e1000: fix crash on Tx done clean up' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'vhost: fix double-free with zero-copy' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net: fix pedantic build' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'doc: fix some typos in Linux guide' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'doc: fix typo in bbdev test " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'bus/vdev: fix a typo in doxygen comment' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'hash: fix out-of-memory handling in hash creation' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'test/cycles: restore default delay callback' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'event/dpaa: remove dead code' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'app/eventdev: fix capability check in pipeline ATQ test' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'event/dpaa2: add all-types queue capability flag' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'common/qat: fix uninitialized variable' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'crypto/armv8: remove debug option' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'crypto/armv8: use dedicated log type' " Kevin Traynor
2020-08-28 10:12 ` Kevin Traynor [this message]
2020-08-28 10:12 ` [dpdk-stable] patch 'net/mlx5: fix crash in NVGRE item translation' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/mlx4: optimize stack memory size in probe' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/i40e: fix binding interrupt without MSI-X vector' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/i40e: fix flow director MSI-X resource allocation' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/qede: remove dead code' " Kevin Traynor
2020-08-28 10:12 ` [dpdk-stable] patch 'net/virtio-user: fix status management' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'net/virtio-user: check tap system call setting' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'net/kni: set packet input port in Rx' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'examples/packet_ordering: use proper exit method' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'net/netvsc: fix crash during Tx' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'doc: fix ethtool app path' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'net/bonding: fix dead loop on RSS RETA update' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'net/i40e: remove duplicate tunnel type check' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'kni: fix reference to master/slave process' " Kevin Traynor
2020-08-28 10:13 ` [dpdk-stable] patch 'doc: fix reference to master " Kevin Traynor

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=20200828101308.223767-27-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=rasland@mellanox.com \
    --cc=stable@dpdk.org \
    --cc=viacheslavo@mellanox.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 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).