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 69682423B1; Thu, 12 Jan 2023 07:25:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 51D6640A7D; Thu, 12 Jan 2023 07:25:15 +0100 (CET) Received: from mail-vk1-f176.google.com (mail-vk1-f176.google.com [209.85.221.176]) by mails.dpdk.org (Postfix) with ESMTP id 5B316400EF for ; Thu, 12 Jan 2023 07:25:13 +0100 (CET) Received: by mail-vk1-f176.google.com with SMTP id t2so8330411vkk.9 for ; Wed, 11 Jan 2023 22:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tZEUX5XXZh8lTvzrjUmA1+LaJIvUle7vmPKFzcAAPbw=; b=fQTDiQQ8f1i31JCaRXtYdr8dDWbESmcdJwOf5sFtfmzXUtyhi1EcN6zg7S7xCfR/SD 0SMmZTumDD5iX5sqRYVaS4gG0xCAwy/e8jEcv/xaVQEe1ASiiUtjvGW4LyifnijN3iRY nyImVvpeWjly1BJZBQiNrV8L3mY9zjik0D2sJcRgWcQRVCUDbBQnRbdf9CIz+KdC8C46 U7K3g1JFfJqig9GhHZF6hNXbKl5yy+ZoYQWzt8xZl75s8+gQ5vomunSTMmEq+CI21CA1 8yiz+7B+w0xRJ98rRGUw60gyLSQ/+ZjuVzv0UfFlBGpQa/lzw83wPqGnunqDquAJhNks B28Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tZEUX5XXZh8lTvzrjUmA1+LaJIvUle7vmPKFzcAAPbw=; b=NeSuQrDc86LvgzhIn+1jsAaz2ue4/smv2l3ngH2vzZnNA14dh0f/1LZz1vrhZMfR3I DSSUhvFahmwUVr9FOM88kjqApYeI8g2oDsJo14xNodzM4bnaPUBlQ/sy1RX0Wq5XWzdL bumWr+nXOHrUAcy7Nb5RlrEzWc8/uhXwjwoJR59HmzKGiHOz8IPd/M6oQYmygeb3+DE1 FyJnBKmufEv4YSm3O9YNLTGBNrRQHQVj9A1OtJfzSsN+tPXbkawSSJCWeSo1k3rsFBpN FyMvIkxarRqxjTckja77Ag/cXkcueBCf4lq21ZwBMZJ+Snchb5Lj9KZzKx0MPMPBDgZf Tyvw== X-Gm-Message-State: AFqh2kp4cBoMdS+pLp0D0EdW+wX3AdUbbOJL4Gufps5fDF8Aw8CWx/mK VR7M2rLJ20AAb4hZ4/drupHj6i2SNtaLBSLdeBcek3zZv7w= X-Google-Smtp-Source: AMrXdXs1RV01v3973PK6pMCW+UlU9vaAd4DuX1aGG5X2RD4SpnqOXBpJtu+Pk2sC/HWVpBZENQqxFgbAvb3XJGbklNI= X-Received: by 2002:a1f:1c55:0:b0:3d5:d30f:81c2 with SMTP id c82-20020a1f1c55000000b003d5d30f81c2mr5287138vkc.14.1673504712556; Wed, 11 Jan 2023 22:25:12 -0800 (PST) MIME-Version: 1.0 References: <20221219131825.4100343-1-psatheesh@marvell.com> In-Reply-To: <20221219131825.4100343-1-psatheesh@marvell.com> From: Jerin Jacob Date: Thu, 12 Jan 2023 11:54:46 +0530 Message-ID: Subject: Re: [dpdk-dev] [PATCH] net/cnxk: support flow info API To: psatheesh@marvell.com Cc: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , dev@dpdk.org Content-Type: text/plain; charset="UTF-8" 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 On Mon, Dec 19, 2022 at 6:48 PM wrote: > > 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") Applied to dpdk-next-net-mrvl/for-next-net. Thanks > > 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 >