# Qualcomm Fast Path For LEDE

**URL:** <https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582>\
**Category:** Community Builds, Projects & Packages\
**Created:** [June 24, 2017, 2:09pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582 "2017-06-24T14:09:23Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 2:09pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/1 "2017-06-24T14:09:24Z")

</div>

Repository based on openwrt snapshot is here  
[gwlim/openwrt-optimized-builds: optimized openwrt builds on github](https://github.com/gwlim/openwrt-optimized-builds)

Images are built by github runners with all kmod included by default on a schedule  
If you want an image for your specific router you can request and I can add a workflow build profile

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 4:07pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/2 "2017-06-24T16:07:19Z")

</div>

## On a TL-WR1043NDv1 mips24kc Router running at 430MHZ This is the performance

## Client connecting to 10.1.1.2, TCP port 5001 TCP window size: 0.22 MByte (default)

[5] local 192.168.1.103 port 49910 connected with 10.1.1.2 port 5001  
[ID] Interval Transfer Bandwidth  
[5] 0.0- 1.0 sec 81.5 MBytes 684 Mbits/sec  
[5] 1.0- 2.0 sec 78.4 MBytes 657 Mbits/sec  
[5] 2.0- 3.0 sec 74.5 MBytes 625 Mbits/sec  
[5] 3.0- 4.0 sec 78.1 MBytes 655 Mbits/sec  
[5] 4.0- 5.0 sec 71.9 MBytes 603 Mbits/sec  
[5] 5.0- 6.0 sec 77.4 MBytes 649 Mbits/sec  
[5] 6.0- 7.0 sec 74.4 MBytes 624 Mbits/sec  
[5] 7.0- 8.0 sec 76.8 MBytes 644 Mbits/sec  
[5] 8.0- 9.0 sec 72.6 MBytes 609 Mbits/sec  
[5] 9.0-10.0 sec 78.6 MBytes 660 Mbits/sec  
[5] 0.0-10.0 sec 764 MBytes 640 Mbits/sec  
[5] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

## On Wireless due to lower cpu consumption by fast path Wireless Throughput on this mips24kc machine also improved Iperf thread stopped [CAUSE=Stream closed] iperf -c 10.1.1.2 -P 1 -i 1 -p 5001 -f m -t 10 -T 1

## Client connecting to 10.1.1.2, TCP port 5001 TCP window size: 0.08 MByte (default)

[3] local 192.168.1.130 port 55582 connected with 10.1.1.2 port 5001  
[ID] Interval Transfer Bandwidth  
[3] 0.0- 1.0 sec 13.6 MBytes 114 Mbits/sec  
[3] 1.0- 2.0 sec 16.9 MBytes 142 Mbits/sec  
[3] 2.0- 3.0 sec 18.0 MBytes 151 Mbits/sec  
[3] 3.0- 4.0 sec 18.9 MBytes 158 Mbits/sec  
[3] 4.0- 5.0 sec 17.4 MBytes 146 Mbits/sec  
[3] 5.0- 6.0 sec 19.2 MBytes 161 Mbits/sec  
[3] 6.0- 7.0 sec 19.1 MBytes 160 Mbits/sec  
[3] 7.0- 8.0 sec 19.0 MBytes 159 Mbits/sec  
[3] 8.0- 9.0 sec 19.2 MBytes 161 Mbits/sec  
[3] 9.0-10.0 sec 13.9 MBytes 116 Mbits/sec  
[3] 0.0-10.0 sec 175 MBytes 147 Mbits/sec  
Done.

---

<div class="post-metadata">

**Author:** ![jugs](https://forum.openwrt.org/letter_avatar/jugs/32/5_5575768a8748004e209b776fc1b2916d.png) [@jugs](https://forum.openwrt.org/u/jugs)\
**Post date:** [June 24, 2017, 4:53pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/3 "2017-06-24T16:53:34Z")

</div>

Is the patch dependent on mips24k(c)? [https://lede-project.org/docs/instructionset/mips\_24kc](https://lede-project.org/docs/instructionset/mips_24kc)

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 4:54pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/4 "2017-06-24T16:54:26Z")

</div>

No Fast Path is optimizing Linux Routing Network Stack.  
Totally Architecture independent  
I have it working on WDR4900v1 (mpc8548), WDR4300 (mip74kc) and WR1043ND (mips24kc)

---

<div class="post-metadata">

**Author:** ![jugs](https://forum.openwrt.org/letter_avatar/jugs/32/5_5575768a8748004e209b776fc1b2916d.png) [@jugs](https://forum.openwrt.org/u/jugs)\
**Post date:** [June 24, 2017, 4:55pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/5 "2017-06-24T16:55:09Z")

</div>

This is huge

---

<div class="post-metadata">

**Author:** ![mojolacerator](https://forum.openwrt.org/letter_avatar/mojolacerator/32/5_5575768a8748004e209b776fc1b2916d.png) [@mojolacerator](https://forum.openwrt.org/u/mojolacerator)\
**Post date:** [June 24, 2017, 4:58pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/6 "2017-06-24T16:58:39Z")

</div>

How do I implement in my WRT3200ACM

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 5:04pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/7 "2017-06-24T17:04:21Z")

</div>

Check my commits, copy the patches make menuconfig, select the modules and build  
I don't have a patch build optimizing for that architecture

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 6:25pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/8 "2017-06-24T18:25:06Z")

</div>

Btw if you guys need me to build for your Router I can do that but only for MIPS and PowerPC MPC Architecture since my scripts is basically a fast auto patcher and builder so I can do it fast.  
For the other architecture I have to recreate a lot of stuff and I am too lazy to do that.

---

<div class="post-metadata">

**Author:** ![rajsris](https://forum.openwrt.org/user_avatar/forum.openwrt.org/rajsris/32/29316_2.png) [@rajsris](https://forum.openwrt.org/u/rajsris)\
**Post date:** [June 24, 2017, 6:33pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/9 "2017-06-24T18:33:49Z")

</div>

Two of the most popular routers are Archer C7V2 and DLink DIR860B1. Can this method work on those two platforms? Can this be merged into LEDE 17.0.1.3?

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 24, 2017, 6:47pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/10 "2017-06-24T18:47:58Z")

</div>

Archer C7V2 is pretty straightforward but DLink is an MIPS multithreaded CPU.  
It is possible to further optimize it with a lot of testing but I will just do a standard build becos using untested optimization might create a firmware that might not boot.

---

<div class="post-metadata">

**Author:** ![Mushoz](https://forum.openwrt.org/user_avatar/forum.openwrt.org/mushoz/32/49821_2.png) [@Mushoz](https://forum.openwrt.org/u/Mushoz)\
**Post date:** [June 24, 2017, 9:09pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/11 "2017-06-24T21:09:10Z")

</div>

> [@gwlim](#):
>
> Archer C7V2 is pretty straightforward but DLink is an MIPS multithreaded CPU.It is possible to further optimize it with a lot of testing but I will just do a standard build becos using untested optimization might create a firmware that might not boot.

Does this mean a standard non-optimized build will work on the DIR-860L? Or will this require more work? Awesome work by the way, this is seriously awesome stuff.

---

<div class="post-metadata">

**Author:** ![Mushoz](https://forum.openwrt.org/user_avatar/forum.openwrt.org/mushoz/32/49821_2.png) [@Mushoz](https://forum.openwrt.org/u/Mushoz)\
**Post date:** [June 24, 2017, 9:35pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/13 "2017-06-24T21:35:53Z")

</div>

@Bartvz This might be a nice inclusion for your DIR-860L builds if we can get it to work 😉

---

<div class="post-metadata">

**Author:** ![lantis1008](https://forum.openwrt.org/user_avatar/forum.openwrt.org/lantis1008/32/1986_2.png) [@lantis1008](https://forum.openwrt.org/u/lantis1008)\
**Post date:** [June 24, 2017, 11:03pm UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/14 "2017-06-24T23:03:54Z")

</div>

So what's the catch? Does this only apply to unclassified traffic like HWNAT implementations (no QOS)?

Is there anywhere I can read about the implementation? Google showed me a lot of results for fast charging but no fast pathing.

---

<div class="post-metadata">

**Author:** ![WeidiDeng](https://forum.openwrt.org/user_avatar/forum.openwrt.org/weidideng/32/1485_2.png) [@WeidiDeng](https://forum.openwrt.org/u/WeidiDeng)\
**Post date:** [June 25, 2017, 12:50am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/15 "2017-06-25T00:50:01Z")

</div>

Can you build for my netgear wndr4300v1? I always tried to download code from github but shitty Chinese network, I can barely download anything. Thank you.

---

<div class="post-metadata">

**Author:** ![Cutepally](https://forum.openwrt.org/user_avatar/forum.openwrt.org/cutepally/32/1855_2.png) [@Cutepally](https://forum.openwrt.org/u/Cutepally)\
**Post date:** [June 25, 2017, 1:04am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/16 "2017-06-25T01:04:06Z")

</div>

i was trying to build it for wndr4300v1 as well to test, since it is mips\_24kc but im getting stuck here.

```
make[3]: Entering directory '/boop/Build/lede/package/qca/shortcut-fe'
fatal: 'master' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
make -C "/boop/Build/lede/build_dir/target-mips_24kc_musl-1.1.16/linux-ar71xx_nand/linux-4.4.71" CROSS_COMPILE="mips-openwrt-linux-musl-" ARCH="mips" SUBDIRS="/boop/Build/lede/build_dir/target-mips_24kc_musl-1.1.16/linux-ar71xx_nand/shortcut-fe-g8b1844e/shortcut-fe" EXTRA_CFLAGS="-DSFE_SUPPORT_IPV6" SFE_SUPPORT_IPV6=1 modules
make[4]: Entering directory '/boop/Build/lede/build_dir/target-mips_24kc_musl-1.1.16/linux-ar71xx_nand/linux-4.4.71'
fatal: 'master' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
/boop/Build/lede/build_dir/target-mips_24kc_musl-1.1.16/linux-ar71xx_nand/shortcut-fe-g8b1844e/shortcut-fe/Makefile:89: *** DESCRIPTION:= is obsolete, use Package/PKG_NAME/description. Stop.

```

line 89 for that file is `$(eval $(call KernelPackage,shortcut-fe))` so it confuses me.  
i think it's pulling it from somewhere or failing to pull it properly.

it shows up under menuconfig it just fails to compile and i dont understand why so.. 😖  
i also want it built for wndr3700v4 if someone could provide the steps that would be great 🙂  
i only need the steps to fix the makefile so it will compile correctly unless it can't compile on these without patch fixes (i doubt this?)

EDIT: i had kmod-fast-classifier, kmod-shortcut-fe, and kmod-shortcut-fe-cm selected in menuconfig also btw

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 25, 2017, 1:15am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/17 "2017-06-25T01:15:23Z")

</div>

You did not take all my patches and use the script.  
My script download the local development to force and override the original make file to use a local source location.  
You can use mips74kc repository directly. It is optimized for 74kc.  
The reason why there is a 24kc tag is because LEDE upstream uses 24kc tagging for all the package!  
If you run my firmware you can download and install packages directly from LEDE

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 25, 2017, 1:30am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/18 "2017-06-25T01:30:12Z")

</div>

I can't see wndr4300v1 in the LEDE build menu.  
Is it actually officially supported?

---

<div class="post-metadata">

**Author:** ![Cutepally](https://forum.openwrt.org/user_avatar/forum.openwrt.org/cutepally/32/1855_2.png) [@Cutepally](https://forum.openwrt.org/u/Cutepally)\
**Post date:** [June 25, 2017, 1:38am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/19 "2017-06-25T01:38:19Z")

</div>

set subtarget to generic nand, then target wndr4300v1

---

<div class="post-metadata">

**Author:** ![gwlim](https://forum.openwrt.org/letter_avatar/gwlim/32/5_5575768a8748004e209b776fc1b2916d.png) [@gwlim](https://forum.openwrt.org/u/gwlim)\
**Post date:** [June 25, 2017, 1:41am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/20 "2017-06-25T01:41:05Z")

</div>

Ok got it.  
FYI because I optimize it heavily for that specific architecture so make sure the CPU is mip74kc because I build with march=mips74kc SO if your cpu is mips32r2 but not mips74kc it will bootloop.  
Part of my optimization also disable ALL older ISAs like mips32r1 code.

---

<div class="post-metadata">

**Author:** ![Cutepally](https://forum.openwrt.org/user_avatar/forum.openwrt.org/cutepally/32/1855_2.png) [@Cutepally](https://forum.openwrt.org/u/Cutepally)\
**Post date:** [June 25, 2017, 1:43am UTC](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582/21 "2017-06-25T01:43:44Z")

</div>

wndr3700v4 and wndr4300v1 are mips24kc, so i was using [https://github.com/gwlim/mips24k-ar71xx-lede-patch/](https://github.com/gwlim/mips24k-ar71xx-lede-patch/)

[Next page](https://forum.openwrt.org/t/qualcomm-fast-path-for-lede/4582.md?page=2)
