net/bnxt: fix mark id update to mbuf

When a packet is looped back from VF to VFR, it is marked to identify
the VFR interface. However, this mark_id shouldn't be percolated up to
the OVS as it is internal to pmd.
This patch fixes it by skipping mark injection into mbuf if the packet
is received on VFR interface.

Fixes: 6dc83230b4 ("net/bnxt: support port representor data path")

Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
This commit is contained in:
Venkat Duvvuru 2020-07-23 17:26:25 +05:30 committed by Ferruh Yigit
parent ac21f33368
commit 15ab612f6b

View File

@ -485,6 +485,9 @@ bnxt_ulp_set_mark_in_mbuf(struct bnxt *bp, struct rx_pkt_cmpl_hi *rxcmp1,
rc = ulp_mark_db_mark_get(bp->ulp_ctx, gfid, rc = ulp_mark_db_mark_get(bp->ulp_ctx, gfid,
cfa_code, vfr_flag, &mark_id); cfa_code, vfr_flag, &mark_id);
if (!rc) { if (!rc) {
/* VF to VFR Rx path. So, skip mark_id injection in mbuf */
if (vfr_flag && *vfr_flag)
return mark_id;
/* Got the mark, write it to the mbuf and return */ /* Got the mark, write it to the mbuf and return */
mbuf->hash.fdir.hi = mark_id; mbuf->hash.fdir.hi = mark_id;
mbuf->udata64 = (cfa_code & 0xffffffffull) << 32; mbuf->udata64 = (cfa_code & 0xffffffffull) << 32;