Qualcomm Fast Path For LEDE

Update on issues with compiling for the Archer C7.

Fails due to wireless drivers, ath10k.

somehow you didn't patch it correctly

@gwlim using your latest build and PC connected via gigabit ethernet to the router, running iperf3.

Client connected to the router at 80MHz, at maximum rate (1300Mbps), iperf results:

Connecting to host gigabit-pc.lan, port 5201
[  6] local fd4b:e48:951c::eb2 port 56069 connected to fd4b:e48:951c::53d port 5201
[ ID] Interval           Transfer     Bitrate
[  6]   0.00-1.00   sec  32.9 MBytes   276 Mbits/sec                  
[  6]   1.00-2.00   sec  33.9 MBytes   285 Mbits/sec                  
[  6]   2.00-3.00   sec  33.5 MBytes   281 Mbits/sec                  
[  6]   3.00-4.00   sec  34.2 MBytes   287 Mbits/sec                  
[  6]   4.00-5.00   sec  34.2 MBytes   287 Mbits/sec                  
[  6]   5.00-6.00   sec  33.3 MBytes   279 Mbits/sec                  
[  6]   6.00-7.00   sec  30.4 MBytes   255 Mbits/sec                  
[  6]   7.00-8.00   sec  32.3 MBytes   271 Mbits/sec                  
[  6]   8.00-9.00   sec  31.5 MBytes   264 Mbits/sec                  
[  6]   9.00-10.00  sec  33.1 MBytes   278 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  6]   0.00-10.00  sec   329 MBytes   276 Mbits/sec                  sender
[  6]   0.00-10.00  sec   329 MBytes   276 Mbits/sec                  receiver 

Why the slow speed?

what is the wireless network adapter?
And your wifi config?

Missing ipt-conntrack-extra

@gwlim It is Broadcom BCM43xx in a MacBook Pro. Channel 100 on the router at 80MHz. What else do you need to know?

Wireless is not the same as wired.
If the wireless rate is low you should check your wifi or contact ath10k

What is the point in this then? You said in the initial post you get higher speeds over wireless.

I could already get 940Mbps over wired without installing this, I am now completely lost.

Try iperf over 10.1.1.2 to 192.168.1.X
on original firmware vs fast path.
Then you know what this is all about
https://wiki.openwrt.org/doc/howto/benchmark.nat

@gwlim Tell me the version of iperf used in the initial post and the settings used?

Any iperf version just follow NAT settings
10.X.X.X (WAN) to 192.168.X.X (LAN)
As per wiki

I just want to know exactly what you used. Tell me the iperf version and settings please.

I use jperf the old one
iperf version 2.0.8 (6 Mar 2015) pthreads
LEDE without Fast Path vs LEDE with Fast Path

@gwlim I saw you put new builds here https://github.com/gwlim/Fast-Path-LEDE-OpenWRT/tree/master/Fast-Path/July-2017 would you care for another WDR3500 build please?

I just want to confirm that adding mtu_fix 1 in the wan zone in /etc/config/firewall resolved my PPPoE connections problems in my old 1043NDv1.

And, of course, give a big hug and many thanks to @gwlim for his dedication. My first online speed tests had moved from 70 MB / 10 MB to some 300 MB / 250 MB, which is simply amazing. :joy:

Hi!

I built a firmware with fastpath NAT patches from LEDE 17.01.1 sources for my old D-Link DIR-825 rev. B2.
I tested it with DHCP connection. The LAN address is 192.168.1.1/24, the WAN is 192.168.22.0/24, the NAT is on. On the WAN located a mini server (Asrock Q1900-ITX) with IP address 192.168.22.200 and .

The results with original LEDE 17.01.1:

[code]gavarga@gavarga-e5540 ~ % iperf3 -c 192.168.22.200 -i 1
Connecting to host 192.168.22.200, port 5201
[ 4] local 192.168.1.127 port 51966 connected to 192.168.22.200 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 75.5 MBytes 634 Mbits/sec 61 348 KBytes
[ 4] 1.00-2.00 sec 73.1 MBytes 613 Mbits/sec 41 355 KBytes
[ 4] 2.00-3.00 sec 73.1 MBytes 613 Mbits/sec 45 358 KBytes
[ 4] 3.00-4.00 sec 73.1 MBytes 613 Mbits/sec 50 362 KBytes
[ 4] 4.00-5.00 sec 73.0 MBytes 612 Mbits/sec 42 369 KBytes
[ 4] 5.00-6.00 sec 73.0 MBytes 613 Mbits/sec 47 372 KBytes
[ 4] 6.00-7.00 sec 73.2 MBytes 614 Mbits/sec 45 380 KBytes
[ 4] 7.00-8.00 sec 74.1 MBytes 622 Mbits/sec 44 386 KBytes
[ 4] 8.00-9.00 sec 73.0 MBytes 613 Mbits/sec 39 395 KBytes
[ 4] 9.00-10.00 sec 73.1 MBytes 614 Mbits/sec 45 400 KBytes


[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 734 MBytes 616 Mbits/sec 459 sender
[ 4] 0.00-10.00 sec 732 MBytes 614 Mbits/sec receiver

iperf Done.

gavarga@gavarga-e5540 ~ % wget http://myserver.lan.hu/test.img
--2017-07-07 20:14:15-- http://myserver.lan.hu/test.img
myserver.lan.hu feloldása… 192.168.22.200
Csatlakozás a következőhöz: myserver.lan.hu[192.168.22.200]:80… kapcsolódva.
HTTP kérés elküldve, várakozás válaszra… 200 OK
Hossz: 314572800 (300M) [application/octet-stream]
Mentés ide: „test.img”

test.img 100%[=====================================================================================================================>] 300,00M 65,7MB/s idő 4,5s

2017-07-07 20:14:20 (66,5 MB/s) -- „test.img” mentve [314572800/314572800][/code]

This was a big surprise for me, because with OpenWrt AA the throughput was only ~400 Mbps.

The next one with fastpath NAT:

[code]gavarga@gavarga-e5540 ~ % iperf3 -c 192.168.22.200 -i 1
Connecting to host 192.168.22.200, port 5201
[ 4] local 192.168.1.127 port 52098 connected to 192.168.22.200 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 114 MBytes 955 Mbits/sec 0 542 KBytes
[ 4] 1.00-2.00 sec 111 MBytes 934 Mbits/sec 0 542 KBytes
[ 4] 2.00-3.00 sec 112 MBytes 939 Mbits/sec 0 568 KBytes
[ 4] 3.00-4.00 sec 111 MBytes 932 Mbits/sec 0 568 KBytes
[ 4] 4.00-5.00 sec 111 MBytes 930 Mbits/sec 88 571 KBytes
[ 4] 5.00-6.00 sec 111 MBytes 933 Mbits/sec 0 571 KBytes
[ 4] 6.00-7.00 sec 111 MBytes 933 Mbits/sec 0 571 KBytes
[ 4] 7.00-8.00 sec 111 MBytes 933 Mbits/sec 0 571 KBytes
[ 4] 8.00-9.00 sec 111 MBytes 933 Mbits/sec 0 571 KBytes
[ 4] 9.00-10.00 sec 110 MBytes 923 Mbits/sec 34 522 KBytes


[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec 122 sender
[ 4] 0.00-10.00 sec 1.08 GBytes 932 Mbits/sec receiver

iperf Done.
gavarga@gavarga-e5540 ~ % wget http://myserver.lan.hu/test.img
--2017-07-07 20:21:52-- http://myserver.lan.hu/test.img
myserver.lan.hu feloldása… 192.168.22.200
Csatlakozás a következőhöz: myserver.lan.hu[192.168.22.200]:80… kapcsolódva.
HTTP kérés elküldve, várakozás válaszra… 200 OK
Hossz: 314572800 (300M) [application/octet-stream]
Mentés ide: „test.img”

test.img 100%[=====================================================================================================================>] 300,00M 109MB/s idő 2,8s

2017-07-07 20:21:55 (109 MB/s) -- „test.img” mentve [314572800/314572800][/code]

I made a similar test as you did, @vargagab, (apart from the wget real-world test, since I don't have that fast internet connection) and I got similar results with TP-Link Archer C5 v1.2 (it has just slightly stronger SoC than DIR-825 rev. B2).

[code]OpenWRT CC 15.05.1 - Wired

$ iperf -c 10.1.1.9 -P1 -i1 -p5001 -fm -t10

Client connecting to 10.1.1.9, TCP port 5001
TCP window size: 12.0 MByte (default)

[ 3] local 192.168.1.236 port 20964 connected with 10.1.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 57.1 MBytes 479 Mbits/sec
[ 3] 1.0- 2.0 sec 54.9 MBytes 460 Mbits/sec
[ 3] 2.0- 3.0 sec 53.5 MBytes 449 Mbits/sec
[ 3] 3.0- 4.0 sec 54.4 MBytes 456 Mbits/sec
[ 3] 4.0- 5.0 sec 55.0 MBytes 461 Mbits/sec
[ 3] 5.0- 6.0 sec 54.9 MBytes 460 Mbits/sec
[ 3] 6.0- 7.0 sec 56.5 MBytes 474 Mbits/sec
[ 3] 7.0- 8.0 sec 55.9 MBytes 469 Mbits/sec
[ 3] 8.0- 9.0 sec 57.4 MBytes 481 Mbits/sec
[ 3] 9.0-10.0 sec 55.6 MBytes 467 Mbits/sec
[ 3] 0.0-10.0 sec 555 MBytes 465 Mbits/sec

Lede 17.01.2 - Wired

$ iperf -c 10.1.1.9 -P1 -i1 -p5001 -fm -t10

Client connecting to 10.1.1.9, TCP port 5001
TCP window size: 12.0 MByte (default)

[ 3] local 192.168.1.236 port 21049 connected with 10.1.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 81.5 MBytes 684 Mbits/sec
[ 3] 1.0- 2.0 sec 77.1 MBytes 647 Mbits/sec
[ 3] 2.0- 3.0 sec 78.1 MBytes 655 Mbits/sec
[ 3] 3.0- 4.0 sec 77.2 MBytes 648 Mbits/sec
[ 3] 4.0- 5.0 sec 78.9 MBytes 662 Mbits/sec
[ 3] 5.0- 6.0 sec 76.2 MBytes 640 Mbits/sec
[ 3] 6.0- 7.0 sec 78.4 MBytes 657 Mbits/sec
[ 3] 7.0- 8.0 sec 77.9 MBytes 653 Mbits/sec
[ 3] 8.0- 9.0 sec 74.8 MBytes 627 Mbits/sec
[ 3] 9.0-10.0 sec 74.8 MBytes 627 Mbits/sec
[ 3] 0.0-10.0 sec 775 MBytes 649 Mbits/sec

Lede 17.01.2 + FastPath - Wired

$ iperf -c 10.1.1.9 -P1 -i1 -p5001 -fm -t10

Client connecting to 10.1.1.9, TCP port 5001
TCP window size: 12.0 MByte (default)

[ 3] local 192.168.1.236 port 21101 connected with 10.1.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 115 MBytes 963 Mbits/sec
[ 3] 1.0- 2.0 sec 110 MBytes 927 Mbits/sec
[ 3] 2.0- 3.0 sec 112 MBytes 936 Mbits/sec
[ 3] 3.0- 4.0 sec 111 MBytes 928 Mbits/sec
[ 3] 4.0- 5.0 sec 90.6 MBytes 760 Mbits/sec
[ 3] 5.0- 6.0 sec 111 MBytes 934 Mbits/sec
[ 3] 6.0- 7.0 sec 111 MBytes 933 Mbits/sec
[ 3] 7.0- 8.0 sec 111 MBytes 929 Mbits/sec
[ 3] 8.0- 9.0 sec 112 MBytes 943 Mbits/sec
[ 3] 9.0-10.0 sec 89.6 MBytes 752 Mbits/sec
[ 3] 0.0-10.0 sec 1074 MBytes 900 Mbits/sec[/code]

So, in summary, very good job! :slight_smile: Thanks, @gwlim!

@gwlim, hi! Is it possible to use this patch for Engenius EPG5000? Same hardware with Archer C7, but I can't build firmware, it was stopping with error.

Hi it's possible to do a fastpath version for the Linksys WRT3200 (Marvell Armada 385 ARMv7)?

@gwlim can you explain all the steps needs for make a build

Read the patching bash script and read the Patch files
I already place them nicely into files labelled with SFE.