From patchwork Sun Oct 8 12:44:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 29917 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E8B1B1B23A; Sun, 8 Oct 2017 14:46:24 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0068.outbound.protection.outlook.com [104.47.36.68]) by dpdk.org (Postfix) with ESMTP id 5127C1B27C for ; Sun, 8 Oct 2017 14:46:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=zKsoKWdiwXYE4iBrhUrx7aMr/3JLU73012qqupRcOvE=; b=HedhSq33n7hn3xp3kIKY0B8ejnpvObjaHo+9zAddqsOxuSjvlrLgYEO2gGRaV/pcCNvKAzTzM8WbuDrG7O2BNkEpNez5rPRs3Ue4Gd75UttNP7s6lDuftKAKFS6gxcDo5Q7X99R8y74u8Fcf9igvSSPF2m0myqLmkLd4OcNWdDM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (14.140.2.178) by BN6PR07MB3089.namprd07.prod.outlook.com (10.172.105.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sun, 8 Oct 2017 12:46:20 +0000 From: Santosh Shukla To: dev@dpdk.org Cc: ferruh.yigit@intel.com, jerin.jacob@caviumnetworks.com, Santosh Shukla Date: Sun, 8 Oct 2017 18:14:28 +0530 Message-Id: <20171008124430.1866-25-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171008124430.1866-1-santosh.shukla@caviumnetworks.com> References: <20170831145436.5397-1-jerin.jacob@caviumnetworks.com> <20171008124430.1866-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0113.INDPRD01.PROD.OUTLOOK.COM (10.174.56.157) To BN6PR07MB3089.namprd07.prod.outlook.com (10.172.105.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54222d1f-42dc-4500-8992-08d50e4a943d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BN6PR07MB3089; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 3:YuwXhwgD+0S69dIF6KPRA9zinmm6eAQE9St/AkvKNOJiODd764jwQKGq7QxVUeigVYU5JC8L2f8y28eli23mdeiGt2FGANGN767FdDFy4eSY2M157Xz2OyLSi1aZOzvbktOdpDdmLkiAeQGIKjx+8yhWMPLgJKf55K1lmFKzJwkQtMbk4wZzbrLzYVXsxmbH7rQiKnm3K70Zj/Y7ZO8Pc+nhG+p13OseDjeMBGQnGTMulLimBigmghe9ciaE21pf; 25:23ryeL7xA6V9XD2x2PJ47umzOK/BXfPpBghIGxR1p/iAWOEgIOwUJjIoga9WvEMpKh6ttFium9guY7nmC5TBi9lFD3UIPdQTs37d9C1lvOYF+8PT4Z0iyn7LQ7iNJQL+scw0IHRLxv9aDAopOI6Gl01fjTfaezsyZ7IB7ZwMCQjMEA+V9FDei9+fd+BsiOnUZJjf4BEPtOG/rzUp6uTfEEhSEVMRTL0N2I9+PRh/aqNuiCMQ6i8MmAiqYrd0ZN7K/HG0vBdPXD4ihLtWTE8udiVucreCDPatE9IbrZecf3fPOCsuekx+MR/rR0Ks4GAEcYWXBZTPzo5XhNC2WPPeOw==; 31:tN2VM4yGrzWq+Rikh39SkpJF/2GGDLNTs0OH66RTp1eJsRKwOXW5iRaDZIlwx7qT7GxsbE3HxfBeXl+1JAcqC1rZuU061+eXkynK4bIAWx7vGITD+YrdtgjrUky7aPT7tz0h5y6syrXcjgNNDr9N5oKyquSTM1IjixMA5/qb5N/Es6Yy4fsL1OpqAB/0xVI8MwCXdIrC5v7t8LGwXKrMG9XCJR58ZSEE2XVbK0E0QGo= X-MS-TrafficTypeDiagnostic: BN6PR07MB3089: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 20:NZtY1yfX70O2v4YU/2peHuQx5D4bbao+McU8/Nq8rjmMpDCa9BJNlhmx91cdHUhMu4xN1VkOiyJR25k9MJ9wi3Fmj3Ez+0koZf882lrqEFd4au0iy9NFC0omwhD5fPrdSMI4VBaKYvOTJ84UVqZld7soUTcMKrfW36CED76RcEfw+rQZdwlKPA5m6y0xOxxEPmatpxTxUa8K7Z7neFhgI8wFFSTL9c1mKiOJe5DORCLDi943bNroEe3pNd3UsWjNwqJzD8P+ZMQRDrSf2E3PEXZvfjBYVHXIG66bpC+ZutoeS7Q+zvE2lpIJEgRNhf2BatE35bME2vsDq2sItD7ZdxPK8NlkpIq0XQY7D1zB4QxmYMynJpjrK4Tr5xnPrUPTsITWcoFXiFVdzogQ/Vd6U6269EyzUbSSkQdizo6cHGKxxWs0f60ZAkI5DPwHM/rCzpOZfvENxl/aV4Jq+B+qvjxrMOAkFCcX6s8GKBTQClEGvLTg1ocZKDecW9Wd3fCJIOUdIFczJ2UTUpgXbkiDLQiJdrgfeGjFy5AXezdBTu7cwtOYLTLt05K5y+RC06HNrerU7wuWBkro/3UIf+xt93sGv92iw3wRdo0OkTgNcaE=; 4:/KAh7iXTnVElLgTA1jZLrx0TUa8Ju3GzkAe3b7jXkmQWW0/HUB0yOz0Ofh/zBwB6vjSmG2gfDoIZxwyZzL8N+7Ag4wMUrIXtSS7aay5Y/ubFEAXqXtniskQTEc85IEWNG90JycS7ZSbJigLcdrVR6Wjc8Tf7iNticjFYZOC/lqyDRPw+zZomyorei3FGGSfm+girwXSIcirG6F8m40u1ybUNnnK/WVzNW21eJoMCkmWMW291H85DvmLgu7nYJIwk X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(100000703101)(100105400095)(6041248)(20161123562025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR07MB3089; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR07MB3089; X-Forefront-PRVS: 0454444834 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(376002)(346002)(199003)(189002)(6916009)(42882006)(81166006)(575784001)(2950100002)(81156014)(8936002)(50226002)(6486002)(16526018)(189998001)(16586007)(316002)(6116002)(1076002)(6506006)(3846002)(7736002)(305945005)(8676002)(106356001)(105586002)(5009440100003)(53936002)(4326008)(66066001)(107886003)(47776003)(2906002)(5660300001)(6512007)(76176999)(5003940100001)(50986999)(97736004)(25786009)(101416001)(68736007)(48376002)(50466002)(478600001)(72206003)(2351001)(2361001)(33646002)(36756003)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3089; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3089; 23:l4U9Bj8gcpji6kUqMFSiAC0lW7yp7ITbPJe+AEhFw?= FiZ0PA48SMyrQMXQiPwZ73YWb0EpFElMPx+9Yq6tLHW64FMx6T1bc0uTsUy5xOc4fFsuyc/tMiHnspiFTmZnUV79ENFFQkB1OacOEZT5vhLQoUS1pgIIlPUEAh15gqXoqO4f41AynyB6fYjUkK6RsQsI1bUMkG5wRzewqK+rCzkD731rsLvZbLFlaFUWxBoYeiW5PoaIRZUumWGFGhohcbBxX567Ti5r0FVc9h3di7PtErFk9KvI+1GVSQO1i7ZZGNeynI88ONXaBs4e0pYR/TC+p58IRKG9KhrQ99LJzaicOKD1gaGqrUW9goQjVMKwiUoxnla+5zuVMixmxHt9htpob4Y2R8F6t5KHZj6eEgRIpGomDIUFJ2ie01Yunk2uwPYNj9LZ3XLtuI4y/0e50+W2BW+nED4RAlzx5fwOcwXmir2hy3hG9g6kUW/Q/yKMcvZPCnZ6i12KfQu2ijPOzHac8yYE65Vl6zacGvXbxbBToAK28+OJ0vdKAZ/qgWll3GCtHIGjroS7YYEddEH9cOCUi+IQFzposxpy3b+QdBYn98BFRXP5zlh/d6Ug5NCBvKHxrplVzY1+x4fLpuvHdpCRzQJhI+Q1cpQTNIKH3lbi53h0MADTTAcf0f4bKswRZ3ZB5VUFPe1GN8ao/GCN7RnQ5YIvx44U4mzr7bGY86FQvmcir38mpLaALUgxPoxoTDfQSTKmEx8vil3aaI1hbADg9B6YGOShdKl6ry7EERjkG070Bgbm4rfIxm1vEupUECQWZ9OnRVqa2HhTKzlDmxLPDcbRZgCPUAhDdighVkSOYHDI1eSIhpRyiIcQLS74n0HVnYjzZTEvyNFYew4qprR5bgHgL8wxzffuzlGYUiwY6CmuuR9PnoLbsfdDIxKpJhj5pGu3eIisOmKhv9U9UYTvOeh4JTQNnrUkN1RDUuVhDV0V4wlJpCv2oeODYKAHD7zGCLd5DRN9yaUMvxSxau1DtH84q5hpA6nTsx24kOg8HoXLTYDkLFX20mVKL6Y8EGbqkLHM0Gpr5qt6WnAdmpdET6rMoEwZxiyvkaV+9nJDMdpeX2YdbHBJAbL3jFEol69SSab+5m/nUtfxKVXkzs+yoJYIfp3eODLpJte3L9upUKwuErGZ/sH/FWm8CoQLfGPqoK6k0+yGeL2IXVPCkptaXcGp0NyVwq9oxvG0CFpr49NWhGgJcYIBYjHsB/QfkQ= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 6:va2yJxfpYTnl/mqKvVDRUTD+gKXMMkBKZeUm2c0MOrS7orOz66cHYw+kKJFAQ2CCjbS2MXFTMXquh0Cb7CYHA9GMeZMM4gOY97h2I9LiL6TOyyWmM+Hv/O426tfrEKRsRB7SHoUjX3iKFpEopfEV0/S8qJKTJcH3NkrthmJdTMzI993GuOEj89YbnSyg+y9R9GAidjPgIwSHGX+BZWiXKHvtWSE4TMvwONtpX9bVzglhO1oLIviGfYo8ZHNU2lAo9B2tNZ5oPSCr78S/A8OQWp2KKGpBsZekQLItmk3mvC2JKKzbDLO92+/ZHHCeKkweoObS1DbS4RY4wecQ8cbDVQ==; 5:E0hqFZ7vUtDo6bFfqaVibzJ8aOpMtDqfxmZGND/qCivRa2guSKbp81HllFEIh0sKcxwslplqEoqOEd3ExdiyjYasoZnrwVlBEd52S54VmJWTcvvK1bitDH9eU/pQ9UeXx2bGgWG7lNdzm5mLJgBeXw==; 24:/JUQf3CEmVTD3EkEUXq1aZEeyqMZFUsN7m3AoBVWmulEtf3yScSIaPp0bPf48KKrTfA5uRIMsZbjfzpKjIZpOOj67k1idrTa3cOSSTwIcD8=; 7:ZMDmDxNUEEe9t9S23sBOPVUOlyNkUv/9Tef7VHIcTV9REyUpABSREFzDck1fCgiXKKNDtGsHF/6yPkyRnEYJBLj1TCifdA6l5Lq5PcF4DnXlUy70KbcT2GTyc31w+2wAsQcfsPiDMTA34QdGkTgoIQkxYKqQA32ug2Z6cZfr9+yzJex0OgIgeQ0jNDyzBdB3QcKCMEG3sC09X69KXZOoEmun50xar0kvrAOanEOf7TY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2017 12:46:20.0824 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3089 Subject: [dpdk-dev] [PATCH v2 24/26] net/octeontx: add packet type parsing support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Jerin Jacob Mark Packet type parsing in features. Signed-off-by: Jerin Jacob Co-authored-by: Santosh Shukla Signed-off-by: Santosh Shukla --- doc/guides/nics/features/octeontx.ini | 1 + drivers/net/octeontx/octeontx_ethdev.c | 22 ++++++++ drivers/net/octeontx/octeontx_rxtx.c | 91 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) diff --git a/doc/guides/nics/features/octeontx.ini b/doc/guides/nics/features/octeontx.ini index cf9167df9..c92d5aa07 100644 --- a/doc/guides/nics/features/octeontx.ini +++ b/doc/guides/nics/features/octeontx.ini @@ -12,6 +12,7 @@ Jumbo frame = Y Promiscuous mode = Y Unicast MAC filter = P CRC offload = Y +Packet type parsing = Y Basic stats = Y Linux VFIO = Y ARMv8 = Y diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index c5e324346..cc0badb88 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -47,6 +47,7 @@ #include #include "octeontx_ethdev.h" +#include "octeontx_rxtx.h" #include "octeontx_logs.h" struct octeontx_vdev_init_params { @@ -840,6 +841,26 @@ octeontx_dev_rx_queue_release(void *rxq) rte_free(rxq); } +static const uint32_t * +octeontx_dev_supported_ptypes_get(struct rte_eth_dev *dev) +{ + static const uint32_t ptypes[] = { + RTE_PTYPE_L3_IPV4, + RTE_PTYPE_L3_IPV4_EXT, + RTE_PTYPE_L3_IPV6, + RTE_PTYPE_L3_IPV6_EXT, + RTE_PTYPE_L4_TCP, + RTE_PTYPE_L4_UDP, + RTE_PTYPE_L4_FRAG, + RTE_PTYPE_UNKNOWN + }; + + if (dev->rx_pkt_burst == octeontx_recv_pkts) + return ptypes; + + return NULL; +} + /* Initialize and register driver with DPDK Application */ static const struct eth_dev_ops octeontx_dev_ops = { .dev_configure = octeontx_dev_configure, @@ -856,6 +877,7 @@ static const struct eth_dev_ops octeontx_dev_ops = { .tx_queue_release = octeontx_dev_tx_queue_release, .rx_queue_setup = octeontx_dev_rx_queue_setup, .rx_queue_release = octeontx_dev_rx_queue_release, + .dev_supported_ptypes_get = octeontx_dev_supported_ptypes_get, }; /* Create Ethdev interface per BGX LMAC ports */ diff --git a/drivers/net/octeontx/octeontx_rxtx.c b/drivers/net/octeontx/octeontx_rxtx.c index 05f003649..0b158330c 100644 --- a/drivers/net/octeontx/octeontx_rxtx.c +++ b/drivers/net/octeontx/octeontx_rxtx.c @@ -47,6 +47,95 @@ #include "octeontx_rxtx.h" #include "octeontx_logs.h" +/* Packet type table */ +#define PTYPE_SIZE OCCTX_PKI_LTYPE_LAST + +static const uint32_t __rte_cache_aligned +ptype_table[PTYPE_SIZE][PTYPE_SIZE][PTYPE_SIZE] = { + [LC_NONE][LE_NONE][LF_NONE] = RTE_PTYPE_UNKNOWN, + [LC_NONE][LE_NONE][LF_IPSEC_ESP] = RTE_PTYPE_UNKNOWN, + [LC_NONE][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L4_FRAG, + [LC_NONE][LE_NONE][LF_IPCOMP] = RTE_PTYPE_UNKNOWN, + [LC_NONE][LE_NONE][LF_TCP] = RTE_PTYPE_L4_TCP, + [LC_NONE][LE_NONE][LF_UDP] = RTE_PTYPE_L4_UDP, + [LC_NONE][LE_NONE][LF_GRE] = RTE_PTYPE_TUNNEL_GRE, + [LC_NONE][LE_NONE][LF_UDP_GENEVE] = RTE_PTYPE_TUNNEL_GENEVE, + [LC_NONE][LE_NONE][LF_UDP_VXLAN] = RTE_PTYPE_TUNNEL_VXLAN, + [LC_NONE][LE_NONE][LF_NVGRE] = RTE_PTYPE_TUNNEL_NVGRE, + + [LC_IPV4][LE_NONE][LF_NONE] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_UNKNOWN, + [LC_IPV4][LE_NONE][LF_IPSEC_ESP] = + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L3_IPV4, + [LC_IPV4][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_FRAG, + [LC_IPV4][LE_NONE][LF_IPCOMP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_UNKNOWN, + [LC_IPV4][LE_NONE][LF_TCP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_TCP, + [LC_IPV4][LE_NONE][LF_UDP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_UDP, + [LC_IPV4][LE_NONE][LF_GRE] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GRE, + [LC_IPV4][LE_NONE][LF_UDP_GENEVE] = + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GENEVE, + [LC_IPV4][LE_NONE][LF_UDP_VXLAN] = + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_VXLAN, + [LC_IPV4][LE_NONE][LF_NVGRE] = + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_NVGRE, + + [LC_IPV4_OPT][LE_NONE][LF_NONE] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_UNKNOWN, + [LC_IPV4_OPT][LE_NONE][LF_IPSEC_ESP] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L3_IPV4, + [LC_IPV4_OPT][LE_NONE][LF_IPFRAG] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_FRAG, + [LC_IPV4_OPT][LE_NONE][LF_IPCOMP] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_UNKNOWN, + [LC_IPV4_OPT][LE_NONE][LF_TCP] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_TCP, + [LC_IPV4_OPT][LE_NONE][LF_UDP] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_UDP, + [LC_IPV4_OPT][LE_NONE][LF_GRE] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_GRE, + [LC_IPV4_OPT][LE_NONE][LF_UDP_GENEVE] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_GENEVE, + [LC_IPV4_OPT][LE_NONE][LF_UDP_VXLAN] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_VXLAN, + [LC_IPV4_OPT][LE_NONE][LF_NVGRE] = + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_NVGRE, + + [LC_IPV6][LE_NONE][LF_NONE] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_UNKNOWN, + [LC_IPV6][LE_NONE][LF_IPSEC_ESP] = + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L3_IPV4, + [LC_IPV6][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_FRAG, + [LC_IPV6][LE_NONE][LF_IPCOMP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_UNKNOWN, + [LC_IPV6][LE_NONE][LF_TCP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_TCP, + [LC_IPV6][LE_NONE][LF_UDP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_UDP, + [LC_IPV6][LE_NONE][LF_GRE] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GRE, + [LC_IPV6][LE_NONE][LF_UDP_GENEVE] = + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GENEVE, + [LC_IPV6][LE_NONE][LF_UDP_VXLAN] = + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_VXLAN, + [LC_IPV6][LE_NONE][LF_NVGRE] = + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_NVGRE, + [LC_IPV6_OPT][LE_NONE][LF_NONE] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_UNKNOWN, + [LC_IPV6_OPT][LE_NONE][LF_IPSEC_ESP] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L3_IPV4, + [LC_IPV6_OPT][LE_NONE][LF_IPFRAG] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_FRAG, + [LC_IPV6_OPT][LE_NONE][LF_IPCOMP] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_UNKNOWN, + [LC_IPV6_OPT][LE_NONE][LF_TCP] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_TCP, + [LC_IPV6_OPT][LE_NONE][LF_UDP] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_UDP, + [LC_IPV6_OPT][LE_NONE][LF_GRE] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_GRE, + [LC_IPV6_OPT][LE_NONE][LF_UDP_GENEVE] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_GENEVE, + [LC_IPV6_OPT][LE_NONE][LF_UDP_VXLAN] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_VXLAN, + [LC_IPV6_OPT][LE_NONE][LF_NVGRE] = + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_NVGRE, + +}; + static __rte_always_inline uint16_t __hot __octeontx_xmit_pkts(void *lmtline_va, void *ioreg_va, int64_t *fc_status_va, struct rte_mbuf *tx_pkt) @@ -128,6 +217,8 @@ octeontx_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) /* Get mbuf from wqe */ mbuf = (struct rte_mbuf *)((uintptr_t)wqe - OCTTX_PACKET_WQE_SKIP); + mbuf->packet_type = + ptype_table[wqe->s.w2.lcty][wqe->s.w2.lety][wqe->s.w2.lfty]; mbuf->data_off = RTE_PTR_DIFF(wqe->s.w3.addr, mbuf->buf_addr); mbuf->pkt_len = wqe->s.w1.len; mbuf->data_len = mbuf->pkt_len;