From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BA9BD43C60 for ; Thu, 7 Mar 2024 02:37:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AF5DC42F2D; Thu, 7 Mar 2024 02:37:48 +0100 (CET) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mails.dpdk.org (Postfix) with ESMTP id AF68642F43 for ; Thu, 7 Mar 2024 02:37:47 +0100 (CET) Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-33d2b354c72so155341f8f.1 for ; Wed, 06 Mar 2024 17:37:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709775467; x=1710380267; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CTEQIrkHHKzSKAzzHo9+X58UWxTlek1JsvfZklN+O7E=; b=IEYqn4aJ18EgsIuvfPZjX2ixkBqbVIHLfY2Q4l4foaA9q5eD4EvjmVoQ4fzRhPLrUr utKgMtVshOQi/B4iMDBAJ8ZN+26cYBCxHkz3YA6KHEm2Z5T0C2tTTzeqEMGmlcFY0I/N VlefLfWaYhZdM5/WXhKMJX1B/pzoA8Dp6T5YLy1AqhOY0qo2KmGo0ijPWhJeEv9lr+HI KcA1vNoMtv9HtJvj+DfIsIMJ3D1NjWn4yP+XWraHS9JUhAUAJH4UbPjLu8bq5jn2dlX9 xxhNVh2Zp64jlyNlkdVIzmEqH07tCq9qZP70COyyhyxebPaSZdB5NlmGPcNotGY4aate sh2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709775467; x=1710380267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CTEQIrkHHKzSKAzzHo9+X58UWxTlek1JsvfZklN+O7E=; b=mosv9D/LfCft+2j9eAWOPtlXFERMjTH2crThvk02W2oZ6nlCXzvwIcFwp5ZHWCV/zw zshBfrbo1hU8yK60wwGZ7TS1VuiYnLt71Rjqb+H9XplObAwc3NJDgVWNgjNWjb93f7Q8 7ggPQfO9fnxhZh9VVxzD1Hb++X6d2pg/VPylySpbZmUdSvRKS1L+6wpWWwyyE6II8ckr HT2NfFOHGP/VQuAke3tcwKGhiBk4IhXy/fzgYd1tKxK1kMomkCTDPJrvAl5EQK32XduP CLH+6gAKF95BSLU1RJcjtbKy80wUDcKSkqL4gnz/FDTm0wM2GH9mVeG0SWAZQOUVOFlo 5aYg== X-Forwarded-Encrypted: i=1; AJvYcCUutBDTjWPLKnrbKCoq59Ae23j8c9A44rsd45pWwuawVpwk3X2V3j9LDLabpa1f9y8LIS6DXSOPE9Y8og2g3L8= X-Gm-Message-State: AOJu0YxaRcGBMDoldQVp3w/RxN0ULpC7M5g8BYR5JvxOXCz0XWIV69aI lwntj4TYvNo8zFB6Qkzyz+U0W8TxMQCbij9AOo5kU5zJL2BVmXiYSQUsbLed5fk= X-Google-Smtp-Source: AGHT+IEys39Zdq3g8yvLvp1afrrGiI+QXOSmE/RSkTC/ruTKHNmG9hu18I6Q/sS/tOe9zM4Pp94BaA== X-Received: by 2002:a5d:440a:0:b0:33e:52b7:eeae with SMTP id z10-20020a5d440a000000b0033e52b7eeaemr2745887wrq.43.1709775467161; Wed, 06 Mar 2024 17:37:47 -0800 (PST) Received: from localhost ([2a01:4b00:d036:ae00:7aef:1aaa:3dff:d546]) by smtp.gmail.com with ESMTPSA id h18-20020a5d5052000000b0033cf4e47496sm18783055wrt.51.2024.03.06.17.37.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Mar 2024 17:37:46 -0800 (PST) From: luca.boccassi@gmail.com To: Alex Vesker Cc: Suanming Mou , dpdk stable Subject: patch 'net/mlx5/hws: fix tunnel protocol checks' has been queued to stable release 22.11.5 Date: Thu, 7 Mar 2024 01:31:55 +0000 Message-Id: <20240307013159.1735343-98-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240307013159.1735343-1-luca.boccassi@gmail.com> References: <20240307013159.1735343-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 Hi, FYI, your patch has been queued to stable release 22.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/09/24. 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/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/02373cf8c20b4e9a52808a3e9ca8b28b3ccaa04c Thanks. Luca Boccassi --- >From 02373cf8c20b4e9a52808a3e9ca8b28b3ccaa04c Mon Sep 17 00:00:00 2001 From: Alex Vesker Date: Thu, 25 Jan 2024 15:30:23 +0200 Subject: [PATCH] net/mlx5/hws: fix tunnel protocol checks [ upstream commit 28e69588f4170f29b73a04fc3bffba2596305782 ] Align GRE, GTPU and VXLAN tunnel protocols to fail in case the packet is already tunneled. Also use local defines for protocol UDP ports for better layering of mlx5dr API. Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer") Fixes: 5bf14a4beb1a ("net/mlx5/hws: support matching on MPLSoUDP") Signed-off-by: Alex Vesker Acked-by: Suanming Mou --- drivers/net/mlx5/hws/mlx5dr_definer.c | 32 +++++++++++++-------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index 6fc5d70f67..af63cdd343 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -8,7 +8,7 @@ #define BAD_PORT 0xBAD #define ETH_TYPE_IPV4_VXLAN 0x0800 #define ETH_TYPE_IPV6_VXLAN 0x86DD -#define ETH_VXLAN_DEFAULT_PORT 4789 +#define UDP_VXLAN_PORT 4789 #define STE_NO_VLAN 0x0 #define STE_SVLAN 0x1 @@ -153,7 +153,7 @@ struct mlx5dr_definer_conv_data { X(SET, gtp_ext_hdr_pdu, v->hdr.type, rte_flow_item_gtp_psc) \ X(SET, gtp_ext_hdr_qfi, v->hdr.qfi, rte_flow_item_gtp_psc) \ X(SET, vxlan_flags, v->flags, rte_flow_item_vxlan) \ - X(SET, vxlan_udp_port, ETH_VXLAN_DEFAULT_PORT, rte_flow_item_vxlan) \ + X(SET, vxlan_udp_port, UDP_VXLAN_PORT, rte_flow_item_vxlan) \ X(SET, source_qp, v->queue, mlx5_rte_flow_item_sq) \ X(SET, tag, v->data, rte_flow_item_tag) \ X(SET, metadata, v->data, rte_flow_item_meta) \ @@ -824,6 +824,12 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd, const struct rte_flow_item_gtp *m = item->mask; struct mlx5dr_definer_fc *fc; + if (cd->tunnel) { + DR_LOG(ERR, "Inner GTPU item not supported"); + rte_errno = ENOTSUP; + return rte_errno; + } + /* Overwrite GTPU dest port if not present */ fc = &cd->fc[DR_CALC_FNAME(L4_DPORT, false)]; if (!fc->tag_set && !cd->relaxed) { @@ -996,9 +1002,13 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, struct mlx5dr_definer_fc *fc; bool inner = cd->tunnel; - /* In order to match on VXLAN we must match on ether_type, ip_protocol - * and l4_dport. - */ + if (inner) { + DR_LOG(ERR, "Inner VXLAN item not supported"); + rte_errno = ENOTSUP; + return rte_errno; + } + + /* In order to match on VXLAN we must match on ip_protocol and l4_dport */ if (!cd->relaxed) { fc = &cd->fc[DR_CALC_FNAME(IP_PROTOCOL, inner)]; if (!fc->tag_set) { @@ -1021,12 +1031,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, return 0; if (m->flags) { - if (inner) { - DR_LOG(ERR, "Inner VXLAN flags item not supported"); - rte_errno = ENOTSUP; - return rte_errno; - } - fc = &cd->fc[MLX5DR_DEFINER_FNAME_VXLAN_FLAGS]; fc->item_idx = item_idx; fc->tag_set = &mlx5dr_definer_vxlan_flags_set; @@ -1036,12 +1040,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, } if (!is_mem_zero(m->vni, 3)) { - if (inner) { - DR_LOG(ERR, "Inner VXLAN vni item not supported"); - rte_errno = ENOTSUP; - return rte_errno; - } - fc = &cd->fc[MLX5DR_DEFINER_FNAME_VXLAN_VNI]; fc->item_idx = item_idx; fc->tag_set = &mlx5dr_definer_vxlan_vni_set; -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-03-07 01:05:43.056483875 +0000 +++ 0098-net-mlx5-hws-fix-tunnel-protocol-checks.patch 2024-03-07 01:05:35.070945790 +0000 @@ -1 +1 @@ -From 28e69588f4170f29b73a04fc3bffba2596305782 Mon Sep 17 00:00:00 2001 +From 02373cf8c20b4e9a52808a3e9ca8b28b3ccaa04c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 28e69588f4170f29b73a04fc3bffba2596305782 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -18,2 +19,2 @@ - drivers/net/mlx5/hws/mlx5dr_definer.c | 43 +++++++++++++-------------- - 1 file changed, 21 insertions(+), 22 deletions(-) + drivers/net/mlx5/hws/mlx5dr_definer.c | 32 +++++++++++++-------------- + 1 file changed, 15 insertions(+), 17 deletions(-) @@ -22 +23 @@ -index 750eb9c7c6..219bffd3b5 100644 +index 6fc5d70f67..af63cdd343 100644 @@ -25 +26 @@ -@@ -8,9 +8,10 @@ +@@ -8,7 +8,7 @@ @@ -30,2 +30,0 @@ --#define ETH_VXLAN_GPE_DEFAULT_PORT 4790 --#define IP_UDP_PORT_MPLS 6635 @@ -33,5 +31,0 @@ -+#define UDP_VXLAN_GPE_PORT 4790 -+#define UDP_GTPU_PORT 2152 -+#define UDP_PORT_MPLS 6635 - #define UDP_ROCEV2_PORT 4791 - #define DR_FLOW_LAYER_TUNNEL_NO_MPLS (MLX5_FLOW_LAYER_TUNNEL & ~MLX5_FLOW_LAYER_MPLS) @@ -39,10 +33,3 @@ -@@ -159,7 +160,7 @@ struct mlx5dr_definer_conv_data { - X(SET, tcp_protocol, STE_TCP, rte_flow_item_tcp) \ - X(SET_BE16, tcp_src_port, v->hdr.src_port, rte_flow_item_tcp) \ - X(SET_BE16, tcp_dst_port, v->hdr.dst_port, rte_flow_item_tcp) \ -- X(SET, gtp_udp_port, RTE_GTPU_UDP_PORT, rte_flow_item_gtp) \ -+ X(SET, gtp_udp_port, UDP_GTPU_PORT, rte_flow_item_gtp) \ - X(SET_BE32, gtp_teid, v->hdr.teid, rte_flow_item_gtp) \ - X(SET, gtp_msg_type, v->hdr.msg_type, rte_flow_item_gtp) \ - X(SET, gtp_ext_flag, !!v->hdr.gtp_hdr_info, rte_flow_item_gtp) \ -@@ -167,12 +168,12 @@ struct mlx5dr_definer_conv_data { + #define STE_NO_VLAN 0x0 + #define STE_SVLAN 0x1 +@@ -153,7 +153,7 @@ struct mlx5dr_definer_conv_data { @@ -53 +39,0 @@ -- X(SET, vxlan_gpe_udp_port, ETH_VXLAN_GPE_DEFAULT_PORT, rte_flow_item_vxlan_gpe) \ @@ -55,6 +40,0 @@ -+ X(SET, vxlan_gpe_udp_port, UDP_VXLAN_GPE_PORT, rte_flow_item_vxlan_gpe) \ - X(SET, vxlan_gpe_flags, v->flags, rte_flow_item_vxlan_gpe) \ - X(SET, vxlan_gpe_protocol, v->protocol, rte_flow_item_vxlan_gpe) \ - X(SET, vxlan_gpe_rsvd1, v->rsvd1, rte_flow_item_vxlan_gpe) \ -- X(SET, mpls_udp_port, IP_UDP_PORT_MPLS, rte_flow_item_mpls) \ -+ X(SET, mpls_udp_port, UDP_PORT_MPLS, rte_flow_item_mpls) \ @@ -64 +44 @@ -@@ -1198,6 +1199,12 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd, +@@ -824,6 +824,12 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd, @@ -77 +57 @@ -@@ -1372,9 +1379,13 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, +@@ -996,9 +1002,13 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, @@ -94 +74 @@ -@@ -1397,12 +1408,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, +@@ -1021,12 +1031,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, @@ -107 +87 @@ -@@ -1412,12 +1417,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd, +@@ -1036,12 +1040,6 @@ mlx5dr_definer_conv_item_vxlan(struct mlx5dr_definer_conv_data *cd,