# [SOLVED] Slow Outbound Transmissions Over WiFi

## SDNick484

EDIT 2 [SOLVED]: It took some digging, but I found out my issue -- I need to pass the parameter "11n_disable=8" to iwlwifi in order to enable AMPDU and get N level speeds.  I think the name of the parameter and the value ought to be changed, but that's a kernel issue, not a Gentoo one.  Anyways, I hope this helps someone else.  More info here & here.

EDIT: I confirmed wired gigabit works fine, the issue is purely with WiFi.

I recently purchased a new laptop with the Intel Centrino Advanced-N 6205 WiFi (iwlwifi) card & Intel 82579LM Gigabit NIC (e1000e), and I've noticed my outbound transfer rate over WiFi is about a quarter of my inbound one.  I first noticed this in scp, then have confirmed this in iperf.  At this point, I'm not sure if it's a issue with the kernel module, TCP tunings, etc.  However I seem to get the outbound transfer rate limit of around ~32Mbps (regardless of my distance to the AP) whereas inbound ranges from 80-140Mbps depending on proximity.

Below are some tests where:

server = On Wired Gigabit

laptop = On WiFi (5Ghz N)

(this is on a flat network with just 1 switch, a WNDR3700 running OpenWRT)

Outbound from laptop to server (~3 ft between laptop & access point):

<<<<<

nick@laptop ~ $ iperf3 -c server

Connecting to host lisa, port 5201

[  4] local 192.168.1.112 port 39479 connected to 192.168.1.78 port 5201

[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd

[  4]   0.00-1.00   sec  3.90 MBytes  32.7 Mbits/sec    0   58.0 KBytes       

[  4]   1.00-2.00   sec  3.66 MBytes  30.7 Mbits/sec    0   66.5 KBytes       

[  4]   2.00-3.00   sec  3.11 MBytes  26.1 Mbits/sec    0   70.7 KBytes       

[  4]   3.00-4.00   sec  3.35 MBytes  28.1 Mbits/sec    0   70.7 KBytes       

[  4]   4.00-5.00   sec  3.48 MBytes  29.2 Mbits/sec    0   70.7 KBytes       

[  4]   5.00-6.00   sec  3.49 MBytes  29.2 Mbits/sec    0   90.5 KBytes       

[  4]   6.00-7.00   sec  3.58 MBytes  30.0 Mbits/sec    0   90.5 KBytes       

[  4]   7.00-8.00   sec  3.37 MBytes  28.2 Mbits/sec    0   90.5 KBytes       

[  4]   8.00-9.00   sec  3.70 MBytes  31.0 Mbits/sec    0   90.5 KBytes       

[  4]   9.00-10.00  sec  3.89 MBytes  32.6 Mbits/sec    0   90.5 KBytes       

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth       Retr

[  4]   0.00-10.00  sec  35.5 MBytes  29.8 Mbits/sec    0             sender

[  4]   0.00-10.00  sec  35.4 MBytes  29.7 Mbits/sec                  receiver

iperf Done.

>>>>>

Inbound to laptop from server  (~3 ft between laptop & access point):

<<<<<<

nick@server ~ $ iperf3 -c laptop

Connecting to host laptop, port 5201

[  4] local 192.168.1.78 port 50908 connected to 192.168.1.112 port 5201

[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd

[  4]   0.00-1.00   sec  16.6 MBytes   140 Mbits/sec    2    175 KBytes       

[  4]   1.00-2.00   sec  16.6 MBytes   140 Mbits/sec    0    198 KBytes       

[  4]   2.00-3.00   sec  16.7 MBytes   140 Mbits/sec    0    209 KBytes       

[  4]   3.00-4.00   sec  16.2 MBytes   136 Mbits/sec    0    215 KBytes       

[  4]   4.00-5.00   sec  16.2 MBytes   136 Mbits/sec    0    216 KBytes       

[  4]   5.00-6.00   sec  15.8 MBytes   132 Mbits/sec   26    167 KBytes       

[  4]   6.00-7.00   sec  16.5 MBytes   138 Mbits/sec    0    194 KBytes       

[  4]   7.00-8.00   sec  16.1 MBytes   135 Mbits/sec    0    209 KBytes       

[  4]   8.00-9.00   sec  14.9 MBytes   125 Mbits/sec    5    157 KBytes       

[  4]   9.00-10.00  sec  16.4 MBytes   137 Mbits/sec    0    173 KBytes       

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth       Retr

[  4]   0.00-10.00  sec   162 MBytes   136 Mbits/sec   33             sender

[  4]   0.00-10.00  sec   162 MBytes   136 Mbits/sec                  receiver

iperf Done.

>>>>>

Below is a scp test in both directons

<<<<<

nick@server ~ $ dd if=/dev/zero of=bigfile bs=1048576 count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.37431 s, 280 MB/s

nick@server ~ $ scp bigfile snowball:~/

bigfile                             100%  100MB  11.1MB/s  12.3MB/s   00:09    

nick@server ~ $ scp snowball:~/bigfile .

bigfile                             100%  100MB   3.9MB/s   4.1MB/s   00:26 

>>>>>

Any ideas on where I should start looking?  I've already tried upping the rmem_max, wmem_max, etc. (as suggested here) to no avail.

----------

## eccerr0r

Thanks for the tip, I never really noticed any problems (sort of "happy it works") now I have to see if I'm also afflicted by this... I did notice my wifi was never anywhere close to theoretical speeds, blaming airwave noise by other peoples' APs and wifi devices...

----------

## SDNick484

 *eccerr0r wrote:*   

> Thanks for the tip, I never really noticed any problems (sort of "happy it works") now I have to see if I'm also afflicted by this... I did notice my wifi was never anywhere close to theoretical speeds, blaming airwave noise by other peoples' APs and wifi devices...

 

Yeah, now I'm curious about my "old" laptop.  It looks like the commit, 205e2210daa975d92ace485a65a31ccc4077fe1a, went in around Feb., and I think hit the 3.11.x kernel range.  It applies to a lot of Intel cards (pretty much anything that uses iwldvm) so I'm sure a lot of folks are affected and just are not aware.  It's somewhat of an insideous change since it causes breakage that's suddle enough not to notice for quite some time and tha parameter related to it doesn't make much sence (personally, I'd expect 11n_disable to disable 11n...).

----------

