Date: Wed, 1 Jun 2016 12:35:21 -0700 From: Adrian Chadd <adrian.chadd@gmail.com> To: Andriy Voskoboinyk <avos@freebsd.org> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r301128 - head/sys/dev/urtwn Message-ID: <CAJ-Vmo=Nr2vcCrYi98cGs7ZHST225rHAYjLMAtOyfnwA9uEg3w@mail.gmail.com> In-Reply-To: <201606011457.u51EvrOI096173@repo.freebsd.org> References: <201606011457.u51EvrOI096173@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
hi! Woo! Does this also help with IBSS? (Since we need to see all beacons so we can do adhoc joins.) -adrian On 1 June 2016 at 07:57, Andriy Voskoboinyk <avos@freebsd.org> wrote: > Author: avos > Date: Wed Jun 1 14:57:53 2016 > New Revision: 301128 > URL: https://svnweb.freebsd.org/changeset/base/301128 > > Log: > urtwn: fix non-ERP BSS detection in HOSTAP mode. > > Receive all beacons in HOSTAP mode; they will give more information about > present non-ERP / legacy BSSs (used to choose protection mode). > > Tested with RTL8188CUS (HOSTAP, urtwn) + RTL8821AU (HOSTAP, 11b mode). > > Modified: > head/sys/dev/urtwn/if_urtwn.c > > Modified: head/sys/dev/urtwn/if_urtwn.c > ============================================================================== > --- head/sys/dev/urtwn/if_urtwn.c Wed Jun 1 14:16:16 2016 (r301127) > +++ head/sys/dev/urtwn/if_urtwn.c Wed Jun 1 14:57:53 2016 (r301128) > @@ -2627,10 +2627,11 @@ urtwn_newstate(struct ieee80211vap *vap, > if (ic->ic_promisc == 0) { > reg = urtwn_read_4(sc, R92C_RCR); > > - if (vap->iv_opmode != IEEE80211_M_HOSTAP) > + if (vap->iv_opmode != IEEE80211_M_HOSTAP) { > reg |= R92C_RCR_CBSSID_DATA; > - if (vap->iv_opmode != IEEE80211_M_IBSS) > - reg |= R92C_RCR_CBSSID_BCN; > + if (vap->iv_opmode != IEEE80211_M_IBSS) > + reg |= R92C_RCR_CBSSID_BCN; > + } > > urtwn_write_4(sc, R92C_RCR, reg); > } > @@ -4723,7 +4724,8 @@ urtwn_scan_start(struct ieee80211com *ic > > URTWN_LOCK(sc); > /* Receive beacons / probe responses from any BSSID. */ > - if (ic->ic_opmode != IEEE80211_M_IBSS) > + if (ic->ic_opmode != IEEE80211_M_IBSS && > + ic->ic_opmode != IEEE80211_M_HOSTAP) > urtwn_set_rx_bssid_all(sc, 1); > > /* Set gain for scanning. */ > @@ -4738,7 +4740,9 @@ urtwn_scan_end(struct ieee80211com *ic) > > URTWN_LOCK(sc); > /* Restore limitations. */ > - if (ic->ic_promisc == 0 && ic->ic_opmode != IEEE80211_M_IBSS) > + if (ic->ic_promisc == 0 && > + ic->ic_opmode != IEEE80211_M_IBSS && > + ic->ic_opmode != IEEE80211_M_HOSTAP) > urtwn_set_rx_bssid_all(sc, 0); > > /* Set gain under link. */ > @@ -4931,14 +4935,13 @@ urtwn_set_promisc(struct urtwn_softc *sc > if (vap->iv_state == IEEE80211_S_RUN) { > switch (vap->iv_opmode) { > case IEEE80211_M_STA: > - mask2 |= R92C_RCR_CBSSID_DATA; > - /* FALLTHROUGH */ > - case IEEE80211_M_HOSTAP: > mask2 |= R92C_RCR_CBSSID_BCN; > - break; > + /* FALLTHROUGH */ > case IEEE80211_M_IBSS: > mask2 |= R92C_RCR_CBSSID_DATA; > break; > + case IEEE80211_M_HOSTAP: > + break; > default: > device_printf(sc->sc_dev, "%s: undefined opmode %d\n", > __func__, vap->iv_opmode); >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=Nr2vcCrYi98cGs7ZHST225rHAYjLMAtOyfnwA9uEg3w>