net/bnxt: add computed header field in result opcode
Added support for computed header fields in the result field processing. The computed header fields are fields that are extracted from header fields or derived from data that is not part of the flow command but shall be used in setting up of the flow rule. Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
This commit is contained in:
parent
efcb502fab
commit
deb31991b7
@ -662,6 +662,22 @@ ulp_mapper_result_field_process(struct bnxt_ulp_mapper_parms *parms,
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case BNXT_ULP_RESULT_OPC_SET_TO_COMP_HDR_FIELD:
|
||||
if (!ulp_operand_read(fld->result_operand,
|
||||
(uint8_t *)&idx,
|
||||
sizeof(uint16_t))) {
|
||||
BNXT_TF_DBG(ERR, "%s key operand read failed.\n", name);
|
||||
return -EINVAL;
|
||||
}
|
||||
idx = tfp_be_to_cpu_16(idx);
|
||||
if (idx < BNXT_ULP_CHF_IDX_LAST)
|
||||
val = ulp_blob_push_32(blob, &parms->comp_fld[idx],
|
||||
fld->field_bit_size);
|
||||
if (!val) {
|
||||
BNXT_TF_DBG(ERR, "%s push to key blob failed\n", name);
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -213,7 +213,8 @@ enum bnxt_ulp_result_opc {
|
||||
BNXT_ULP_RESULT_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 2,
|
||||
BNXT_ULP_RESULT_OPC_SET_TO_REGFILE = 3,
|
||||
BNXT_ULP_RESULT_OPC_SET_TO_DEF_REGFILE = 4,
|
||||
BNXT_ULP_RESULT_OPC_LAST = 5
|
||||
BNXT_ULP_RESULT_OPC_SET_TO_COMP_HDR_FIELD = 5,
|
||||
BNXT_ULP_RESULT_OPC_LAST = 6
|
||||
};
|
||||
|
||||
enum bnxt_ulp_search_before_alloc {
|
||||
|
Loading…
Reference in New Issue
Block a user