OpenWrt Forum Archive

Topic: DIR-860L: poor wireless performance

The content of this topic has been archived on 2 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I've just acquired a D-LINK DIR-860L B1 router which is running CC15.05.1 image (openwrt-15.05.1-ramips-mt7621-dir-860l-b1-squashfs-factory.bin).

Everything work fine except WiFi performance that are really weak (for both 2,4GH and 5GHz radio) … let’s say around 60Mbps for downlink in very good condition (vs 300Mbps with the stock firmware) for 5GHz radio. According to toh, this hardware is supported and the WiFi performance should be 170Mbps…

Is there anything that I can do to improve wireless performance?

Basically, on toh page (https://wiki.openwrt.org/toh/d-link/dir-860l), the firmware should be compiled with non-standard settings ((“-mno-mips16 –mdsp”). I guess theses settings are applied in the pre-compiled CC 15.05.1 image but could you confirm this point?

Thanks for your help.

(Last edited by nague on 21 Apr 2016, 17:23)

I do not know, if it were any help: I used it with CC15.05.1 and the performance, including wifi, seemed to be quite good. Today I tested the Designated Driver r49221, and it seems to be even more responsive and even the LEDs work without hacking.

On wlan0 (ac):

  • Signal / Noise values are: -78/0 dBm,

  • the RX rate is 12.0 Mbit/s, 20MHz, and

  • the TX rate is 195.0 Mbit/s, 80MHz, VHT-MCS 4, VHT-NSS 1, Short GI

  • this is over 2 brick walls

On wlan1 (n):

  • Signal / Noise values are: -61/0 dBm,

  • the RX rate is 270.0 Mbit/s, 40MHz, MCS 14, Short GI and

  • the TX rate is 162.0 Mbit/s, 40MHz, MCS 12

  • this is a WDS AP over a concrete ceiling

Basically, with CC15.05.1, reported RX/TX rates are correct and conform to signal quality. But the effective throughput in TCP is not very good, especially the downlink for wlan0.

I’ll give a try in last DD build and let you know.

I had the same with all images (15.05/15.05.1/trunk) until I reflashed the original firmware (2.03). Then flashing with 15.05.1 worked and the problems are gone.

Hi nague,

I also tried ddwrt and the original firmware with iperf3 on the 5GHz channel with 40MHz bandwidth. The results:

  • 15.05.1: down: 179-236 Mbps; up: 176-236

  • stock firmware 2.03: down: 287-304 Mbps; up: 352-372

  • ddwrt r25979: down: 316-338 Mbps; up: 388-409

The results for the 2,4 GHz radio are roughly the half of the above. The results are roughly the same regardless the location of the iperf3 server (ie: on the router, or on a wired PC cabled to the LAN or WAN port). The client I used was the latest Macbook Air.

So the results are better than yours, but still far from the ones on the ToH page. I wonder what testing conditions were used to get that impressive results.

I also tried TheNoxier's recommendation, but I have seen no improvement in speed. Also tested with recompiling the firmware with non standard target optimization (mno-mips16 -mdsp) settings from the 15.05 branch of today, but have seen no improvements. I will give a try to r47187 as stated on the ToH page and will report back to you.

If you do not need special features, but speed is important, it is probably better to use ddwrt, as the actual throughput is is 1.5-2 times better in test conditions.

Unfortunately for me, ddwrt does not excel in WDS, what I need to broadcast 2 floors in the house, so I keep on using and experimenting with openwrt and probably will give a try to the LEDE project.

karesch

Compiling with non standard target optimization (mno-mips16 -mdsp) of r47187 did not help either. However a verbose iperf3 shows the root of the problem: ddwrt seems to have much better congestion control,  CC 15.05.1 has many retries that slows the traffic down, ddwrt r25979 has zero retries. See below.

Later I will check what settings the ddwrt folks use in sysctl.conf, I guess openwrt can have the same speed with proper congestion control tuning.

CC 15.05.1:

Connecting to host 192.168.1.4, port 5201
      Cookie: karesch-ThinkPad-T410s.1462621880.25
      TCP MSS: 1448 (default)
[  4] local 192.168.1.115 port 33240 connected to 192.168.1.4 port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  24.1 MBytes   202 Mbits/sec   34    117 KBytes       
[  4]   1.00-2.00   sec  22.2 MBytes   186 Mbits/sec   24    126 KBytes       
[  4]   2.00-3.00   sec  23.0 MBytes   193 Mbits/sec   10    134 KBytes       
[  4]   3.00-4.00   sec  24.0 MBytes   201 Mbits/sec   25    136 KBytes       
[  4]   4.00-5.00   sec  23.1 MBytes   193 Mbits/sec   23   97.6 KBytes       
[  4]   5.00-6.00   sec  23.1 MBytes   194 Mbits/sec   17    154 KBytes       
[  4]   6.00-7.00   sec  23.9 MBytes   200 Mbits/sec   26    157 KBytes       
[  4]   7.00-8.00   sec  22.4 MBytes   188 Mbits/sec   10   82.0 KBytes       
[  4]   8.00-9.00   sec  16.3 MBytes   137 Mbits/sec    4   89.1 KBytes       
[  4]   9.00-10.00  sec  20.6 MBytes   173 Mbits/sec    7   82.0 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   223 MBytes   187 Mbits/sec  180             sender
[  4]   0.00-10.00  sec   221 MBytes   185 Mbits/sec                  receiver
CPU Utilization: local/sender 1.1% (0.1%u/1.0%s), remote/receiver 1.9% (0.2%u/1.7%s)

ddwrt r25979:

Connecting to host 192.168.1.128, port 5201
      Cookie: karesch-ThinkPad-T410s.1462623384.28
      TCP MSS: 1448 (default)
[  4] local 192.168.1.115 port 44956 connected to 192.168.1.128 port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  35.8 MBytes   300 Mbits/sec    0   1.00 MBytes       
[  4]   1.00-2.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   2.00-3.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   3.00-4.00   sec  37.5 MBytes   315 Mbits/sec    0   1.00 MBytes       
[  4]   4.00-5.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   5.00-6.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   6.00-7.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   7.00-8.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   8.00-9.00   sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
[  4]   9.00-10.00  sec  36.2 MBytes   304 Mbits/sec    0   1.00 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   363 MBytes   305 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   361 MBytes   303 Mbits/sec                  receiver
CPU Utilization: local/sender 1.6% (0.3%u/1.4%s), remote/receiver 4.3% (0.4%u/3.9%s)

Unfortunately, there is no sysctl on ddwrt. I briefly checked the nvram, but found nothing that could have been related to congestion control.

Hi karesh

Thx for your tests and feedback.

Have you also performed iperf tests in udp ? I found that the highest reachable throughput is much higher than 170Mbps (sorry I didn’t keep the log). But exceeding a certain UDP bandwidth, the throughput drops significantly (even lower than 170Mbps). So the congestion control is a good line of investigation, at the layer 2 level (not tcp).

I’ll give a try to ddwrt but I’d prefer stick to openwrt.

I tried ddwrt on my dir 860l, wifi tcp throughputs are quite identical to yours. Any idea how we can adjust congestion control on openwrt ?

Hello,

I recently flashed OpenWRT, then made a very bad decision after reading this thread. I downloaded ddwrt firmware for this router, and attempted to directly flash ddwrt from the OpenWRT GUI. Suffice it to say, my router hasn't woken up since, and has been blinking the orange LED. I attempted to boot failsafe mode, but I don't think I was successful, because the LEDs haven't changed. My computer doesn't seem to think a LAN connection to the router is present either.

Could anyone help me with debricking? I don't think I've messed it up significantly, beyond a very stupid flash.

Unfortunately recovery mode doesn't seem to work at all. Is this router bricked?

rajs04 wrote:

Unfortunately recovery mode doesn't seem to work at all. Is this router bricked?

Hi!

Have you set up a static IP from 192.168.0.1/24 for your PC? For example 192.168.0.100.

I realized I performed the recovery procedure incorrectly. Managed to recover everything back. However, WiFi performance is still rather poor on 5Ghz. Any updated config these days that makes this router work well? What is a good recent build for most?

Hello,

I am having a lot of trouble understanding the way the switch works on OpenWRT. Is there a way to use the LUCI gui rather than coding, as explained in the OpenWRT switch documentation?

I am using this router, running OpenWRT as an access point. I'd like to be able to use the WAN port just like the LAN port, as a switch. There are a total of 7 ports listed on the switch page, along with CPU. I changed everything to untagged, but I learned that I need to leave the CPU tagged because the router is extremely slow without that. In addition, there were 2 vlan's listed, so I simply deleted the second one.

In the interfaces page, there are 3 interfaces listed: LAN, WAN, WAN6. Because I want to use this router as an AP, I actually don't need to keep any WAN interfaces. However, I can't seem to delete these two!

Could I get a step-by-step explanation of the interfaces (how to delete) and the 7 ports on the switch?

--OpenWRT noob!

karesch wrote:

I do not know, if it were any help: I used it with CC15.05.1 and the performance, including wifi, seemed to be quite good. Today I tested the Designated Driver r49221, and it seems to be even more responsive and even the LEDs work without hacking.

Is it possible to get an upgrade bin file compiled with Designated Driver and LuCi? I'm new to coding , so I don't know how to install LuCi via command line, nor do I know how to compile Designated Driver.

rajs04 wrote:

Is it possible to get an upgrade bin file compiled with Designated Driver and LuCi? I'm new to coding , so I don't know how to install LuCi via command line, nor do I know how to compile Designated Driver.

There is a wiki page about LuCI installation...

You shouldn't be testing troughput from your router to your client, it's better to test between two clients - a wired one and a wireless one, if you want to see how much your router can handle.

From my server to my laptop (with 2-stream Intel 8260AC), I'm seeing ~ 320 Mbps throughput with a brick wall in between.

(Last edited by Borromini on 22 Jan 2017, 11:08)

open 2 ssh sessions to your router: in the first one run iperf -s, in the second one run iperf -c 127.0.0.1 -i 1 -t 20.

if you think your device can handle more than in the previous test when connected one client wired and other wireless then go for it, otherwise it's absolutely fine to test throughput from router to client.

Karesch, have you found out anything further about the lower speed? My laptop is N only (5GHZ 40 Mhz wide bands), so I am getting lower speed in general, but I am only getting to about 60 mbits on my Ubuntu 16.04 machine with Intel 6205 and only about 80 on a windows machine (I am not sure about its card). The wiki says one should get around 170 mbits over this configuration. I am wondering if the original poster on the wiki did not mistake N over AC and actually reported speeds for AC. However, over N, I don't get any retries:

Connecting to host dlink, port 5201
[  4] local fd70:79d4:8946::bab port 37610 connected to fd70:79d4:8946::1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.62 MBytes  22.0 Mbits/sec    0   25.1 KBytes       
[  4]   1.00-2.00   sec  3.06 MBytes  25.7 Mbits/sec    0   27.9 KBytes       
[  4]   2.00-3.00   sec  2.88 MBytes  24.2 Mbits/sec    0   27.9 KBytes       
[  4]   3.00-4.00   sec  3.00 MBytes  25.2 Mbits/sec    0   33.5 KBytes       
[  4]   4.00-5.00   sec  2.82 MBytes  23.6 Mbits/sec    0   33.5 KBytes       
[  4]   5.00-6.00   sec  2.94 MBytes  24.7 Mbits/sec    0   33.5 KBytes       
[  4]   6.00-7.00   sec  2.82 MBytes  23.6 Mbits/sec    0   33.5 KBytes       
[  4]   7.00-8.00   sec  2.94 MBytes  24.7 Mbits/sec    0   33.5 KBytes       
[  4]   8.00-9.00   sec  2.94 MBytes  24.7 Mbits/sec    0   33.5 KBytes       
[  4]   9.00-10.00  sec  2.94 MBytes  24.7 Mbits/sec    0   33.5 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  29.0 MBytes  24.3 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  28.8 MBytes  24.2 Mbits/sec                  receiver

(I am not sure why I am getting so low speeds with iperf3 - but I think I am now testing with more devices on the network and some might be slowing it down. Will retest without those devices). There is also a related discussion here: https://forum.lede-project.org/t/enabli … connection

The discussion might have continued from here.