From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9EDCDA04B1 for ; Fri, 28 Aug 2020 12:14:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 971DAA3; Fri, 28 Aug 2020 12:14:23 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by dpdk.org (Postfix) with ESMTP id ACC091C117 for ; Fri, 28 Aug 2020 12:14:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598609661; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MShAi1wXg/I6YDwQyQAJ4+GL2SbWIyuTpxaBhfG3M2U=; b=GCDbdnLHPmcG9KQrlHwZe8E6LYcN/IASTWyKJ5ywfYi1cLD1LxHnmWOuTOLcfvJmygs2B8 B8fKL1tg4PQ/U9VjhO48je/31o1vvQ8oG48R5vWRNGWS/ORRu6UsgmRjVJaif0mnPF7cer pj5NahirfJikoNV+wGQh1N1Uu2ybF6M= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-574-gUbQZBofMpiByGRwX0PBnQ-1; Fri, 28 Aug 2020 06:14:18 -0400 X-MC-Unique: gUbQZBofMpiByGRwX0PBnQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1AC8510066FB; Fri, 28 Aug 2020 10:14:17 +0000 (UTC) Received: from rh.redhat.com (unknown [10.33.36.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2478B19D7C; Fri, 28 Aug 2020 10:14:15 +0000 (UTC) From: Kevin Traynor To: Raslan Darawsheh Cc: Viacheslav Ovsiienko , dpdk stable Date: Fri, 28 Aug 2020 11:12:53 +0100 Message-Id: <20200828101308.223767-27-ktraynor@redhat.com> In-Reply-To: <20200828101308.223767-1-ktraynor@redhat.com> References: <20200828101308.223767-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/mlx5: fix flow items size calculation' has been queued to LTS release 18.11.10 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 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 Acked-by: Viacheslav Ovsiienko --- 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 #include +#include #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 - #include +@@ -27,4 +27,5 @@ + #include + #include @@ -33,3 +34,3 @@ - #include -@@ -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,