git: 160becc7dc3d - main - ice: Add broadcast filter while creating VF

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 18 Jul 2025 19:16:14 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=160becc7dc3db59b2f43eb8b6e02019c94821f40

commit 160becc7dc3db59b2f43eb8b6e02019c94821f40
Author:     Krzysztof Galazka <krzysztof.galazka@intel.com>
AuthorDate: 2025-01-15 23:43:43 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-07-18 19:16:16 +0000

    ice: Add broadcast filter while creating VF
    
    Filter for unicast MAC address is configured
    with a virtual channel message, but filter for
    a broadcast traffic was missing. It caused
    issues with e.g. ARP.
    
    Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1573
---
 sys/dev/ice/ice_iov.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sys/dev/ice/ice_iov.c b/sys/dev/ice/ice_iov.c
index 75b50af0d1bc..0d04c06b3140 100644
--- a/sys/dev/ice/ice_iov.c
+++ b/sys/dev/ice/ice_iov.c
@@ -369,6 +369,14 @@ ice_iov_add_vf(struct ice_softc *sc, uint16_t vfnum, const nvlist_t *params)
 		goto release_imap;
 	}
 
+	/* Add the broadcast address */
+	error = ice_add_vsi_mac_filter(vsi, broadcastaddr);
+	if (error) {
+		device_printf(sc->dev, "Unable to add broadcast filter VF %d VSI: %s\n",
+			      vfnum, ice_err_str(error));
+		goto release_imap;
+	}
+
 	ice_iov_ready_vf(sc, vf);
 
 	return (0);