From patchwork Mon Jul 3 05:10:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satheesh Paul Antonysamy X-Patchwork-Id: 129181 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6870A42DBE; Mon, 3 Jul 2023 07:10:36 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3B78C40EF0; Mon, 3 Jul 2023 07:10:36 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 69F4240156 for ; Mon, 3 Jul 2023 07:10:34 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 362MenWS027554 for ; Sun, 2 Jul 2023 22:10:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=xuQbFPvslia6Z3i3nR/d/rmefsalhPFP/LqaivvJoRc=; b=RV/LjVgVexkmpD+AS0eG1yJmXAJNB4s8tmx8eWfyCH2w/3/1yJBanq/nqr+K5/Vj+/Gp /oa93mnxCbRWQ0V0QgyDgZRTwsvb0tJcWsfWf7QvGAXeKom4QQe5iBNIJZuXOS8YeTRg LtbdrKGXII68XWMrDUwcS+yjikY+Md6feyCNQHrTegRdkEjyWUrai5jDk3zpC82i8wAK H0wnTYydTynhCfpdKuHctQ0n0WpGNMuPvL/nDT/kUGQYgZOAvuHFlp08oc4GPE7QyXq/ e6qSq98fQzcElcGKWYxLMk4vq5LbfOH969BgUb9snccS/1M64NGm3SHAh7FKYVSidNu7 0g== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3rjknj3kag-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Sun, 02 Jul 2023 22:10:33 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Sun, 2 Jul 2023 22:10:31 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Sun, 2 Jul 2023 22:10:31 -0700 Received: from satheeshpaullabpc.. (unknown [10.28.34.33]) by maili.marvell.com (Postfix) with ESMTP id 5E63C3F7050; Sun, 2 Jul 2023 22:10:29 -0700 (PDT) From: To: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao CC: , Satheesh Paul , Jerin Jacob Subject: [dpdk-dev] [PATCH 1/2] common/cnxk: add IPv6 routing ext flow type for cnxk Date: Mon, 3 Jul 2023 10:40:25 +0530 Message-ID: <20230703051026.1843262-1-psatheesh@marvell.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Proofpoint-GUID: 3huIWUdKt1rbbuAnCRQ4TW1ytTU4z02G X-Proofpoint-ORIG-GUID: 3huIWUdKt1rbbuAnCRQ4TW1ytTU4z02G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-03_04,2023-06-30_01,2023-05-22_02 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 From: Kiran Kumar K Adding support to parse IPV6 routing ext flow type for cnxk. Signed-off-by: Kiran Kumar K Reviewed-by: Satheesh Paul Tested-by: Jerin Jacob --- drivers/common/cnxk/roc_npc.h | 17 +++++++++++++++++ drivers/common/cnxk/roc_npc_mcam_dump.c | 3 +++ drivers/common/cnxk/roc_npc_parse.c | 15 +++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/drivers/common/cnxk/roc_npc.h b/drivers/common/cnxk/roc_npc.h index 07e6634aa7..2ada774934 100644 --- a/drivers/common/cnxk/roc_npc.h +++ b/drivers/common/cnxk/roc_npc.h @@ -40,6 +40,7 @@ enum roc_npc_item_type { ROC_NPC_ITEM_TYPE_RAW, ROC_NPC_ITEM_TYPE_MARK, ROC_NPC_ITEM_TYPE_TX_QUEUE, + ROC_NPC_ITEM_TYPE_IPV6_ROUTING_EXT, ROC_NPC_ITEM_TYPE_END, }; @@ -131,6 +132,22 @@ struct roc_ipv6_fragment_ext { uint32_t id; /**< Packet ID */ } __plt_packed; +struct roc_ipv6_routing_ext { + uint8_t next_hdr; /**< Protocol, next header. */ + uint8_t hdr_len; /**< Header length. */ + uint8_t type; /**< Extension header type. */ + uint8_t segments_left; /**< Valid segments number. */ + union { + uint32_t flags; /**< Packet control data per type. */ + struct { + uint8_t last_entry; /**< The last_entry field of SRH */ + uint8_t flag; /**< Packet flag. */ + uint16_t tag; /**< Packet tag. */ + }; + }; + /* Next are 128-bit IPv6 address fields to describe segments. */ +} __plt_packed; + struct roc_flow_item_ipv6_ext { uint8_t next_hdr; /**< Next header. */ }; diff --git a/drivers/common/cnxk/roc_npc_mcam_dump.c b/drivers/common/cnxk/roc_npc_mcam_dump.c index a88e166fbe..01c4212567 100644 --- a/drivers/common/cnxk/roc_npc_mcam_dump.c +++ b/drivers/common/cnxk/roc_npc_mcam_dump.c @@ -645,6 +645,7 @@ npc_flow_hw_mcam_entry_dump(FILE *file, struct npc *npc, struct roc_npc_flow *fl struct nix_inl_dev *inl_dev = NULL; struct idev_cfg *idev; struct mbox *mbox; + uint8_t enabled; int rc = 0, i; idev = idev_get_cfg(); @@ -673,6 +674,7 @@ npc_flow_hw_mcam_entry_dump(FILE *file, struct npc *npc, struct roc_npc_flow *fl mbox_memcpy(mcam_data, mcam_read_rsp->entry_data.kw, sizeof(mcam_data)); mbox_memcpy(mcam_mask, mcam_read_rsp->entry_data.kw_mask, sizeof(mcam_data)); + enabled = mcam_read_rsp->enable; fprintf(file, "HW MCAM Data :\n"); @@ -680,6 +682,7 @@ npc_flow_hw_mcam_entry_dump(FILE *file, struct npc *npc, struct roc_npc_flow *fl fprintf(file, "\tDW%d :%016lX\n", i, mcam_data[i]); fprintf(file, "\tDW%d_Mask:%016lX\n", i, mcam_mask[i]); } + fprintf(file, "\tEnabled = 0x%x\n", enabled); fprintf(file, "\n"); mbox_put(mbox); diff --git a/drivers/common/cnxk/roc_npc_parse.c b/drivers/common/cnxk/roc_npc_parse.c index acaebaed21..ecd1b3e13b 100644 --- a/drivers/common/cnxk/roc_npc_parse.c +++ b/drivers/common/cnxk/roc_npc_parse.c @@ -719,8 +719,8 @@ npc_handle_ipv6ext_attr(const struct roc_npc_flow_item_ipv6 *ipv6_spec, static int npc_process_ipv6_item(struct npc_parse_state *pst) { - uint8_t ipv6_hdr_mask[sizeof(struct roc_ipv6_hdr) + sizeof(struct roc_ipv6_fragment_ext)]; - uint8_t ipv6_hdr_buf[sizeof(struct roc_ipv6_hdr) + sizeof(struct roc_ipv6_fragment_ext)]; + uint8_t ipv6_hdr_mask[2 * sizeof(struct roc_ipv6_hdr)]; + uint8_t ipv6_hdr_buf[2 * sizeof(struct roc_ipv6_hdr)]; const struct roc_npc_flow_item_ipv6 *ipv6_spec, *ipv6_mask; const struct roc_npc_item_info *pattern = pst->pattern; int offset = 0, rc = 0, lid, item_count = 0; @@ -804,6 +804,16 @@ npc_process_ipv6_item(struct npc_parse_state *pst) sizeof(struct roc_ipv6_fragment_ext)); break; + } else if (pattern->type == ROC_NPC_ITEM_TYPE_IPV6_ROUTING_EXT) { + item_count++; + ltype = NPC_LT_LC_IP6_EXT; + parse_info.len = sizeof(struct roc_ipv6_hdr) + pattern->size; + + if (pattern->spec) + memcpy(ipv6_hdr_buf + offset, pattern->spec, pattern->size); + if (pattern->mask) + memcpy(ipv6_hdr_mask + offset, pattern->mask, pattern->size); + break; } pattern++; @@ -867,6 +877,7 @@ npc_parse_lc(struct npc_parse_state *pst) case ROC_NPC_ITEM_TYPE_IPV6: case ROC_NPC_ITEM_TYPE_IPV6_EXT: case ROC_NPC_ITEM_TYPE_IPV6_FRAG_EXT: + case ROC_NPC_ITEM_TYPE_IPV6_ROUTING_EXT: return npc_process_ipv6_item(pst); case ROC_NPC_ITEM_TYPE_ARP_ETH_IPV4: lt = NPC_LT_LC_ARP; From patchwork Mon Jul 3 05:10:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satheesh Paul Antonysamy X-Patchwork-Id: 129182 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A017842DBE; Mon, 3 Jul 2023 07:10:41 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6532742BFE; Mon, 3 Jul 2023 07:10:41 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 564EF41148 for ; Mon, 3 Jul 2023 07:10:39 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 362Mxp8l027557 for ; Sun, 2 Jul 2023 22:10:38 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=dwtvcifxjbg7Y+rbsbvzvxTOBt2wKPPmYvG8vcYkUcM=; b=WZkda7WyAWoEWOyLpXRmdwSSSojsJUrZXwyxzqLKLORt+8XC+xaqIgQZd8b51iLgymZ4 /Vo4OkZVMVhF9+uS+i4eW2WgF1Ts/UraZtQKN2oguMVlhb9m08ynJQNaWhoaetQoJcP2 LTOZtxp4QM/BnU0IidWTXJ9KRUnFZtdKY5yUK1/63iwafKkvLI4Lm85iI8bA8Wb8rJae c+h28DOcUoHGrWmqBu8NefUIJbaDJ2B4XnkfwW55l7xKKDVCbeWxXlIAAEGXtL3CxgW9 gDpkMXINujlbkjBW4qcyXmS75avhY2qkyYYtIBvVZnFwaqJ0UgWOjTNLQLw838QvuNE9 /g== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3rjknj3kar-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Sun, 02 Jul 2023 22:10:38 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Sun, 2 Jul 2023 22:10:36 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Sun, 2 Jul 2023 22:10:36 -0700 Received: from satheeshpaullabpc.. (unknown [10.28.34.33]) by maili.marvell.com (Postfix) with ESMTP id B077A3F705C; Sun, 2 Jul 2023 22:10:34 -0700 (PDT) From: To: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao CC: , Satheesh Paul Subject: [dpdk-dev] [PATCH 2/2] net/cnxk: adding IPv6 routing ext flow type for cnxk Date: Mon, 3 Jul 2023 10:40:26 +0530 Message-ID: <20230703051026.1843262-2-psatheesh@marvell.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230703051026.1843262-1-psatheesh@marvell.com> References: <20230703051026.1843262-1-psatheesh@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 39MN3RQ0YLB3gNsWskwGALnh0v4Olwkw X-Proofpoint-ORIG-GUID: 39MN3RQ0YLB3gNsWskwGALnh0v4Olwkw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-03_04,2023-06-30_01,2023-05-22_02 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 From: Satheesh Paul Adding support to parse RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT rte_flow type for cnxk device. Signed-off-by: Kiran Kumar K Signed-off-by: Satheesh Paul --- doc/guides/nics/features/cnxk.ini | 1 + doc/guides/nics/features/cnxk_vf.ini | 1 + drivers/net/cnxk/cnxk_flow.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/doc/guides/nics/features/cnxk.ini b/doc/guides/nics/features/cnxk.ini index 838e781d6d..f5ff692c27 100644 --- a/doc/guides/nics/features/cnxk.ini +++ b/doc/guides/nics/features/cnxk.ini @@ -67,6 +67,7 @@ ipv4 = Y ipv6 = Y ipv6_ext = Y ipv6_frag_ext = Y +ipv6_routing_ext = Y mark = Y mpls = Y nvgre = Y diff --git a/doc/guides/nics/features/cnxk_vf.ini b/doc/guides/nics/features/cnxk_vf.ini index 470c45ce59..5579007831 100644 --- a/doc/guides/nics/features/cnxk_vf.ini +++ b/doc/guides/nics/features/cnxk_vf.ini @@ -58,6 +58,7 @@ ipv4 = Y ipv6 = Y ipv6_ext = Y ipv6_frag_ext = Y +ipv6_routing_ext = Y mark = Y mpls = Y nvgre = Y diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c index 3b8348ae9c..970daec035 100644 --- a/drivers/net/cnxk/cnxk_flow.c +++ b/drivers/net/cnxk/cnxk_flow.c @@ -59,6 +59,8 @@ const struct cnxk_rte_flow_term_info term[] = { sizeof(struct rte_flow_item_raw)}, [RTE_FLOW_ITEM_TYPE_MARK] = {ROC_NPC_ITEM_TYPE_MARK, sizeof(struct rte_flow_item_mark)}, + [RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT] = {ROC_NPC_ITEM_TYPE_IPV6_ROUTING_EXT, + sizeof(struct rte_flow_item_ipv6_routing_ext)}, [RTE_FLOW_ITEM_TYPE_TX_QUEUE] = {ROC_NPC_ITEM_TYPE_TX_QUEUE, sizeof(struct rte_flow_item_tx_queue)}};