svn commit: r328970 - head/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Wed Feb 7 09:37:22 UTC 2018
Author: adrian
Date: Wed Feb 7 09:37:22 2018
New Revision: 328970
URL: https://svnweb.freebsd.org/changeset/base/328970
Log:
[ath] Use the BSSID address logic for STA VAPs too.
For DWDS VAPs on ath(4) we need to ensure that the STA vap and hostap VAP
have different MAC addresses. If the STA code path doesn't utilise the
address assign / reclaim path then it doesn't update the bitmap with which
address was allocated.
This should fix a bunch of corner issues I've been seeing with DWDS STA + AP
VAPs that I was working around with manual MAC address assignment.
Modified:
head/sys/dev/ath/if_ath.c
Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c Wed Feb 7 09:35:47 2018 (r328969)
+++ head/sys/dev/ath/if_ath.c Wed Feb 7 09:37:22 2018 (r328970)
@@ -1624,7 +1624,7 @@ ath_vap_create(struct ieee80211com *ic, const char nam
}
/* STA, AHDEMO? */
- if (opmode == IEEE80211_M_HOSTAP || opmode == IEEE80211_M_MBSS) {
+ if (opmode == IEEE80211_M_HOSTAP || opmode == IEEE80211_M_MBSS || opmode == IEEE80211_M_STA) {
assign_address(sc, mac, flags & IEEE80211_CLONE_BSSID);
ath_hal_setbssidmask(sc->sc_ah, sc->sc_hwbssidmask);
}
@@ -1858,6 +1858,7 @@ ath_vap_delete(struct ieee80211vap *vap)
if (sc->sc_nstavaps == 0 && sc->sc_swbmiss)
sc->sc_swbmiss = 0;
} else if (vap->iv_opmode == IEEE80211_M_HOSTAP ||
+ vap->iv_opmode == IEEE80211_M_STA ||
vap->iv_opmode == IEEE80211_M_MBSS) {
reclaim_address(sc, vap->iv_myaddr);
ath_hal_setbssidmask(ah, sc->sc_hwbssidmask);
More information about the svn-src-all
mailing list