Increasing throughput on 3-radio system?
I've put 3 ath9k AR9380 NICs into a single system (core-i7). Each is configured for an AP on a separate 5Ghz channel (40Mhz wide).
Individually, I can get about 300Mbps transmit towards the AP on any particular radio, but when running all together, total throughput is only about 475Mbps.
I assume there is some cross-channel bleeding or similar.
The APs are close by, so I was wondering if perhaps there was a way to configure the radios to be less sensitive and thus pay less attention to channel cross-talk?
Any suggestions for things to try are appreciated!
Thanks,
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Quoted 19 lines · Sam Leffler
On Fri, Jan 25, 2013 at 10:11 AM, Ben Greear <[email protected] <mailto:[email protected]>> wrote:
I've put 3 ath9k AR9380 NICs into a single system (core-i7). Each is configured for an AP on a separate 5Ghz channel (40Mhz wide).
Individually, I can get about 300Mbps transmit towards the AP on any particular radio, but when running all together, total throughput is only about 475Mbps.
I assume there is some cross-channel bleeding or similar.
Yes.
The APs are close by, so I was wondering if perhaps there was a way to configure the radios to be less sensitive and thus pay less attention to channel cross-talk?
Quoted 5 lines
Any suggestions for things to try are appreciated!
If you cannot fully isolate the antenna the usual approach is to schedule radio usage so tx/rx is done on all radios at the same time. Ubiquity and Mikrotik do this and there have been many research papers that discuss this.
It seems basically impossible to fully isolate the NICs in a normal system. The u.fl/IPEX pigtails bleed for sure. The NICs probably bleed just as bad or worse, and I can't think of a good way to increase isolation without somehow encasing each NIC in a small RF-proof box (and somehow keeping the RF from running down the pci-e ribon cables, etc).
Playing tricks with scheduling seems pretty nifty, but probably not realistic for my particular use case (emulating lots and lots of stations that should run against whatever AP(s) the customers may be using).
If there were a way to decrease rx-sensitivity, wouldn't that be pretty similar to having all NICs transmit at once (in other words, the NICs could better ignore the fainter cross-talk signals and focus on the high-powered signals on their particular channel)?
Thanks,
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Hi,
Strong enough out of band RF is still going to bleed over and it may saturate the receive amplifiers before it hits the chip and the configurable analog band-pass filter.
Hence the suggestion to always TX at the same time. That way you don't have the problem of TX from one radio being strong enough to saturation. You can tune the PHY (via magic handwavy parameters that strangely enough are partially described in the ANI code :-) to reduce its sensitivity to blocker signals, but it doesn't help you if the signal is close enough by to trigger the wideband / out of band interference check. If you try and receive during that you're going to have very poor behaviour.
Thanks,
Adrian
Quoted 6 lines · Adrian Chadd
Hi,
Strong enough out of band RF is still going to bleed over and it may saturate the receive amplifiers before it hits the chip and the configurable analog band-pass filter.
Quoted 8 lines
Hence the suggestion to always TX at the same time. That way you don't have the problem of TX from one radio being strong enough to saturation. You can tune the PHY (via magic handwavy parameters that strangely enough are partially described in the ANI code :-) to reduce its sensitivity to blocker signals, but it doesn't help you if the signal is close enough by to trigger the wideband / out of band interference check. If you try and receive during that you're going to have very poor behaviour.
Could you point me to which registers/vars/keywords in (ath9k) ani do this? I'd like to play around with them a bit.
As for transmitting at the same time, is that even possible using multiple ath9k NICs in a PC? It would seem to me that you'd need some kind of low-level communication between the hardware/firmware on the NICs themselves to accomplish that?
Thanks,
Ben
Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com
Quoted 2 lines · Ben Greear
Could you point me to which registers/vars/keywords in (ath9k) ani do this? I'd like to play around with them a bit.
Just look at the ANI code and the ANI patent. It covers what the registers do. There are obviously more PHY register nowdays, but those are a good starting point.
Quoted 4 lines
As for transmitting at the same time, is that even possible using multiple ath9k NICs in a PC? It would seem to me that you'd need some kind of low-level communication between the hardware/firmware on the NICs themselves to accomplish that?
No, you just need a cute hack to un-gate the TX queues at the same time. You'd also probably have to disable CCA (hah!) so they all transmit at the same time, and configure the TXQ backoff to be linear exponential, rather than random exponential backoff.
Adrian