How to get RTE flows working with BNXT PMD?

Wicht, Baptiste bwicht at verisign.com
Thu Aug 6 13:47:09 CEST 2026


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 <kishore.padmanabha at broadcom.com>
Sent: Wednesday, August 5, 2026 4:05 PM
To: Wicht, Baptiste <bwicht at verisign.com>; users at dpdk.org
Cc: david.marchand at redhat.com; Ajit Kumar Khaparde <ajit.khaparde at broadcom.com>
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 <bwicht at verisign.com>
Sent: Wednesday, August 5, 2026 5:28 AM
To: users at dpdk.org
Cc: david.marchand at redhat.com; ajit.khaparde at broadcom.com; kishore.padmanabha at broadcom.com
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 <kishore.padmanabha at broadcom.com>
Sent: Monday, July 20, 2026 4:27 PM
To: Wicht, Baptiste <bwicht at verisign.com>; david.marchand at redhat.com; Ajit Kumar Khaparde <ajit.khaparde at broadcom.com>
Cc: users at dpdk.org
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 <bwicht at verisign.com>
Sent: Monday, July 20, 2026 5:10 AM
To: david.marchand at redhat.com; kishore.padmanabha at broadcom.com; ajit.khaparde at broadcom.com
Cc: users at dpdk.org
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 <david.marchand at redhat.com>
Sent: Monday, July 13, 2026 11:10 AM
To: Kishore Padmanabha <kishore.padmanabha at broadcom.com>; Ajit Khaparde <ajit.khaparde at broadcom.com>
Cc: users at dpdk.org; Wicht, Baptiste <bwicht at verisign.com>
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 <bwicht at verisign.com> 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


More information about the users mailing list