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 31AA3A00C5; Mon, 19 Dec 2022 14:18:34 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE27940685; Mon, 19 Dec 2022 14:18:33 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 90D2C40146 for ; Mon, 19 Dec 2022 14:18:32 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BJAR3Re006554 for ; Mon, 19 Dec 2022 05:18:31 -0800 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=Uu5s7J+9MXmrJi8tMo9Gl0K5myjC05kECZjdg4h8hRI=; b=Hbgt/frznIk4J8+Me9CIZbpdNU0Q4gE/GwukaiB0tSl/8jKMN47pETnv3oR630/9ogcV LTTMiiTT8b4AsPQgIGnGfJniQLZ/mDqpJAWrPBvTpFwhINEl5XD6DjlkStoVlcoDS1Ki yNW41Dn49t9NwNWMwpVsQpXBCwuVS0kOjkzYTg+S1W/AeLwQ6Iszvv6q0Pr26/+1ulMY 3vDTJxkTmHUcoVbJjhWQinhRBoKT0/KWwRCVTTEIEyMdtnZcAWZushIP/TSwc/TTgkaa xZQgoQuVYXvidN5HL4rlD438KypTR/fyOYZ0fcX/IHNJedh+057RKhPTFlMGN9S3A4mr 6g== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3mjnanrspc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Mon, 19 Dec 2022 05:18:31 -0800 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.42; Mon, 19 Dec 2022 05:18:29 -0800 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.42 via Frontend Transport; Mon, 19 Dec 2022 05:18:29 -0800 Received: from satheeshpaullabpc.. (unknown [10.28.34.33]) by maili.marvell.com (Postfix) with ESMTP id EA12B3F7085; Mon, 19 Dec 2022 05:18:27 -0800 (PST) From: To: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao CC: , Satheesh Paul Subject: [dpdk-dev] [PATCH] net/cnxk: support flow info API Date: Mon, 19 Dec 2022 18:48:25 +0530 Message-ID: <20221219131825.4100343-1-psatheesh@marvell.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: CA_7NLCkDRVti0vTCKXYx_FbT-UUmff4 X-Proofpoint-ORIG-GUID: CA_7NLCkDRVti0vTCKXYx_FbT-UUmff4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-19_01,2022-12-15_02,2022-06-22_01 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 Implement rte_flow_info_get API to get the maximum number of counters and meters. Signed-off-by: Satheesh Paul Reviewed-by: Kiran Kumar K --- Depends-on: patch-26075 ("common/cnxk: fix dual VLAN parsing issue") drivers/net/cnxk/cn10k_ethdev.c | 1 + drivers/net/cnxk/cn10k_flow.c | 16 ++++++++++++++++ drivers/net/cnxk/cn10k_flow.h | 8 ++++++-- drivers/net/cnxk/cn9k_ethdev.c | 1 + drivers/net/cnxk/cn9k_flow.c | 15 +++++++++++++++ drivers/net/cnxk/cn9k_flow.h | 10 ++++++---- drivers/net/cnxk/cnxk_ethdev.h | 1 + drivers/net/cnxk/cnxk_ethdev_mtr.c | 1 - 8 files changed, 46 insertions(+), 7 deletions(-) diff --git a/drivers/net/cnxk/cn10k_ethdev.c b/drivers/net/cnxk/cn10k_ethdev.c index 4658713591..ef1637ec08 100644 --- a/drivers/net/cnxk/cn10k_ethdev.c +++ b/drivers/net/cnxk/cn10k_ethdev.c @@ -754,6 +754,7 @@ npc_flow_ops_override(void) /* Update platform specific ops */ cnxk_flow_ops.create = cn10k_flow_create; cnxk_flow_ops.destroy = cn10k_flow_destroy; + cnxk_flow_ops.info_get = cn10k_flow_info_get; } static int diff --git a/drivers/net/cnxk/cn10k_flow.c b/drivers/net/cnxk/cn10k_flow.c index 7df879a2bb..2ce9e1de74 100644 --- a/drivers/net/cnxk/cn10k_flow.c +++ b/drivers/net/cnxk/cn10k_flow.c @@ -207,6 +207,22 @@ cn10k_flow_create(struct rte_eth_dev *eth_dev, const struct rte_flow_attr *attr, return (struct rte_flow *)flow; } +int +cn10k_flow_info_get(struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, + struct rte_flow_queue_info *queue_info, struct rte_flow_error *err) +{ + RTE_SET_USED(dev); + RTE_SET_USED(err); + + memset(port_info, 0, sizeof(*port_info)); + memset(queue_info, 0, sizeof(*queue_info)); + + port_info->max_nb_counters = CN10K_NPC_COUNTERS_MAX; + port_info->max_nb_meters = CNXK_NIX_MTR_COUNT_MAX; + + return 0; +} + int cn10k_flow_destroy(struct rte_eth_dev *eth_dev, struct rte_flow *rte_flow, struct rte_flow_error *error) diff --git a/drivers/net/cnxk/cn10k_flow.h b/drivers/net/cnxk/cn10k_flow.h index f64fcf2a5e..316b74e6a6 100644 --- a/drivers/net/cnxk/cn10k_flow.h +++ b/drivers/net/cnxk/cn10k_flow.h @@ -6,12 +6,16 @@ #include -struct rte_flow *cn10k_flow_create(struct rte_eth_dev *dev, - const struct rte_flow_attr *attr, +struct rte_flow *cn10k_flow_create(struct rte_eth_dev *dev, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error); int cn10k_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow, struct rte_flow_error *error); +int cn10k_flow_info_get(struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, + struct rte_flow_queue_info *queue_info, struct rte_flow_error *err); + +#define CN10K_NPC_COUNTERS_MAX 512 + #endif /* __CN10K_RTE_FLOW_H__ */ diff --git a/drivers/net/cnxk/cn9k_ethdev.c b/drivers/net/cnxk/cn9k_ethdev.c index 3b702d9696..f08e986bd1 100644 --- a/drivers/net/cnxk/cn9k_ethdev.c +++ b/drivers/net/cnxk/cn9k_ethdev.c @@ -674,6 +674,7 @@ npc_flow_ops_override(void) /* Update platform specific ops */ cnxk_flow_ops.create = cn9k_flow_create; cnxk_flow_ops.destroy = cn9k_flow_destroy; + cnxk_flow_ops.info_get = cn9k_flow_info_get; } static int diff --git a/drivers/net/cnxk/cn9k_flow.c b/drivers/net/cnxk/cn9k_flow.c index 15ccdf8919..a418af185d 100644 --- a/drivers/net/cnxk/cn9k_flow.c +++ b/drivers/net/cnxk/cn9k_flow.c @@ -54,3 +54,18 @@ cn9k_flow_destroy(struct rte_eth_dev *eth_dev, struct rte_flow *rte_flow, return cnxk_flow_destroy(eth_dev, flow, error); } + +int +cn9k_flow_info_get(struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, + struct rte_flow_queue_info *queue_info, struct rte_flow_error *err) +{ + RTE_SET_USED(dev); + RTE_SET_USED(err); + + memset(port_info, 0, sizeof(*port_info)); + memset(queue_info, 0, sizeof(*queue_info)); + + port_info->max_nb_counters = CN9K_NPC_COUNTERS_MAX; + + return 0; +} diff --git a/drivers/net/cnxk/cn9k_flow.h b/drivers/net/cnxk/cn9k_flow.h index 43d59e1eb2..26f93ea204 100644 --- a/drivers/net/cnxk/cn9k_flow.h +++ b/drivers/net/cnxk/cn9k_flow.h @@ -6,12 +6,14 @@ #include -struct rte_flow *cn9k_flow_create(struct rte_eth_dev *dev, - const struct rte_flow_attr *attr, +struct rte_flow *cn9k_flow_create(struct rte_eth_dev *dev, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error); -int cn9k_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow, - struct rte_flow_error *error); +int cn9k_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow, struct rte_flow_error *error); +int cn9k_flow_info_get(struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, + struct rte_flow_queue_info *queue_info, struct rte_flow_error *err); + +#define CN9K_NPC_COUNTERS_MAX 512 #endif /* __CN9K_RTE_FLOW_H__ */ diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h index 651ef45ea8..46917bb5d4 100644 --- a/drivers/net/cnxk/cnxk_ethdev.h +++ b/drivers/net/cnxk/cnxk_ethdev.h @@ -112,6 +112,7 @@ /* Default mark value used when none is provided. */ #define CNXK_FLOW_ACTION_FLAG_DEFAULT 0xffff +#define CNXK_NIX_MTR_COUNT_MAX 73 /* 64(leaf) + 8(mid) + 1(top) */ /* Default cycle counter mask */ #define CNXK_CYCLECOUNTER_MASK 0xffffffffffffffffULL diff --git a/drivers/net/cnxk/cnxk_ethdev_mtr.c b/drivers/net/cnxk/cnxk_ethdev_mtr.c index 0fa18f01c7..dcfa4223d5 100644 --- a/drivers/net/cnxk/cnxk_ethdev_mtr.c +++ b/drivers/net/cnxk/cnxk_ethdev_mtr.c @@ -5,7 +5,6 @@ #include "cnxk_ethdev.h" #include -#define NIX_MTR_COUNT_MAX 73 /* 64(leaf) + 8(mid) + 1(top) */ #define NIX_MTR_COUNT_PER_FLOW 3 /* 1(leaf) + 1(mid) + 1(top) */ #define NIX_BPF_STATS_MASK_ALL \ -- 2.35.3