OpenWrt Forum Archive

Topic: WNDR3700 LAN --> WAN performance

The content of this topic has been archived between 28 Apr 2018 and 30 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I recently did a build from the backfire branch (Backfire (10.03, r22371)) and everything appears to be working well.  However, my performance between the LAN and the WAN is terrible.

When I am directly connected to the modem, I am getting 10 megabit down and just under 1 megabit down.  When I have my OpenWRT router in the mix I am getting 1 megabit down and .1 megabit up.

Obviously, this is unacceptable.  Does anyone have any suggestions regarding what I can do to resolve this issue?  This router should be smoking fast right?

You could try if the attached patch fixes these issues for you:

Don't forget to enable learning after patching/installing by issueing "swconfig dev rtl8366s enable_learning 1" ...

(Last edited by Memphis on 28 Jul 2010, 10:01)

It does sound like it might be related.  Forgive my ignorance, how do I add the patch?  Drop it into the folder and then "make" again?

Can I just check out a new revision which will include this patch?

Last question, does my router have that switch in it?  How would I know?

The WNDR3700 does have that same switch. A patch is applied by 'patching' the source code with the patch. If you're on a Linux (or UNIX) system that's as easy as using the patch program, I have no clue what program to use for that on Windows.

@ Comitizer:

little HowTo for linux:

checkout the trunk from svn.

then save the "enable_learning_8366x.patch" to trunk/target/linux/generic/files/drivers/net/phy

then go to this directory by issuing:

>cd trunk/target/linux/generic/files/drivers/net/phy

then issue:
> patch -p0 < enable_learning_8366x.patch

after that configure and build the trunk as usual and flash it onto your router.

Then for making the patch active login via ssh and issue:

>swconfig dev rtl8366s enable_learning 1

This seems to be a bit complex ... but i did it in that way because i don't have serial access to my router and wanted to test it while beeing as unintrusive as possible. The real fix will come later when the real developer returns from his vacation i think and will be in svn and activated automagically wink

Cool, easy enough. 

I built from the backfire branch, can I do the same thing there (instead of trunk)?

Also, I already have my config (which appears to be working) can I just rebuild the image?  Pretty sure I would do a "make distworld" and then apply the patch and "make" right?  Or would I just do a "make clean"?

Lastly, how the HECK do I find out what type of hardware is inside my router?  On it's wiki page it lists the processor but I don't see a place for switch, wireless, etc.

Should be also working when using your current sources or backfire branch and rebuild your image ... you should do an "make target/linux-clean" after patching the file ... and then after patching just make ...

the hardware info is here: - but there is a typo it has to be rtl8366s ...

(Last edited by Memphis on 29 Jul 2010, 17:10)

Ah!  I missed that part of the article.  Thanks!

Ok, I downloaded the patch but I don't actually have that path in my build environment.  I can get to the "linux" folder but I don't have a generic:

joshua@galactica-vm:~/openwrt/backfire/target/linux$ ls
adm5120  au1000    brcm63xx     ifxmips   octeon  rb532  xburst
ar7      avr32     cobalt       ixp4xx    orion   rdc
ar71xx   brcm-2.4  generic-2.4  kirkwood  ppc40x  uml
atheros  brcm47xx  generic-2.6  Makefile  ppc44x  x86

Should I create the path or should it go into the "generic-2.6" folder?  I assume that corresponds to the kernel version (and I believe the router is running 2.6).

(Last edited by Comitizer on 29 Jul 2010, 17:59)

in the branch it was "generic-2.6"

Perfect, I applied it there.

So now I want to build the latest with back ported fixes.  I've done the following:

svn up
./scripts/feeds/ update
./scripts/feeds install -a
make defconfig
make menuconfig

Is this the correct procedure?  Will this automatically cause anything that has been updated to be made again?

Thanks for all the help on this.  I am learning a lot.

make a target/linux-clean before make could be a good idea ...

beside that this is the correct way ... the changes you have made by applying the patch don't get overwritten when issuing svn up ... so i think you are good to go and build the image now ...

(Last edited by Memphis on 29 Jul 2010, 18:14)

Perfect, it's building now.  We'll see if this resolves the problem.

watch my edit of my last post wink

Oh, yeah, I did that as part of the patch process so I shouldn't have to do it again.  Right?

right ... smile

Ok, I applied the patch and built from scratch and the performance is abysmal.

I'm getting 1 megabit down and .1 up. With my WRT54gl I'm getting 12 down and 1 up. Does anyone have any other ideas?  Perhaps there is a known good revision I could build from?

Ok, so I was wrong, I forgot to do the swconfig.

I actually had to use "swconfig dev rtl8366s set enable_learning 1" to set the value. 

Once I did it, I actually saw an increase in performance (1.9 down / .1 up) but it still isn't what I expect from a router with a 600Mhz processor.  Especially when my WRT54gl is getting 12/1.

Also, the swconfig doesn't seem to stick after a reboot.  Is there a way to make that happen?

Thanks again.

Oh, one more thing, I am getting 65-70 megabytes per second on the LAN so this seems to be a LAN to WAN problem.  Something just isn't working right.

Also, I get that speed on the LAN regardless of whether or not I enable the learning.

add the swconfig command to /etc/rc.local to make it permanent for now.

... so this doesn't really affect your problem it seems. But it was worth the try i think.

anyway - this patch reactivates the switching functionality of the 8366 - so it is not the baddest thing i think wink



Ok, I'll toss it in there to make it stick.

Thanks for all your help Memphis.  I don't suppose you (or anyone else out there) have any ideas with where to go next?

so your openwrt box does pppoe with your modem i suppose? And did you try with the backfire release version (from the download section) aswell?

(Last edited by Memphis on 30 Jul 2010, 16:38)

I don't believe it does pppoe.  I'm using Telus in Canada and they use mac address filtering (unless I'm misunderstanding something). 

I did use the release build and I'm pretty sure it was ok but I could never get my tinyproxy working.  It would come up but I couldn't make any connections to it (except for connections local on the router).  I never determined whether or not it was the firewall but I built an upgrade to see if it was resolved.

then maybe the better approach for you is to stick with the release version and try to get tinyproxy running ...

OK, well I tried the release version and it didn't help.  Tinyproxy was still broken and I can't seem to figure out why.  All the firewall rules seem to indicate that it should work, it just doesn't.

However, I did a build using just the default packages and the LAN --> WAN speed it totally fast.  This tells me that there's a package in there that is causing the slow down.  My gut tells me it's the QOS package but I'll start trying to narrow it down.