From: Kishore Padmanabha <kishore.padmana...@broadcom.com> The phy port action handler should get vport details and not vnic id. The fix is to calculate the vport of the given port.
Signed-off-by: Kishore Padmanabha <kishore.padmana...@broadcom.com> Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com> Reviewed-by: Mike Baucom <michael.bau...@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khapa...@broadcom.com> --- drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c index 842466da9..3dd941f15 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c @@ -1284,7 +1284,7 @@ ulp_rte_phy_port_act_handler(const struct rte_flow_action *action_item, struct ulp_rte_parser_params *prm) { const struct rte_flow_action_phy_port *phy_port; - uint32_t pid; + uint32_t vport; phy_port = action_item->conf; if (phy_port) { @@ -1293,10 +1293,12 @@ ulp_rte_phy_port_act_handler(const struct rte_flow_action *action_item, "Parse Err:Port Original not supported\n"); return BNXT_TF_RC_PARSE_ERR; } - pid = bnxt_get_vnic_id(phy_port->index); - pid = rte_cpu_to_be_32(pid); + /* Get the vport of the physical port */ + /* TBD: shall be changed later to portdb call */ + vport = 1 << phy_port->index; + vport = rte_cpu_to_be_32(vport); memcpy(&prm->act_prop.act_details[BNXT_ULP_ACT_PROP_IDX_VPORT], - &pid, BNXT_ULP_ACT_PROP_SZ_VPORT); + &vport, BNXT_ULP_ACT_PROP_SZ_VPORT); } /* Update the hdr_bitmap with count */ -- 2.21.1 (Apple Git-122.3)