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 BE005A0548; Wed, 3 Nov 2021 16:19:33 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC2F242743; Wed, 3 Nov 2021 16:19:33 +0100 (CET) Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) by mails.dpdk.org (Postfix) with ESMTP id 433B74273E for ; Wed, 3 Nov 2021 16:19:32 +0100 (CET) Received: by mail-io1-f48.google.com with SMTP id n128so3179972iod.9 for ; Wed, 03 Nov 2021 08:19:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2xW6xQoPgv5l15l5r8pfV+gDqkXHHIlhKBmWcT3lLqc=; b=anxxfEGp8twooQyF+O7IZYwldimaNNErEsodpgoaSONCdG4jaKiDg50Y+SqX2J5CBM 5i4It403xWk0EojI85ZEknYDoSVOzGr/hSutlPxdhYyfh0PJLtwqCdsMc3QzzO/bKu8m zWaTtloIEl2FxYbU8FZpnS9sRc8KDfXpzJf+pjkBt4rW35XbSvdUIkAbMPqdmzRU/HNt pPRdn8DaqAZJ3+1hmyu4sL5fg+gooD5BZrUtDawIKmm9a+xdCGdqvkofI1nG86meQcEo /PPvgw3Hnbd1mrWSJpbvmX1gv7rVa07xPQ2s6SaYySpYnHKiPbX99+WTaniKqBHJOIPX XRjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2xW6xQoPgv5l15l5r8pfV+gDqkXHHIlhKBmWcT3lLqc=; b=y3yVMIUzH+r36+ka2P3USfiHFBqmBpBgK6+Y3wxjj+p8bxzOw3TeqGX1oY7N+zf7Yv MwxCkBv3w53h2LRjvaj/kTTdq9AOJf+EUrsctHCxgbZb+VKK7LvujFaoFBgz4JKGMfsE 0lUa5aw9FUR49FXuVVrKagbhfMteyOf8inoPeNl8XHjJcih4Tw32Bc4T0uNC3QPMJDsI 2e+ABpHwl9jDBawN7yD5+DNi3y0Hc8uVK4vU+JBjGEM7X/zF7slp/npOwljP/RJaPFnQ 22Eqz1ldtpKM2/rIwCeoI15dXGS9FNgXm6Np2Gs50urlCVLBgzjP+YZg0QQakPhr+ELA kbiA== X-Gm-Message-State: AOAM533WFsEq9wWs6KxvZ2fllZ5PCbUfkacRYDVvv5iWNFdzuYTuUq5g lxTaXG9nXTIW58y3KHlzFhOi1n4/1qHzAov85tXDU0AVXYM= X-Google-Smtp-Source: ABdhPJyQjyJtiZrTa7zPWnK1xO4cK1yepjNfXjwY9kZGRp9ZHN2mRfysJFUh4CbY773ueTjdL5Y1Y0vSPfjRlTIaKG4= X-Received: by 2002:a02:a311:: with SMTP id q17mr14052378jai.15.1635952771567; Wed, 03 Nov 2021 08:19:31 -0700 (PDT) MIME-Version: 1.0 References: <20211102055802.1801583-1-rkudurumalla@marvell.com> <20211102055802.1801583-2-rkudurumalla@marvell.com> In-Reply-To: <20211102055802.1801583-2-rkudurumalla@marvell.com> From: Jerin Jacob Date: Wed, 3 Nov 2021 20:49:05 +0530 Message-ID: To: Rakesh Kudurumalla , Ferruh Yigit Cc: Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , dpdk-dev Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH 2/2] net/cnxk: integrate bpfcount get MBOX interface 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 Sender: "dev" On Tue, Nov 2, 2021 at 11:29 AM Rakesh Kudurumalla wrote: > > Bpf count is updated in meter capabilities during device > initialization using mbox interface > > Signed-off-by: Rakesh Kudurumalla Updated the commit to: net/cnxk: integrate BPF count get mailbox Bandwidth profile count is updated in meter capabilities during device initialization using mbox interface. Signed-off-by: Rakesh Kudurumalla Acked-by: Jerin Jacob Acked-by: Jerin Jacob Applied to dpdk-next-net-mrvl/for-next-net. Thanks > --- > drivers/net/cnxk/cn10k_rte_flow.c | 2 +- > drivers/net/cnxk/cnxk_ethdev.c | 4 ++- > drivers/net/cnxk/cnxk_ethdev.h | 1 + > drivers/net/cnxk/cnxk_ethdev_mtr.c | 39 ++++++++++++++++++++++++------ > 4 files changed, 37 insertions(+), 9 deletions(-) > > diff --git a/drivers/net/cnxk/cn10k_rte_flow.c b/drivers/net/cnxk/cn10k_rte_flow.c > index dff4c7746c..b830abe63e 100644 > --- a/drivers/net/cnxk/cn10k_rte_flow.c > +++ b/drivers/net/cnxk/cn10k_rte_flow.c > @@ -249,7 +249,7 @@ cn10k_flow_destroy(struct rte_eth_dev *eth_dev, struct rte_flow *rte_flow, > > mtr_id = flow->mtr_id; > rc = cnxk_flow_destroy(eth_dev, flow, error); > - if (!rc) { > + if (!rc && mtr_id != ROC_NIX_MTR_ID_INVALID) { > rc = cn10k_mtr_destroy(eth_dev, mtr_id); > if (rc) { > rte_flow_error_set(error, ENXIO, > diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c > index db54468dbc..a7d9978d70 100644 > --- a/drivers/net/cnxk/cnxk_ethdev.c > +++ b/drivers/net/cnxk/cnxk_ethdev.c > @@ -730,11 +730,13 @@ nix_free_queue_mem(struct cnxk_eth_dev *dev) > static int > nix_ingress_policer_setup(struct cnxk_eth_dev *dev) > { > + struct rte_eth_dev *eth_dev = dev->eth_dev; > + > TAILQ_INIT(&dev->mtr_profiles); > TAILQ_INIT(&dev->mtr_policy); > TAILQ_INIT(&dev->mtr); > > - return 0; > + return nix_mtr_capabilities_init(eth_dev); > } > > static int > diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h > index 7e4939f0b9..d7c4b3e319 100644 > --- a/drivers/net/cnxk/cnxk_ethdev.h > +++ b/drivers/net/cnxk/cnxk_ethdev.h > @@ -590,6 +590,7 @@ struct cnxk_meter_node *nix_get_mtr(struct rte_eth_dev *eth_dev, > uint32_t cur_id); > int nix_mtr_level_update(struct rte_eth_dev *eth_dev, uint32_t id, > uint32_t level); > +int nix_mtr_capabilities_init(struct rte_eth_dev *eth_dev); > int nix_mtr_configure(struct rte_eth_dev *eth_dev, uint32_t id); > int nix_mtr_connect(struct rte_eth_dev *eth_dev, uint32_t id); > int nix_mtr_destroy(struct rte_eth_dev *eth_dev, uint32_t id, > diff --git a/drivers/net/cnxk/cnxk_ethdev_mtr.c b/drivers/net/cnxk/cnxk_ethdev_mtr.c > index 22c85336d9..39d8563826 100644 > --- a/drivers/net/cnxk/cnxk_ethdev_mtr.c > +++ b/drivers/net/cnxk/cnxk_ethdev_mtr.c > @@ -28,7 +28,6 @@ static const enum roc_nix_bpf_level_flag lvl_map[] = {ROC_NIX_BPF_LEVEL_F_LEAF, > ROC_NIX_BPF_LEVEL_F_TOP}; > > static struct rte_mtr_capabilities mtr_capa = { > - .n_max = NIX_MTR_COUNT_MAX, > .n_shared_max = NIX_MTR_COUNT_PER_FLOW, > /* .identical = , */ > .shared_identical = true, > @@ -36,11 +35,7 @@ static struct rte_mtr_capabilities mtr_capa = { > .chaining_n_mtrs_per_flow_max = NIX_MTR_COUNT_PER_FLOW, > .chaining_use_prev_mtr_color_supported = true, > .chaining_use_prev_mtr_color_enforced = true, > - .meter_srtcm_rfc2697_n_max = NIX_MTR_COUNT_MAX, > - .meter_trtcm_rfc2698_n_max = NIX_MTR_COUNT_MAX, > - .meter_trtcm_rfc4115_n_max = NIX_MTR_COUNT_MAX, > .meter_rate_max = NIX_BPF_RATE_MAX / 8, /* Bytes per second */ > - .meter_policy_n_max = NIX_MTR_COUNT_MAX, > .color_aware_srtcm_rfc2697_supported = true, > .color_aware_trtcm_rfc2698_supported = true, > .color_aware_trtcm_rfc4115_supported = true, > @@ -185,12 +180,33 @@ cnxk_nix_mtr_capabilities_get(struct rte_eth_dev *dev, > struct rte_mtr_capabilities *capa, > struct rte_mtr_error *error) > { > + struct cnxk_eth_dev *eth_dev = cnxk_eth_pmd_priv(dev); > + uint16_t count[ROC_NIX_BPF_LEVEL_MAX] = {0}; > + uint8_t lvl_mask = ROC_NIX_BPF_LEVEL_F_LEAF | ROC_NIX_BPF_LEVEL_F_MID | > + ROC_NIX_BPF_LEVEL_F_TOP; > + struct roc_nix *nix = ð_dev->nix; > + int rc; > + int i; > + > RTE_SET_USED(dev); > > if (!capa) > return -rte_mtr_error_set(error, EINVAL, > - RTE_MTR_ERROR_TYPE_MTR_PARAMS, NULL, > - "NULL input parameter"); > + RTE_MTR_ERROR_TYPE_MTR_PARAMS, NULL, > + "NULL input parameter"); > + > + rc = roc_nix_bpf_count_get(nix, lvl_mask, count); > + if (rc) > + return rc; > + > + for (i = 0; i < ROC_NIX_BPF_LEVEL_MAX; i++) > + mtr_capa.n_max += count[i]; > + > + mtr_capa.meter_srtcm_rfc2697_n_max = mtr_capa.n_max; > + mtr_capa.meter_trtcm_rfc2698_n_max = mtr_capa.n_max; > + mtr_capa.meter_trtcm_rfc4115_n_max = mtr_capa.n_max; > + mtr_capa.meter_policy_n_max = mtr_capa.n_max; > + > *capa = mtr_capa; > return 0; > } > @@ -1339,3 +1355,12 @@ nix_mtr_color_action_validate(struct rte_eth_dev *eth_dev, uint32_t id, > > return 0; > } > + > +int > +nix_mtr_capabilities_init(struct rte_eth_dev *eth_dev) > +{ > + struct rte_mtr_capabilities capa; > + struct rte_mtr_error error; > + > + return cnxk_nix_mtr_capabilities_get(eth_dev, &capa, &error); > +} > -- > 2.25.1 >