[Bug 270644] if_bnxt: IPv6 udp traffic always routed to Tx queue 0 on BCM574xx/BCM575xx controllers

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 04 Apr 2023 17:59:57 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270644

            Bug ID: 270644
           Summary: if_bnxt: IPv6 udp traffic always routed to Tx queue 0
                    on BCM574xx/BCM575xx controllers
           Product: Base System
           Version: 12.3-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: sumit.saxena@broadcom.com

BCM574xx/BCM575xx controllers are managed by "if_bnxt" driver module. I am
observing an issue with these controllers while running IPv6 UDP traffic. The
traffic is always routed to Tx queue 0 even though more than one Tx queues are
configured. 

Network topology: SUT1(BCM574xx) <---> Switch <---> SUT2/(BCM574xx)

Steps to reproduce:

1. Run iperf server on SUT2:
iperf3 -s

2. Run iperf client on SUT1(System under test): 
iperf3 -c ::<SUT2_address> -P 32 -t 3600 -l 1000 -w 1000 -u 

3. Checked Tx packet stats from sysctl and observed that all packets are routed
to txq0. 

# sysctl dev.bnxt.2.hwstats | grep ucast_pkts | grep txq
dev.bnxt.2.hwstats.txq9.ucast_pkts: 0
dev.bnxt.2.hwstats.txq8.ucast_pkts: 0
dev.bnxt.2.hwstats.txq7.ucast_pkts: 0
dev.bnxt.2.hwstats.txq6.ucast_pkts: 0
dev.bnxt.2.hwstats.txq5.ucast_pkts: 0
dev.bnxt.2.hwstats.txq4.ucast_pkts: 0
dev.bnxt.2.hwstats.txq3.ucast_pkts: 0
dev.bnxt.2.hwstats.txq2.ucast_pkts: 0
dev.bnxt.2.hwstats.txq1.ucast_pkts: 6
dev.bnxt.2.hwstats.txq0.ucast_pkts: 105706

Expected results:
IPv6 udp traffic should be fairly distributed among all Tx queues.

Note: 
The same issue is not observed with IPv4 UDP traffic. 

Selection of Tx queue is done by FreeBSD "iflib" layer.
Is it a iflib layer issue ? or the driver missed to do certain settings ?

-- 
You are receiving this mail because:
You are the assignee for the bug.