Subject: Re: Recent wi issues
To: None <tech-net@netbsd.org>
From: David Young <dyoung@ojctech.com>
List: tech-net
Date: 10/04/2002 10:38:47
On Fri, Oct 04, 2002 at 01:43:30PM +0000, Charles M. Hannum wrote:
>    Furthermore, the whole concept of `create IBSS' seems to be poorly
>    understood, documented and implemented.  There is no actual concept
>    of `creating' an IBSS; a host simply starts using it, and other
>    hosts see it in use.  There may be, with some versions of firmware,
>    an arbitrary distinction between using an IBSS that has been seen,
>    and using an IBSS that has not been seen; I suspect this is what
>    the Lucent firmware does.

Let me try to explain the Create IBSS register on Lucent and Prism.

When a station in ad hoc mode starts up, if it hears an ad hoc beacon
with the SSID it desires, it will adopt the BSSID in that beacon ("join an
IBSS"). However, if a time-out period passes, and a beacon is not heard,
the station is supposed to set its BSSID and start to send beacons,
itself (i.e., "create an IBSS").

On Lucent cards, I think that if Create IBSS == 0, then an ad hoc station
will never "time out" and set its own BSSID ("create an IBSS").  I am
not the least bit sure about this.

On Prism cards, the Create IBSS register has a lot more complicated
meaning. Essentially, 0 will join OR create an IBSS. 1 will join or create
an IBSS or ESS. 2 and 3 will join but will not create an IBSS, and will
join an ESS or IBSS but will not create an IBSS. (Or something ... I do
not have the manual in front of me.) Some or all of those functions exist
to satisfy the requirements of the Microsoft Windows wireless abstraction.
I know all of this from the manual.

If I had a Symbol card, I would change

                if (sc->sc_sta_firmware_ver >= 25000)
                        ic->ic_flags |= IEEE80211_F_HASIBSS;

to

                if (sc->sc_sta_firmware_ver >= 20000)
                        ic->ic_flags |= IEEE80211_F_HASIBSS;

Then, to see if the Symbol card will create an IBSS like it is supposed
to, I would test against a Lucent card with Create IBSS == 0, on the
assumption that the Lucent card's behavior is as I describe. If an IBSS
is created, then the Symbol card created it.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Engineering from the Right Brain
                        Urbana, IL * (217) 278-3933