R52n vs. Intel 4965AGN interoperability problems 11n

Hi,
I have found some posts regarding Centrino WLAN chipsets and Routerboard miniPCI cards posts in this forum but none of them came to any conclusion so I have decided to start a new one with a comparison between RouterOS and OpenWrt regarding the issue.

OK. I have RB433ah (ROS v4.5) with R52n, two 8dBi 5GHz omnis and Lenovo’s T61p equipped with 4965agn. The link is through 2 walls and 10m distance.

I have had issues with getting this setup stable throughput ever since I had bought RB433ah with R52n. I had reset the wireless configuration as proposed in some other threads and rose hw retries to 8 if that’s important.

There are actually few problems:

  1. I cannot get it to work with HT40[+/-] (tried many different channels) but Tx Rate information in “registration tab” is maxes at 117Mbps-HT which is HT20 rate
  2. another issue is that I cannot get it to a stable throughput at HT20
  3. Rx Rate maxes at 54Mbps (but that is probably Intel’s card limitation)

I have decided to do some testing and below I will share the results.
Tests were done using iperf in one direction with my laptop being a receiver and another PC wired to the RB433AH was sending data.

First test was done on OpenWrt. I was amazed and how well it performed and decided to compare it and share the tests with you.

To make the long story short with the latest OpenWrt trunk the link is perfectly stable but on RouterOS it has some periodic glitches and another discovery was that using OpenWrt I could use HT40+ while I couldn’t get it to work on RouterOS at all. There was no distance nor devices positions change between the test.

It’s not intended a “blame that bad RouterOS” thread. I would like to help you get it fixed as it’s possible regarding the later evidence. I will post the results in separate messages as they are lengthy.

Does anyone have similar issues?

Here is what I see at my laptop:

piter@laptop:~$ iwconfig wlan0 
wlan0     IEEE 802.11abgn  ESSID:"piter-n"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 00:0C:42:3A:EF:90   
          Bit Rate=54 Mb/s   Tx-Power=14 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
          Power Management:off
          Link Quality=60/100  Signal level:-68 dBm  Noise level=-92 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

At RB433 side I see:
Tx Rates between 6Mbps and 117Mbps-HT but most of the time between 52Mbps-HT and 104Mbps-HT
Rx Rates mostly 54Mbps sometimes drops to 36Mbps
Tx/Rx CCQ most of the time between 70 and 80 but sometimes goes down to 10-20 (quite regularly as will be shown further down)
Signal strength is around -70dBm

Here’s what I run on the laptop:

iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.9 port 5001 connected with 192.168.2.2 port 39940
[  4]  0.0-600.1 sec  2.17 GBytes  31.0 Mbits/sec

and here’s what I run and see on the wired PC (lengthy, checkout the bold ones and count the period between them):
piter@htpc:~$ iperf -c 192.168.2.9 -t 600 -i 2

Client connecting to 192.168.2.9, TCP port 5001
TCP window size: 16.0 KByte (default)

[ 3] local 192.168.2.2 port 39940 connected with 192.168.2.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 2.0 sec 7.97 MBytes 33.4 Mbits/sec
[ 3] 2.0- 4.0 sec 7.16 MBytes 30.0 Mbits/sec

[ 3] 48.0-50.0 sec 8.07 MBytes 33.8 Mbits/sec
[ 3] 50.0-52.0 sec 8.08 MBytes 33.9 Mbits/sec
[ 3] 52.0-54.0 sec 6.06 MBytes 25.4 Mbits/sec
[ 3] 54.0-56.0 sec 1.27 MBytes 5.31 Mbits/sec
[ 3] 56.0-58.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 58.0-60.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 60.0-62.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 62.0-64.0 sec 2.27 MBytes 9.50 Mbits/sec
[ 3] 64.0-66.0 sec 4.28 MBytes 18.0 Mbits/sec
[ 3] 66.0-68.0 sec 5.55 MBytes 23.3 Mbits/sec
[ 3] 68.0-70.0 sec 6.06 MBytes 25.4 Mbits/sec

[ 3] 70.0-72.0 sec 8.08 MBytes 33.9 Mbits/sec
[ 3] 72.0-74.0 sec 8.08 MBytes 33.9 Mbits/sec

[ 3] 168.0-170.0 sec 7.30 MBytes 30.6 Mbits/sec
[ 3] 170.0-172.0 sec 7.55 MBytes 31.7 Mbits/sec
[ 3] 172.0-174.0 sec 5.81 MBytes 24.4 Mbits/sec
[ 3] 174.0-176.0 sec 5.55 MBytes 23.3 Mbits/sec
[ 3] 176.0-178.0 sec 5.55 MBytes 23.3 Mbits/sec
[ 3] 178.0-180.0 sec 5.30 MBytes 22.2 Mbits/sec
[ 3] 180.0-182.0 sec 5.54 MBytes 23.2 Mbits/sec
[ 3] 182.0-184.0 sec 5.56 MBytes 23.3 Mbits/sec

[ 3] 184.0-186.0 sec 7.32 MBytes 30.7 Mbits/sec
[ 3] 186.0-188.0 sec 7.57 MBytes 31.8 Mbits/sec

[ 3] 288.0-290.0 sec 8.09 MBytes 33.9 Mbits/sec
[ 3] 290.0-292.0 sec 7.82 MBytes 32.8 Mbits/sec
[ 3] 292.0-294.0 sec 6.07 MBytes 25.5 Mbits/sec
[ 3] 294.0-296.0 sec 1.51 MBytes 6.32 Mbits/sec
[ 3] 296.0-298.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 298.0-300.0 sec 1.02 MBytes 4.26 Mbits/sec
[ 3] 300.0-302.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 302.0-304.0 sec 2.02 MBytes 8.45 Mbits/sec
[ 3] 304.0-306.0 sec 4.27 MBytes 17.9 Mbits/sec
[ 3] 306.0-308.0 sec 5.80 MBytes 24.3 Mbits/sec

[ 3] 308.0-310.0 sec 8.07 MBytes 33.8 Mbits/sec
[ 3] 310.0-312.0 sec 8.59 MBytes 36.0 Mbits/sec

[ 3] 408.0-410.0 sec 7.80 MBytes 32.7 Mbits/sec
[ 3] 410.0-412.0 sec 8.11 MBytes 34.0 Mbits/sec
[ 3] 412.0-414.0 sec 6.31 MBytes 26.5 Mbits/sec
[ 3] 414.0-416.0 sec 1.27 MBytes 5.31 Mbits/sec
[ 3] 416.0-418.0 sec 1.02 MBytes 4.26 Mbits/sec
[ 3] 418.0-420.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 420.0-422.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 422.0-424.0 sec 2.27 MBytes 9.54 Mbits/sec
[ 3] 424.0-426.0 sec 4.02 MBytes 16.9 Mbits/sec
[ 3] 426.0-428.0 sec 5.30 MBytes 22.2 Mbits/sec

[ 3] 428.0-430.0 sec 7.08 MBytes 29.7 Mbits/sec
[ 3] 430.0-432.0 sec 8.59 MBytes 36.0 Mbits/sec

[ 3] 528.0-530.0 sec 8.34 MBytes 35.0 Mbits/sec
[ 3] 530.0-532.0 sec 8.08 MBytes 33.9 Mbits/sec
[ 3] 532.0-534.0 sec 6.07 MBytes 25.5 Mbits/sec
[ 3] 534.0-536.0 sec 1.26 MBytes 5.28 Mbits/sec
[ 3] 536.0-538.0 sec 1.00 MBytes 4.19 Mbits/sec
[ 3] 538.0-540.0 sec 1.01 MBytes 4.23 Mbits/sec
[ 3] 540.0-542.0 sec 1.02 MBytes 4.26 Mbits/sec
[ 3] 542.0-544.0 sec 3.02 MBytes 12.7 Mbits/sec
[ 3] 544.0-546.0 sec 4.53 MBytes 19.0 Mbits/sec
[ 3] 546.0-548.0 sec 5.04 MBytes 21.1 Mbits/sec

[ 3] 548.0-550.0 sec 7.83 MBytes 32.8 Mbits/sec
[ 3] 550.0-552.0 sec 8.34 MBytes 35.0 Mbits/sec

[ 3] 596.0-598.0 sec 8.59 MBytes 36.0 Mbits/sec
[ 3] 598.0-600.0 sec 8.33 MBytes 34.9 Mbits/sec
[ 3] 0.0-600.0 sec 2.17 GBytes 31.1 Mbits/sec

In the above results I have cut out the periods where the bandwidth is stable (fluctuations less than +/- 20%).

What is common between above results is that every 120s there is a problem with throughput going down but it takes 2s for OpenWrt to recover it and between 12 and 18 for RouterOS.

For me it seems that the issue is with rate control. As far as I have seen OpenWrt is using ath9k driver with ath_rate_minstrel rate control.

Have anyone of you had similar problems?

And here are OpenWrt results. I have tried to post it earlier but it was probably not posted right so I am posting it again.

Here is what I see at my laptop:

wlan0     IEEE 802.11abgn  ESSID:"OpenWrt"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 00:0C:42:3A:EF:90   
          Bit Rate=54 Mb/s   Tx-Power=14 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
          Power Management:off
          Link Quality=55/100  Signal level:-70 dBm  Noise level=-92 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

At OpenWrt side I see:
Tx Rates going up to 243Mbps
Rx Rates mostly 54Mbps sometimes drops to 36Mbps

Here’s what I run on the laptop:

iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  5] local 192.168.2.9 port 5001 connected with 192.168.2.2 port 52049
[  5]  0.0-600.0 sec  2.76 GBytes  39.5 Mbits/sec

and here’s what I run and see on the wired PC (checkout the bold ones and count the period between them):
iperf -c 192.168.2.9 -t 600 -i 2

Client connecting to 192.168.2.9, TCP port 5001
TCP window size: 16.0 KByte (default)

[ 3] local 192.168.2.2 port 52049 connected with 192.168.2.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 2.0 sec 9.30 MBytes 39.0 Mbits/sec
[ 3] 2.0- 4.0 sec 9.05 MBytes 38.0 Mbits/sec

[ 3] 20.0-22.0 sec 8.84 MBytes 37.1 Mbits/sec
[ 3] 22.0-24.0 sec 9.08 MBytes 38.1 Mbits/sec
[ 3] 24.0-26.0 sec 4.10 MBytes 17.2 Mbits/sec
[ 3] 26.0-28.0 sec 8.67 MBytes 36.4 Mbits/sec
[ 3] 28.0-30.0 sec 8.68 MBytes 36.4 Mbits/sec

[ 3] 140.0-142.0 sec 8.52 MBytes 35.7 Mbits/sec
[ 3] 142.0-144.0 sec 8.41 MBytes 35.3 Mbits/sec
[ 3] 144.0-146.0 sec 3.88 MBytes 16.3 Mbits/sec
[ 3] 146.0-148.0 sec 9.02 MBytes 37.8 Mbits/sec
[ 3] 148.0-150.0 sec 8.56 MBytes 35.9 Mbits/sec

[ 3] 260.0-262.0 sec 10.3 MBytes 43.4 Mbits/sec
[ 3] 262.0-264.0 sec 10.3 MBytes 43.4 Mbits/sec
[ 3] 264.0-266.0 sec 4.91 MBytes 20.6 Mbits/sec
[ 3] 266.0-268.0 sec 10.1 MBytes 42.3 Mbits/sec
[ 3] 268.0-270.0 sec 10.1 MBytes 42.3 Mbits/sec

[ 3] 380.0-382.0 sec 10.4 MBytes 43.4 Mbits/sec
[ 3] 382.0-384.0 sec 10.4 MBytes 43.4 Mbits/sec
[ 3] 384.0-386.0 sec 5.43 MBytes 22.8 Mbits/sec
[ 3] 386.0-388.0 sec 10.4 MBytes 43.5 Mbits/sec
[ 3] 388.0-390.0 sec 10.3 MBytes 43.3 Mbits/sec

[ 3] 500.0-502.0 sec 8.81 MBytes 37.0 Mbits/sec
[ 3] 502.0-504.0 sec 8.53 MBytes 35.8 Mbits/sec
[ 3] 504.0-506.0 sec 4.39 MBytes 18.4 Mbits/sec
[ 3] 506.0-508.0 sec 10.1 MBytes 42.3 Mbits/sec
[ 3] 508.0-510.0 sec 10.3 MBytes 43.3 Mbits/sec

[ 3] 596.0-598.0 sec 10.6 MBytes 44.5 Mbits/sec
[ 3] 598.0-600.0 sec 10.1 MBytes 42.3 Mbits/sec
[ 3] 0.0-600.0 sec 2.76 GBytes 39.5 Mbits/sec

did you enable chain 1 tx/rx? Also, did you enable the HT Extension channel above / below (40mhz)?

Sam

Hi,
yes I have both chains enabled for Tx/Rx (even without HT Extension Channel) but for 40MHz test I was using HT40+ meaning “above control” with 5180 control channel and no matter what I do I cannot get over 130Mbps-HT even if I move my laptop to LOS area although as I have stated earlier I can get 243Mbps without LOS in OpenWrt (exactly the same mechanical conditions) and 300Mbps with short GI in LOS conditions.

As a side note I have found the source of 120s periodical throughput issues (bold periods above). It is Network Manager combined with lack of background scan in older Linux kernels (2.6.28 atm) :wink: Every 120s NM scans for APs in the area. The interesting thing is though that OpenWrt recovers in 2s but RouterOS takes 12-18s. The rate control algorithm in ath9k in OpenWrt is probably a little bit more aggressive at using higher rates after bandwidth problems.

When I use iwconfig and wpa_supplicant for manual connection I don’t get these 120s periodic throughput lows but I cannot get over HT20 neither.

Regards,
Piotr