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 5E96245489; Tue, 18 Jun 2024 09:58:57 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6F0F64042F; Tue, 18 Jun 2024 09:58:57 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2087.outbound.protection.outlook.com [40.107.243.87]) by mails.dpdk.org (Postfix) with ESMTP id AA4EA402B0 for ; Tue, 18 Jun 2024 09:58:45 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JUVm8kXn+MXV7SuaRdi6vPw6wVeHP7mHG5APbbaKyadVp+DcfMAjtod9pF53corREL7ky+Fg/BJQUyWXrb117+gdhMRvKHY+DdmBhkctL7WumRtHSoFJw1vHT4aQbO0jLpq6xfFmeISm4+RpuqIOfhXUgyVZeqbG37WQCeqOmR3eekMp3vSNgg7WbipcmsP9uUQA4qOqrFHiP+LSqzCZ7+kzGn4NwlZTPBQsa8CcCvOGPYncSUKl0mRb8ZsoaI//Ay7K9ijC5x7ZMJTk26PlOa9VyN49vzEpW8s4YGaGRPFFbVHeYgcAoTgEWtAcafMBUPr4GY8MwaCGASYetLkwlQ== 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=gcuR+o+PoLYg4de87cfrshMOpS01P7Sg8+L4lGTr5fI=; b=g2ul2TTCzyo8BAXMneBKg4JrSgrVgDqJFJvr/Xo/XqeQrlCRqtCaU1RJKKFdPnfcLUs1/VVEm4t8Mrn9xkE1MJyKZ1jzSvFh4zPgUhMx3SOLIWeNr1hB+aumDq2XsNX7p8zmmvlSpEsArKrwH8haCsQ+sOwmSiahA5yQl9VoCitAmEeuJ6dlWfcWuFuBCr5g/yLy6BPvHQ9AG2hS+2ngr7dPDApKzonenukC4/FvyP6VqN6EjFihaeXv6qbO0EgJ3fRIuk4o1cpcUG0peOHJjJFKrdWDL09OgPAucgg9f0RGXDArjS4zHmhttNpbFF3Eyf69hZnTZxW3IZqRF9fjiA== 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=gcuR+o+PoLYg4de87cfrshMOpS01P7Sg8+L4lGTr5fI=; b=iQ41RGK/pEvS5vm0+NwMTdRS6gLOQSpuHCF7HUT9Pj3LkFpSjTATrC7laEbtDY7FqUjW3e4vjgJlx1JuAdeUFUyYpt9C64OTRfBvnaC0dMmosvfJyiNd2bzaQrHn18daNdbSaLsCidSrBae/ihBhyWreP28CF5/YkqoYmM4joWztDfUjZHCh2De+IAqO2r52bKJ1KvSN55riH2azkhUqIq/AXgUr59UdVvmhQXMM009etY/K6aPfrzV1hUnVc4Q7s2QUQOTCd4R4P+CB/U8xpYZldR6YHcw5hEbRowUezRi+sOq3DslNbeNW6D/M74kBqv7+Qj7nqhgSpJFaIREllA== Received: from BYAPR11CA0043.namprd11.prod.outlook.com (2603:10b6:a03:80::20) by CH3PR12MB8995.namprd12.prod.outlook.com (2603:10b6:610:17e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.28; Tue, 18 Jun 2024 07:58:41 +0000 Received: from SJ5PEPF000001E8.namprd05.prod.outlook.com (2603:10b6:a03:80:cafe::39) by BYAPR11CA0043.outlook.office365.com (2603:10b6:a03:80::20) 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 07:58:41 +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 SJ5PEPF000001E8.mail.protection.outlook.com (10.167.242.196) 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 07:58:41 +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.1544.4; Tue, 18 Jun 2024 00:58:28 -0700 Received: from nvidia.com (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.1544.4; Tue, 18 Jun 2024 00:58:23 -0700 From: Gregory Etelson To: CC: , , , , , , , , , , , Subject: [PATCH v2] net: add bit fields to IPv6 header definition Date: Tue, 18 Jun 2024 10:58:10 +0300 Message-ID: <20240618075810.265960-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.231.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: SJ5PEPF000001E8:EE_|CH3PR12MB8995:EE_ X-MS-Office365-Filtering-Correlation-Id: f58e2348-837d-4b5a-6568-08dc8f6c7809 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|1800799021|82310400023|7416011|376011; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?V2srRf1HDVtj9/ejfZwfdOZo9Kg8qQd1Er5rIRDRaJTyTJ7czvBP/0BqDFEe?= =?us-ascii?Q?uqEwuDgE9mgm7lT+GJ12755OmOk2lIf9lOhsINVePvLW5oac4QUFwk1zWOYv?= =?us-ascii?Q?bYej9YFt5Oahjs/ptNzWjSc/2vMbRkz5WGikRr+pV7cH6MZfgOSWrUGQtxyS?= =?us-ascii?Q?ZVfGmT5rTwOcYRp+/5Yvv4EpEelKIQllcG8Q9UlCdJ31JThDfQzgKvcld5QJ?= =?us-ascii?Q?wZ1P8ZTeueCnBfFhZuhljOJ+b69RG0D3xLucYxwrFxHINNyAMnYyhcG5lqm7?= =?us-ascii?Q?ILZ+V01wWTUR31GzjW3XEF16jAnN7TRFdP4mYR/oQpw744ckQxXUWoV2RZqh?= =?us-ascii?Q?j+/CVdlh62FZo7HzVKU641nnLS4E+bRs+l7BmEoTiwe/fVA2svmYS8l02/o4?= =?us-ascii?Q?JC4yp+JDSf4QuoNDj8ZYtnUcs6UyKH0RcGmb3XnTr/sdGJmaOqKya2uyIHIg?= =?us-ascii?Q?KyOrxc4ggCPbhuLs5+GT1DMM6THsZpl6GrU3ygtGhKXHSqNbF3Ffmz79FHUY?= =?us-ascii?Q?evRm/PoF/jJqQ8LAOR686Zw69zG//dSowjg+eM0j00EfZlQLw/74hB5fFnaA?= =?us-ascii?Q?ysXYmomvfyYTuWR2DOdLoooK2uR5jyrbJXxiHcajWjta2idAjw+mhU02InJD?= =?us-ascii?Q?f3Q2F96isZ9ZT9C6HlfhSzgQsjeIjX/KyWE+hGFlLcxdrLRCj6doMeHc2dNA?= =?us-ascii?Q?0wmfgnMHJTHHWpXe9MXG+IaWnvuP+XvBLeMKbtgohOJrHD0XVcRKgiqg5UP5?= =?us-ascii?Q?uwRfC0PFd6VVM7oTtiKJQgm2rkpe2N4hDcIjKRk0lbsBJ2JKn1QjtKVHgDPP?= =?us-ascii?Q?gSk7Akig9rGXmNyhf4jCkpNFi1Iu3eCKeNJZ1H2wfORxyhOB95/DZbnBU4VN?= =?us-ascii?Q?1vo8sD0u64dVODw5uAtYjhwJBXg0ysbCdAZsY3aCqSYggOo/wqcQ1tkTC4hs?= =?us-ascii?Q?bGydQIPPFigWUSLJTRj26Pc3ILJGSKhxmGk/PPUpIiweuunOn7aYUGqgLe17?= =?us-ascii?Q?4Y6Bw5SXzpPpaGc9aAz/wI1nGRO4BA8fsqQSHlC/ldcTj37G1yJ+COJWvfyK?= =?us-ascii?Q?1gReRxc4XHKgoOLZcC+SLHuVeW0q2HHtgIBUJIGXh02HIGQL43gsbdEyc8Ze?= =?us-ascii?Q?a4YAYmuUAoEubwqXIMn3ycgLWn0nrEZlJmHl8VyhoA6Tmvt3TklKvRCb+CA5?= =?us-ascii?Q?sPX6esTqcUpbJv0uNSRohfft+XlKt9o6ojwxYGM8L3LirSf7a31/pj3giNh/?= =?us-ascii?Q?pzDAEjJNTATyiwxVtf1NJVdI6amw3uUAJmKOSnAOG/9oza80+ob86jaySwBi?= =?us-ascii?Q?sGKCJC7O80w7Pqc+0Yzar6iwemoiSx1xzbXMlBH/RizXZk0vKQhMqeGIsWns?= =?us-ascii?Q?lAd+vrrpM+f1cr3aDSK//FtwJ7pQX+V0826/3BkWAIdG24+8Ww=3D=3D?= 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:(13230037)(36860700010)(1800799021)(82310400023)(7416011)(376011); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2024 07:58:41.2420 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f58e2348-837d-4b5a-6568-08dc8f6c7809 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: SJ5PEPF000001E8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8995 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. --- lib/net/rte_ip.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h index 0d103d4127..fe1d596054 100644 --- a/lib/net/rte_ip.h +++ b/lib/net/rte_ip.h @@ -524,7 +524,23 @@ 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 */ + 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 */ + 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