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
