@@ -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;
}
@@ -214,7 +214,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 {