[RFC 0/3] enable HT in a mesh
From: Thomas Pedersen <hidden>
Date: 2011-08-24 19:02:31
Hi I'm adding HT support for mesh.
This patchset is pretty basic, and relies on Alexander Simon's HT IE helper
funtions. No channel type negotiation takes place, and the HT info IE from the
peer is not even read.
In practice, nodes with mismatched channel types seem to communicate fine,
although throughput is affected (TX from HT40 -> HT20 is the worst case).
We measured these data rates in our (widely uncontrolled) office environment
using the ath9k_htc driver:
A\B NO HT HT20 HT40+
NO HT r: 54Mb/s r: MCS 13 r: MCS 13
D: 20Mb/s D: 16Mb/s D: 16Mb/s
HT20 r: 54Mb/s r: MCS 13 r: MCS 13
D: 22.5Mb/s D: 18.5Mb/s D: 15Mb/s
HT40+ r: 54Mb/s r: MCS 0 r: MCS 12 @ 40Mhz
D: 22Mb/s D: 5.1Mb/s D: 20Mb/s
r: rate reported by minstrel.
D: TX throughput (A -> B using 'iperf -c <B> -u -b400M')
Is it odd that even HT40+ -> HT40+ is not any better than the non-HT case? Are
we doing something wrong? Are you surprised that mismatched channel types work
at all?
So currently, our channel type is always just whatever the user configured
through iw. The path selection algorithm should be able to compensate by
detecting faster links and adjusting the respective mpaths accordingly.
If this is completely wrong, I would appreciate any suggestions on the right
way to handle mesh peers with different channel types.
Thanks,
Thomas
Thomas Pedersen (3):
mac80211: comment allocation of mesh frames
mac80211: add HT IEs to mesh frames
mac80211: set HT capabilities for mesh peer
net/mac80211/mesh.c | 43 +++++++++++++++++++++++++++++++++++++++++++
net/mac80211/mesh.h | 4 ++++
net/mac80211/mesh_hwmp.c | 10 ++++++++--
net/mac80211/mesh_plink.c | 39 ++++++++++++++++++++++++++++++++-------
net/mac80211/tx.c | 16 +++++++++++++---
5 files changed, 100 insertions(+), 12 deletions(-)
--
1.7.4.1