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 B5CB545A68; Mon, 30 Sep 2024 14:17:39 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 774724067C; Mon, 30 Sep 2024 14:16:29 +0200 (CEST) Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012051.outbound.protection.outlook.com [52.101.66.51]) by mails.dpdk.org (Postfix) with ESMTP id 1B8764067C for ; Mon, 30 Sep 2024 14:16:24 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UEjpnRTaf+shCdAxLP6WrKWSquPLxk18aynianEB++5zAJhy4WRY7ryHstL6HV/FqsVh3WTEgdPKePp4IZJsQSJr3hj2cgCVxd6CawoVEv151uqHzmemWbQ3ck6MoJM8ROot33FoRBMaR6eFfLk0BgsgJJAU1iD5VD/3kPTbyyLiIfXDdxOO8EZoZ36n7xDCvJGTBDZlhu7SKillNrzIHgbYy32VTulab/Ze6hvC2AtLABNf7571D8tluSyTym/wxiAbdZ40XQ81H7YFv6I8LWVOqjF9C8vochdH0br673bVJGI+RKjYcou2ATvQghC5qr9C07ei/QYZW3MkmC04sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=KOSilZWw22yDsuC5+p2OLO7zFOoOe1Fq5RQEctMPcBs=; b=txxw+aTBIp69SUbKqMM2JfUfwUdqhQL3KT6bPJ2d7gK7jKFZMPvsfrnMWDBRM84HviVsmADXXad7Yi1/5DXdvPurHgXGRw32pMxXd2NiDcxIrKauH4poePXCZFxbc6e04pPzcT/TIVIPX4+5v07RIJgUkOuWTvO3tqcLfGyAnS1NoXE9ETztLm6zwzUGG/8yIbAKVwAQzvESEulmPXQIGiEPA50/V4O1b16AI2QiU6KAFJF1mMO4EHSYzb//loyyko7Ii0PdgVHxTgtNxycZgwZu2gUhpEsX02WE+nyEpYOnwh4JFbWjyeaSM59FEIrTsW6WsqIvQcUouMc7vQFXBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KOSilZWw22yDsuC5+p2OLO7zFOoOe1Fq5RQEctMPcBs=; b=X+vxg73WtpjKgUe18nRvH6UE0BapzuseahtrogVvT4KRKzoEjpSjAxa+1nrMerkcE77cLotcb0Vtb11DMuYVZk1ibrsGeRO3hIcF2VVEGcO91uzOD+047QDhELay7CE2hTy5BHEFvGrFN1gOS6FqMHzIvf1NF/VKS7b4vxvHDQ2YEkDdJFVYS7hb1Kei1HdWyrz31eBJfZqn4uxeWUhZBxZ0e01cWKylACm1rzWdsnDL0gwvGVBmGNCM7YFYfX5V4hM//5yDS5OJguAv29dEWDfgQUgkgxiOA6cOJYMbHbbSgx53bb5OcORRFrrzA7FXIj7+Fqm59N7P1iHNJOVApw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) by GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.26; Mon, 30 Sep 2024 12:16:22 +0000 Received: from PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::367:d59:375:fb87]) by PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::367:d59:375:fb87%3]) with mapi id 15.20.8005.026; Mon, 30 Sep 2024 12:16:22 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: ferruh.yigit@amd.com, Jun Yang Subject: [PATCH v4 11/18] net/dpaa: implement detailed packet parsing Date: Mon, 30 Sep 2024 17:45:18 +0530 Message-Id: <20240930121525.3452847-12-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240930121525.3452847-1-hemant.agrawal@nxp.com> References: <20240823073240.3708320-1-hemant.agrawal@nxp.com> <20240930121525.3452847-1-hemant.agrawal@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR01CA0124.apcprd01.prod.exchangelabs.com (2603:1096:4:40::28) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|GV1PR04MB10583:EE_ X-MS-Office365-Filtering-Correlation-Id: c9f71a21-d610-4a79-986f-08dce149b29c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Ubc65xGg1g80m7wejHrcsLai5YiAX+wGIdBb+O8966dMoKKmhp1L81OtWaee?= =?us-ascii?Q?jAw+VQNvjVIOa5ybySKae1qAeRndR9T/jGT7gj7SQSTOqGxr7hRo90s/OFuk?= =?us-ascii?Q?hSKwhVs8SC+F47Y95wegb9R+4LRbMYOKvraEZkcxsPWYQBZWEZTEI1xkvaLl?= =?us-ascii?Q?D3ylcVm2yzGv1/11gbC1sftqdtiuen1Mh1WxTjwCftdTWBmc+Rb2hqYx+ayM?= =?us-ascii?Q?VfDg9jaw8sF2DhzO19HP9CEFoqpKhWO+rqi0gp4uZMwyWELA9S6247Y8wyo0?= =?us-ascii?Q?irqOFM9jl82TDmTm8RjWnwkwtcjPivsJJMCNKA/YCqNgPDaTM4fE0xqCxd2a?= =?us-ascii?Q?iBDWd79eMdE3hIUTojq2q0trBoZ1fl4pHPGsUlDcZo8u53Ph6SO39lyE5UwY?= =?us-ascii?Q?mGmZiRGgYd7kA6jGJ03QfvJMUGSas0bKtPoiDq3zu2FzAhcNn3qRA3T51Fqu?= =?us-ascii?Q?kH1PW/rvppgEjSqu5mdJMJhsNDHrjMmu1Auys3vgBF/d95yZXYQ+HOrgmpPK?= =?us-ascii?Q?atQ3/99wfUzXNTsynO9Xn3xJCeFCINdTbGy1hJt8Nab/6+JsaXTIarvX+RND?= =?us-ascii?Q?2LpAF7HwFVlFjAhA17wf9f1Ry80kQTqKkWvBoUDz1d0tOkaHvyRRazbCqryF?= =?us-ascii?Q?KIoCmIvBR8R/5c/Hs2+yg0j6j9ClrKGKkpkgB6i6ygWfREsMZ5be5VF7S/SC?= =?us-ascii?Q?lyHX9+5BYUmteNIgxutAN9+g/CTrK5RW4zcBCZFUHCNx00tMsDFvqwYOtTo0?= =?us-ascii?Q?q2wKgT1kZIVOrNlItRQIcF0yxA9YuiuSf+sUVzRl63y/JrLc9/uGBzaP96ag?= =?us-ascii?Q?JWQC4zufirsunE2Ui0pa0OkqrKgmf9TvTZCtFHx2wYxWXHcDxwmp2p9wMIN/?= =?us-ascii?Q?zezpMc/W6lweej1setERYzIKphpqg2+Ld5V95JdQSziVudAajHBdqAeZaTwJ?= =?us-ascii?Q?gJZVDM0o58V5LLqWA+m7Ul5Nlr/807+3L8IENrK6EpcsyovHflAkDFj08D90?= =?us-ascii?Q?Qndcn1xhf9gmeMjAM4vBwDIVzb6Sg186H4pMeg5AJ+Mm/8orBkIZY6A2DCHr?= =?us-ascii?Q?uonwafabILO2pPhm4g1Td/JOdknROl9/4CAQUbAcxjB4MST8FLy9+aCue1dw?= =?us-ascii?Q?g1VGjr2QmH1nmR+O/SURwHQRNMYTiC+E1BCmI7hB3/W+9Ib3ncinyG2Z9OPb?= =?us-ascii?Q?V6jAlDzDNowVH3rN0LlBuxttCJSTbx7nmco2+yo4WTKby+y1RrA8VbI4YQ3z?= =?us-ascii?Q?solLTzowrvKqVlJdZteLqJWnhaKYhbONclZbRAhEPeFrSTCLAyQa/RqY4QCF?= =?us-ascii?Q?cn72atBEOa9QKKtoRItXP3bC9iTJFheWg052LzsxDNoW3A=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+vHmdg5oeIGs6csfsgG4tD1e99/ihU29FDtQ7Arx2NPBKaVRGsJFq9edrA5k?= =?us-ascii?Q?y9rmAJz1i3KIwkCbA1d6VgQzXajuXiDjNIG7PJSB4NNh7mzuRZ7Q8zZrTqAR?= =?us-ascii?Q?h2JdSFydjsa6V/2kXat6qbn5OCaE1g+bP9yNDcUpIXgnq/DneGT5h+p5CST4?= =?us-ascii?Q?u14XfBlsgyTAA4ZjFBDvqqTJCNpqu6Pzg2JBJNdrrs/YDp5O8/2my5sBSJLm?= =?us-ascii?Q?lr+FK95jSHfK+YaL94SdsORIwHQFcmMXldd+8gd1DvgnSg26QYWWdTWIvzLE?= =?us-ascii?Q?QoAV+kh0im40Jwn/7M0bVPUvVWydMAQrMkombCbdbUI9CSr1UusEUD2P7HMX?= =?us-ascii?Q?zdVVUA3JSGxGYABzjCJrdkkowuY91PNutHVR7n6PoOwj88xSAi2hczX3zw4T?= =?us-ascii?Q?Vh9BQYin/7NDZc49jPyjkAyWctRYHRhTnu/aQZmk7HwGlPimHbh8GdEGdUFQ?= =?us-ascii?Q?Z8BSnJCwK9O91KhEK7I57EJ9Y9LPTrBgyEMMzfIwOeLWnw/rYbdYet1in8it?= =?us-ascii?Q?fVZqHlfOM5EzVaBu2szuEbNH6AY2KUv2AuXrvbvjBUAyW8i0idiMof48n2Dc?= =?us-ascii?Q?u2Ka82biz1kgO7KTvSRw2y7Fh/3w+z5DInV+xOfnJ6QsR/bhm/nI2fW6/UEu?= =?us-ascii?Q?UN9ejwuYQet9/v6v9LlKIVaHF8jqDarQiwoXqccl2EGah6OBvYQ6d2WaHiyy?= =?us-ascii?Q?tL7jlWMaRlUPmydMZ2SP+MsTuxb4+XlOdMpBkDjuX0aEI89XoP3xBQwWzypH?= =?us-ascii?Q?Yz88Y3hi2TJtUIft4TC4xn/1HtOVjvkPLuXXpnCTJEGkE90IyGI6D3HdZ6+1?= =?us-ascii?Q?RGyNTsaOGnW4IOceMbsuUi4Q/wd5UdN0XqC34NXkVugBuu8a0S+HS/Yi3Pqw?= =?us-ascii?Q?RjvzfrddTHmpgtE+/xfDcBhYDIP/XW7MouPzvx05uBrT0xF7wMLDUhLyvgT8?= =?us-ascii?Q?Mhqv6tXvpV8BJr6TvEUISVgNYFbSEqBH5XmltooLVgXOKwobsG9kVKRhe5o5?= =?us-ascii?Q?sb02diAiQc1sFAAu7FNgEYoEXD+IyNuM9OUNGRUNw+PsJUc7s8gMl3Ag+2C9?= =?us-ascii?Q?qtPe3MdRL/g5oSOtmseBU9DXSkaVPlRYZbFbAekG0KmkE2oYwQXYImcw50UG?= =?us-ascii?Q?l/J7RlT8nfShm294ihP7NG/7nXQWNmfFq8N+SBBXWshe0Bt0SqzpqtzosYTn?= =?us-ascii?Q?/F7/vLwZp0rdTKFrioJC0ZX5A8etJW+puKxgeC/+yeDEMmvMIyx2Kx+S54wL?= =?us-ascii?Q?OhF9lJO00ec1AN1ECqE7p9LOB5jXBMAkYnspf5DKOYTlDJ8fN78c83sKI/3h?= =?us-ascii?Q?13IqMcRBcoQdyAlQsiiPgu7iAepZnoIhKdGUh1yq4r86Dc8NTa9mz92HtwZJ?= =?us-ascii?Q?feuLHoy97LjO2LU8sKqTJwY9sJ9Ypk4rtIdCo0/dAWySvVrYimgx2a7fnHJD?= =?us-ascii?Q?34g2T+pvkowWTHcfYDpVDTtYjyes6+6GGrOpqwI9eLHPNx1yJy2+qx48uy3G?= =?us-ascii?Q?R+9Z0LBaadYOMUe2VAY/mt4mo0t6Z3h0Qx/puf7LoQjg06J/QDuMli+AYcz9?= =?us-ascii?Q?6cYxDRx9FkXMSYSB+AiO7MVCOkAmzg4V3MvfuTJP8rQwchMTBaviGzf3gz5Z?= =?us-ascii?Q?1g=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9f71a21-d610-4a79-986f-08dce149b29c X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2024 12:16:22.6620 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /7JQJ4KZknII0/UTnIZyxi57Ocul7XWoJw2zXC8ZtGnLy7REYnT/b1CHMa0klN6kLNpOtzifHQrE+6CeTfye3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583 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 This patch implements the detailed packet parsing using the annotation info from the hardware. decode parser to set RX muf packet type by dpaa_slow_parsing. Support to identify the IPSec ESP, GRE and SCTP packets. Signed-off-by: Jun Yang Signed-off-by: Hemant Agrawal --- drivers/net/dpaa/dpaa_ethdev.c | 1 + drivers/net/dpaa/dpaa_rxtx.c | 35 +++++++- drivers/net/dpaa/dpaa_rxtx.h | 143 ++++++++++++++------------------- 3 files changed, 93 insertions(+), 86 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 82d1960356..a302b24be6 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -411,6 +411,7 @@ dpaa_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements) RTE_PTYPE_L4_UDP, RTE_PTYPE_L4_SCTP, RTE_PTYPE_TUNNEL_ESP, + RTE_PTYPE_TUNNEL_GRE, }; PMD_INIT_FUNC_TRACE(); diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index e3b4bb14ab..99fc3f1b43 100644 --- a/drivers/net/dpaa/dpaa_rxtx.c +++ b/drivers/net/dpaa/dpaa_rxtx.c @@ -110,11 +110,38 @@ static void dpaa_display_frame_info(const struct qm_fd *fd, #define dpaa_display_frame_info(a, b, c) #endif -static inline void dpaa_slow_parsing(struct rte_mbuf *m __rte_unused, - uint64_t prs __rte_unused) +static inline void +dpaa_slow_parsing(struct rte_mbuf *m, + const struct annotations_t *annot) { + const struct dpaa_eth_parse_results_t *parse; + DPAA_DP_LOG(DEBUG, "Slow parsing"); - /*TBD:XXX: to be implemented*/ + parse = &annot->parse; + + if (parse->ethernet) + m->packet_type |= RTE_PTYPE_L2_ETHER; + if (parse->vlan) + m->packet_type |= RTE_PTYPE_L2_ETHER_VLAN; + if (parse->first_ipv4) + m->packet_type |= RTE_PTYPE_L3_IPV4; + if (parse->first_ipv6) + m->packet_type |= RTE_PTYPE_L3_IPV6; + if (parse->gre) + m->packet_type |= RTE_PTYPE_TUNNEL_GRE; + if (parse->last_ipv4) + m->packet_type |= RTE_PTYPE_L3_IPV4_EXT; + if (parse->last_ipv6) + m->packet_type |= RTE_PTYPE_L3_IPV6_EXT; + if (parse->l4_type == DPAA_PR_L4_TCP_TYPE) + m->packet_type |= RTE_PTYPE_L4_TCP; + else if (parse->l4_type == DPAA_PR_L4_UDP_TYPE) + m->packet_type |= RTE_PTYPE_L4_UDP; + else if (parse->l4_type == DPAA_PR_L4_IPSEC_TYPE && + !parse->l4_info_err && parse->esp_sum) + m->packet_type |= RTE_PTYPE_TUNNEL_ESP; + else if (parse->l4_type == DPAA_PR_L4_SCTP_TYPE) + m->packet_type |= RTE_PTYPE_L4_SCTP; } static inline void dpaa_eth_packet_info(struct rte_mbuf *m, void *fd_virt_addr) @@ -228,7 +255,7 @@ static inline void dpaa_eth_packet_info(struct rte_mbuf *m, void *fd_virt_addr) break; /* More switch cases can be added */ default: - dpaa_slow_parsing(m, prs); + dpaa_slow_parsing(m, annot); } m->tx_offload = annot->parse.ip_off[0]; diff --git a/drivers/net/dpaa/dpaa_rxtx.h b/drivers/net/dpaa/dpaa_rxtx.h index 1048e86d41..215bdeaf7f 100644 --- a/drivers/net/dpaa/dpaa_rxtx.h +++ b/drivers/net/dpaa/dpaa_rxtx.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * * Copyright 2016 Freescale Semiconductor, Inc. All rights reserved. - * Copyright 2017,2020-2022 NXP + * Copyright 2017,2020-2024 NXP * */ @@ -162,98 +162,77 @@ #define DPAA_PKT_L3_LEN_SHIFT 7 +enum dpaa_parse_result_l4_type { + DPAA_PR_L4_TCP_TYPE = 1, + DPAA_PR_L4_UDP_TYPE = 2, + DPAA_PR_L4_IPSEC_TYPE = 3, + DPAA_PR_L4_SCTP_TYPE = 4, + DPAA_PR_L4_DCCP_TYPE = 5 +}; + /** * FMan parse result array */ struct dpaa_eth_parse_results_t { - uint8_t lpid; /**< Logical port id */ - uint8_t shimr; /**< Shim header result */ - union { - uint16_t l2r; /**< Layer 2 result */ + uint8_t lpid; /**< Logical port id */ + uint8_t shimr; /**< Shim header result */ + union { + uint16_t l2r; /**< Layer 2 result */ struct { -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - uint16_t ethernet:1; - uint16_t vlan:1; - uint16_t llc_snap:1; - uint16_t mpls:1; - uint16_t ppoe_ppp:1; - uint16_t unused_1:3; - uint16_t unknown_eth_proto:1; - uint16_t eth_frame_type:2; - uint16_t l2r_err:5; + uint16_t unused_1:3; + uint16_t ppoe_ppp:1; + uint16_t mpls:1; + uint16_t llc_snap:1; + uint16_t vlan:1; + uint16_t ethernet:1; + + uint16_t l2r_err:5; + uint16_t eth_frame_type:2; /*00-unicast, 01-multicast, 11-broadcast*/ -#else - uint16_t l2r_err:5; - uint16_t eth_frame_type:2; - uint16_t unknown_eth_proto:1; - uint16_t unused_1:3; - uint16_t ppoe_ppp:1; - uint16_t mpls:1; - uint16_t llc_snap:1; - uint16_t vlan:1; - uint16_t ethernet:1; -#endif + uint16_t unknown_eth_proto:1; } __rte_packed; - } __rte_packed; - union { - uint16_t l3r; /**< Layer 3 result */ + } __rte_packed; + union { + uint16_t l3r; /**< Layer 3 result */ struct { -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - uint16_t first_ipv4:1; - uint16_t first_ipv6:1; - uint16_t gre:1; - uint16_t min_enc:1; - uint16_t last_ipv4:1; - uint16_t last_ipv6:1; - uint16_t first_info_err:1;/*0 info, 1 error*/ - uint16_t first_ip_err_code:5; - uint16_t last_info_err:1; /*0 info, 1 error*/ - uint16_t last_ip_err_code:3; -#else - uint16_t last_ip_err_code:3; - uint16_t last_info_err:1; /*0 info, 1 error*/ - uint16_t first_ip_err_code:5; - uint16_t first_info_err:1;/*0 info, 1 error*/ - uint16_t last_ipv6:1; - uint16_t last_ipv4:1; - uint16_t min_enc:1; - uint16_t gre:1; - uint16_t first_ipv6:1; - uint16_t first_ipv4:1; -#endif + uint16_t unused_2:1; + uint16_t l3_err:1; + uint16_t last_ipv6:1; + uint16_t last_ipv4:1; + uint16_t min_enc:1; + uint16_t gre:1; + uint16_t first_ipv6:1; + uint16_t first_ipv4:1; + + uint16_t unused_3:8; } __rte_packed; - } __rte_packed; - union { - uint8_t l4r; /**< Layer 4 result */ + } __rte_packed; + union { + uint8_t l4r; /**< Layer 4 result */ struct{ -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - uint8_t l4_type:3; - uint8_t l4_info_err:1; - uint8_t l4_result:4; - /* if type IPSec: 1 ESP, 2 AH */ -#else - uint8_t l4_result:4; - /* if type IPSec: 1 ESP, 2 AH */ - uint8_t l4_info_err:1; - uint8_t l4_type:3; -#endif + uint8_t l4cv:1; + uint8_t unused_4:1; + uint8_t ah:1; + uint8_t esp_sum:1; + uint8_t l4_info_err:1; + uint8_t l4_type:3; } __rte_packed; - } __rte_packed; - uint8_t cplan; /**< Classification plan id */ - uint16_t nxthdr; /**< Next Header */ - uint16_t cksum; /**< Checksum */ - uint32_t lcv; /**< LCV */ - uint8_t shim_off[3]; /**< Shim offset */ - uint8_t eth_off; /**< ETH offset */ - uint8_t llc_snap_off; /**< LLC_SNAP offset */ - uint8_t vlan_off[2]; /**< VLAN offset */ - uint8_t etype_off; /**< ETYPE offset */ - uint8_t pppoe_off; /**< PPP offset */ - uint8_t mpls_off[2]; /**< MPLS offset */ - uint8_t ip_off[2]; /**< IP offset */ - uint8_t gre_off; /**< GRE offset */ - uint8_t l4_off; /**< Layer 4 offset */ - uint8_t nxthdr_off; /**< Parser end point */ + } __rte_packed; + uint8_t cplan; /**< Classification plan id */ + uint16_t nxthdr; /**< Next Header */ + uint16_t cksum; /**< Checksum */ + uint32_t lcv; /**< LCV */ + uint8_t shim_off[3]; /**< Shim offset */ + uint8_t eth_off; /**< ETH offset */ + uint8_t llc_snap_off; /**< LLC_SNAP offset */ + uint8_t vlan_off[2]; /**< VLAN offset */ + uint8_t etype_off; /**< ETYPE offset */ + uint8_t pppoe_off; /**< PPP offset */ + uint8_t mpls_off[2]; /**< MPLS offset */ + uint8_t ip_off[2]; /**< IP offset */ + uint8_t gre_off; /**< GRE offset */ + uint8_t l4_off; /**< Layer 4 offset */ + uint8_t nxthdr_off; /**< Parser end point */ } __rte_packed; /* The structure is the Prepended Data to the Frame which is used by FMAN */ -- 2.25.1