[Bug 265857] qlnxe: no IPV6 pings between nodes on the same switch until an IPv4 address is set

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 16 Nov 2022 15:42:10 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265857

--- Comment #22 from Zhenlei Huang <zlei.huang@gmail.com> ---
(In reply to benoitc from comment #1)
> looking at the source code:

> https://cgit.freebsd.org/src/tree/sys/dev/qlnx/qlnxe/qlnx_os.c#n2675
> it seems that this snippet initialising the ha record :

> ```
> ifp->if_flags |= IFF_UP;
> 			if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
> 				QLNX_LOCK(ha);
> 				qlnx_init_locked(ha);
> 				QLNX_UNLOCK(ha);
> 			}
> ```

> should also be added to 
> https://cgit.freebsd.org/src/tree/sys/dev/qlnx/qlnxe/qlnx_os.c#n2687

> otherwise I am not sure when this is correctly initialised using an IPv6 address.
> Thoughts?

Line https://cgit.freebsd.org/src/tree/sys/dev/qlnx/qlnxe/qlnx_os.c#n2687 calls
ether_ioctl() which in turn calls `ifp->if_init(ifp->if_softc)`.

For qlnx driver `ifp->if_init` is `qlnx_init()` which is a wrapper of
`qlnx_init_locked()`.

So when adding IPv6 addresses to the interface, it will be initialised (the
same with IPv4).

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