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 752ECA00C5; Mon, 6 Jul 2020 10:31:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 91F851DA7D; Mon, 6 Jul 2020 10:30:13 +0200 (CEST) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 908571C01F for ; Mon, 6 Jul 2020 10:30:04 +0200 (CEST) Received: from dhcp-10-123-153-55.dhcp.broadcom.net (dhcp-10-123-153-55.dhcp.broadcom.net [10.123.153.55]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 8C0832984A0; Mon, 6 Jul 2020 01:30:03 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 8C0832984A0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1594024203; bh=BJCdFYO95+1CxrFrXhSQkLYnuJ+4iPvLxeX5NSgkHcI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aW7+SiarKbDyrViVSe3eX5oPdtGxU5hQJeqzTgKwZ7j4p6/UBtAos1TSP1UjQZjju BQgbCIWh69ZqrlEnzCiy/ZtBtEzO0hvzNsC+OdfzT8YNPNmArCAAaPdPmJH2lSMLk3 hVIHHJsLDIluzviRYRNO2Q0+2ex8Di4uACPQHVfE= From: Somnath Kotur To: dev@dpdk.org Cc: ferruh.yigit@intel.com Date: Mon, 6 Jul 2020 13:54:47 +0530 Message-Id: <20200706082502.26935-6-somnath.kotur@broadcom.com> X-Mailer: git-send-email 2.10.1.613.g2cc2e70 In-Reply-To: <20200706082502.26935-1-somnath.kotur@broadcom.com> References: <20200706082502.26935-1-somnath.kotur@broadcom.com> Subject: [dpdk-dev] [PATCH 05/20] net/bnxt: add support for index opcode constant 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" From: Kishore Padmanabha Add support for index opcode constant so that parif configuration could be constant value. Signed-off-by: Kishore Padmanabha Reviewed-by: Michael Baucom Signed-off-by: Somnath Kotur Signed-off-by: Venkat Duvvuru --- drivers/net/bnxt/tf_ulp/ulp_def_rules.c | 11 ++++++++--- drivers/net/bnxt/tf_ulp/ulp_mapper.c | 7 +++++-- drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h | 4 +++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c index 46b558f..b01ad0b 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c +++ b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c @@ -12,6 +12,8 @@ #include "ulp_flow_db.h" #include "ulp_mapper.h" +#define BNXT_ULP_FREE_PARIF_BASE 11 + struct bnxt_ulp_def_param_handler { int32_t (*vfr_func)(struct bnxt_ulp_context *ulp_ctx, struct ulp_tlv_param *param, @@ -81,12 +83,15 @@ ulp_set_parif_in_comp_fld(struct bnxt_ulp_context *ulp_ctx, if (rc) return rc; - if (parif_type == BNXT_ULP_PHY_PORT_PARIF) + if (parif_type == BNXT_ULP_PHY_PORT_PARIF) { idx = BNXT_ULP_CF_IDX_PHY_PORT_PARIF; - else if (parif_type == BNXT_ULP_DRV_FUNC_PARIF) + } else if (parif_type == BNXT_ULP_DRV_FUNC_PARIF) { idx = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF; - else + /* Parif needs to be reset to a free partition */ + parif += BNXT_ULP_FREE_PARIF_BASE; + } else { idx = BNXT_ULP_CF_IDX_VF_FUNC_PARIF; + } ULP_COMP_FLD_IDX_WR(mapper_params, idx, parif); diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c index eb77328..b0d31a8 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c +++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c @@ -1922,11 +1922,14 @@ ulp_mapper_if_tbl_process(struct bnxt_ulp_mapper_parms *parms, } /* Get the index details from computed field */ - if (tbl->index_opcode != BNXT_ULP_INDEX_OPCODE_COMP_FIELD) { + if (tbl->index_opcode == BNXT_ULP_INDEX_OPCODE_COMP_FIELD) { + idx = ULP_COMP_FLD_IDX_RD(parms, tbl->index_operand); + } else if (tbl->index_opcode == BNXT_ULP_INDEX_OPCODE_CONSTANT) { + idx = tbl->index_operand; + } else { BNXT_TF_DBG(ERR, "Invalid tbl index opcode\n"); return -EINVAL; } - idx = ULP_COMP_FLD_IDX_RD(parms, tbl->index_operand); /* Perform the tf table set by filling the set params */ iftbl_params.dir = tbl->direction; diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h b/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h index 6d6a734..892d8ea 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h +++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h @@ -188,7 +188,8 @@ enum bnxt_ulp_index_opcode { BNXT_ULP_INDEX_OPCODE_ALLOCATE = 1, BNXT_ULP_INDEX_OPCODE_GLOBAL = 2, BNXT_ULP_INDEX_OPCODE_COMP_FIELD = 3, - BNXT_ULP_INDEX_OPCODE_LAST = 4 + BNXT_ULP_INDEX_OPCODE_CONSTANT = 4, + BNXT_ULP_INDEX_OPCODE_LAST = 5 }; enum bnxt_ulp_mapper_opc { @@ -511,6 +512,7 @@ enum bnxt_ulp_sym { BNXT_ULP_SYM_IP_PROTO_IP_IN_IP = 4, BNXT_ULP_SYM_IP_PROTO_TCP = 6, BNXT_ULP_SYM_IP_PROTO_UDP = 17, + BNXT_ULP_SYM_VF_FUNC_PARIF = 15, BNXT_ULP_SYM_NO = 0, BNXT_ULP_SYM_YES = 1 }; -- 2.7.4