From patchwork Mon Aug 28 18:22:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 130787 X-Patchwork-Delegate: thomas@monjalon.net 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 3694E41B2B; Mon, 28 Aug 2023 20:23:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 491C64025E; Mon, 28 Aug 2023 20:23:32 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2078.outbound.protection.outlook.com [40.107.101.78]) by mails.dpdk.org (Postfix) with ESMTP id 2252B4021E for ; Mon, 28 Aug 2023 20:23:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SBwVWeas882SYB9ZFTy8f9QOM1vuUP3+QTL/bRFiQxmUBq3QR/k249oiGenfhrUfEezdZQuwfeUA3dk7wC4F9PIIbmtQ+xY9O+BHm7K6MSvUA4+Xaubn1DLla/ROjG4JioJZViJ4Dv/BYN7x+/5Ms9lrYcd/ipjVSqQU+46J9MltqPa5aGb8hma96yIxHTnFbfofLWY5tJexAz07O0jh/NLsNZKEsPp8ibqY0WHL3XYb7Q5pc4VRFbEpLaReOo+JpF+llLpa4CtBvsDbbNR6KG1vCQfljOEVX4pdSXH2xDTgLE/FAafRWrFzwsLOhDUeVe3RiowR/rLtsBlnMXK+/w== 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=FjQ4npi0PY56ZNtqw4oqepXhRjhQ59tUrwG2f7M0ZrM=; b=gIFL0R2AorlLf5QmJ+VET9tDXlqPWY4Bz1YCpWJ6TswzAJ+aWI4Hg+vsowU4qM0ge6mqjiguO8I/cXal8FqVz8scDoaloKlTg+nhzj95gMbsYQ/v2eiIM8JAXIvP2ul7eN9hVU3AgeZTNea7Io+Lt9+1hQ4tAEJ9vZZuhH0gzrXzUsPBz1pileckqTs+nKWkKoHPcccdgnU40zAl9AKAUBhjzTMSushey1NYhtJvmpiXZDjsg6uW/X4YQClfvfon0xuIP5xGE40qhmfWCJar5LHBA73bjwKAI7mX0F7UQ6bX67LJ+JCAZOVXGtOJEjnntr9kbzll8g88x6H/5OIOAg== 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 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=FjQ4npi0PY56ZNtqw4oqepXhRjhQ59tUrwG2f7M0ZrM=; b=a/yxChIBy8zddQ4j+zr3BS/inaPhwjgVYi5IZ1qvweJMfDBDGCxn1Y6SoMCfiQxlNo9G/wvTxkHAKtakOg9hTp7oRwlvcKmTmikhkxZIDpyPv5B/dFMkVPvxex4ct2eejLocykorVU83ZuBIvODEaarIyZswhthphr4gZV2RjBLfNKdFIDOrHPvYhkCQpMhBkXyEtg1ziA+lPi4ovp5dnmnfjUbsmLPJN+m+vWzjUOMNlnjQ9mMrPi0pRa1GNH6R4LCvGUzvZruCgw4rAewWJVUWkxRwantNIJV7KRPGtRYe0VuiCwAxGp64x0Ltns8XoM2/YAjSUBMMFjU7Yt2jEg== Received: from MW4PR04CA0073.namprd04.prod.outlook.com (2603:10b6:303:6b::18) by MW4PR12MB7118.namprd12.prod.outlook.com (2603:10b6:303:213::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.29; Mon, 28 Aug 2023 18:23:29 +0000 Received: from CO1PEPF000044EE.namprd05.prod.outlook.com (2603:10b6:303:6b:cafe::f2) by MW4PR04CA0073.outlook.office365.com (2603:10b6:303:6b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.35 via Frontend Transport; Mon, 28 Aug 2023 18:23:29 +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 CO1PEPF000044EE.mail.protection.outlook.com (10.167.241.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 18:23:28 +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.5; Mon, 28 Aug 2023 11:23:15 -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.37; Mon, 28 Aug 2023 11:23:13 -0700 From: Alexander Kozyrev To: CC: , , , , Subject: [PATCH v3] mbuf: add ESP packet type Date: Mon, 28 Aug 2023 21:22:51 +0300 Message-ID: <20230828182251.3917624-1-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230825233406.3647006-1-akozyrev@nvidia.com> References: <20230825233406.3647006-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044EE:EE_|MW4PR12MB7118:EE_ X-MS-Office365-Filtering-Correlation-Id: d3687fa5-ef7e-43db-ecfa-08dba7f3e0a0 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PqfRba3S65I7xn5v7CT2IdBmL46EdVicfVO+pUevDM19aOaLNEo9+Q2TjwpV4wyZAPGzt5A3pc06tr8peG06QLtS2fGkhYQFBzXk1S1Qco7BbzKPonVploHJfNMUN6QOF+mlC1gWabg6vXD+DQS50EfPOFQWHeLjufW9EVFYfOvrkOOwrBzYS8ypPeBcggkdH+VoqbsuAG7HPx7W1g0OGNl/g0E7/wFBcgVWlyBr21x2QTmwH50bnxr0o/qf19Sc19muyiwRnXOUBS5DTRwm87NmHtzsUQDoGjedHltFeQzxVOwz8Uy9N9M/L2R96hxHW9m8U1imOeDRyRsvNbda/KfzT5iBRXLcn74A6GUBKh98jEbQhgpuiX36KL6bl+M2KPYRNkxL5k8tRnEryVXLtN6pUKkq8F0AZ8RejG283ivfHejWIAv4GiTkK2yMYRyCvuxHf52eM/21JU6OzyzS/DBXTR7IaaJcFuEJvHV0vBBuycavl5OyM3mW10dxkcPz1EoNE/I37B0mkq9AoGkmIHo7g5N8RjVlD6AtTN9ohS83qAbscpUc3z1zd60AShgOAZLUcjjgOuK7cxckuS/9lepXlEqU4fl4NvFoS2ffZ4fwrZgC7TgP0kglxBrC7WIqUB7IBeczYUzANkekL/UjKLZ8qFJuEjadqhaesfpwzq+5ZvnyxMb0RfKT8y0J/W/kvxCscFbiHQPjkv/FJqxEqPRvx7K4upJz3TR5shECSQ8TbQhAO8rnonmeOzRlMfxW 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)(136003)(376002)(346002)(39860400002)(396003)(451199024)(1800799009)(186009)(82310400011)(36840700001)(40470700004)(46966006)(82740400003)(6666004)(40460700003)(36756003)(86362001)(356005)(7636003)(40480700001)(36860700001)(47076005)(2616005)(1076003)(2906002)(426003)(336012)(26005)(16526019)(83380400001)(478600001)(41300700001)(70586007)(70206006)(4326008)(8676002)(8936002)(66574015)(5660300002)(54906003)(6916009)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 18:23:28.9653 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d3687fa5-ef7e-43db-ecfa-08dba7f3e0a0 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: CO1PEPF000044EE.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7118 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 Support the IP Encapsulating Security Payload (ESP) in transport mode. Signed-off-by: Alexander Kozyrev Acked-by: Morten Brørup Acked-by: Ori Kam --- lib/mbuf/rte_mbuf_ptype.h | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/lib/mbuf/rte_mbuf_ptype.h b/lib/mbuf/rte_mbuf_ptype.h index 17a2dd3576..cdd6fd460e 100644 --- a/lib/mbuf/rte_mbuf_ptype.h +++ b/lib/mbuf/rte_mbuf_ptype.h @@ -247,7 +247,7 @@ extern "C" { * It refers to those packets of any IP types, which can be recognized as * fragmented. A fragmented packet cannot be recognized as any other L4 types * (RTE_PTYPE_L4_TCP, RTE_PTYPE_L4_UDP, RTE_PTYPE_L4_SCTP, RTE_PTYPE_L4_ICMP, - * RTE_PTYPE_L4_NONFRAG). + * RTE_PTYPE_L4_NONFRAG, RTE_PTYPE_L4_IGMP, RTE_PTYPE_L4_ESP). * * Packet format: * <'ether type'=0x0800 @@ -290,14 +290,15 @@ extern "C" { * * It refers to those packets of any IP types, while cannot be recognized as * any of above L4 types (RTE_PTYPE_L4_TCP, RTE_PTYPE_L4_UDP, - * RTE_PTYPE_L4_FRAG, RTE_PTYPE_L4_SCTP, RTE_PTYPE_L4_ICMP). + * RTE_PTYPE_L4_FRAG (for IPv6), RTE_PTYPE_L4_SCTP, RTE_PTYPE_L4_ICMP, + * RTE_PTYPE_L4_IGMP (for IPv4), RTE_PTYPE_L4_ESP). * * Packet format: * <'ether type'=0x0800 - * | 'version'=4, 'protocol'!=[6|17|132|1], 'MF'=0, 'frag_offset'=0> + * | 'version'=4, 'protocol'!=[1|2|6|17|50|132], 'MF'=0, 'frag_offset'=0> * or, * <'ether type'=0x86DD - * | 'version'=6, 'next header'!=[6|17|44|132|1]> + * | 'version'=6, 'next header'!=[1|6|17|44|50|132]> */ #define RTE_PTYPE_L4_NONFRAG 0x00000600 /** @@ -308,6 +309,17 @@ extern "C" { * | 'version'=4, 'protocol'=2, 'MF'=0, 'frag_offset'=0> */ #define RTE_PTYPE_L4_IGMP 0x00000700 +/** + * ESP (IP Encapsulating Security Payload) transport packet type. + * + * Packet format: + * <'ether type'=0x0800 + * | 'version'=4, 'protocol'=50, 'MF'=0, 'frag_offset'=0> + * or, + * <'ether type'=0x86DD + * | 'version'=6, 'next header'=50> + */ +#define RTE_PTYPE_L4_ESP 0x00000800 /** * Mask of layer 4 packet types. * It is used for outer packet for tunneling cases. @@ -652,12 +664,24 @@ extern "C" { * * Packet format (inner only): * <'ether type'=0x0800 - * | 'version'=4, 'protocol'!=[6|17|132|1], 'MF'=0, 'frag_offset'=0> + * | 'version'=4, 'protocol'!=[1|6|17|50|132], 'MF'=0, 'frag_offset'=0> * or, * <'ether type'=0x86DD - * | 'version'=6, 'next header'!=[6|17|44|132|1]> + * | 'version'=6, 'next header'!=[1|6|17|44|50|132]> */ #define RTE_PTYPE_INNER_L4_NONFRAG 0x06000000 +/** + * ESP (IP Encapsulating Security Payload) transport packet type. + * It is used for inner packet only. + * + * Packet format (inner only): + * <'ether type'=0x0800 + * | 'version'=4, 'protocol'=50, 'MF'=0, 'frag_offset'=0> + * or, + * <'ether type'=0x86DD + * | 'version'=6, 'next header'=50> + */ +#define RTE_PTYPE_INNER_L4_ESP 0x08000000 /** * Mask of inner layer 4 packet types. */