Ok, wow. I think I finally understand the level of "huh?" going on here.

When a new BSS is created, everything now works out great. It creates
a BSS, the channel is promoted to 11n correctly, it gets the 11n IE's
populated, etc.

When you're joining a BSS however, it doesn't do any of this.
adhoc_pick_bss() calls ieee80211_sta_join() to the BSS, which
populates a vap node to that peer with a very, very bare minimum
config. There's no HT info there at all. But since it's done the basic
node setup, the normal discovery path (ie, BSS RX, BSS beacon RX)
doesn't see this particular node as a 'new' node.

Now, I hacked up the HT rate and node setup into adhoc_pick_bss() to
setup the BSS node like this and it works; enough to have both sides
setup the MCS rate tables and negotiate 11n right. They don't
successfully negotiate ADDBA, but that's some funny race crap I'll
deal with later (I'm doing it all on a single laptop with two ath
NICs, using vimage. Yes, evil.)

Anyway. I think I'm getting slightly closer to making 11n adhoc mode
work. I may need some help (Bernhard?) on figuring out a cleaner way
to "join" an existing BSS, instead of how it's currently done.

Also, Bernhard - why don't we do all the IE setup in ieee80211_sta_join() ?


freebsd-wireless@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"

Reply via email to