From patchwork Wed Oct 25 20:51:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 133317 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 607F3431FE; Wed, 25 Oct 2023 22:51:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3306140E72; Wed, 25 Oct 2023 22:51:54 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2089.outbound.protection.outlook.com [40.107.223.89]) by mails.dpdk.org (Postfix) with ESMTP id 085AE40DF8 for ; Wed, 25 Oct 2023 22:51:52 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NLnf2NsY69svBngRez1TUvHSe4v/mDvt4mtn25nRCjFEWZHZ68IPkZCIt+KOFnFJ793CyCwHNf1XKTlmAcheDQLLx3SltiRl6Aiz/OjqRAUTZq4gaRV89bIiLA0Ay4E50VBpcPrEd805mzNExT/L8YkQm7uYf0lxAiu4gmpjjSvClJBQXoNSIp0ziClCCoXwxDDGJKrlxlLagKmQ/jcTm/vw29dM0+uaWRFo9njfaS2juUqVkB1/hpTPsiKYMRotn4JfKAExZ9eu7NHlvdr5JnKzFa+EvaMuTxaX4IpbmQfNzLj2mKaAHuKtiks3Py0ma2AEfEO7NSCToP5hPb0JRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TnYDOc9BjmuWdM0oCFwRokvlu3+uGHNxvrFoPpRFeRI=; b=mSR1S3FZcna49aYA8NB/TbYugf2MVFDWg2+HWbnR9VnqFj2wII8HrN6BPUizW2wncx0a0lUF5LC0wS9/L0rVnFRj30NVys0+H0KkkV2/Hdhpq8XBgcpIXwGJlrHjFVyuDoJ8LSwjFllKmUkQY3swy6WGaI2yE+pitUJNz0fIv4DVCRJkURxC3q/EnVUsHXlLrcDMtbtN9zLXGJQ+aD7t/G8At1x/ly9Q4BY9Ob1z4BTJvs+mrPVeFpCFANsscSL4fWb1Hg0GNgm2e6ojXfwXi2RdaXK757ji3J5v7QQmocJm/gmGl7w71LMmgQXQc/po4kzQkXRz/AGJkcs2xtzRDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TnYDOc9BjmuWdM0oCFwRokvlu3+uGHNxvrFoPpRFeRI=; b=bx8LWFU3Vr7MCbm6BhegdJFTMF5zyYesaJmereJhPi4D0EEEAVWIwtNyQvhCVjgucP7BxZFZHgxzPxILcVlUUoHAlnOGiLvWJCwcs+BZnx+psGtuH7GneId904ExsgStKQPpxWf0LOShnEU8bdNv22yV5N378KxJsv1tdHl0mjKSbOTG0ClM2ch1c+k1kgetBTXJhEDDNd3gSGfRlKzdLovV2eAxWL9OlznKy7eA1g2P3vs3Ui2r0+2N42ziZSkpsqJ4j0wISovSfVbUsmW9MtnJTitshJdWrxKWY3raaMBTxuc7j+U73t84XjhH8wLCDVc2mutI2dULFd7T592WCA== Received: from DM6PR10CA0032.namprd10.prod.outlook.com (2603:10b6:5:60::45) by SJ1PR12MB6362.namprd12.prod.outlook.com (2603:10b6:a03:454::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Wed, 25 Oct 2023 20:51:49 +0000 Received: from CY4PEPF0000EE30.namprd05.prod.outlook.com (2603:10b6:5:60:cafe::cd) by DM6PR10CA0032.outlook.office365.com (2603:10b6:5:60::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19 via Frontend Transport; Wed, 25 Oct 2023 20:51:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CY4PEPF0000EE30.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.15 via Frontend Transport; Wed, 25 Oct 2023 20:51:48 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:37 -0700 Received: from pegasus01.mtr.labs.mlnx (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:35 -0700 From: Alexander Kozyrev To: CC: , , , , , , Subject: [PATCH v4 1/4] net/mlx5: add support for ptype match in hardware steering Date: Wed, 25 Oct 2023 23:51:15 +0300 Message-ID: <20231025205118.1605321-2-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20231025205118.1605321-1-akozyrev@nvidia.com> References: <20231024175132.1435553-1-akozyrev@nvidia.com> <20231025205118.1605321-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE30:EE_|SJ1PR12MB6362:EE_ X-MS-Office365-Filtering-Correlation-Id: 03a4a123-bc2b-4f26-5e6f-08dbd59c356a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3/2jxRcnhSPicy4gwwoOeM2aoZP3YQn2gXEClpa2o6ec7MW4qzm6X8PeZgaOxMaZrwzDIk9SELV9qjore6jEr3WA8W6wFCqrcAEMmPQgdfn8ae5zEkwAZlhnx8LGX73kIk2Rlc44HOwcK9I6NERtz2jx8Rb6iT/U3JeqRdhMgQ1ND4llioCxqaHJks6dvYR/LC9nwVyjofou5fomYuUzKYheXh+pwmdhvTuN7xmiPG5V9ZbvEHsNtVhmDf0FOGG/ATaEu49rQobxq19KneotPSAZYZTOSqWJ2vrHbv1OgUMaE2sd2mxBHtlMN90/KiQGsXDWMo8B6e/RU32hpmdnYGqA6spahLahEMahUkP+5sxj1miyn87cOPHsmnlgFX45LusCAoFc4LZ6UPL15Uwl+GDyO4VVrR7ZFqwPqI5bLO50aJPs84A70izND3EvwLSE02dlrd+Ph+MSJonR8h6DmsJQ4k5u+A4jH0cnEK2ChQVyimc8eGV/oBcJtdf/sq60oVuhBQYXZq0vAPHDBlNhSajFk5bNoF/QZS96Fp/lYkAAPYThmsYx+7qstQX7+OpwlTNtIvd7FIn9iTZ1HDxOspn8HC4K/aEDEdLivC1DbV3PDYHKTGnrya6JpMs/VbNSpkVxBjvDRiYtuhAImPVAJFokAj2Oj2gEEo4JSMGl+5aMxjn6vw6/mh1CizuhbuNp10A+1EOJsnfua4lCUwtxngvEADLXtq5JAjQ34B5HQYG4AU1rzh6O0ItTDZWH6YzF X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(346002)(39860400002)(136003)(396003)(230922051799003)(64100799003)(82310400011)(186009)(1800799009)(451199024)(40470700004)(46966006)(36840700001)(40460700003)(2906002)(426003)(6666004)(356005)(83380400001)(316002)(1076003)(26005)(2616005)(107886003)(70586007)(70206006)(82740400003)(478600001)(86362001)(16526019)(47076005)(336012)(7636003)(36860700001)(5660300002)(54906003)(8676002)(41300700001)(36756003)(40480700001)(8936002)(4326008)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2023 20:51:48.9741 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 03a4a123-bc2b-4f26-5e6f-08dbd59c356a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE30.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6362 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The packet type matching provides quick way of finding out L2/L3/L4 protocols in a given packet. That helps with optimized flow rules matching, eliminating the need of stacking all the packet headers in the matching criteria. Signed-off-by: Alexander Kozyrev Acked-by: Ori Kam --- drivers/net/mlx5/hws/mlx5dr_definer.c | 161 ++++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_definer.h | 7 ++ drivers/net/mlx5/mlx5_flow.h | 3 + drivers/net/mlx5/mlx5_flow_hw.c | 1 + 4 files changed, 172 insertions(+) diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index 95b5d4b70e..8d846984e7 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -16,11 +16,15 @@ #define STE_NO_VLAN 0x0 #define STE_SVLAN 0x1 #define STE_CVLAN 0x2 +#define STE_NO_L3 0x0 #define STE_IPV4 0x1 #define STE_IPV6 0x2 +#define STE_NO_L4 0x0 #define STE_TCP 0x1 #define STE_UDP 0x2 #define STE_ICMP 0x3 +#define STE_NO_TUN 0x0 +#define STE_ESP 0x3 #define MLX5DR_DEFINER_QUOTA_BLOCK 0 #define MLX5DR_DEFINER_QUOTA_PASS 2 @@ -277,6 +281,82 @@ mlx5dr_definer_conntrack_tag(struct mlx5dr_definer_fc *fc, DR_SET(tag, reg_value, fc->byte_off, fc->bit_off, fc->bit_mask); } +static void +mlx5dr_definer_ptype_l2_set(struct mlx5dr_definer_fc *fc, + const void *item_spec, + uint8_t *tag) +{ + bool inner = (fc->fname == MLX5DR_DEFINER_FNAME_PTYPE_L2_I); + const struct rte_flow_item_ptype *v = item_spec; + uint32_t packet_type = v->packet_type & + (inner ? RTE_PTYPE_INNER_L2_MASK : RTE_PTYPE_L2_MASK); + uint8_t l2_type = STE_NO_VLAN; + + if (packet_type == (inner ? RTE_PTYPE_INNER_L2_ETHER : RTE_PTYPE_L2_ETHER)) + l2_type = STE_NO_VLAN; + else if (packet_type == (inner ? RTE_PTYPE_INNER_L2_ETHER_VLAN : RTE_PTYPE_L2_ETHER_VLAN)) + l2_type = STE_CVLAN; + else if (packet_type == (inner ? RTE_PTYPE_INNER_L2_ETHER_QINQ : RTE_PTYPE_L2_ETHER_QINQ)) + l2_type = STE_SVLAN; + + DR_SET(tag, l2_type, fc->byte_off, fc->bit_off, fc->bit_mask); +} + +static void +mlx5dr_definer_ptype_l3_set(struct mlx5dr_definer_fc *fc, + const void *item_spec, + uint8_t *tag) +{ + bool inner = (fc->fname == MLX5DR_DEFINER_FNAME_PTYPE_L3_I); + const struct rte_flow_item_ptype *v = item_spec; + uint32_t packet_type = v->packet_type & + (inner ? RTE_PTYPE_INNER_L3_MASK : RTE_PTYPE_L3_MASK); + uint8_t l3_type = STE_NO_L3; + + if (packet_type == (inner ? RTE_PTYPE_INNER_L3_IPV4 : RTE_PTYPE_L3_IPV4)) + l3_type = STE_IPV4; + else if (packet_type == (inner ? RTE_PTYPE_INNER_L3_IPV6 : RTE_PTYPE_L3_IPV6)) + l3_type = STE_IPV6; + + DR_SET(tag, l3_type, fc->byte_off, fc->bit_off, fc->bit_mask); +} + +static void +mlx5dr_definer_ptype_l4_set(struct mlx5dr_definer_fc *fc, + const void *item_spec, + uint8_t *tag) +{ + bool inner = (fc->fname == MLX5DR_DEFINER_FNAME_PTYPE_L4_I); + const struct rte_flow_item_ptype *v = item_spec; + uint32_t packet_type = v->packet_type & + (inner ? RTE_PTYPE_INNER_L4_MASK : RTE_PTYPE_L4_MASK); + uint8_t l4_type = STE_NO_L4; + + if (packet_type == (inner ? RTE_PTYPE_INNER_L4_TCP : RTE_PTYPE_L4_TCP)) + l4_type = STE_TCP; + else if (packet_type == (inner ? RTE_PTYPE_INNER_L4_UDP : RTE_PTYPE_L4_UDP)) + l4_type = STE_UDP; + else if (packet_type == (inner ? RTE_PTYPE_INNER_L4_ICMP : RTE_PTYPE_L4_ICMP)) + l4_type = STE_ICMP; + + DR_SET(tag, l4_type, fc->byte_off, fc->bit_off, fc->bit_mask); +} + +static void +mlx5dr_definer_ptype_tunnel_set(struct mlx5dr_definer_fc *fc, + const void *item_spec, + uint8_t *tag) +{ + const struct rte_flow_item_ptype *v = item_spec; + uint32_t packet_type = v->packet_type & RTE_PTYPE_TUNNEL_MASK; + uint8_t tun_type = STE_NO_TUN; + + if (packet_type == RTE_PTYPE_TUNNEL_ESP) + tun_type = STE_ESP; + + DR_SET(tag, tun_type, fc->byte_off, fc->bit_off, fc->bit_mask); +} + static void mlx5dr_definer_integrity_set(struct mlx5dr_definer_fc *fc, const void *item_spec, @@ -1709,6 +1789,83 @@ mlx5dr_definer_conv_item_gre_key(struct mlx5dr_definer_conv_data *cd, return 0; } +static int +mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd, + struct rte_flow_item *item, + int item_idx) +{ + const struct rte_flow_item_ptype *m = item->mask; + struct mlx5dr_definer_fc *fc; + + if (!m) + return 0; + + if (!(m->packet_type & + (RTE_PTYPE_L2_MASK | RTE_PTYPE_L3_MASK | RTE_PTYPE_L4_MASK | RTE_PTYPE_TUNNEL_MASK | + RTE_PTYPE_INNER_L2_MASK | RTE_PTYPE_INNER_L3_MASK | RTE_PTYPE_INNER_L4_MASK))) { + rte_errno = ENOTSUP; + return rte_errno; + } + + if (m->packet_type & RTE_PTYPE_L2_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L2, false)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l2_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, first_vlan_qualifier, false); + } + + if (m->packet_type & RTE_PTYPE_INNER_L2_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L2, true)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l2_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, first_vlan_qualifier, true); + } + + if (m->packet_type & RTE_PTYPE_L3_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L3, false)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l3_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l3_type, false); + } + + if (m->packet_type & RTE_PTYPE_INNER_L3_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L3, true)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l3_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l3_type, true); + } + + if (m->packet_type & RTE_PTYPE_L4_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, false)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l4_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l4_type, false); + } + + if (m->packet_type & RTE_PTYPE_INNER_L4_MASK) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, true)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l4_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l4_type, true); + } + + if (m->packet_type & RTE_PTYPE_TUNNEL_MASK) { + fc = &cd->fc[MLX5DR_DEFINER_FNAME_PTYPE_TUNNEL]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_tunnel_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l4_type_bwc, false); + } + + return 0; +} + static int mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd, struct rte_flow_item *item, @@ -2332,6 +2489,10 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx, ret = mlx5dr_definer_conv_item_ib_l4(&cd, items, i); item_flags |= MLX5_FLOW_ITEM_IB_BTH; break; + case RTE_FLOW_ITEM_TYPE_PTYPE: + ret = mlx5dr_definer_conv_item_ptype(&cd, items, i); + item_flags |= MLX5_FLOW_ITEM_PTYPE; + break; default: DR_LOG(ERR, "Unsupported item type %d", items->type); rte_errno = ENOTSUP; diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.h b/drivers/net/mlx5/hws/mlx5dr_definer.h index f5a541bc17..ea07f55d52 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.h +++ b/drivers/net/mlx5/hws/mlx5dr_definer.h @@ -141,6 +141,13 @@ enum mlx5dr_definer_fname { MLX5DR_DEFINER_FNAME_IB_L4_OPCODE, MLX5DR_DEFINER_FNAME_IB_L4_QPN, MLX5DR_DEFINER_FNAME_IB_L4_A, + MLX5DR_DEFINER_FNAME_PTYPE_L2_O, + MLX5DR_DEFINER_FNAME_PTYPE_L2_I, + MLX5DR_DEFINER_FNAME_PTYPE_L3_O, + MLX5DR_DEFINER_FNAME_PTYPE_L3_I, + MLX5DR_DEFINER_FNAME_PTYPE_L4_O, + MLX5DR_DEFINER_FNAME_PTYPE_L4_I, + MLX5DR_DEFINER_FNAME_PTYPE_TUNNEL, MLX5DR_DEFINER_FNAME_MAX, }; diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 903ff66d72..98b267245c 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -233,6 +233,9 @@ enum mlx5_feature_name { /* IB BTH ITEM. */ #define MLX5_FLOW_ITEM_IB_BTH (1ull << 51) +/* PTYPE ITEM */ +#define MLX5_FLOW_ITEM_PTYPE (1ull << 52) + /* NSH ITEM */ #define MLX5_FLOW_ITEM_NSH (1ull << 53) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index 89b6f546ae..7be7cdbbc1 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -5382,6 +5382,7 @@ flow_hw_pattern_validate(struct rte_eth_dev *dev, case RTE_FLOW_ITEM_TYPE_ESP: case RTE_FLOW_ITEM_TYPE_FLEX: case RTE_FLOW_ITEM_TYPE_IB_BTH: + case RTE_FLOW_ITEM_TYPE_PTYPE: break; case RTE_FLOW_ITEM_TYPE_INTEGRITY: /* From patchwork Wed Oct 25 20:51:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 133318 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4B83D431FE; Wed, 25 Oct 2023 22:52:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7011C4161A; Wed, 25 Oct 2023 22:51:55 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2048.outbound.protection.outlook.com [40.107.94.48]) by mails.dpdk.org (Postfix) with ESMTP id 534104111C for ; Wed, 25 Oct 2023 22:51:54 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e8DhqmdTz2uGbNao8gxq7e+v/1zTwfiCn1SKXNX0R83yGoq2618CgsJJTeMzE6f280+Up/VTugjLYbthubNXZRlYuYmrcLRnk55z83+m1R0XnEXGfT+4X6M1RxgA/Z7XyUMEK8CCMUp/Umm1yRIAcdchZeGNfZHcLcNi6ed96SUpbRCQIfngPFGRa/Hio76DxIXuFbAKkSjEg+HvkMcqZUT99VvQ/VxJBDCyyRtaeL17h4tSmL3Noj5zqXflotpoYu7LZKW3IhN1+KdYtqc0DkgHeU0u/Jf/wC//TX6rSrHRyf++CuCzqZsQUAJMP9rCkK+6HnW7C17NrIpcRvgOfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jmIl1o0cdVmiLP0K82vCc2JgG86RVuNsHuig2NIiKFA=; b=ayBv+vATnjA6B7fpmBAopoFV2Bz+sxFHS7w7/3ULF3H3DAPJkHODfzllcr4PiyxidKlTZQx6Ljo8RfRw9S47CJfOKarQTlVHOfd4qSCIo/LcjgMy52HTGYB3e3u6q9zFCqnv5vdZPqYTYjrtw+imBYvfOuMYeDJPo4UvKYhri71V8cELPj4hkrLs74/BCk0Mvou62uZtbmgos+RYNPfQnpd3IStMHWdbYZ5F5rErhEG/yH6ZG00r1qAqxg9PnmQKMvrQQ8pln79iOJOaKcMjCLf4nDJoRc/LlraSo3oYtcynfZQKSD9OViOs3PNjfgTmJ7+QM+6kCWWczOXbczaomg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jmIl1o0cdVmiLP0K82vCc2JgG86RVuNsHuig2NIiKFA=; b=cTLHMOISU3ilnX9Gn0TX/g8AQsIKxok7uhjZpCUHAu97fm9YndmIGmA7GkVQAdkOcLwQKEsHoe/vQ2rMki+URu55PjY8NaBvM8ZlanvV8NNW+uBikkAOW8fj9DA/6V54S9HOEmWHe+42+FN7jCfxrEb85tRuS6wnt89PNZakG3NRClr+q5rQUqrpe0xrNOFhOL7H6JKX2Uwx8H3NxTA9QlJRjL9oN1rSXJZfd0b5lffGWmqOl7V1wBKiOYzSX8ms770pQzogIaOFrf38CiaY5hOxRxQu8VFU0Nz0YFuz5NYkqKNTNP+/cfhR0izssMA5HBC6pV4WKmF6gMp88TZF1Q== Received: from DM6PR10CA0003.namprd10.prod.outlook.com (2603:10b6:5:60::16) by DM6PR12MB4340.namprd12.prod.outlook.com (2603:10b6:5:2a8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Wed, 25 Oct 2023 20:51:52 +0000 Received: from CY4PEPF0000EE30.namprd05.prod.outlook.com (2603:10b6:5:60:cafe::48) by DM6PR10CA0003.outlook.office365.com (2603:10b6:5:60::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19 via Frontend Transport; Wed, 25 Oct 2023 20:51:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CY4PEPF0000EE30.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.15 via Frontend Transport; Wed, 25 Oct 2023 20:51:51 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:40 -0700 Received: from pegasus01.mtr.labs.mlnx (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:38 -0700 From: Alexander Kozyrev To: CC: , , , , , , Subject: [PATCH v4 2/4] net/mlx5/hws: add support for fragmented ptype match Date: Wed, 25 Oct 2023 23:51:16 +0300 Message-ID: <20231025205118.1605321-3-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20231025205118.1605321-1-akozyrev@nvidia.com> References: <20231024175132.1435553-1-akozyrev@nvidia.com> <20231025205118.1605321-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE30:EE_|DM6PR12MB4340:EE_ X-MS-Office365-Filtering-Correlation-Id: b28a5b73-9d84-4c99-36cb-08dbd59c3728 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xiVZR2RnXXQDlXhRZBWJfp6FF2ow6EklPgtgOM/h88Zecy0IKNE8eRHwDnksjmez4b6+am6ILMqXlGc91wApGbrnJtxu1jvsl/AdTROP7kFml3+cw0jKCdlPJdLmjgCKDIFe2KtiD8WtGdPTK1qrw0oeOX3r5r40nr8cdGOxLAnov0T7R2SHlePupw6fnxH0pV0Ur3cIOXnvPUwqpc2UJlLNfrWoejAdU9lXN0l7uJ5V9qIlVZT+nMozRmhisTLrVpIWDm9T4MWcx7IjI+ZTWNs3V4HYwDnC6cSPpj/sU5uiXDLedSXtXUBQVsqWshJULP/HymrpYzeXtJHN8QATLlhz2pFQ50FEteUEjJNcP6kRe+nrMUD6WjrLfCqYcspSe/3HIA4iI7Z2lk5xWbieJ5CMjySENREaFp4W7CYyAFEq/oQdVH8Bu3tP+vgFwNz8p65BzW9HqsnwerzG2j3aTwRNHxLH1HAxa5YhdiAqVro24ut2E7/eh87eognLfgQ6Enx6Fnx1CnlKxXJ88PYdacv1F+lTKUG364kXbWtctOoZESwNZvwAagvHMwzp/SnaMd2bD2g+VHvn2UdcFjet2OcE4i/GfgsZ9b66gLqrOKxCXd2+58sixs/KKOa4XMCBhKlNGOJg1qy+QKTkou5yWxQdcixcNGLig9NUxIbrPOGLozQBk38YwMWxxOkTivf63aU5YveFAk5rFrvmFDisxlCno1Cl5waZmpeAt3buy2ZyqAl0bfQHl4vqFA0axHaDxBt0ubjgs3WZ6wP2HlPbYA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(346002)(376002)(396003)(136003)(39860400002)(230922051799003)(186009)(451199024)(82310400011)(1800799009)(64100799003)(46966006)(40470700004)(36840700001)(40480700001)(40460700003)(83380400001)(8936002)(36860700001)(36756003)(2906002)(26005)(66574015)(8676002)(107886003)(82740400003)(47076005)(426003)(336012)(7636003)(16526019)(1076003)(2616005)(356005)(4326008)(478600001)(316002)(6916009)(5660300002)(6666004)(41300700001)(70206006)(54906003)(86362001)(70586007)(309714004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2023 20:51:51.8803 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b28a5b73-9d84-4c99-36cb-08dbd59c3728 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE30.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4340 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Expand packet type matching with support of the Fragmented IP (Internet Protocol) packet type. Signed-off-by: Alexander Kozyrev Acked-by: Ori Kam --- drivers/net/mlx5/hws/mlx5dr_definer.c | 54 ++++++++++++++++++++++----- drivers/net/mlx5/hws/mlx5dr_definer.h | 2 + 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index 8d846984e7..0e1035c6bd 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -357,6 +357,19 @@ mlx5dr_definer_ptype_tunnel_set(struct mlx5dr_definer_fc *fc, DR_SET(tag, tun_type, fc->byte_off, fc->bit_off, fc->bit_mask); } +static void +mlx5dr_definer_ptype_frag_set(struct mlx5dr_definer_fc *fc, + const void *item_spec, + uint8_t *tag) +{ + bool inner = (fc->fname == MLX5DR_DEFINER_FNAME_PTYPE_FRAG_I); + const struct rte_flow_item_ptype *v = item_spec; + uint32_t packet_type = v->packet_type & + (inner ? RTE_PTYPE_INNER_L4_FRAG : RTE_PTYPE_L4_FRAG); + + DR_SET(tag, !!packet_type, fc->byte_off, fc->bit_off, fc->bit_mask); +} + static void mlx5dr_definer_integrity_set(struct mlx5dr_definer_fc *fc, const void *item_spec, @@ -1840,19 +1853,40 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd, } if (m->packet_type & RTE_PTYPE_L4_MASK) { - fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, false)]; - fc->item_idx = item_idx; - fc->tag_set = &mlx5dr_definer_ptype_l4_set; - fc->tag_mask_set = &mlx5dr_definer_ones_set; - DR_CALC_SET(fc, eth_l2, l4_type, false); + /* + * Fragmented IP (Internet Protocol) packet type. + * Cannot be combined with Layer 4 Types (TCP/UDP). + * The exact value must be specified in the mask. + */ + if (m->packet_type == RTE_PTYPE_L4_FRAG) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_FRAG, false)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_frag_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, ip_fragmented, false); + } else { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, false)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l4_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l4_type, false); + } } if (m->packet_type & RTE_PTYPE_INNER_L4_MASK) { - fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, true)]; - fc->item_idx = item_idx; - fc->tag_set = &mlx5dr_definer_ptype_l4_set; - fc->tag_mask_set = &mlx5dr_definer_ones_set; - DR_CALC_SET(fc, eth_l2, l4_type, true); + if (m->packet_type == RTE_PTYPE_INNER_L4_FRAG) { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_FRAG, true)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_frag_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, ip_fragmented, true); + } else { + fc = &cd->fc[DR_CALC_FNAME(PTYPE_L4, true)]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_ptype_l4_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + DR_CALC_SET(fc, eth_l2, l4_type, true); + } } if (m->packet_type & RTE_PTYPE_TUNNEL_MASK) { diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.h b/drivers/net/mlx5/hws/mlx5dr_definer.h index ea07f55d52..791154a7dc 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.h +++ b/drivers/net/mlx5/hws/mlx5dr_definer.h @@ -148,6 +148,8 @@ enum mlx5dr_definer_fname { MLX5DR_DEFINER_FNAME_PTYPE_L4_O, MLX5DR_DEFINER_FNAME_PTYPE_L4_I, MLX5DR_DEFINER_FNAME_PTYPE_TUNNEL, + MLX5DR_DEFINER_FNAME_PTYPE_FRAG_O, + MLX5DR_DEFINER_FNAME_PTYPE_FRAG_I, MLX5DR_DEFINER_FNAME_MAX, }; From patchwork Wed Oct 25 20:51:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 133319 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 375F6431FE; Wed, 25 Oct 2023 22:52:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B326942D0C; Wed, 25 Oct 2023 22:51:57 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2041.outbound.protection.outlook.com [40.107.243.41]) by mails.dpdk.org (Postfix) with ESMTP id 8B76C427D7 for ; Wed, 25 Oct 2023 22:51:55 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TJyVwhI6KUT0aZSCIOWrqxCZjiKrOpp8qBKBpjWzSai7q59RN3/Ls33eWCXgFmfxvFeCJBOyPJhtQdkZh6RpcRJ/0XuQf404Cz8w33HFjyIWl5GUu8tnRxJ0Gc3kB+XkgxuxDXwjojUAFRymHf09usfJzSnaqPtt2tc3YEvMLj7OBFbgbCwMN+Y4PfDHLmdEQHXknJoAo6EPGXGbAn23J82amW32oGPbkUOvF8wWUR5ffDOcUTx4pPdphd/+u7uVDhGPDFlyxU5+XCHHghRc3yJWhpkFyEaK2u1WEC1Oa0/LL1Yy22ltdH5IgNS1XLgkaGhgqMn0vTh5zKO66ZzqhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=O8TS19FG+xNIdh17zLJhKW53LhjpJY3+bvkrsFiZL3M=; b=P4RKLxyHKBkHve3hvcT/aJHqN2MMEjqLIR5f8CdjUO0l/8r6MravU9IPk2HjH9hg0DVsVDqiZ7GpvfcJ9SYvyduXZ/ZgfzYRSfqthQd2A7leaRb1pChF/IeIh1fv29qCswIzguYM5dUDw3ADkrTQpzNVHw7p289QQvl6wfPJvofZQVXxvDRRL84N25+cDmtR9FTLy4grYD/19EH4o736cq1UUcc9zBu3Rj4Clhvd81WEH/vVT44B7gC1JcKV2T9Z3YnNsuP219ToSpHxc5w/Gmx1s9ZVMb/AXtjqfcayyHwNwBOQKD5MsTWLgXKN9LBgi9EqwihG4mUzr3ZquE1aPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O8TS19FG+xNIdh17zLJhKW53LhjpJY3+bvkrsFiZL3M=; b=fIi9jV8mWoHG/yzCr7ZYi9EWKmNMOtmjSWFdS62THQfaBZGgioyVhHyzK1f5tvYaSnp6yiZG9fUKpQ6g0SPglmmelUxbm3SMy0idkT683Ocq4hutKXSZk7jBRj53p7DR22mbhwnYzMF8GBeHQ+b39oj1YuMO61OD2DbwXR9sRHx08A3GeiIy7gCV2suJdnQYq66tQt9W1f+zpuwolPxyRlE65p+o6B5DUFOcOrSBRXXfqb5arTI+vpTJrGSo1DDjzGY8nN+3kPoxNEoSUPu0iX3AZkjC63mgxoWiKQ22GXpvUMtMdADAyM7sSxIoRztYb1Ezuxeb6MtV6Xpy6trj8w== Received: from DM6PR07CA0099.namprd07.prod.outlook.com (2603:10b6:5:337::32) by CH2PR12MB4296.namprd12.prod.outlook.com (2603:10b6:610:af::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19; Wed, 25 Oct 2023 20:51:53 +0000 Received: from CY4PEPF0000EE32.namprd05.prod.outlook.com (2603:10b6:5:337:cafe::97) by DM6PR07CA0099.outlook.office365.com (2603:10b6:5:337::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.34 via Frontend Transport; Wed, 25 Oct 2023 20:51:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CY4PEPF0000EE32.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.15 via Frontend Transport; Wed, 25 Oct 2023 20:51:53 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:43 -0700 Received: from pegasus01.mtr.labs.mlnx (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:40 -0700 From: Alexander Kozyrev To: CC: , , , , , , Subject: [PATCH v4 3/4] doc: add PMD ptype item limitations Date: Wed, 25 Oct 2023 23:51:17 +0300 Message-ID: <20231025205118.1605321-4-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20231025205118.1605321-1-akozyrev@nvidia.com> References: <20231024175132.1435553-1-akozyrev@nvidia.com> <20231025205118.1605321-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE32:EE_|CH2PR12MB4296:EE_ X-MS-Office365-Filtering-Correlation-Id: a7133d76-2bca-4ce7-2e16-08dbd59c381e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9tnHg9JlFZ8oj3M27i4QNe2VfMFDMRRnmQx3JzbFr6dyCJ4OthN8dShN4s/KmG/7gs3fhy8qTLMqJVn6mhk17FII9reTTMaw7umOID10cliggKEU8teNtigrA7xMpv68BfeGKLAOZN/i7H9sLsiuu78V6lXN6HYCgXfjm15Ld6akOZhXpr+KOfx9yqZf1ztSpA+gHIQa4506OW1vN6hBeqw1UuWXIRTx2+GIbrs4khHS2p2ucEHvI6onWQxy7FztXFc6K0heYvTwSwfcty1xXOFbcawtJzz6w9Qp5VQCl5LlXqCAOhFz/u0pGW9woaLOAswU0ro2XB3vYcMPJd9ON3nOJUgdQWykbzriuTtEDRlMiDFN09b91mU8+8f+V6Z7QS2aO4z5EJrBR7D3yk7fMdZpyIjOO4f0N1+Kq5d3xdM5OgIM4DXM2jP/xQEDDrCw7excRXvicYsxLt5GZXIl2tKer4pdoAZFPrvz6tU1FcC+4Fb3hrzvLR/biG/2B1m4EkARY1siuKNym8kTw60Lp+Njuu4NAy96VurzPBlBLExfih8as7toFFsT+8xL3snhE5eUApvTYs+1rr66Q5Nc7WYq+HxL0L6b11JADkmZs+t5LT+SKfpNd8x/6mRNyZWHKUo2J9iTv8Yxwz3wnKf2EmcR18NOqFyV29LWDjRu91sYoFE66cP1Q+o9QLLdO53c4+ZG/NSCLU6290K7qti3E2lJF3QJ8ZHETpcwUCRLcRGezNCiKVKDTAoVzNer6K9L X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(39860400002)(136003)(376002)(346002)(396003)(230922051799003)(186009)(1800799009)(82310400011)(451199024)(64100799003)(46966006)(40470700004)(36840700001)(40460700003)(40480700001)(16526019)(6666004)(478600001)(107886003)(2616005)(70586007)(70206006)(1076003)(36756003)(54906003)(6916009)(316002)(86362001)(36860700001)(426003)(336012)(47076005)(82740400003)(26005)(7636003)(356005)(83380400001)(41300700001)(8936002)(8676002)(4326008)(5660300002)(2906002)(21314003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2023 20:51:53.5079 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7133d76-2bca-4ce7-2e16-08dbd59c381e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE32.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4296 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Michael Baum Add limitations for ptype item support in "mlx5.rst" file. Signed-off-by: Michael Baum Acked-by: Ori Kam --- doc/guides/nics/features/mlx5.ini | 1 + doc/guides/nics/mlx5.rst | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini index fc67415c6c..e3927ab4df 100644 --- a/doc/guides/nics/features/mlx5.ini +++ b/doc/guides/nics/features/mlx5.ini @@ -86,6 +86,7 @@ nsh = Y nvgre = Y port_id = Y port_representor = Y +ptype = Y quota = Y tag = Y tcp = Y diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 7086f3d1d4..c9e74948cc 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -646,6 +646,21 @@ Limitations - When using HWS flow engine (``dv_flow_en`` = 2), only meter mark action is supported. +- Ptype: + + - Only supports HW steering (``dv_flow_en=2``). + - The supported values are: + L2: ``RTE_PTYPE_L2_ETHER``, ``RTE_PTYPE_L2_ETHER_VLAN``, ``RTE_PTYPE_L2_ETHER_QINQ`` + L3: ``RTE_PTYPE_L3_IPV4``, ``RTE_PTYPE_L3_IPV6`` + L4: ``RTE_PTYPE_L4_TCP``, ``RTE_PTYPE_L4_UDP``, ``RTE_PTYPE_L4_ICMP`` + and their ``RTE_PTYPE_INNER_XXX`` counterparts as well as ``RTE_PTYPE_TUNNEL_ESP``. + Any other values are not supported. Using them as a value will cause unexpected behavior. + - Matching on both outer and inner IP fragmented is supported using ``RTE_PTYPE_L4_FRAG`` and + ``RTE_PTYPE_INNER_L4_FRAG`` values. They are not part of L4 types, so they should be provided + explicitly as a mask value during pattern template creation. Providing ``RTE_PTYPE_L4_MASK`` + during pattern template creation and ``RTE_PTYPE_L4_FRAG`` during flow rule creation + will cause unexpected behavior. + - Integrity: - Integrity offload is enabled starting from **ConnectX-6 Dx**. From patchwork Wed Oct 25 20:51:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 133320 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 87770431FE; Wed, 25 Oct 2023 22:52:19 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4997542DB6; Wed, 25 Oct 2023 22:52:03 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2070.outbound.protection.outlook.com [40.107.223.70]) by mails.dpdk.org (Postfix) with ESMTP id 8265A42DE1 for ; Wed, 25 Oct 2023 22:52:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UPs611mpJK+G957/Aw5TBK03QwfDriFQGgexq2lc6uL6MzsaLdTc/eAaYJnrci5E3HKeG3/Yr/yVHHhB8XIyPuXvP8z5mSgL4Za90UPkawvlLo2JO3jP1JD/IHGQZBtEgbLpenuw3Hu7FHlYFk0MG0S559DAKzo788LsekfQE4Fkw9c6447YrgLc4S+opp82j/sJHvHvvtSeWHJTGuiZcRhrLYR4GCZxNXV7guAzRNDny3aAb4jYkecCFsWyZIf96fOsmSdCwgka14MNjbX9P74SiHcHl6m7gw+82SbbVe6DPgqu609Ns3VBOC+BRt9US8GIF7c9a899MDfrn5KXiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MyR9WMZiJIKzV04GwtZrPjxtkBDG3oNmhSqH4y4Hbso=; b=fVGixTNLSusE1ylPPLGwByjNgExfFqP6xno7tLaCf8q/Dka4GM59z8tUM1zVHB0Jm+ibGLMeWO5B500TxCmgJ8SRZFmOUCXpOAOyJG/vQ18d20T7f7WY2w2ImGqZr7LJPaVHy3CyklDMawAzg3Mf5nHXRFmZs9RLTK6QaxClqWXgVQ5ys07GlwmpAUsrrLTsnl4SjEX/vbmlXxLn0v2jkVQeFWYFcnAtKGm9G6CsF8GDfcjs8lTRrKla2E00P58Ix46Xt0Dp8OEbIDi3mRoUXI5dGY7fJ1InkNeZfyAZ9rHG/+BecLAkVqHkN4ylrySjNCjJjq0NOcLkBHhGigy9dQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MyR9WMZiJIKzV04GwtZrPjxtkBDG3oNmhSqH4y4Hbso=; b=Hqkg4BLYgGT3dcHeWIwUMvd1HxTl2MqcHc2Tv3fDtqk8UwUqa7Okbb7ccylUXD6LSN4k0oF0W6cPzwqwdNxZzMbiFqL+v4NkVR/JhGEm05yfFH5WBP6RH0i23GYAF/yrSxj9aZmaeS89iBOYKVa6rqTCi4jjF+AAQ5N+Wk+vDRbLOWqyIXDpkem8pwVpTc7UwibG6TeDx+rLwoXWowsDuG3DWgw5lSXz9WZuc4atfbI5kgnfg4kwgiThM8GAB6r4Ve3us3IO9ui9eemNOEsIeyRr0zVOrj4HnKYbVqksY2bNwtdufROsTYVk9jin/xph+ayopc0To7qvxJdvraia9Q== Received: from MW4PR03CA0182.namprd03.prod.outlook.com (2603:10b6:303:b8::7) by CH3PR12MB9196.namprd12.prod.outlook.com (2603:10b6:610:197::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Wed, 25 Oct 2023 20:51:59 +0000 Received: from CO1PEPF000044F8.namprd21.prod.outlook.com (2603:10b6:303:b8:cafe::27) by MW4PR03CA0182.outlook.office365.com (2603:10b6:303:b8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33 via Frontend Transport; Wed, 25 Oct 2023 20:51:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CO1PEPF000044F8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.0 via Frontend Transport; Wed, 25 Oct 2023 20:51:59 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:46 -0700 Received: from pegasus01.mtr.labs.mlnx (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 25 Oct 2023 13:51:43 -0700 From: Alexander Kozyrev To: CC: , , , , , , Subject: [PATCH v4 4/4] doc: add packet type matching item to release notes Date: Wed, 25 Oct 2023 23:51:18 +0300 Message-ID: <20231025205118.1605321-5-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20231025205118.1605321-1-akozyrev@nvidia.com> References: <20231024175132.1435553-1-akozyrev@nvidia.com> <20231025205118.1605321-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F8:EE_|CH3PR12MB9196:EE_ X-MS-Office365-Filtering-Correlation-Id: a29bd083-fc1f-4cc5-8e85-08dbd59c3b87 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QP6BC4Hn2YLrpsfmw/IKAvUl68Iv2mUNKoNOw8KleW2HnI3sHi6uPZFzN0nyD0gyheCdaOZtLKhCpWOlHrxHzoypdTZtdqDAEcpFQ61n2JonwoGqyEBwWUIFJVnEwy4GyCpck385PKWOTm04EgkW/Jc9y7ighIma+JaHeQ6RrQ7LMzilL7aDv/qU0r+1U1KvLvOGiBkWqPrAaaOFOLI/IOrszTxuliduRBJKQGWqyxlyRFa1Isk8DfKJxGAzTrLMSlu9aNsA8UYQA53Zt+0PgBkxfAvw6gpLTOMs9D8ahPqbe6tM/UUabyEj/QbLwDWXyNVCOU+Iy5AOKyAdoI+p2wfOzfrOL6emYr/478h33xWrVQf8Q/WvYvzw/WoRU7AL/OYxWU5/3sqzfqKGUPYqmXRBiO46NDr/EC5J4lbe0iN6SaJIeKyq1e0HKEzIBJA3nYasFDJdK+XusIZ5ecSa7bj35pw9eNckXoLrxK/X6iJUsj6tlmfcgfRscgBplzxEr6qSTgEGm+2D5+f7ABxgwyNaDB7f+A93bYCzEwT9RQq4czJ33h19FAuEHlr+YmCsdwlVfSk62F1nMiUcyqO9uHeMDbi/K2mm2EE0U+FGplRnIkOTyl+InnU2xYoBfv3E1okgyyEPCpycqZAEGh7cZqGvcLjQC4O35LaQjFnADsgbL636CIKB+LLwq5sxSjSVsLOjJ3ZIaryOJMTdow3HLBiZd8uIg3H+L/3ogKKnRIo= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(136003)(346002)(39860400002)(376002)(396003)(230922051799003)(451199024)(186009)(64100799003)(82310400011)(1800799009)(46966006)(40470700004)(36840700001)(8936002)(4326008)(86362001)(70586007)(8676002)(316002)(54906003)(6916009)(70206006)(82740400003)(41300700001)(5660300002)(478600001)(47076005)(40460700003)(40480700001)(2906002)(6666004)(356005)(16526019)(83380400001)(426003)(36756003)(26005)(336012)(7636003)(1076003)(2616005)(107886003)(36860700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2023 20:51:59.2004 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a29bd083-fc1f-4cc5-8e85-08dbd59c3b87 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F8.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9196 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Document new RTE_FLOW_ITEM_TYPE_PTYPE in the release notes. Signed-off-by: Alexander Kozyrev Acked-by: Ori Kam --- doc/guides/rel_notes/release_23_11.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 0a6fc76a9d..b94328b8a7 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -122,6 +122,10 @@ New Features a group's miss actions, which are the actions to be performed on packets that didn't match any of the flow rules in the group. +* **Added ptype matching criteria.** + Added ``RTE_FLOW_ITEM_TYPE_PTYPE`` to allow matching on L2/L3/L4 + and tunnel information as defined in mbuf packet type. + * **Updated Intel cpfl driver.** * Added support for port representor. @@ -143,6 +147,7 @@ New Features * **Updated NVIDIA mlx5 net driver.** * Added support for Network Service Header (NSH) flow matching. + * Added support for ``RTE_FLOW_ITEM_TYPE_PTYPE`` flow item. * **Updated Solarflare net driver.**