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 0F50FA0540 for ; Wed, 6 Jul 2022 22:36:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0A6814113D; Wed, 6 Jul 2022 22:36:24 +0200 (CEST) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by mails.dpdk.org (Postfix) with ESMTP id 1076940691 for ; Wed, 6 Jul 2022 22:36:22 +0200 (CEST) Received: by mail-wm1-f49.google.com with SMTP id be14-20020a05600c1e8e00b003a04a458c54so9587900wmb.3 for ; Wed, 06 Jul 2022 13:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Fzns3EFfBKf9ZSGxENTFhWuMej4Zd8/9CZ8DDSc2+yA=; b=B5z6eoFWbGKza30QsMo3dCxq9pDETDehCZBXJXE8ZHJiccOLQkGk8avIEdFvayjrQC hULfuI7p2f2QguAuoYio9V+kDKMtQTeruLsZ+NqkU/nI5G6c8TrCwoiD/us0XRo4QjG0 nYDfiQzhIzEZJ9MjPATdyLMJ9V/q1gIzggsEl27+LN7E2e5I0XPL2579+V/ilRGMPhiR NOJ1SHNE6Mhy57rJerze67WjM9cdaVamErvGXh6TA4KlENTFe0MOnkmCTS3qb4SloM9S It3PcXBVM3o13NRuGM9G0yZGNQpHtMco5k82pzJvEoopjxc6DtEbDSXvQDLiEAwjNrCh 6QKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Fzns3EFfBKf9ZSGxENTFhWuMej4Zd8/9CZ8DDSc2+yA=; b=j44wd1ate6iXIFXon/yVCJSzrw/J70jf9JMM4PB5+wWJ6azehptv8RvPsqqMLLFCFo aLGhuns5N3LWNdlpHuP0RbillzyUjXJLcv1IrjIImT4XgmyC+g5+pvZpIYg9XYKPfshk gR8jI5K9Ap7oZndvH3x3ZJuDfycTptioyDOBM9luxBqwJjNRgrWgkytAwJkWI6AJitUN FJ+1nXpa+Wp1RYzoT12GFXR/ZET0Vy1eNYIP1HSE+XcyeHCSt6u/pbfJdHmmNjoI1Ps3 mB6qsUgQ79iFTsJqm0odCUBXRBvhxTwEqMpOLJAn01SWkDNBHZq4LB85gPPWX+E/iXv6 qZhA== X-Gm-Message-State: AJIora8a2X/bG0tWmcZ/tBfGmuRNYT3yiI5BKNhFXG3B41MEPiCLW6E8 1rqkbB2iZmpb9HfcCVLweO4= X-Google-Smtp-Source: AGRyM1uZ9hirF4c/ETqMgVUVDThDQlM0vXP0p+sMKBlzbSZHZqApreMAzD8AUhXXReTDYq7n5fquKg== X-Received: by 2002:a05:600c:a4c:b0:39c:34d0:fd25 with SMTP id c12-20020a05600c0a4c00b0039c34d0fd25mr458928wmq.172.1657139781791; Wed, 06 Jul 2022 13:36:21 -0700 (PDT) Received: from localhost ([2a01:4b00:f41a:3600:360b:9754:2e3a:c344]) by smtp.gmail.com with ESMTPSA id t7-20020adfe447000000b0021d83071683sm569805wrm.64.2022.07.06.13.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Jul 2022 13:36:21 -0700 (PDT) From: luca.boccassi@gmail.com To: Raja Zidane Cc: Gregory Etelson , Matan Azrad , Viacheslav Ovsiienko , dpdk stable Subject: patch 'net/mlx5: reject negative integrity item configuration' has been queued to stable release 21.11.2 Date: Wed, 6 Jul 2022 21:35:00 +0100 Message-Id: <20220706203506.3422496-25-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220706203506.3422496-1-luca.boccassi@gmail.com> References: <20220628151938.2278711-26-ktraynor@redhat.com> <20220706203506.3422496-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 21.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/08/22. 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 This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/008e1abc82b60306cb1d297150e8da423d67b857 Thanks. Luca Boccassi --- >From 008e1abc82b60306cb1d297150e8da423d67b857 Mon Sep 17 00:00:00 2001 From: Raja Zidane Date: Mon, 4 Jul 2022 13:11:39 +0300 Subject: [PATCH] net/mlx5: reject negative integrity item configuration [ upstream commit 5ddb9038245ef74ea91e921012acb647dc8b374d ] Negative integrity item refers to condition when the item value mask is set, but value spec is cleared: ... integrity value mask l4_ok value spec 0 ... ethdev library defines integrity bits `l3_ok` and `l4_ok` as accumulators for all hardware L3 and L4 integrity verifications respectfully. Hardware `l3_ok` and `l4_ok` integrity bits refer to L3 and L4 network headers only. Integrity bits `l3_ok` and `l4_ok` are not compatible between ethdev library and hardware. PMD translations for ethdev `l3_ok` are: IPv4: `l3_ok` and `l3_csum_ok` IPv6: `l3_ok` ethdev `l4_ok` is translated into PMD `l4_ok` and `l4_csum_ok` bits. Positive IPv4 `l3_ok` flow item configuration is translated into a single matcher that AND corresponding hardware bits. Negative IPv4 `l3_ok` is translated into 2 hardware conditions where each condition probes a single integrity bit: ethdev::l3_ok is 0 => MLX5::l3_ok is 0 OR MLX5:l3_csum_ok is 0 MLX5 hardware does not do OR condition in flow rule item. Negative IPv4 `l3_ok` must be translated into 2 flow rules. Similarly negative ethdev `l4_ok` condition is also translated into 2 hardware rules. Current PMD roadmap does not allow implicit flow rule split. Bugzilla ID: 948 Suggested-by: Raja Zidane Signed-off-by: Gregory Etelson Acked-by: Matan Azrad Acked-by: Viacheslav Ovsiienko --- doc/guides/nics/mlx5.rst | 5 +++-- drivers/net/mlx5/mlx5_flow_dv.c | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index bcbaa97dae..ce40d1cdac 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -479,14 +479,15 @@ Limitations - Integrity offload is enabled starting from **ConnectX-6 Dx**. - Verification bits provided by the hardware are ``l3_ok``, ``ipv4_csum_ok``, ``l4_ok``, ``l4_csum_ok``. - ``level`` value 0 references outer headers. + - Negative integrity item verification is not supported. - Multiple integrity items not supported in a single flow rule. - Flow rule items supplied by application must explicitly specify network headers referred by integrity item. For example, if integrity item mask sets ``l4_ok`` or ``l4_csum_ok`` bits, reference to L4 network header, TCP or UDP, must be in the rule pattern as well:: flow create 0 ingress pattern integrity level is 0 value mask l3_ok value spec l3_ok / eth / ipv6 / end … - or - flow create 0 ingress pattern integrity level is 0 value mask l4_ok value spec 0 / eth / ipv4 proto is udp / end … + + flow create 0 ingress pattern integrity level is 0 value mask l4_ok value spec l4_ok / eth / ipv4 proto is udp / end … - Connection tracking: diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index dfa0dc0aad..70031d3dc9 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -6693,6 +6693,12 @@ flow_dv_validate_item_integrity(struct rte_eth_dev *dev, RTE_FLOW_ERROR_TYPE_ITEM, integrity_item, "unsupported integrity filter"); + if ((mask->l3_ok & !spec->l3_ok) || (mask->l4_ok & !spec->l4_ok) || + (mask->ipv4_csum_ok & !spec->ipv4_csum_ok) || + (mask->l4_csum_ok & !spec->l4_csum_ok)) + return rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_ITEM, + NULL, "negative integrity flow is not supported"); if (spec->level > 1) { if (pattern_flags & MLX5_FLOW_ITEM_INNER_INTEGRITY) return rte_flow_error_set -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-07-06 21:07:54.412699731 +0100 +++ 0025-net-mlx5-reject-negative-integrity-item-configuratio.patch 2022-07-06 21:07:53.579519398 +0100 @@ -1 +1 @@ -From 5ddb9038245ef74ea91e921012acb647dc8b374d Mon Sep 17 00:00:00 2001 +From 008e1abc82b60306cb1d297150e8da423d67b857 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 5ddb9038245ef74ea91e921012acb647dc8b374d ] + @@ -35 +36,0 @@ -Cc: stable@dpdk.org @@ -47 +48 @@ -index 9f2832e284..a7f9851d16 100644 +index bcbaa97dae..ce40d1cdac 100644 @@ -69 +70 @@ -index 09349a021b..bee9363515 100644 +index dfa0dc0aad..70031d3dc9 100644 @@ -72 +73 @@ -@@ -6779,6 +6779,12 @@ flow_dv_validate_item_integrity(struct rte_eth_dev *dev, +@@ -6693,6 +6693,12 @@ flow_dv_validate_item_integrity(struct rte_eth_dev *dev,