Qualcomm Fast Path For LEDE

I am using mwan3 currently without fast-path enabled and it's working fine.
Question is: Does mwan3 work alongwith fast-path?
The comment I replied to claimed "mwan3 does not work with sfe".
On this I wanted more details if someone else tried it. Does it work for you?

I went back to the version without fasth-path. I have overclocked the router

I'm using mwan3 on 1043nd with this fastpath and is working

From 51fb6dbeecd0049b51776e7f3c13c31b80230244 Mon Sep 17 00:00:00 2001
From: Tan Hong Hui <hhtan72@yahoo-com>
Date: Sat, 27 Jan 2018 10:48:26 +0800
Subject: [PATCH] shortcut_fe: add sfe kernel module

Signed-off-by: Tan Hong Hui <hhtan72@yahoo-com>
1 Like

@gwlim when using make menuconfig I see some packages which you use and are included. Could you please tell me which packages are included which are not necessary to get Fast Path working?

I'm talking about packages like: DDNS, 3G support, UPnP thanks in advance.

Doubtful - MWAN needs conntrack, SFE bypasses conntrack.

the commit I posted help me achieve ~500mb/s while the 1043nd normally does only ~270mb/s

the PR @dissent1 posted is not working anymore after some time

Did you create a new build recently?

I'm trying to create a build a firmware for the WNDR4300 but it keeps failing with both GCC 5 and GCC 6 on 17.01. What I did is following the "Patchset for MIPS74Kc AR71xx For LEDE Project" instructions and I only choose the packages I want to use plus kmod-fast-classifier, kmod-shortcut-fe and kmod-shortcut-fe-cm like @build000 did.

I think some thing changed in the latest kernel.

GCC 5 is giving me the errors described in the following Open Issue:

Also the following PR didn't help:

With GCC 6 i'm getting the errors described in the following Open Issue:

If someone has any idea thanks in advance.

I would like to include SFE in my own build for ar71xx platform with kernel 4.9 (latest master). Can someone tell me which SFE version is the recommended version to use and where can I find it?


whats the patch look like that you apply? i compile with 7.3 and 2.3 binutils works fine.

Use this patch file for trunk...

This is the one from dissent's pr on lede project

1 Like

Hello there,

New dev here. was comparing speeds on the pre-made images @gwlim made for Archer V2 and V4

I'm simply using iperf2 in tcp mode over 30 sec intervals to measure the bandwidth from LAN to WAN and I get a difference in speed:
V2 -> 920 mbps
V4 -> 880 mbps

I would have expected the V4 to be faster.

So I grabbed the patch and compiled my own images to see if I could replicate the work.
@gwlim showed 1 issue with the pathes but @juppin's https://github.com/gwlim/mips74k-ar71xx-lede-patch/pull/25 worked great.
I used Lede 17.04 as by base and patched it include the Archer V4 files from upstream (Since the 17.XX branch doesn't have a V4)
And I get similar results:
V2 -> 920 mbps
V4 -> 860 mbps

@gwlim any thoughts on why this disparity might be occurring? I'm basically trying to get as close to gigabit as I can on the V4s.

If anyone has any ideas for optimization flags I can look at or any idea what so ever, I'm all ears :slight_smile:


There is nothing you can do, TP-Link simply cheapened the hardware for v4 (no dedicated CPU port for WAN, using the switch to segregate traffic over a single CPU port). v2 hardware is faster than v4, but for 1 GBit/s WAN throughputs you need something more capable than ar71xx anyways (x86, mvebu, maybe mt7621)

Since you're close to gigabit, you could try overclocking to reach it. I believe it works well up to 1ghz.

Wow, 1GHz? alright, I'm giving overclocking a shot

Hi. I'm using your version for my tplink wrd3600. It's fine. I installed transmission, samba and are working well.
I charged value at /sys/fast_classsifier/offload_at_pkts/offload_at_pkts 128 > 64.
Before this change, transmission downloaded 2.4MB/s, now 4.12 MB/s. My líne is 30 Mbits
It's incredible.
When I will have other laptop 1Gbits ethernet i will say velocity with iperf3.
At config samba.conf did more changes for better performance.
Thanks juppin.

Well, this sucks,
I was able to overclock the Archer C7 V4 to 1GHz:

[    0.000000] Clocks: CPU:1000.002MHz, DDR:650.002MHz, AHB:333.334MHz, Ref:25.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3822511567 ns
[    0.000006] sched_clock: 32 bits at 500MHz, resolution 1ns, wraps every 4294957055ns
[    0.008274] Calibrating delay loop... 497.66 BogoMIPS (lpj=995328)

but I still can't get past the 860mbps. Looks like my bottleneck is probably elsewhere...

That would be related to the single cpu port for all your ports (wan and 4x lan) on the switch of C7 v4.

Can you view usage CPUs with command top?

@juppin, please correct me if I'm wrong, I'm still learning. My thought was that by having a single CPU port on the V4 it would limit my full duplex throughput to a theoretical max of 500mbps from Lan to Wan. But 1 way it should still get me close to gigabit.

Obviously, the stock TP-Link firmware gets that (950mbps)
They ray of hope is that I can hit 960 to 970 mbps with BrainSlayer's DD-WRT Beta for the V4 without overclocking:

So now I'm going to try to figure out why, seems like a good challenge.

On a separate note @juppin thanks for all the work! if it wasn't for your PR I would have given up on this a while ago.

@jgvega, these are my top results while doing the iperf tests:

Mem: 35480K used, 90252K free, 92K shrd, 4056K buff, 12280K cached
CPU:   1% usr   6% sys   0% nic   0% idle   0% io   0% irq  90% sirq
Load average: 0.57 0.23 0.13 2/51 4067
    3     2 root     RW       0   0%  76% [ksoftirqd/0]
   99     2 root     SW       0   0%   6% [kworker/0:1]
 1444     1 nobody   S N   4928   4%   3% /usr/sbin/netdata -nd -c /etc/netdata
 1537     1 root     S     4604   4%   1% /usr/sbin/hostapd -s -P /var/run/wifi
 4007  2178 root     R     1520   1%   0% top

Htop seems to paint a better picture though. You can't see color here, but that CPU bar is t 99% red and 1% green

CPU[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]   Tasks: 18, 4 thr; 2 running
  Mem[|||||||||||||||||||||                                      17.1M/123M]   Load average: 0.08 0.06 0.08 
  Swp[                                                                0K/0K]   Uptime: 04:52:26

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 5458 root       20   0  2132  1900  1208 R  1.3  1.5  0:00.14 htop
 1537 root       20   0  4604  1552  1320 S  0.7  1.2  2:55.99 /usr/sbin/hostapd -s -P /var/run/wifi-phy0.pid -B /var/run/hostapd-phy0.conf
 1444 nobody     39  19  4928  4304  1452 S  0.0  3.4  0:51.03 /usr/sbin/netdata -nd -c /etc/netdata/netdata.conf
 1519 nobody     39  19  4928  4304  1452 S  0.0  3.4  0:21.10 /usr/sbin/netdata -nd -c /etc/netdata/netdata.conf
 1527 nobody     39  19  4928  4304  1452 S  0.0  3.4  0:29.67 /usr/sbin/netdata -nd -c /etc/netdata/netdata.conf
    1 root       20   0  1676  1028   904 S  0.0  0.8  0:02.16 /sbin/procd
  432 root       20   0  1292   872   816 S  0.0  0.7  0:07.58 /sbin/ubusd