From nobody Sun May 25 15:24:27 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b52kN1J2Bz5xfYR; Sun, 25 May 2025 15:24:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b52kM687Yz3vKW; Sun, 25 May 2025 15:24:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748186667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdAH7ragRJYLQE/p3eQuDgzfskicSmFMi8/TAb1vxY0=; b=qelZ5t1jJz9M15hw99nIsZMG1ve1i6AgiNiA9XF1zEcvYjCMT9SY6EMB6M7o6ZBcNRHUCV bYXZIVR5k2ssuIBDGjMCi3LjoPvQfcB1p37I+VxUH9jMHjAlbQDKFBGrPqFb/kF01HM1hu O6bRkqVjATzURzyawToTP1BFx4iBDQqZFu/NIkPXGWhWVPh0ejN8bzyMB5CC8o9P6pHLcX cfMCbhXCOpqPGA35/rdYW03kPhYAcZ9k0a+y54WMv4TOe/meBDQuj2gJ0yFDRLVcgPE40W OzmDJGFD+p2PqPmcFMgQjGsE/4SGsNO8mE6b4JjuYPFT03q9NEXP30Y9rjNdTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748186667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdAH7ragRJYLQE/p3eQuDgzfskicSmFMi8/TAb1vxY0=; b=XQU5r+AYrtOrC73Eix4uPkb+nYVRY7Q+faY7/Ot36ONHtTnB3OIS4VsYquQWwf7y7rsQYq XbofW2Ps/eIsJQo/0cH2evwQBmTkB/+K52FOkbRY/nu+NNjFxZG8n3d5ZiQAjW0DfEqwGf qFJMMU2fhpMN2UX+msqmjxG/SCSqCB4slnA6CmR+totFU8pzZTBmq38RPnm9nv0R1vG8e2 6oI3MGfgTD0Kqxipbp298/VW0itVCGetMl+nKX9Zofi2a7XSNKMfAoHgxQAOjxctS0SCpU JL4Acz822m9VvmcGqILB4ouSHJ8bRKBC4bOjZnfJ2mT+NbAzsxPWaYzyfN5gcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748186667; a=rsa-sha256; cv=none; b=HfUDekkqD5imvjsRO5PD+eTI64BgtTxeHprV6tXPSvMQhgnb75rq7/N9+e+neF6NXWGgdm rDnPbvUbDGCHMHcIx8GCOQXMexh2Ewdy06ZWw5H8L16FJYuuNrD9cDsWejdlxoNRQsr18b iEJpaAQMmQ2pOWdg1qP+FBFyG7IkzcyHbW3EYLpDbAOeKQlQTOVfz0wS2DJx31kZgrOZ1G aFupzw6/mpg6n1mvzjt6U2VtOeozdeZZVpS3PmpZw0sbxXc9a+Wr1Mzuac/cjqlpQFt8or 6wxIpDGXX2EOfqkv7RBVgbyXJPFCc/CGVchXse119StS4t6eZg1ySH/27sE3kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b52kM5lQVzBVf; Sun, 25 May 2025 15:24:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54PFORgm031872; Sun, 25 May 2025 15:24:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54PFORu8031869; Sun, 25 May 2025 15:24:27 GMT (envelope-from git) Date: Sun, 25 May 2025 15:24:27 GMT Message-Id: <202505251524.54PFORu8031869@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: a278d11a60e0 - main - net80211: refactor out ifp->if_broadcastaddr into ieee80211_freebsd.c List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a278d11a60e05d62ab91a6fe0fc3aedbee2bb295 Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=a278d11a60e05d62ab91a6fe0fc3aedbee2bb295 commit a278d11a60e05d62ab91a6fe0fc3aedbee2bb295 Author: Adrian Chadd AuthorDate: 2025-05-18 04:44:29 +0000 Commit: Adrian Chadd CommitDate: 2025-05-25 15:23:55 +0000 net80211: refactor out ifp->if_broadcastaddr into ieee80211_freebsd.c * create ieee80211_vap_get_broadcast_address() to fetch the broadcast MAC address for the given VAP * refactor references to ifp->if_broadcastaddr -> ieee80211_vap_get_broadcast_address() Differential Revision: https://reviews.freebsd.org/D50406 Reviewed by: bz --- sys/net80211/ieee80211_adhoc.c | 3 ++- sys/net80211/ieee80211_freebsd.c | 12 ++++++++++++ sys/net80211/ieee80211_freebsd.h | 1 + sys/net80211/ieee80211_hostap.c | 9 +++++---- sys/net80211/ieee80211_ioctl.c | 6 ++++-- sys/net80211/ieee80211_output.c | 4 ++-- sys/net80211/ieee80211_scan_sw.c | 11 ++++++----- sys/net80211/ieee80211_wds.c | 3 ++- 8 files changed, 34 insertions(+), 15 deletions(-) diff --git a/sys/net80211/ieee80211_adhoc.c b/sys/net80211/ieee80211_adhoc.c index 210c9fc75bd9..5f5642884726 100644 --- a/sys/net80211/ieee80211_adhoc.c +++ b/sys/net80211/ieee80211_adhoc.c @@ -395,7 +395,8 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, (subtype == IEEE80211_FC0_SUBTYPE_BEACON || subtype == IEEE80211_FC0_SUBTYPE_PROBE_RESP)) && !IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) && - !IEEE80211_ADDR_EQ(bssid, ifp->if_broadcastaddr)) { + !IEEE80211_ADDR_EQ(bssid, + ieee80211_vap_get_broadcast_address(vap))) { /* not interested in */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, NULL, "%s", "not to bss"); diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c index aa3ae82d089f..d0aa47859a3a 100644 --- a/sys/net80211/ieee80211_freebsd.c +++ b/sys/net80211/ieee80211_freebsd.c @@ -1314,6 +1314,18 @@ ieee80211_vap_ifp_set_running_state(struct ieee80211vap *vap, bool state) if_setdrvflagbits(vap->iv_ifp, 0, IFF_DRV_RUNNING); } +/** + * @brief Return the broadcast MAC address. + * + * @param vap The current VAP + * @retval a uint8_t array representing the ethernet broadcast address + */ +const uint8_t * +ieee80211_vap_get_broadcast_address(struct ieee80211vap *vap) +{ + return (if_getbroadcastaddr(vap->iv_ifp)); +} + /* * Module glue. * diff --git a/sys/net80211/ieee80211_freebsd.h b/sys/net80211/ieee80211_freebsd.h index 449ff8f05202..5afc093ba90c 100644 --- a/sys/net80211/ieee80211_freebsd.h +++ b/sys/net80211/ieee80211_freebsd.h @@ -547,6 +547,7 @@ bool ieee80211_vap_ifp_check_is_monitor(struct ieee80211vap *); bool ieee80211_vap_ifp_check_is_simplex(struct ieee80211vap *); bool ieee80211_vap_ifp_check_is_running(struct ieee80211vap *); void ieee80211_vap_ifp_set_running_state(struct ieee80211vap *, bool); +const uint8_t * ieee80211_vap_get_broadcast_address(struct ieee80211vap *); #endif /* _KERNEL */ diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c index e9105f2e7505..1b246c428411 100644 --- a/sys/net80211/ieee80211_hostap.c +++ b/sys/net80211/ieee80211_hostap.c @@ -557,9 +557,10 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, * Validate the bssid. */ if (!(type == IEEE80211_FC0_TYPE_MGT && - subtype == IEEE80211_FC0_SUBTYPE_BEACON) && + subtype == IEEE80211_FC0_SUBTYPE_BEACON) && !IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) && - !IEEE80211_ADDR_EQ(bssid, ifp->if_broadcastaddr)) { + !IEEE80211_ADDR_EQ(bssid, + ieee80211_vap_get_broadcast_address(vap))) { /* not interested in */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, NULL, "%s", "not to bss"); @@ -1654,7 +1655,6 @@ static void ieee80211_deliver_l2uf(struct ieee80211_node *ni) { struct ieee80211vap *vap = ni->ni_vap; - struct ifnet *ifp = vap->iv_ifp; struct mbuf *m; struct l2_update_frame *l2uf; struct ether_header *eh; @@ -1669,7 +1669,8 @@ ieee80211_deliver_l2uf(struct ieee80211_node *ni) l2uf = mtod(m, struct l2_update_frame *); eh = &l2uf->eh; /* dst: Broadcast address */ - IEEE80211_ADDR_COPY(eh->ether_dhost, ifp->if_broadcastaddr); + IEEE80211_ADDR_COPY(eh->ether_dhost, + ieee80211_vap_get_broadcast_address(vap)); /* src: associated STA */ IEEE80211_ADDR_COPY(eh->ether_shost, ni->ni_macaddr); eh->ether_type = htons(sizeof(*l2uf) - sizeof(*eh)); diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index 7e698ba5cdb8..a72568e559aa 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -510,7 +510,8 @@ ieee80211_ioctl_getstainfo(struct ieee80211vap *vap, struct ieee80211req *ireq) error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN); if (error != 0) return error; - if (IEEE80211_ADDR_EQ(macaddr, vap->iv_ifp->if_broadcastaddr)) { + if (IEEE80211_ADDR_EQ(macaddr, + ieee80211_vap_get_broadcast_address(vap))) { ni = NULL; } else { ni = ieee80211_find_vap_node(&vap->iv_ic->ic_sta, vap, macaddr); @@ -1371,7 +1372,8 @@ setmlme_dropsta(struct ieee80211vap *vap, int error = 0; /* NB: the broadcast address means do 'em all */ - if (!IEEE80211_ADDR_EQ(mac, vap->iv_ifp->if_broadcastaddr)) { + if (!IEEE80211_ADDR_EQ(mac, + ieee80211_vap_get_broadcast_address(vap))) { IEEE80211_NODE_LOCK(nt); ni = ieee80211_find_node_locked(nt, mac); IEEE80211_NODE_UNLOCK(nt); diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index 1b5b3373685f..9466b4851881 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -3659,7 +3659,6 @@ ieee80211_beacon_alloc(struct ieee80211_node *ni) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; - struct ifnet *ifp = vap->iv_ifp; struct ieee80211_frame *wh; struct mbuf *m; int pktlen; @@ -3761,7 +3760,8 @@ ieee80211_beacon_alloc(struct ieee80211_node *ni) IEEE80211_FC0_SUBTYPE_BEACON; wh->i_fc[1] = IEEE80211_FC1_DIR_NODS; *(uint16_t *)wh->i_dur = 0; - IEEE80211_ADDR_COPY(wh->i_addr1, ifp->if_broadcastaddr); + IEEE80211_ADDR_COPY(wh->i_addr1, + ieee80211_vap_get_broadcast_address(vap)); IEEE80211_ADDR_COPY(wh->i_addr2, vap->iv_myaddr); IEEE80211_ADDR_COPY(wh->i_addr3, ni->ni_bssid); *(uint16_t *)wh->i_seq = 0; diff --git a/sys/net80211/ieee80211_scan_sw.c b/sys/net80211/ieee80211_scan_sw.c index e1d6b2779cf0..f64730ce852f 100644 --- a/sys/net80211/ieee80211_scan_sw.c +++ b/sys/net80211/ieee80211_scan_sw.c @@ -526,7 +526,6 @@ ieee80211_swscan_probe_curchan(struct ieee80211vap *vap, bool force __unused) { struct ieee80211com *ic = vap->iv_ic; struct ieee80211_scan_state *ss = ic->ic_scan; - struct ifnet *ifp = vap->iv_ifp; int i; /* @@ -542,13 +541,15 @@ ieee80211_swscan_probe_curchan(struct ieee80211vap *vap, bool force __unused) */ for (i = 0; i < ss->ss_nssid; i++) ieee80211_send_probereq(vap->iv_bss, - vap->iv_myaddr, ifp->if_broadcastaddr, - ifp->if_broadcastaddr, + vap->iv_myaddr, + ieee80211_vap_get_broadcast_address(vap), + ieee80211_vap_get_broadcast_address(vap), ss->ss_ssid[i].ssid, ss->ss_ssid[i].len); if ((ss->ss_flags & IEEE80211_SCAN_NOBCAST) == 0) ieee80211_send_probereq(vap->iv_bss, - vap->iv_myaddr, ifp->if_broadcastaddr, - ifp->if_broadcastaddr, + vap->iv_myaddr, + ieee80211_vap_get_broadcast_address(vap), + ieee80211_vap_get_broadcast_address(vap), "", 0); } diff --git a/sys/net80211/ieee80211_wds.c b/sys/net80211/ieee80211_wds.c index 19827e78706a..0bb9271693db 100644 --- a/sys/net80211/ieee80211_wds.c +++ b/sys/net80211/ieee80211_wds.c @@ -487,7 +487,8 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, } /* NB: the TA is implicitly verified by finding the wds peer node */ if (!IEEE80211_ADDR_EQ(wh->i_addr1, vap->iv_myaddr) && - !IEEE80211_ADDR_EQ(wh->i_addr1, ifp->if_broadcastaddr)) { + !IEEE80211_ADDR_EQ(wh->i_addr1, + ieee80211_vap_get_broadcast_address(vap))) { /* not interested in */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr1, NULL, "%s", "not to bss");