Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Nov 2025 03:07:32 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 290973] qlnxe: nic aggregation (using lagg) not working unless promiscuous mode is enabled
Message-ID:  <bug-290973-7501-CTDMtpcJLj@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-290973-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-290973-7501@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290973

Zhenlei Huang <zlei@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|net@FreeBSD.org             |zlei@FreeBSD.org
              Flags|                            |mfc-stable15?,
                   |                            |mfc-stable14?,
                   |                            |mfc-stable13?
           Severity|Affects Only Me             |Affects Some People
             Status|New                         |In Progress

--- Comment #4 from Zhenlei Huang <zlei@FreeBSD.org> ---
(In reply to peter.sopko+freebsd.org from comment #3)
> I tried capturing traffic on the ql0 interface when it is not set to promisc mode
> using the command you suggested, but there appears to be absolutely no traffic
> captured at all...

Actually the interface should at least send out LACP packets when it is a
member of lagg interface.

I have managed to repeat this issue. There're two issue with qlnxe(4) currently
are identified.

The first one is, the out path ( if_transmit ) lacks ETHER_BPF_MTAP and thus
bpf(4) does not have a chance to see the outgoing packets.

The second one is, there's a small initialization bug, that when the qlnxe(4)
is not flagged up, aka `ifconfig ql0 up`, setup the multicast addresses ( aka
SIOCADDMULTI ioctl ) is a noop, and the interface will not be programmed with
desired multicast filter, hence the slow protocol multicast traffic ( dest
01:80:c2:00:00:02 ) are all dropped by the interface. That can be identified by
the statistic,

```
# sysctl dev.ql.0.hwstat.mac_filter_discards
dev.ql.0.hwstat.mac_filter_discards: 284
```

To workaround the second issue, you may want to put the qlnxe(4) interface into
up status before adding it to lagg(4),

```
# ifconfig ql0 up
# ifconfig ql1 up
# ifconfig lagg0 create
# ifconfig lagg0 laggproto lacp laggport ql0 laggport ql1
# ifconfig lagg0 up
# ifconfig lagg0
lagg0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0
mtu 1500
       
options=8d07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,HWSTATS>
        ether f4:e9:d4:xx:xx:xx
        hwaddr 00:00:00:00:00:00
        laggproto lacp lagghash l2,l3,l4
        laggport: ql0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ql1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        groups: lagg
        media: Ethernet autoselect
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
```

I'm preparing the fix.

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


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-290973-7501-CTDMtpcJLj>