Hi Kishore,

I have rerun the test using dpdk-testpmd 26.07-RC3 and I can confirm that we 
see the same behavior in testpmd than we do in our applications

With a traffic generator running at all times, here is what I did

dpdk-testpmd -- -i --nb-cores=16 --rxq 8 --txq=8 --rxd=512 --txd=512

testpmd> port stop 0
testpmd> port config 0 speed 200000 duplex full
testpmd> port start 0
testpmd> start
... wait 10 seconds
testpmd > stop

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 732217         TX-packets: 732217         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
  RX-packets: 730305         TX-packets: 730305         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------
  RX-packets: 731414         TX-packets: 731414         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 3 -> TX Port= 0/Queue= 3 -------
  RX-packets: 732382         TX-packets: 732382         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 4 -> TX Port= 0/Queue= 4 -------
  RX-packets: 731595         TX-packets: 731595         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 5 -> TX Port= 0/Queue= 5 -------
  RX-packets: 732300         TX-packets: 732300         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 6 -> TX Port= 0/Queue= 6 -------
  RX-packets: 732517         TX-packets: 732517         TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 7 -> TX Port= 0/Queue= 7 -------
  RX-packets: 731211         TX-packets: 731211         TX-dropped: 0

testpmd > flow create 0 ingress pattern eth / ipv4 proto is 0x11 / udp dst spec 
30720 dst mask 0xFFF0 / end actions port_id id 0 / rss queues 2 3 4 5 end types 
ipv4 ipv4-tcp ipv4-udp ipv6 ipv6-tcp ipv6-udp end / count / end
testpmd> start
... wait 10 seconds
testpmd > stop

  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
  RX-packets: 5              TX-packets: 5              TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------
  RX-packets: 2833538        TX-packets: 2833538        TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 3 -> TX Port= 0/Queue= 3 -------
  RX-packets: 2834963        TX-packets: 2834963        TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 4 -> TX Port= 0/Queue= 4 -------
  RX-packets: 2835455        TX-packets: 2835455        TX-dropped: 0

  ------- Forward Stats for RX Port= 0/Queue= 5 -> TX Port= 0/Queue= 5 -------
  RX-packets: 2834993        TX-packets: 2834993        TX-dropped: 0

testpmd> flow flush 0
testpmd> set promisc 0 off
testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x11 / udp dst spec 
30720 dst mask 0xFFF0 / end actions port_id id 0 / rss queues 2 3 4 5 end types 
ipv4 ipv4-tcp ipv4-udp ipv6 ipv6-tcp ipv6-udp end / count / end
testpmd> start
... wait 10 seconds
testpmd> stop

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


As you can see:
* When there are no flows and promisc is on, we see traffic on all queues 
(expected)
* When we add a flow and promisc is on, we see traffic only on these queues 
(expected)
* When we remove the flow, disable promiscuous and add back the flow, we see no 
traffic at all (unexpected)

If we look at the stats, we can see rx_filter_miss is counting all the packets 
being filtered.

What should we do to run BNXT without promiscuous?

Thanks

Baptiste

-----Original Message-----
From: Kishore Padmanabha <[email protected]>
Sent: Wednesday, August 5, 2026 4:05 PM
To: Wicht, Baptiste <[email protected]>; [email protected]
Cc: [email protected]; Ajit Kumar Khaparde <[email protected]>
Subject: RE: Re: How to get RTE flows working with BNXT PMD?

HI Baptiste,

Testpmd enables promisc mode by default, so it can receive all the packets. You 
can disable it.
Could you provide what flows are you adding to get the packets, if you provide 
the testpmd logs it would be useful.

Rgds,
Kishore


-----Original Message-----
From: Wicht, Baptiste <[email protected]>
Sent: Wednesday, August 5, 2026 5:28 AM
To: [email protected]
Cc: [email protected]; [email protected]; 
[email protected]
Subject: RE: Re: How to get RTE flows working with BNXT PMD?

Hi team

After digging into testpmd and the debug logs, I have found that testpmd always 
turn on promiscuous mode.
Once we turned it on in our program, we could get flows working. Without 
promiscuous, all packets were dropped when TruFlow was enabled (with or without 
flows).

Is it mandatory to run promiscuous mode on BNXT? Is there another way around 
that?

Best regards
Baptiste

-----Original Message-----
From: Kishore Padmanabha <[email protected]>
Sent: Monday, July 20, 2026 4:27 PM
To: Wicht, Baptiste <[email protected]>; [email protected]; Ajit 
Kumar Khaparde <[email protected]>
Cc: [email protected]
Subject: [EXTERNAL] RE: Re: How to get RTE flows working with BNXT PMD?

Hi Baptiste,

As 26.07 RC is working in freebsd, I am assuming you are good with it.
As for CQE mode, it is not supported with Truflow currently. Hence if you 
enable cqe_mode it shall disable Truflow and you cannot add rte flows that I 
mentioned earlier. In bnxt_get_config(), there is check for 
bnxt_compressed_rx_cqe_mode_enabled(), if you remove that check it should work 
but this is something we have not supported officially.

Thanks,
Kishore



-----Original Message-----
From: Wicht, Baptiste <[email protected]>
Sent: Monday, July 20, 2026 5:10 AM
To: [email protected]; [email protected]; 
[email protected]
Cc: [email protected]
Subject: RE: Re: How to get RTE flows working with BNXT PMD?

Hi David, Kishore, DPDK users,

I have been able to reproduce your example with dpdk-testpmd compiled from
26.07 RC, the only "release" that is working on FreeBSD for BNXT. I could get 
the same results you did, thanks!

I do observe some special behavior though. In our tests, we have to use
cqe_mode=1 because otherwise we do not get any unicast packets (they are all 
filtered). However, in dpdk-testpmd, if I use cqe_mode=1, I do not get any 
packets counted and the filter you have proposed cannot be create.

Is that behavior normal with cqe_mode=1?

Thanks

Baptiste

-----Original Message-----
From: David Marchand <[email protected]>
Sent: Monday, July 13, 2026 11:10 AM
To: Kishore Padmanabha <[email protected]>; Ajit Khaparde 
<[email protected]>
Cc: [email protected]; Wicht, Baptiste <[email protected]>
Subject: Re: How to get RTE flows working with BNXT PMD?

Caution: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

On Mon, 13 Jul 2026 at 10:59, Wicht, Baptiste <[email protected]> wrote:
>
> Hi DPDK users
>
> We are trying to get some RTE flows working with the BNXT PMD (on a
Broadcom P2200G). However, we cannot get any flows working. We have tried both 
legacy and TruFlow modes, but neither seem to be working. Legacy mode only let 
us do RSS for total number of queues (not a subset) and TruFlow mode ends up 
filtering all unicast packets.
>
> Ultimately, we are trying to separate some kind of traffic (like UDP)
> to
a set of RSS queues and the rest of the traffic to another set of RSS queues.
>
> Is that something that can be achieved with BNXT?

Better to ask the bnxt maintainers directly.
Kishore? Ajit?


--
David Marchand

Reply via email to