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 ACFF845A79; Tue, 1 Oct 2024 13:05:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5D98F40A6F; Tue, 1 Oct 2024 13:04:05 +0200 (CEST) Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011032.outbound.protection.outlook.com [52.101.65.32]) by mails.dpdk.org (Postfix) with ESMTP id 4BE7D406BB for ; Tue, 1 Oct 2024 13:04:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=J1/26Dd0GxHa7MsuRdja9R9Lnw0wWFdtkcwfMWF8yxdITEcfu4uT3KXh5B8nfR0YbT8sZVmLRG++ESIRbxKuLAwzioxk6e5O4gPLHWOAWofgKCVUlmfsU/P4eOwf9mzn34IL9sxlZciqeEdUFNYFEAstHW0TElF2xHVIP1yUjgtrUH6JJAk2APAQy/A/32mi6QgOv44/KdducmMk9m8I6QyeNpmBvu+uK34d9Cjk8TCTdqlBk3bDaBhVAqjgobauPHhEDWGJZ0x6vZ78hlk9R9ys2gowBk3+55yeWR9bWxbp+FOQeME1L9vaDCSk59EKrFPGG176i5wyxdIgyPjYUg== 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=Facvryg3gua2XLRVJ8Ze8UgIg66Ubnhjvlqf5DvgOhr9bbtJRMU9WkYWzul4LrHyzgRJkL/K7Ho7EnAMVPbB0CiW60rEI1DtIYukDaPDYHt24qLEjoW3z0lWVdoo2Y2RfbFnuCt4I+cehR3p5DkI8kcnGoFG166H+3RyrWjtWmSmmvjfcpRO+neuOIpZc7xwVoxQDJGnZ9NpL9dp4Q5UTuRb7w/NGWC6oCtDRInhIUUP+79oiXK22bKpXLws6RtILI9U6/AmAM6zo354M2viVmN5pzycr64NCjp0fzZPwQrfMFFOD+A4WxJVhjZN6jiHq9KfGGuUN7fmgnALEHhBJw== 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=nFbYaBrxNXdvBE65lk2GKo3OxEEjH+exg9bmyvR9Ms0YTC/Cci0x9eWwQNi3BGEj2gBuJCJbsYHNi+tm+pY4X5oOoKg/upzlqFNX3nvQ25Uu1mXHkooJj6hrakpGbZexHQA28AkJsjDri+papevlhq9cJGAZgYdLWxFEufNxUs+blSZ5zhy7WIaRsqwJ3iQpS5NqXSxcGFFO/d8PG3zeVe71CwaQScl3dtPZv3IsZ9LQ3aei+HDPh3W+o2W95PpyEwF80SLE/1bgKewTJ2xYINm04NoOWa6kuTUuLgv2uSAcL+3XD+S3NV4UsiQybm3l9iCvgMVd6hG6JiOkGmeKmw== 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 PAXPR04MB8702.eurprd04.prod.outlook.com (2603:10a6:102:21d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.27; Tue, 1 Oct 2024 11:03:58 +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; Tue, 1 Oct 2024 11:03:58 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: ferruh.yigit@amd.com, Jun Yang Subject: [PATCH v5 11/18] net/dpaa: implement detailed packet parsing Date: Tue, 1 Oct 2024 16:33:18 +0530 Message-Id: <20241001110325.4173762-12-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241001110325.4173762-1-hemant.agrawal@nxp.com> References: <20240930121525.3452847-1-hemant.agrawal@nxp.com> <20241001110325.4173762-1-hemant.agrawal@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR02CA0086.apcprd02.prod.outlook.com (2603:1096:4:90::26) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|PAXPR04MB8702:EE_ X-MS-Office365-Filtering-Correlation-Id: cd6e3ee1-9755-4bc1-37e8-08dce208bfdf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zuOEA+Vi5oI1rnreaSJ8yuQXOwxpj3PcxE80VqoUlCHP7h3NKn3XDfVqrp1J?= =?us-ascii?Q?qRquEWr6GspApRVUAubr9BDC8wdIb3Eg9OBvzb0BogCQlLFrWW1/f67FW3zQ?= =?us-ascii?Q?5POaUFfsQ81mgJAtj2PXkBbAYFKoDJ/2Izwn6L9AL4Ctg3crBn5F9Pdy9fzy?= =?us-ascii?Q?nGdm0ezPi4s5RazGP/2R+FYJ6yeBVdMVPvVUlXFD2t9Aesec7PMg8nQ2GoDP?= =?us-ascii?Q?ZzfXN0xyKCDtLnzYsWLEDr5fHTVuEmmPPfashuJ4aBNQ/UomPtCGwX9iMdvG?= =?us-ascii?Q?NRy0BrVGCU0dcU1NV1wrNIpx/xsMuBAHnp5OaRdXqLPFtxGKwaze5Cdca7rS?= =?us-ascii?Q?jNNsspnaTj7oFAo2fEEO5DMpGgkK3QwuvScWK1HP857l9gyeM+nkUTETTRmb?= =?us-ascii?Q?Oi0ARcSlc76pxC8IPiTl04kI4Fvtktmx5HM0zaS8V2fzU3M17Uqvy9MrkCtd?= =?us-ascii?Q?yBUn6Mvu2TFPrCnPSlz1/gbnfx/4OQkB/2WZ/hXZgHCIjb+YOpasmNEBCpXS?= =?us-ascii?Q?vPChzdl28dUecVtnX9WnP5mSLISzQWb4ZPwW8kFLR9AU3WX2+oA54iVSSKz7?= =?us-ascii?Q?VIhAS1L8F9AZja9m9gxHF7UyX8ThJ2OR6SVWFhjEkUgMfhBGv8M0rtV/Qjqb?= =?us-ascii?Q?0R6gTShxRkO/D41rsUeWS4MJBNGMN3QN983ESy2hIEMl418pBICU7TSQ5IrH?= =?us-ascii?Q?hdgQFDbqO4Vj2GeOxiXI6UkI2HQJX3cSjpBtyLj42dq/0HGsBFcRS44gi13Z?= =?us-ascii?Q?ICjX9k/PqVYTr4qozBoYCezWw8g6+UXq6ZqCR2PHnT5mLlCe4Lqr/cDHnAdd?= =?us-ascii?Q?jhvOMTnMwYXE30be6OvE3oDJ6S8NomBGch1Syu3a8EunNxilv0Rplka61LRd?= =?us-ascii?Q?yB8fax6elkCoQHGVeMSFn7X7LcORxWe7xb7OhUjflsLcsnRUNncbhsKuvihv?= =?us-ascii?Q?0h3cYYTCVhRT9lnsP0TvDvXueyxudq8P0XwL7o9w3bLip7PaNK+SsL/xsEm7?= =?us-ascii?Q?6ABYLY+6pCQUfClVIXD2Le7uzr3OC7qCDujlKbB8pzAfskORvxAskyqe/9rA?= =?us-ascii?Q?+9dAGp8oo68VvyU9cL2TlaQv5v+zbv1t8ZvnrED4R8tH3Dy+Qpdougwt7tlC?= =?us-ascii?Q?UAipXdQ8F8CvXeZ84gClWbpBQkoy4EJw07QbwuPEkB3sjSH4owVd7WVnkAm0?= =?us-ascii?Q?xTbThZHCNf5KcnznIg2w13Mev51dN+L8PKGXBS/cibXFro9l9LIwjcM11uQ+?= =?us-ascii?Q?DaZiOSwy1Qc3xwT+jCLlBN4buA2tHMFR7+a9QWfyHpjVOWd10qivav5ra4N9?= =?us-ascii?Q?0Cnkizz+7KyAaULST4F4KecqLrqdQgPf24wiBcgJ8If/5g=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)(366016)(376014)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uxrmY8hDIvdtjT6rog6dZD/6D6oUsrDs4ymM1i8GAVBYg/BbTgn44xp0O46u?= =?us-ascii?Q?5R1N3ynWyEVu0tyJCTla8p/sVnzhco969wIC68CFDI9zZBhhPmAV3sc74RWJ?= =?us-ascii?Q?PxbbrMHdl7iLLC8DyaU0mcoA7NjwyTC7S3MtHjS35ghihReCkeKTuk0dACHn?= =?us-ascii?Q?eVYNJQr3Dywisa68QE6TMMGuctnGA0/SpCDnYNWAzjNWZNBfa6+XiugSxjZC?= =?us-ascii?Q?Rev8QcbV+X4DR3DN8fehR7fcHiingfqOQ4USkQLVagbHj6nUcQ4w9VhqjFSs?= =?us-ascii?Q?JvvtSm1bzBTeiUFUbTEHvAt9j7bIrhntoypGAfK/wPp8eG9d7kUORZR0Vz4N?= =?us-ascii?Q?sTuHxDWoeKOcUyFxmwvh8w7+1q4Rctn4jom83hqJ3yWzvLFmd49iMn/vNuiz?= =?us-ascii?Q?wU2p4hxRor/kRNMn08a/to14oKPOAeGQ7oRgub7xn9hlKrVsDkCBfIjnbpcq?= =?us-ascii?Q?gDrxVcTwXdQtc6fGZ3a99z2oOdCtVfzKVO0LWYB9vynK1Uod7HE2X+7fcHxk?= =?us-ascii?Q?Rlw1lzdEO3Wwv+dkKEZUfUCERtTyU6ZF6AZdswFAeJVyOjRplSGPQLNC7SYA?= =?us-ascii?Q?GwRkz6rxR032hSi5B8/mqUhflCxOoEcLsCENP/3xNP2opXWr5YuTVY8U42Pl?= =?us-ascii?Q?ayRVENXDToACGLPHRvUcDx8R1qz9eELwej7q4obMY1MAPvQla8QTVWqNIabQ?= =?us-ascii?Q?kylaljUqnYrkfMWyuIRHwLWywn9Ww6VToq+TKcFeZp2/02NlsDxEmVQm3uFt?= =?us-ascii?Q?0IeTtI6m1M3u+VYdkaF+tsapqS7I1S/k1t6naes4ZB5qyi72N4lBq6DfAImG?= =?us-ascii?Q?deQm9hI1nJHO4rzitJy0yk8/sltnJqC8n+QB16S57nC8NPcR6lTErqxvh+z4?= =?us-ascii?Q?15nQc1877ll5LuiOo3aEqqQbQYQdlz742kZx5Eff0J2xtn0hpGOjO5wxhCLz?= =?us-ascii?Q?z4oomt6JF6UoE5kVLHB+MNLTi1F94b3G8TynaEE3s/T7ZLV6gkCV0bnJw4Tl?= =?us-ascii?Q?KWikgV4pVt63YK1b5IcIeAlRHq2W63T3ss0Ro4bmHypu0D+FBiPDV/chBB+7?= =?us-ascii?Q?7CGWWeTmJroqzTvHcPfKp9auY8grdWHuPOPfHtDehM+qMHPXfHRNzyEaWw6o?= =?us-ascii?Q?xrjyNwPoQIkPzdxcJgr56QlhkfDcEVOScfec6Wx+/Z4j9fDfDcgXbBXfWIXR?= =?us-ascii?Q?iBI9MNz/migimjoePLokPZAVGX9aXZIVJzifiCpDaz/ufSj1JDB3KhGtEGdY?= =?us-ascii?Q?cJ/Y4GQ1YwjO/NoLvDMGJqm26buduX4+t+5S4Yde73wklW6SyGBvz+OtpFK2?= =?us-ascii?Q?tMWakGu7FUIvonr7K+kIgPNmOqYARv1n7/7ze3MUZ1FSgcFk2Xq9U2Wde/WE?= =?us-ascii?Q?C/fxbKFLzqm0zpigoovGYyb4XpYmgZrM9fLQRm6rUJQM/I/dcj6o7hYpM8B1?= =?us-ascii?Q?zuNYq3mRb08bR0ieMoKOZJAE9JwyRKbUINLsm8vEqpWGoZJ8cLFVMENOl4nW?= =?us-ascii?Q?cy/WqxM8lLm6x9Iv+JLoO5tQQy/JVvN/QRkyyYyisJ61oodus9pd6Geotsp8?= =?us-ascii?Q?UysO33//GqStz11v9Dd9aJoEpSm1ze5FIrIhxeJczhLTA/Ahhj0Kua0n8zOc?= =?us-ascii?Q?pw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd6e3ee1-9755-4bc1-37e8-08dce208bfdf X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2024 11:03:58.7725 (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: +GXRWuGMAgE36xvT4I59AL726H89gqFtYRYNbjLcNEyCsNnynoLr/jVUZK2aij4xqIvqFG03LLsAbDl8g2VKlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8702 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