From 5c63167168138cb5f119372814e62472bbdcd38e Mon Sep 17 00:00:00 2001 From: Santoshkumar Karanappa Rastapur Date: Fri, 20 Dec 2019 18:29:40 -0800 Subject: [PATCH] net/bnxt: fix non matching flow hitting filter rule As part of ntuple filter, we were creating L2 filter with the ntuple redirect queue resulting in any L2 matching flow getting steered to this queue. For ntuple filters, we need to create the L2 filter with default queue. The user specified redirect queue will be set while creating the ntuple filter in hardware. Fixes: 5c1171c97216 ("net/bnxt: refactor filter/flow") Cc: stable@dpdk.org Signed-off-by: Santoshkumar Karanappa Rastapur Signed-off-by: Somnath Kotur --- drivers/net/bnxt/bnxt_flow.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c index 7343b7e7b4..855994a6b0 100644 --- a/drivers/net/bnxt/bnxt_flow.c +++ b/drivers/net/bnxt/bnxt_flow.c @@ -1126,7 +1126,16 @@ use_vnic: PMD_DRV_LOG(DEBUG, "Setting vnic ff_idx %d\n", vnic->ff_pool_idx); filter->dst_id = vnic->fw_vnic_id; - filter1 = bnxt_get_l2_filter(bp, filter, vnic); + + /* For ntuple filter, create the L2 filter with default VNIC. + * The user specified redirect queue will be set while creating + * the ntuple filter in hardware. + */ + vnic0 = BNXT_GET_DEFAULT_VNIC(bp); + if (use_ntuple) + filter1 = bnxt_get_l2_filter(bp, filter, vnic0); + else + filter1 = bnxt_get_l2_filter(bp, filter, vnic); if (filter1 == NULL) { rte_flow_error_set(error, ENOSPC, -- 2.20.1