setting bssid in adhoc mode

John Hay jhay at meraka.org.za
Sat Sep 27 07:10:49 UTC 2008


> >>>>>
> >>>>>I'm trying out the new ath/wlan stuff in current. Should one still be
> >>>>>able to set the bssid in adhoc mode? We normally lock the bssid in
> >>>>>an adhoc network because of problems that the network split and does
> >>>>>not merge, if you do not do it.
> >>>>>
> >>>>>What I have done is this:
> >>>>>
> >>>>># ifconfig wlan0 create wlandev ath0 wlanmode adhoc
> >>>>># ifconfig wlan0 ssid ptamesh up
> >>>>>
> >>>>>Up to here works well. It will scan and if it finds another node with
> >>>>>the
> >>>>>same ssid, it will "lock" on that channel and use the correct bssid.
> >>>>>
> >>>>>If it does not find another node with the same ssid, it will start it
> >>>>>own thing on channel 10. But it looks like one cannot set the bssid.
> >>>>>
> >>>>># ifconfig wlan0 bssid 02:07:ca:fe:ba:be
> >>>>>ifconfig: 02:07:ca:fe:ba:be: bad value
> >>>>>          
> >>>>I had similar experience with STA mode, instead I use ap (ap is alias
> >>>>for bssid, at least it works in STA mode)
> >>>>I never bothered is this bug in manual page, ifconfig or in something 
> >>>>else
> >>>>...
> >>>>        
> >>>Ah, thanks yes, "ifconfig wlan0 ap 02:07:ca:fe:ba:be" works just fine.
> >>>Just do not try to unset it with "ifconfig wlan0 ap -". That is an
> >>>alias for "panic now" :-)
> >>>      
> >>Well, on my system it doesnt panic here.
> >>So more info to debug "your" panic is required ...
> >>    
> >
> >I'll have to see if I can reproduce it.
> >
> >  
> >>>So it looks like ifconfig is getting confused with the many different
> >>>uses of the keyword bssid.
> >>>
> >>>I must say I still do not understand what the other use for bssid is.
> >>>Close to the end of ifconfig/ifieee80211.c there are these:
> >>>
> >>>DEF_CMD_ARG("bssid",            set80211bssid),
> >>>DEF_CMD_ARG("ap",               set80211bssid),
> >>>...
> >>>DEF_CLONE_CMD("bssid",  1,      set80211clone_bssid),
> >>>DEF_CLONE_CMD("-bssid", 0,      set80211clone_bssid),
> >>>
> >>>So my guess is that I was hitting the clone version when in fact I
> >>>needed the other version. Luckily ap does not have a clone version.
> >>>So when should the clone version be used? And how does ifconfig
> >>>decide which one to use?
> >>>      
> >
> >I looked into the ifconfig code a bit more. I think that with the
> >current code in the ifconfig() and cmd_lookup() functions, it is
> >imposssible to have two different keywords that share the same
> >keyword. cmd_lookup() will always search until it finds the first
> >instance in the list and return that. The first instance in this
> >case being the last one added.
> >  
> 
> Correct.
> 
> >So either the code must change or one of the bssid keywords have
> >to change. My suggestion would be to keep the bssid for which ap
> >is an alias and change the other one. Anybody have a suggestion
> >of what to change it to?
> >
> >  
> I prefer to change the code to handle this ambiguity within 
> ifieee80211.c.  You cannot use both together or at least they are 
> redundant.  I'll look at it when I've got time; but don't let me 
> distract you.

So what should the behaviour be? How should ifconfig know which bssid
function to use? Should the clone variant be used when it is used on
the same line as create? And the other if there is not a create on the
line? Or some other way? And should the other DEF_CLONE... keywords
also be handled the same way?

John
-- 
John Hay -- John.Hay at meraka.csir.co.za / jhay at FreeBSD.org


More information about the freebsd-mobile mailing list