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 7D38C4548D; Tue, 18 Jun 2024 14:19:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DBE0E40E3F; Tue, 18 Jun 2024 14:19:25 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2084.outbound.protection.outlook.com [40.107.92.84]) by mails.dpdk.org (Postfix) with ESMTP id 62F06402B4 for ; Tue, 18 Jun 2024 14:19:22 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eh3hXzwRR1QMt6SgF/EX+ryYEhWD/MxJMyLJt804y1R1gTb4YoeH7+M2aOY5A2vZCrAQSZLWBxI8opGtXFkW6K7HTR8vkaRGY9EcnYaEZ3mL3/RkKyKn/JBowyyECn1zs4VI2q9xQnn1hNI4pGYjZjk8uX61qBukVc2oB0ITuAEVChUBhKWHceB3VSAe6rtY4WGN25PNhVYyJP6KINEslvOicQACknYj8n4ppBqoqBGcSmV1+c3AMpwP/q4gt/B8Z55+SYHYE+uKjbTkLyIhcfbcHL3Vi0VAeg1qaA6INdjgKStjGyK70wfhptLqqAd8LpouOmL6KFdR8Sbp1GDDkw== 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=Q33aLNhZl+wFNT9WW8xUh2//lce2H8SQDd5Gvls078U=; b=EgMTg94jYIzPamjCRkqQZAbeqvWBXFPvglgXXzYUWATLjV7qmD8Fb5tsXUucDmeapvfn0xNlmz6gi4RCpUozdvTuJPV9EqpGSpCci62xKfw/nkkwYF3OUYhVAHjHqSBakyakWgNt3jiYOClBDDRJQ0cno0mDfUpynye2Fhp1uCe4S0U4QenrdljLptMVQqsNyuZkB7MwTGuw/Cwz8PXVLwGC1fKYxIbTbpoBAA343y34mBNNDwz90/vQKpmec49Snw/nABk/BgVe5AGucEb4vFREO/2yR3tNOTn5AGePEo8tXozRM6mZydf/eZuSioqo7NGPPyEnW+NbXft5xGFJbw== 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=Q33aLNhZl+wFNT9WW8xUh2//lce2H8SQDd5Gvls078U=; b=VLErBKlzdhnMW1bguJnfQLPDKAdQNoCWelS/NCSWhXgkp6yuvXebWXIAluztjduL/VNymzhLdfZ8ns6GDgrb/6u0if8WTDmb/dD5LEjQ2ku98FFUX6XF+FuPr2+nfoac6kkIrrF8rynEq8+V7MNdzAr4qbjW5INJ1paMhWonBo7Ct0SSUxbhABpguSy5GLw4s3jf4kPYm0VBRj1vHtnDmRa0wOpu80deCEeVi27jho8n5BIDxAMWQNJEkW5KFvCZMjktApDJvzcMck0N8lN5Kwj3StrreBwhRbb6cX4Sq685htmGy/0wHYkDQ5m5M7ZIC8QX6rM7yNJrLrI5Ua/uDw== Received: from SA1P222CA0019.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::20) by CY8PR12MB8214.namprd12.prod.outlook.com (2603:10b6:930:76::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31; Tue, 18 Jun 2024 12:19:18 +0000 Received: from SA2PEPF00003AEB.namprd02.prod.outlook.com (2603:10b6:806:22c:cafe::54) by SA1P222CA0019.outlook.office365.com (2603:10b6:806:22c::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 12:19:18 +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 SA2PEPF00003AEB.mail.protection.outlook.com (10.167.248.11) 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 12:19:18 +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 05:19:01 -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 05:18:56 -0700 From: Gregory Etelson To: CC: , , , , , , , , , , , Subject: [PATCH v4] net: add bit fields to IPv6 header definition Date: Tue, 18 Jun 2024 15:18:41 +0300 Message-ID: <20240618121841.10070-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: SA2PEPF00003AEB:EE_|CY8PR12MB8214:EE_ X-MS-Office365-Filtering-Correlation-Id: f3ed6d76-28a8-4789-df2c-08dc8f90e0a7 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|376011|7416011; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2nJsxGTnaS/YpqjbC79zR4OkCcC9EhhqdOueqaeIrXW9ZXVKfJcbPlIXl99d?= =?us-ascii?Q?ErKQdO5RjWeD4LZoIlQYp/sUWjx/Hg8enz8GGnl4m06eUa3cJTsAXlcGYGJZ?= =?us-ascii?Q?9m13GfeeuznSiCrKqHLHmClrwoiVnRSQFD3ZAphygriARZ456ZPNBwG2kKJn?= =?us-ascii?Q?ql7O2stkzsSVYPRxtLFXjSzdQfPZnLxc7kjWRjTqOEl0V0vfatYizVCVvimF?= =?us-ascii?Q?rzy5voQgYgIWdBoOOqDnEfuZDyGg7wE09qh5F0vZqvA/6dal+xTB0P8aj7bu?= =?us-ascii?Q?brxVdKYDruXCpoU3Taj6ih8pBk9V1QVV97ceTFGXm/U49cai8qW5r4bQrurt?= =?us-ascii?Q?PYaPvoKbBKiEMMtSe1ZzIJfaOdrtpP7qdTTVDNA/JzCdghwlwqZt6/Oh6RUF?= =?us-ascii?Q?a1hvVmREeGGmhrwoAS017N0hhHE/ikmCwkrVDuf27iFqN6IcegAPxvJbUhUH?= =?us-ascii?Q?CCdt+KVaisU3314NjArRnf68U31jCYvbGsg5+SemJKV3xjCg3ajg3ztPY4A5?= =?us-ascii?Q?qeD9aWg5FWPhNpHIXHiFWSPwCX5zYp1WELmJ7UjLLGlJmcw9fD8u6RRMN+yN?= =?us-ascii?Q?iGsziJQ8sQso434VWb15sttGecrzXv3OwtQ9kdCgWiyD+T7I3anZFJvhv2au?= =?us-ascii?Q?1V4a1NYXl13Zb6JQjeaJ6yzvCe4aQaJZZ0w8SA3VUinmQM7ibeusJnKp7s+S?= =?us-ascii?Q?GxEUY2D/nMC5Q/lNm8GZ3axmbfXmvNBgPgZsV70MgzB/B76ubAUQJlH/hxSC?= =?us-ascii?Q?qmg3mFaDoJCMGpAvquwQ1Nk2WE4fVpbF3Izoi5z8EiVTd4oKlmPDvMGJUhJW?= =?us-ascii?Q?NUebMO/aW3Hety3MxXiwKOOhFGW8dFYGF3SnN2ORrs3t+Dnmb4sFNFESlgGA?= =?us-ascii?Q?MQfcmEpXWQxePWkYMgVkT6nJZAIRaAnpPwqOo56LqNq3kmVw7ZN2pIJtzS6L?= =?us-ascii?Q?olrI5uXKaPdX72NQFzSXZu8tkARVJok04qx8uwA6FVcpY1edzg6ieVagWRqi?= =?us-ascii?Q?wmVzRFKaxiKd2dpjc4BJcE9DvGotMo0vQ3FCJjdmrTnH4fXL59O1bnjWCemw?= =?us-ascii?Q?fYjq7NvnkwA1TzTDTl3N+2qGz/jVCxCKLgsuQ8LLYhGDPiJ15rRnmnl14YLI?= =?us-ascii?Q?EsJdE0P1qqym1KghZqCEhcCV5jrBc72i5qbW6QZvVropgfVrxereln/+gB0U?= =?us-ascii?Q?YTrVLJGZ2OhSXxcAYrMbSdvCaJP3W7ngq3yt+DvCrpB7lqSqsH3GYYR5Aycd?= =?us-ascii?Q?dyMtGe2ex2wwW3cVSXtm01oZ6Y3CaoLW30bO81RtiQ/jLDdzcItS8DnJBMXu?= =?us-ascii?Q?D2H1zMXx5X8XdBadHfvOR2xnDihdlHlWVuHsDf6KRPd/xRrFQYuOi2DZ+YUD?= =?us-ascii?Q?KgVrrLBUyPimzfymF82snNYbo15M8pH5Y2I7ESKvgYd5Lwn/iA=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)(376011)(7416011); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2024 12:19:18.5209 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3ed6d76-28a8-4789-df2c-08dc8f90e0a7 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: SA2PEPF00003AEB.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8214 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. v4: The `packed` attribute works on bytes only. Back to v2. --- 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