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 8B5FF45710; Thu, 1 Aug 2024 12:55:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E29E9433DB; Thu, 1 Aug 2024 12:53:48 +0200 (CEST) Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11013001.outbound.protection.outlook.com [52.101.67.1]) by mails.dpdk.org (Postfix) with ESMTP id 13BB7433C3 for ; Thu, 1 Aug 2024 12:53:47 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XzqKmoQRXQ7SToWGUsMrezOkzd4EWyi0btv6yDS2QrHvSMKINjvwRJ6vDqtUaxvAuKw+4D7Or/bF3Yd2GMZSe80WzO8XRb5oYBj6bH4qvHJZ/Uof8oW9QK+ZAHusCILkZUGcUlIAn7cJqWy9VlH9ypu5vt2HIHFMWje9+adXa5xrDMJwaxqtInbxqEdFRtiC74jXiINqaQnNoenPDxCNfUvvF2RqGmwk5QFj/tJJ/KXnqZRhf4i6GqwtRnJ+SWqQBNUXAZeKXZikLBW/d4KSAwaGctI3LB3W7wnUOKYK8rLkx2wGwecT0GRvr7SUvk7U0vzk4atEmwz1aNJWAB/s4A== 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=CCZfzuBjKv7VLFWKeaFmIEw1p5M8Pnx/dp0ysrmte3Y=; b=EdD8l5zqzuAWGM3dyveS/4thtmiLfYTbZCDSF/ICZv17Hf7mF7A6eDE4adNxCwNuJQoK8lLDML9Tm6DsIhTppyhXHJiohQ3tgbxn6SYTKqy8R9YZ63QgbOfd1nkLu7Tl2GjL/onA2IbqJyyXy4kiuJARg/XzMI7tDa8wltmFkpGXJgKKuoJ5U9Y9Wgq5kAwGgOBRy7M0DOcGua6SrJwRYV+jngWHwszPlxZaWau0zgikctafqXelhzleWrOfOFmwDMYCaC4PU+I+Rpj/pUkr1YK00CeqD7TkiBQfTMUy3BIzfE0kG3qGhDmU2XC1uPbW2nRcxUWDfD7ES8Ufy4rtOQ== 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=CCZfzuBjKv7VLFWKeaFmIEw1p5M8Pnx/dp0ysrmte3Y=; b=Mnhgz9jug5+ie8QMOZtXozLCMIWg9NsBMN7XRbB6lHP9ZWJCx2Ahi+oYGgySbPlmKrUzrpAQF3a3QdZOP/B2Z3OvDxk33LwNozFYNWpEbGQ6ecY7mq426A2ux46NG9Sm2h8UBxyoxYGdRbBUQoBFbXZK/McD4lI6YjqVl5QttoXtQEi2iKSF7n+ywCmWJ6LkguOcqzaHTudHVNVNHx93HA/ENVrdhKu4A3KSeurLQM1p00OQVm3i93ZKqw12A9nMHXflsvXktEjohsCuXRUjtVOX/7lPvTkbBY56PfaBr/OMqfZwa8ODZpqWu4DvWiOrTJGpJG14KPPXFFxry1K/sQ== 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 AS8PR04MB8433.eurprd04.prod.outlook.com (2603:10a6:20b:407::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.23; Thu, 1 Aug 2024 10:53:42 +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.7828.021; Thu, 1 Aug 2024 10:53:42 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: ferruh.yigit@amd.com, Jun Yang Subject: [PATCH 10/17] net/dpaa: implement detailed packet parsing Date: Thu, 1 Aug 2024 16:23:06 +0530 Message-Id: <20240801105313.630280-11-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240801105313.630280-1-hemant.agrawal@nxp.com> References: <20240801105313.630280-1-hemant.agrawal@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2P153CA0026.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::13) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|AS8PR04MB8433:EE_ X-MS-Office365-Filtering-Correlation-Id: 816df697-e4ab-47ba-fc3d-08dcb2183509 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gtNx59mcwzC+hdgNLUw0Mzw69yNzvdU5lWMF7Sy3T1552fbAaqc9k1+BuboO?= =?us-ascii?Q?Loxc6C04HfKfpq/tO5ULtqfyRMiGbCkIygZMOq52yYAEoGJeGOXghjIOuWIr?= =?us-ascii?Q?TKGONFTidhoRW8yocW9vHITE9BE1sJ3Xg8TK/P4ju1cZ2vxWVtFEuxrda5xS?= =?us-ascii?Q?qXHVgOYXDrWT6rT3PLoWnvAf2vd1itFAUJZQcTKeKOH3WckBag6iq6y+OROe?= =?us-ascii?Q?8T18HWF3J1MHQ6KnAtXf3g04QXpyj+MYIUttBtfD/LMbX1u9abK3EiyPqSek?= =?us-ascii?Q?Tzb74XIOZunbhm9fmWnsIl41iRpSFnPVMcd7tAkvXQ1JsFi0eFA1aDE6/pCT?= =?us-ascii?Q?12+Qvn2enFiyn4vw948oOVG6p9XRx31V4VJ2jPCGjzaZEROC0lV45EoHKnF+?= =?us-ascii?Q?BjgiacHl1+WneqB8bKh1zQYXc66NGJD8N/DHzGQiOGWFtYvUsmVhvSYIc07Q?= =?us-ascii?Q?ewlnCKE21fZN65L3A0z23zg1CI2SOHJyC44cbA3pI+I78skOhlyJlND+fW9f?= =?us-ascii?Q?EOIKHyC+0BPZJOq2XvNrqwh2s6CQOafbgk84Drfgjc6ecKf3QhIH40v+h8pu?= =?us-ascii?Q?Vyw8dxk17eKWDz3LTP0Q6k4H2GXGak6l133FgyGZyeFIZ7rdDX+P51SmwLEa?= =?us-ascii?Q?BX/YEq+HPtadaA9EuyfHv9nGpfinGd49IGnPIXG8zu9RnTEYVetl3+zV39PE?= =?us-ascii?Q?HMzm/mZyhtuCJAO6pMybrKFHCBn3lz1cK02WrBiVNy59YmS7MGkI/G5rmH2T?= =?us-ascii?Q?ZU2uYm54C2b8667RR7fu551PIGjd/zy06JJ50E3LXTAKb+VoeIAZ0Qqay/WA?= =?us-ascii?Q?icvDlmcCIZYAqD1CbuSsAINtWeDKCs1JVMBU6dl/UciQpAkIY5z/ITPPozD0?= =?us-ascii?Q?oV3bts251WStbLEEFviCQQEDWVltCQmvVjzBIIP4FJ7w7jBCOWIdXUxfkGXx?= =?us-ascii?Q?iuIUmvWVi0fZwDxjH24ucHoxB9onIJQC6c8N56lL3x9sem6WF1zN/FV1y3mI?= =?us-ascii?Q?VPjyGQqfw0IwVwOvDUUU976lp1JpmuTZZ3VuwTVw+bPh7B72GHWAdVEJ1e9p?= =?us-ascii?Q?cyJZPKe2II11hthwdFyBxj9gZEkoPGuih3J3MMBKCf8+2ogril853QZknq8R?= =?us-ascii?Q?lhxcNokidu+H6hTbRP8hogW5xgOyVgJLU7XWU+8Ocbgk/Hd7t9eVRa0jEwFB?= =?us-ascii?Q?JdOKR+cru6Ncl333djTU1XE789NTUZDSPjid1OPyFQhjAB2jfwFg3MjYH/td?= =?us-ascii?Q?ZxEAe51O5UB8MvUkHIx1jr/oHLVCvn/Yv8NLG3CTy4XBWeKpdnjX8x4de5bF?= =?us-ascii?Q?8u7tF9F/nAEjpFnA3sapioTVydMz8j+v6OVSX2S7V+LEdoxcZp+lPLTl64uL?= =?us-ascii?Q?AR7NnbBP37CmHzqleCmo1fFreHpzFuojX2+VOC77B8/bnoFGGw=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)(376014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3mDLlULftnKNq3TiRXlmSb+OLR/TbhXBRMx4hM7ocCT57tXmOPl4xWEEhKbW?= =?us-ascii?Q?usJbrUew427rYkDDkoYtatzTT8pEY7rN0n/BMjtNif2WHfDAokKNem6TXqwf?= =?us-ascii?Q?8UNnv4EsZqWPjMA2ysE2cb+wQurssdlqAJDZEczsaqgMC2jxnsEcupewuM7C?= =?us-ascii?Q?Jd0UDVexN8bDn2z8jGCk7J4sO/IiDP76bNoYiICeQaIf90t8HruZbQiEygyw?= =?us-ascii?Q?qhEw2Eo9T0dZTlUIqBPGF3BTOBqGV/Bda0UZKO3rP2tLQ7N1rm6OI/4Itapz?= =?us-ascii?Q?IkxVbrVr2ssOO2ja+7KNV8tsi5Ter3QxRIQaJZNiZfV4UGzkQtj/upECZ8Mo?= =?us-ascii?Q?33/QdIIsw/sTv+bUe5Ud6o6gK3c56u50i6HaYC4Z4KcKtKWlpgBdn2Dnm0LM?= =?us-ascii?Q?flKtTIYZkraXOfTRRFfxxqqZ+jGZBID+io+9hoYLG3V/Dm29JS1DVbrKfyhp?= =?us-ascii?Q?3jXs9i29husgeMmONQZHi/dRebyCfNQDOyOm2wPdfmTdxVSh1lqZuO3/zcAl?= =?us-ascii?Q?0U+zOqyi0aZyo4bbjMpJ/94yBO+1pBltOb7wNFu4/oDy/H56/sdGmVZnnpXf?= =?us-ascii?Q?cU/8WKOVig1Lg+B/8t80E7Ik7PNZfiVJkkcee3pt7D7xX65YN/IOJBJJQE/Q?= =?us-ascii?Q?HjsP7BGwPdZb61o1sWnieZO8v+cvgOHQfW1QBwxhox6WvHVaGG5aY1rp5EJX?= =?us-ascii?Q?Qjk4ojvbo0+OlSya/mgP+3u50WWKKPV8cmB9tudTGSoWDdZ6jPMBVqsfbE9R?= =?us-ascii?Q?UN+J/QgH0RBfvJrhYHqU4p8JDOJz5Y4FOwbBFoN6Ra4h89xWoaL9t1Wmokli?= =?us-ascii?Q?d6sCGxQILiNv8xoPFc5vleLfFFjgeEj5VsD2m2DmQS0uiFG5CrWACzf3mmhn?= =?us-ascii?Q?ys/yvw0vlDhswzpOeVVUaS7c8XcGzXGZnoA6bcmxK5XSpsgg+4Nds7KkawHl?= =?us-ascii?Q?gsxaAf6077lokAntGv3O7/Al24FFXKqG0xaXwO6OThM9FygfkMnAFeVqg1fp?= =?us-ascii?Q?eQv3l8ZUC2WpbxXWpKjQklKYrlcXz/L6GYkUhPYOnOIB3fOLhcFMowgEnLRZ?= =?us-ascii?Q?bjMKkkvVQrkBWvelJmqIjxPvSUCLc+TZyMwFv1s4PSdpRXbIKqW4rxem630j?= =?us-ascii?Q?i4eQ5ltUam5oNKjodQVf8qeDy/87vyU5EXKY9Nd9AitIFEf/R5VCxeWZKyha?= =?us-ascii?Q?ka6vc/zfeSIKazQ5UCcRsUE7fDOkmI6l/sgnQAKglgOCQ7fMEYoLvquS/3no?= =?us-ascii?Q?p/mi58/LbyLo+Va/6gjBCmm9v67LQOMGCF1VH/do3kvfnzmhe8jpPe1pQBl7?= =?us-ascii?Q?CN+FtEddku2sPDLGtLVDlpUckRshjKjOPU1UrLPVQbm0rGVDbuNxl4aPvCdF?= =?us-ascii?Q?+79P9GtHfEzEn1YTJlLfSFWhJRJP7QczgKk4K/hj2FtI43P9ut46jgUFCx00?= =?us-ascii?Q?qY0tfJ7h6ccfSIhhDo3JaSQJCKXNveNCx2YKVS5ycj9bV4nDX7vVkDeuuBDs?= =?us-ascii?Q?GbVfqaV9wf1IKoYwQ9AwoA0Tz8EFTsM7/onSEKb3BUOkUSjbMwl3Fte14iP7?= =?us-ascii?Q?C+TTxpgX4meAf7tIQuTNM0ToMvflukBaZgksZQ+viciYANusztfvP0hppM1O?= =?us-ascii?Q?lg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 816df697-e4ab-47ba-fc3d-08dcb2183509 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2024 10:53:41.9702 (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: k0iWmESFZBU1ed9CQM5nihjtPu45NQVXr8K+hkdGuE3ZLo2F6tb6cKDLhgpw1zjgu+a3IoLprCD+ewbRs/NmSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8433 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_rxtx.c | 35 ++++++++- drivers/net/dpaa/dpaa_rxtx.h | 143 +++++++++++++++-------------------- 2 files changed, 92 insertions(+), 86 deletions(-) diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index 44d9bc1adb..588a78a50c 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) @@ -229,7 +256,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