From: Liron Himi Date: Mon, 18 Jan 2021 10:50:31 +0000 (+0200) Subject: net/octeontx2: fix PF flow action for Tx X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=701f94a60afbc7c3e28766cc88afa1b5397fdfba;p=dpdk.git net/octeontx2: fix PF flow action for Tx pf-func is 16bit but the current reserved location used in tx action is 8bits. Moved it to bits 63-48. Fixes: 32e6aaa97c40 ("net/octeontx2: support flow parse actions") Cc: stable@dpdk.org Signed-off-by: Liron Himi Reviewed-by: Kiran Kumar K --- diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c index 476195d634..e9b940f6c0 100644 --- a/drivers/net/octeontx2/otx2_flow_parse.c +++ b/drivers/net/octeontx2/otx2_flow_parse.c @@ -1090,7 +1090,10 @@ otx2_flow_parse_actions(struct rte_eth_dev *dev, set_pf_func: /* Ideally AF must ensure that correct pf_func is set */ - flow->npc_action |= (uint64_t)pf_func << 4; + if (attr->egress) + flow->npc_action |= (uint64_t)pf_func << 48; + else + flow->npc_action |= (uint64_t)pf_func << 4; return 0; diff --git a/drivers/net/octeontx2/otx2_flow_utils.c b/drivers/net/octeontx2/otx2_flow_utils.c index 9a0a5f9fb4..7ed86ba742 100644 --- a/drivers/net/octeontx2/otx2_flow_utils.c +++ b/drivers/net/octeontx2/otx2_flow_utils.c @@ -944,7 +944,7 @@ otx2_flow_mcam_alloc_and_write(struct rte_flow *flow, struct otx2_mbox *mbox, req->entry_data.kw[0] |= flow_info->channel; req->entry_data.kw_mask[0] |= (BIT_ULL(12) - 1); } else { - uint16_t pf_func = (flow->npc_action >> 4) & 0xffff; + uint16_t pf_func = (flow->npc_action >> 48) & 0xffff; pf_func = htons(pf_func); req->entry_data.kw[0] |= ((uint64_t)pf_func << 32);