Date: Wed, 7 Feb 2018 09:37:22 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r328970 - head/sys/dev/ath Message-ID: <201802070937.w179bMpI077980@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802070937.w179bMpI077980>