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 52B1F4548B; Tue, 18 Jun 2024 11:52:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EB80840DD5; Tue, 18 Jun 2024 11:52:31 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2074.outbound.protection.outlook.com [40.107.93.74]) by mails.dpdk.org (Postfix) with ESMTP id BC6D740684 for ; Tue, 18 Jun 2024 11:52:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ma97J7zDm3RmmKQbpcqKkk7aZwHM1aJjxAHAA5XSxfs1F8fFdITgylI7kRZbtnxoYA0nZBbfMJ31/nX6Y4vPIa+qJEvF0oBqktW7UqIzRzJ9EvA3Tgzos4lXGx9jPgfEgbwnvzK8/C67Nvp8gJXDMody2mu+SgFf3+Fh9Bg9+rfzNdX5jFSGemrz+510Lkansu1fmNxP9j7rQ5jAVEWtzNsKuPKHfStVgi/kjfnZfdGrYRd/a4Hj8bapn4CsiAtkARJumRxmu6Cyfb6jq/XhSHIJWWTw9mUUinveoMJZVJdp8/EhUvjhOOyXdA2Q/PzPaPoYmLJ/QgXxKFo56CBa9w== 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=BV24yJ+Rx1wjrWyRf+NuZti6fsUxbuNK0P7Qx3FQzt4=; b=Qn74asBmB7VnINUYKjSn83C8Rd+qccbHp7QxRrG5bJKsCEgygnJCUf2bppy/3zB7kulEK47fU41w2QQAo9v3CFzOzNVUbonZ60cSW1CSPrVODOJBV0tEQzpXtmZ9h5xuIeGhiOvZ3v0aCmBPcuSFl1AKovwE8vW6mBCVz/ZSS4TpTIHmrXH+4DZR0E/RBTXw4pFVt9470QMLhjQXS9j/vsyPa61IU4tmSfPuHESzF9Wu6krkbXyLulzMR3dyFhu/yQGTDoHEa8/Rsnbk3WOt24L5K6gfcyEVxwx0wrcf4KigLpx2E/1nleQKKK/A70Bsm7kHjLPbkRYVgjS4CEap2Q== 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=BV24yJ+Rx1wjrWyRf+NuZti6fsUxbuNK0P7Qx3FQzt4=; b=Mb3YwKMPzlwPkjI/MxrMea2X74hmBLGn11ccN7hMqUSmidvEPET+ag5GaJtV/fKozdc0LddDq18QakYSYRm5WLvZPrX+x6yhY9giWXM8J/oTT9PwV19u9W/kyK5v6HKrXy3gGkt+6f2mEezGh/nO3YfNjmBtn3vp+xKKkxZsHMi8ftJw6tMjdxfugBc+q0qee331E3u/E/YS/POJiinGh2Ni/PxWuAwmEBXXHOYbRKfoHKdVK0IV4po3l7gpPg3AUPVhN4qqDrTXqnMdb9uix4WFn7G5ujxi1cnudjJ4Se67bVw3BkEV2T+Tdn/uT2L3Hu7V7hUBNhX0qLsd9gaBOg== Received: from SJ0PR03CA0197.namprd03.prod.outlook.com (2603:10b6:a03:2ef::22) 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.7611.20; Tue, 18 Jun 2024 09:52:26 +0000 Received: from MWH0EPF000989E9.namprd02.prod.outlook.com (2603:10b6:a03:2ef:cafe::d7) by SJ0PR03CA0197.outlook.office365.com (2603:10b6:a03:2ef::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31 via Frontend Transport; Tue, 18 Jun 2024 09:52:25 +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 MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.15 via Frontend Transport; Tue, 18 Jun 2024 09:52:25 +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.1544.4; Tue, 18 Jun 2024 02:52:00 -0700 Received: from nvidia.com (10.126.230.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.1544.4; Tue, 18 Jun 2024 02:51:55 -0700 From: Gregory Etelson To: CC: , , , , , , , , , , , Subject: [PATCH v3] net: add bit fields to IPv6 header definition Date: Tue, 18 Jun 2024 12:51:40 +0300 Message-ID: <20240618095141.290673-1-getelson@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240618051751.220610-1-getelson@nvidia.com> References: <20240618051751.220610-1-getelson@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|MW4PR12MB7118:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b2a1d44-e8d8-4bc1-02b3-08dc8f7c5bb6 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; ARA:13230037|36860700010|376011|7416011|1800799021|82310400023; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ddg5jPcBJ4r5bMf+wIjdNWZW345AjRI6a9sfCuvZXwz32/dXlRtQhbZzks6E?= =?us-ascii?Q?/NNqK+n+99I1yw99sSPOPJ7iwGb+zIplG1qLkUVUXdwmK8ciE5ANIiBK8itf?= =?us-ascii?Q?eGXCjtHK7FYw84ZM0wKYRyWfvNn6sCLVfLFWF1BaMFDj8XCvIlUE5wyuEkhr?= =?us-ascii?Q?DxBVVR9LN/RvKBEHh5plfn5yrE/3ke3ngkWaThH6r96sS0Yrg0OWGCEi06g5?= =?us-ascii?Q?kpGMuh21wRBQF++WO+TGuFzlM/iOutf0MQWWGDD8aoKMHvNV5ev94vG83+k9?= =?us-ascii?Q?hooPDQLyOub1bfN4SXDhEUIcT0C7l7dSyyNrCaTr5XsMKh8vt/hePsYMyS8A?= =?us-ascii?Q?AcUl68IR0klE1b2UlJtHsHdRFImEDfwfYl5n5hW6i/Wz9S43mO3WIGlc8SEb?= =?us-ascii?Q?rv6yqCiHErnZh6pUlUzHLgPlEMNNsr7hNOTfE7mXP4iFxESQIv1Rxpqpeiee?= =?us-ascii?Q?RQtmvn+MHIQ/J90DJZ9p0hOP0Xs6wjwuRq3A6DB8vnUy8Jd+aEZ2NnCkJChQ?= =?us-ascii?Q?yamn1KX6E0xp+eTsG0ka0DTL5JDeu7eCHmiDR3lYBCkgqCy8XHKH0suva7mS?= =?us-ascii?Q?LfOgxQ0GyalUIQFN/zdRugODoec4oyLzQJNMNlDkfNXPeiGdrRKfvt2Hv/k5?= =?us-ascii?Q?uKSW1NB5krxShbkySPLp5yRD00qAuvBk8UPSCDgdCv5Ipi4oiPjfIdcm6upx?= =?us-ascii?Q?dtzxzHJPU2qd/tfDsLxjy6hdhjGYlcvoGcpo/3ZLuQyDWzpOjRPny6lj+bkv?= =?us-ascii?Q?9rsAblnE7En7XSwBJMvU4DTpJRyTkquBZPGsdQe0sfxOiW46H9Oa0SpvRniZ?= =?us-ascii?Q?XLk2ZqSxXj+Wep+2I21dPOiVL6ApUWUGtVsXQQ2kT1mIlSVicIPNEwCbIBDR?= =?us-ascii?Q?oUwo9MYEtDjqd1r0mLNQqn8MCu5z2ThQK/aBB+N6LSmXT8w9dAiTQW9ZyUq+?= =?us-ascii?Q?2lmW8R/olkq3UxguPKhyduharW0esIytkswfyvWf/PYRv8Lvl/OApVq79jTs?= =?us-ascii?Q?K2sxKQHDGfvqZUb12IgpQwiQGPVIYXlLdIcvD19qaUWDg1Qs7dmS7sXyFNWw?= =?us-ascii?Q?EXxzJvBfVQNBBCP865m00NtMeV9JF8Q4W/HH5lntPRBV9TytQrrLYtHYvJGn?= =?us-ascii?Q?BIJhRoq5cR4a7umlKrFYJ2q2jLqifI6zP0AUlwPNBE/+DbUEuvPfaZf9S8yi?= =?us-ascii?Q?QGpdbz7mB+zSFacA81feETA2EIKbqBtqN4UIpLpqf1w/Lr7NhTwu/Ge4k0b0?= =?us-ascii?Q?IRySTJm9gQ1WBfMBjnmZjMBzJj0jOJ5XdXdy3iAm+XkxYhrEaZB/7QaYENqX?= =?us-ascii?Q?rQbh3jUohQEVveGEWRD5jafYx90x9p7n9dBkCAJY3hGmfGQhMZBPL4J0tXAl?= =?us-ascii?Q?dq6RKTW6+9YgVRy9sEWlRPhVw2oVccFMxe/QjKx89/xfCLQSOw=3D=3D?= 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:(13230037)(36860700010)(376011)(7416011)(1800799021)(82310400023); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2024 09:52:25.5733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b2a1d44-e8d8-4bc1-02b3-08dc8f7c5bb6 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: MWH0EPF000989E9.namprd02.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 DPDK IPv6 header definition combined the `version`, `traffic class` and `flow label` header fields into a single 32 bits structure member `vtc_flow`. The patch expands IPv6 header definition with dedicated structure members for the `version`, `traffic class` and `flow label` fields. The `traffic class` is also separated into DS and ECN fields. The patch also preserves existing `vtc_flow` structure member for backward compatibility. Signed-off-by: Gregory Etelson --- v2: Replace uint32_t with rte_be32_t. Split traffic_class into DS and ECN bits. v3: Define both traffic_class and DS + ECN fields. --- lib/net/rte_ip.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h index 0d103d4127..3adfcbc431 100644 --- a/lib/net/rte_ip.h +++ b/lib/net/rte_ip.h @@ -524,7 +524,33 @@ rte_ipv4_udptcp_cksum_mbuf_verify(const struct rte_mbuf *m, * IPv6 Header */ struct rte_ipv6_hdr { - rte_be32_t vtc_flow; /**< IP version, traffic class & flow label. */ + union { + rte_be32_t vtc_flow; /**< IP version, traffic class & flow label. */ + __extension__ + struct { +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN + rte_be32_t flow_label:20; /**< flow label */ + union { + rte_be32_t tc:8; + struct { + rte_be32_t ecn:2; /**< ECN */ + rte_be32_t ds:6; /**< differentiated services */ + }; + }; + rte_be32_t version:4; /**< version */ +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN + rte_be32_t version:4; /**< version */ + union { + rte_be32_t tc:8; + struct { + rte_be32_t ds:6; /**< differentiated services */ + rte_be32_t ecn:2; /**< ECN */ + }; + }; + rte_be32_t flow_label:20; /**< flow label */ +#endif + }; + }; rte_be16_t payload_len; /**< IP payload size, including ext. headers */ uint8_t proto; /**< Protocol, next header. */ uint8_t hop_limits; /**< Hop limits. */ -- 2.43.0