Qualcomm Fast Path For LEDE


Did you compile the master branch?

Which source u clone from? https://github.com/openwrt/openwrt?

After patching the 666-shortcut-fe_trunk.patch it fails to complie on master


Yes, i had to use master(snapshot) for a new router support (1043n-v5).
cloned from : https://github.com/lede-project/source.git
The build succeeded for ar71xx.
Then I tried for octeon(for ER-Lite3 device) which failed.
So for that I used dissent1's patch which is 17.01 based which has support for ER-Lite3.
However I am yet to test both of the images.


i got the folllowing error on master with the 666-shortcut-fe_trunk.patch applied.

.../shortcut-fe/sfe_ipv4.c:1366:5: error: 'struct sk_buff' has no member named 'fast_forwarded'
  skb->fast_forwarded = 1


Could you please provide more from the output of the build log?
About what did gcc or ld complain exactly?

make[3]: Entering directory '/home/michaelc/temp/lede-fastpath/package/kernel/shortcut-fe'
rm -f /home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/.built
touch /home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/.built_check
cat /dev/null > /home/michaelc/temp/lede-fastpath/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/pkginfo/shortcut-fe.symvers; for subdir in .; do cat /home/michaelc/temp/lede-fastpath/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/pkginfo/*.symvers 2>/dev/null > /home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/$subdir/Module.symvers; done
make -C "/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/linux-4.14.43" ARCH="arm" CROSS_COMPILE="arm-openwrt-linux-muslgnueabi-" SUBDIRS="/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe" EXTRA_CFLAGS="" modules
make[4]: Entering directory '/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/linux-4.14.43'
  CC [M]  /home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.o
/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.c: In function 'sfe_ipv4_recv_udp':
/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.c:1366:5: error: 'struct sk_buff' has no member named 'fast_forwarded'
  skb->fast_forwarded = 1;
/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.c: In function 'sfe_ipv4_recv_tcp':
/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.c:1909:5: error: 'struct sk_buff' has no member named 'fast_forwarded'
  skb->fast_forwarded = 1;
scripts/Makefile.build:328: recipe for target '/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.o' failed
make[5]: *** [/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/sfe_ipv4.o] Error 1
Makefile:1526: recipe for target '_module_/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe' failed
make[4]: *** [_module_/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe] Error 2
make[4]: Leaving directory '/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/linux-4.14.43'
Makefile:117: recipe for target '/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/.built' failed
make[3]: *** [/home/michaelc/temp/lede-fastpath/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/shortcut-fe/.built] Error 2
make[3]: Leaving directory '/home/michaelc/temp/lede-fastpath/package/kernel/shortcut-fe'
Command exited with non-zero status 2
time: package/kernel/shortcut-fe/compile#1.08#0.17#1.81
package/Makefile:107: recipe for target 'package/kernel/shortcut-fe/compile' failed
make[2]: *** [package/kernel/shortcut-fe/compile] Error 2
make[2]: Leaving directory '/home/michaelc/temp/lede-fastpath'
package/Makefile:103: recipe for target '/home/michaelc/temp/lede-fastpath/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile' failed
make[1]: *** [/home/michaelc/temp/lede-fastpath/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/michaelc/temp/lede-fastpath'
/home/michaelc/temp/lede-fastpath/include/toplevel.mk:216: recipe for target 'world' failed
make: *** [world] Error 2

i'm guessing it is because the i am trying to compile for ipq806x (tp-link archer c2600) which is using a newer kernel that the patch does not target?


For what do you need SFE on 4.14?
Did you heard about backported flow offloading feature?
All openwrt images with 4.14 kernel version did include this feature... This is almost the same as SFE...

You could enable it with
option flow_offloading 1
in default section of firewall config...
Or with new LUCI option under firewall...


thanks, didnt pay enough attention; wasn't even sure what kernel was being used.



I'm a newbie,I have netgear wnr2200 router work on LEDE 7.01.4 Firmware. I want to use this to increase performance for router,but How can I get this work on my router?

Hope somebody can help me?


Sorry,for my bad english.


your wnr2200 is limited to fastethernet 10/100mbps copper connection so FastPath wan't increase your performance


@maurer Understood,Thanks for your reply.I shall change to wndr4300 to use this function.Thanks to @gwlim to give old router a new life.


@gwlim hi. There is a problem with shortcut-fe for 24kc because when i`m trying to compile i get fatall 'master' does not appear to be a git repository and could not read from remote repository... ?

I`m trying to compile for a TP-link 1043ND v4


I want compile cpu like ARM(ipq806x) (NETgear7800)
Could you tell me what should I do ?


Hello. Are there any efforts to port Fast Path (or backport flow offloading) for the 4.9 kernel? I have a device which is not supported by LEDE 17.01 (TL-WR902AC). How can I get Fast Path or flow offloading on my device? Currently it's throughtput is 75-85 Mbps compared to the factory firmware which can easily work at 95 Mbps.


Download the Dissent1 patch from the pull request, apply it to your tree, make sure the correct KMOD's are selected in make menuconfig and compile.


this can be ported to ath79 it uses Qualcomm Atheros QCA9531
if you're willing to test the images I could prepare some, but at a later time
actually not that I saw the device I might get one


Sorry to say but if you want a device to run that fast and be future proof you need one that supports OpenWrt 18.06 and Linux kernel 4.14 which has fastpath built in (enabled under firewall). Examples are the Linksys WRT series and Netgear R7800.


Hi everyone!

I just wanted to let you know that Fast Path isn't working for IPv6. Is it supposed to? If yes is there any way I can find out why it isn't working? Or am I doing something wrong?
I'm using the image @gwlim built for TP-Link Archer C7 v4.
When the OpenWRT v18.06.1 is released will there be a image based on it too?
Also, LED's don't work, and I can't install the gpio "module" as it requires a kernel that this system isn't using.

Thanks for everything and if I can help tell me something!


Hi @gwlim thanks for your hard work. I have a Mercury MW4530r which is a clone of TL-WDR4310. I have been using your build (LEDE Reboot 17.01-SNAPSHOT r3824-b1205a9) for some time. It has been rock solid (and way faster than 18.06)!
However, when I upgraded to your latest build (July-2018), there seems to be a problem with wireguard. The interface connected ok but whenever there is a bit more traffic, the router reboots.


IPv6 is not suppose to require any NAT (at least by rights) in IPv6 IP Address does not require modification,
NAT was the result of IPv4 limitations.


I did a quick test and reproduced the issue, it should be the same issue faced by flow offload.
Bumped the version and seems to be fixed