net/bnxt: support index opcode constant

Add support for index opcode constant so that
parif configuration could be constant value.

Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Mike Baucom <michael.baucom@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
This commit is contained in:
Kishore Padmanabha 2020-07-06 13:54:47 +05:30 committed by Ferruh Yigit
parent 4a50b6c157
commit e2b58f373d
3 changed files with 16 additions and 6 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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
};