From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 75E63A04B5; Tue, 27 Oct 2020 05:45:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 70A1E2B9D; Tue, 27 Oct 2020 05:45:00 +0100 (CET) Received: from mail-oo1-f68.google.com (mail-oo1-f68.google.com [209.85.161.68]) by dpdk.org (Postfix) with ESMTP id 468B11D9E for ; Tue, 27 Oct 2020 05:44:58 +0100 (CET) Received: by mail-oo1-f68.google.com with SMTP id f25so27288oou.4 for ; Mon, 26 Oct 2020 21:44:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vZs2afR4kmNEEljdVC3ZtSuIBXIPfao1n+vE8foaR6I=; b=HKo52bGVLJ5nMmAQqNnTbAI2tgWPvRK9zjo69WRXAcc5lpjOYGNoggkzEu3qY/0Ben 9FnOigTq40+MBru9DmlG/Yp7tscpFnpwpvg2/JJBU2jdch09dM7twOjjzLgsor3jP8Px ZqaMWfgn7SgJiuFu8CkxJep+3aN+JRUw55+mc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=vZs2afR4kmNEEljdVC3ZtSuIBXIPfao1n+vE8foaR6I=; b=rahelWdj4jq8gZQ8rTMMXGDg9XU6gBKWQEihD8uyp45GsTFCiio9COG8VVh1LmiEz4 hAZwCcSwjO2gKtnEQcO0DBiDU5y/GxHBRf+llqiyCDL9vHoXpvcwwU8wF60eNUSDr0Of 40XND9nacsIbOcMlJOI1PKioqMr/ogSKTssAC+/f/iSoPYLoQgecew8WhbKQuCrnBHL7 Ps9lrVK5I2ZRBk8EQ11xx7oUnaYmVS4mhmyb4zrzPHaxiJsj0BCcAOTYF8IUnACLudxL xIFNOUcYOiCV29/iPCOkjddy1+Myni/s38q1QglN3rOF4nXPVIIpmVBOFVYKtrjBjsbU OEiw== X-Gm-Message-State: AOAM5307Yb/dKPqHdui20PAovCjdjaCUFz/y/f1ukSlj8RlFgYzvI01J 9SKWkaJxGXW+fRVq/MCncvD26HzMwhunT+5eeXg07g== X-Google-Smtp-Source: ABdhPJxCHnHgjLB9iiVLAPvPhCazqiJvuh/IWs6ZRA/s3xdLLuYqyXFkkY3nZsOlrY7axEx9rrcauLXmG7OkzT2elpE= X-Received: by 2002:a4a:2f58:: with SMTP id p85mr302207oop.52.1603773896257; Mon, 26 Oct 2020 21:44:56 -0700 (PDT) MIME-Version: 1.0 References: <20201026052105.1561859-1-thomas@monjalon.net> <20201026222013.2147904-1-thomas@monjalon.net> <20201026222013.2147904-9-thomas@monjalon.net> In-Reply-To: <20201026222013.2147904-9-thomas@monjalon.net> From: Ajit Khaparde Date: Mon, 26 Oct 2020 21:44:40 -0700 Message-ID: To: Thomas Monjalon Cc: dpdk-dev , Ferruh Yigit , David Marchand , Bruce Richardson , Olivier Matz , Andrew Rybchenko , Akhil Goyal , Somnath Kotur Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v2 08/15] net/bnxt: switch CFA code to dynamic mbuf field 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" On Mon, Oct 26, 2020 at 3:20 PM Thomas Monjalon wrote: > > The CFA code from mark was stored in the deprecated mbuf field udata64. > It is moved to a dynamic field in order to allow removal of udata64. > > Note: the new field has 32 bits, smaller than udata64. > > Signed-off-by: Thomas Monjalon Acked-by: Ajit Khaparde > > --- > drivers/net/bnxt/bnxt_ethdev.c | 19 +++++++++++++++++++ > drivers/net/bnxt/bnxt_rxr.c | 2 +- > drivers/net/bnxt/bnxt_rxr.h | 5 +++++ > drivers/net/bnxt/rte_pmd_bnxt.h | 3 +++ > 4 files changed, 28 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > index 1c7d1b758d..1090d28341 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -31,6 +31,7 @@ > #include "bnxt_nvm_defs.h" > #include "bnxt_tf_common.h" > #include "ulp_flow_db.h" > +#include "rte_pmd_bnxt.h" > > #define DRV_MODULE_NAME "bnxt" > static const char bnxt_version[] = > @@ -163,6 +164,8 @@ static const char *const bnxt_dev_args[] = { > */ > #define BNXT_DEVARG_REP_FC_F2R_INVALID(rep_fc_f2r) ((rep_fc_f2r) > 1) > > +int bnxt_cfa_code_dynfield_offset; > + > /* > * max_num_kflows must be >= 32 > * and must be a power-of-2 supported value > @@ -6021,6 +6024,22 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused) > pci_dev->id.device_id == BROADCOM_DEV_ID_58802_VF) > bp->flags |= BNXT_FLAG_STINGRAY; > > + if (BNXT_TRUFLOW_EN(bp)) { > + /* extra mbuf field is required to store CFA code from mark */ > + static const struct rte_mbuf_dynfield bnxt_cfa_code_dynfield_desc = { > + .name = RTE_PMD_BNXT_CFA_CODE_DYNFIELD_NAME, > + .size = sizeof(BNXT_CFA_CODE_DYNFIELD_TYPE), > + .align = __alignof__(BNXT_CFA_CODE_DYNFIELD_TYPE), > + }; > + bnxt_cfa_code_dynfield_offset = > + rte_mbuf_dynfield_register(&bnxt_cfa_code_dynfield_desc); > + if (bnxt_cfa_code_dynfield_offset < 0) { > + PMD_DRV_LOG(ERR, > + "Failed to register mbuf field for TruFlow mark\n"); > + return -rte_errno; > + } > + } > + > rc = bnxt_init_board(eth_dev); > if (rc) { > PMD_DRV_LOG(ERR, > diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c > index 039217fa60..7156ce7dd8 100644 > --- a/drivers/net/bnxt/bnxt_rxr.c > +++ b/drivers/net/bnxt/bnxt_rxr.c > @@ -606,7 +606,7 @@ bnxt_ulp_set_mark_in_mbuf(struct bnxt *bp, struct rx_pkt_cmpl_hi *rxcmp1, > return mark_id; > /* Got the mark, write it to the mbuf and return */ > mbuf->hash.fdir.hi = mark_id; > - mbuf->udata64 = (cfa_code & 0xffffffffull) << 32; > + BNXT_CFA_CODE_DYNFIELD(mbuf) = cfa_code & 0xffffffffull; > mbuf->hash.fdir.id = rxcmp1->cfa_code; > mbuf->ol_flags |= PKT_RX_FDIR | PKT_RX_FDIR_ID; > return mark_id; > diff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h > index b874e54a8c..e01d3e4f18 100644 > --- a/drivers/net/bnxt/bnxt_rxr.h > +++ b/drivers/net/bnxt/bnxt_rxr.h > @@ -95,6 +95,11 @@ void bnxt_set_mark_in_mbuf(struct bnxt *bp, > struct rx_pkt_cmpl_hi *rxcmp1, > struct rte_mbuf *mbuf); > > +extern int bnxt_cfa_code_dynfield_offset; > +#define BNXT_CFA_CODE_DYNFIELD_TYPE uint32_t > +#define BNXT_CFA_CODE_DYNFIELD(mbuf) (*RTE_MBUF_DYNFIELD(mbuf, \ > + bnxt_cfa_code_dynfield_offset, BNXT_CFA_CODE_DYNFIELD_TYPE *)) > + > #define BNXT_RX_META_CFA_CODE_SHIFT 19 > #define BNXT_CFA_CODE_META_SHIFT 16 > #define BNXT_RX_META_CFA_CODE_INT_ACT_REC_BIT 0x8000000 > diff --git a/drivers/net/bnxt/rte_pmd_bnxt.h b/drivers/net/bnxt/rte_pmd_bnxt.h > index 81d0d0e032..8d3303bb0f 100644 > --- a/drivers/net/bnxt/rte_pmd_bnxt.h > +++ b/drivers/net/bnxt/rte_pmd_bnxt.h > @@ -9,6 +9,9 @@ > #include > #include > > +/* mbuf dynfield where CFA code is stored */ > +#define RTE_PMD_BNXT_CFA_CODE_DYNFIELD_NAME "rte_net_bnxt_dynfield_cfa_code" > + > /* > * Response sent back to the caller after callback > */ > -- > 2.28.0 >