Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Dec 2012 00:22:22 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        Johann Hugo <jhugo@meraka.csir.co.za>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: 11n in adhoc mode
Message-ID:  <CAJ-Vmo=1dXkK5Sem0Cg2uc0dKkwwdvAfm-_FNaVShZHMvgjy-Q@mail.gmail.com>
In-Reply-To: <201210180934.48741.jhugo@meraka.csir.co.za>
References:  <201210180934.48741.jhugo@meraka.csir.co.za>

next in thread | previous in thread | raw e-mail | index | archive | help
Ok, I've started digging into this a bit more. I need to get 11n adhoc
working so I can get 11n ahdemo working, so we can actually do 11n
TDMA at some point in the near future.

There's a whole lot of missing stuff:

* ieee80211_add_neighbor() and ieee80211_init_neighbor() don't know
about HT at all; they don't populate the HT IEs or 11n rates;

* when scanning and choosing a channel to create a BSS on, there are two things:
  + if it doesn't find an IBSS, it creates one
  + if it doesn't find an IBSS, it joins that IBSS initially, via
whatever is in the scan cache, using the scan cache channel results.

Now, I fixed the primary so it does correctly populate the
HTINFO/HTCAP IEs; so now the IBSS 11n beaconing does indeed include
the TX/RX MCS configuration necessary to do HT/MCS.

But the second is the problem - namely, it looks in the scan cache,
selects the matched entry (that used a legacy channel, as scanning is
done using legacy channels!) then it just calls ieee80211_sta_join()
using that. So it always creates a non-HT channel configuration and
associates as a non-HT node.

Now, if I change adhoc_pick_bss() to adjust the channel to be a HT
channel before it goes off and calls ieee80211_sta_join(), it will
successfully setup the channel to be an 11n channel and it'll do MCS
rates with an 11n peer fine. (traffic throughput sucks and panics
though; so it's not all smooth sailing here.) But that raises a big
problem:

If the first node that a new IBSS device sees is non-11n, will it just
assume the BSS is legacy, or will it magically promote itself to
11n/ht20 or 11n/ht40 and continue along merrily?

It'd be nice to figure out what the behaviour there should be.

Anyway. I'm making a little progress. I'll see if I can figure out why
I'm getting panics and crappy throughput when doing traffic tests - I
bet the adhoc RX and TX data path doesn't have some 11n related fixes
in there and it's messing things up.



Adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=1dXkK5Sem0Cg2uc0dKkwwdvAfm-_FNaVShZHMvgjy-Q>