Hardware NAT For LEDE

Please update and try again. I found and fixed the bug you were describing, along with another issue.

3 Likes

On it, will edit this post with the results.
Thanks for your work already!

Clean build on the latest patches still yields ERR_CONNECTION_RESET on my scenario.

This is just a very initial test with a BT HH5a (using its internal VDSL2 modem with vectoring and PPPoE) and kernel 4.14/ flowoffload (r6313-c5b06da56), but the results are pretty nice.

http://www.dslreports.com/speedtest jumps from 73.3/ 37.8 MBit/s to 84.3/ 37.3 MBit/s, overall and quality evaluations improve slightly (from A to A+, bufferbloat=A, neither adblock nor sqm are enabled).
Downloading a single (623 MB) large file gets significantly faster "623,00M 11,2MB/s in 64s" vs. "623,00M 4,86MB/s in 98s".

Adding irqbalance to the mix (no manual optimizations, just invoking irqbalance) improves the dslreports speedtest to 97.4/ 37.6 MBit/s, that is -within the margin of error- even slightly better than using a combination of an external Draytek Vigor 130 and a ZyXEL NBG6817. The results seem to have a slightly higher variance (it does still get pushed quite a bit) with the BT HH5a (with irqbalance and flowoffload) compared to my normal setup (vigor 130, nbg6817), but they're pretty comparable.

@Plonk34 I think you were interested in figures about the BT HH5a recently.

2 Likes

Could you please make two tcpdumps on the router (one on the WAN interface, one on the LAN interface) that capture the issue?

I also had a BT HH5a and did some tests: my Internet speed also got a boost!

The first test is with kernel 4.9.x and the two latest with:

  • Linux 4.14.20
  • Flowoffload activated
  • irqbalance (also no manual optimisations, just --oneshot)
  • 5GHz AC WiFi (looks like there is a problem with wired network with lantiq and 4.14, look at the third result).

image

I've even seen 150Mb/s upload peaks!

With speed test results are similar: 131/72

Thanks a lot for this!

2 Likes

I have some issues with Flow Offload. When i run "conntrack -L", show a very high flows entries with states LAST_ACK, FIN_WAIT and TIME_WAIT and high numbers of flows too > 1000.

Please try the latest version from my staging tree, which includes this change:
https://git.openwrt.org/d4e746da3b89b72aceeb22cf5044ecce39f429e7

Ok, as soon as I finish building the new image and try to comment on the results.

Thank you.

With this commit I had a huge drop in performance, to the point that many times the connection stops.

I found and fixed some more bugs in the code. Please try the latest version from my staging tree.

Hi @nbd

How to using your staging tree & roll back to master ?

I think it should work like this:

git fetch git://git.openwrt.org/openwrt/staging/nbd.git
git checkout -b nbd FETCH_HEAD

This will create a local branch 'nbd' with the state of my tree.
To switch back to master, you simply run
git checkout master

To delete the local branch, run:
git branch -D nbd

Thanks @nbd

Your tutor worked.

I maked a build with your staging tree, still problem same as davidzodelin.

Test on ER3 octeon soc.

Hi.. could you upload an image for home hub 5 a or a quick how to compile please?

Im a bit new to compiling lede/openwrt but i can use linux and git

git clone git://git.openwrt.org/openwrt/staging/nbd.git nbd
cd nbd
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make defconfig
make

Also firewall3 now support flowoffload rule https://git.openwrt.org/?p=project/firewall3.git;a=commit;h=c1a295a500f0d113bacc5455af6444eb18cb482f .

Excellent thanks.. am i right on thinking that with this tree the home hub 5 has more than 60mbs throughput over the vdsl?

Yes, this will allow 100 MBit/s, with peaks up to 115-120 MBit/s and only few drops below.

Please try the latest version

ok im trying to compile your tree but i get
scripts/feeds install -a
Makefile:17: *** ERROR: The path to the OpenWrt directory must not include any spaces. Stop.

am i being a complete spoon ? im assuming i need the openwrt source then nbd tree is a directory inside that ?

Looks to be all the requisite bits have been pushed to master, so I think you can just do a current pull/build of that rather than the staging tree.