Message ID | 20210118105031.474-1-lironh@marvell.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Jerin Jacob |
Headers | show |
Series | net/octeontx2: move PF-func location for egress | expand |
Context | Check | Description |
---|---|---|
ci/iol-testing | warning | Testing issues |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-mellanox-Functional | success | Functional Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-broadcom-Functional | success | Functional Testing PASS |
ci/intel-Testing | success | Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | success | coding style OK |
On Mon, Jan 18, 2021 at 4:20 PM <lironh@marvell.com> wrote: > > From: Liron Himi <lironh@marvell.com> > > pf-func is 16bit but the current reserved location > used in tx action is 8bits. moved it to bits 63-48. > > Fixes: 32e6aaa97 ("net/octeontx2: support flow parse actions") > Cc: stable@dpdk.org > > Signed-off-by: Liron Himi <lironh@marvell.com> > Reviewed-by: Kiran Kumar Kokkilagadda <kirankumark@marvell.com> Applied to dpdk-next-net-mrvl/for-main. Thanks > --- > drivers/net/octeontx2/otx2_flow_parse.c | 5 ++++- > drivers/net/octeontx2/otx2_flow_utils.c | 2 +- > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c > index 476195d63..e9b940f6c 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 9a0a5f9fb..7ed86ba74 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); > -- > 2.28.0 >
diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c index 476195d63..e9b940f6c 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 9a0a5f9fb..7ed86ba74 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);