OpenWrt Router only: Linksys WRT3200ACM or Netgear X6 R8000?

Which one of the two would make a better OpenWrt router only of the two (i.e. Netgear X6 R8000 vs Linksys WRT3200ACM, no wireless)? WAN connection is 500Mb but the owner may upgrade to 1Gb down the line.

In terms of wired-only routing, certainly the wrt3200acm, by a large margin.

[yes, I know, not part of the question] In terms of wireless support, neither is perfect - but here the r8000 probably wins in a more head-to-head race.

Under these circumstances (with an outlook towards 1 GBit/s), I would still suggest to at least consider the other options as well (RPi4, x86_64, maybe the NanoPi r4s, maybe the Linksys E8450/ Belkin RT3200).

--
On the vendor firmware, Broadcom devices rely on a proprietary kernel module to accelerate routing, this is not available for OpenWrt and the device is considerably slower using plain netfilter code. The WRT3200ACM and its mvebu platform is genuinely fast enough to deal with 1 GBit/s routing.

Thanks @slh. I should have been more clear: I already own both routers and was trying to figure out which one would work better. Sounds like the WRT is a much better router for wired.

To extend the question a bit, how would you compare the wrt3200acm and the R7800 which is ipq8065 based, for wired-only routing?

1 Like

In terms of wired capabilities, the wrt3200acm wins against the r7800 hands down, the former can achieve 1 GBit/s line-speed, the later maxes out around 500-650 MBit/s.

As soon as wireless capabilities enter the consideration, the situation flips by 180° and the r7800 becomes the better option.

--
The OEM firmwares for ipq8065 rely on hardware offloading to a proprietary firmware running on two 800 MHz little-endian ubicom32 derived cores (NPUs), which isn't available in OpenWrt. For the intended purpose they do support the expected performance up to 1 GBit/s (and support offloading for PPPoE, parts of the wifi handling, QoS and even high-level protocols like IPsec or other crypto algorithms as well), but the two 1.7 GHz ARMv7 cores alone (which is what OpenWrt can leverage) are limited to roughly the values above.
Yes, there are attempts to get NSS offloading supported in OpenWrt (the drivers for it are open, the necessary NSS firmware is not - and the NSS drivers are far away from mainline-quality), but I wouldn't rely on them being merged into OpenWrt anytime soon - or 'ever'.

2 Likes

Thanks for the detailed response. I am curious on why this dramatic difference exists in OpenWrt, between the two routers.

Both of them are dual core, and both of them have similar clock frequencies with the WRT3200ACM having a slight advantage of around 6% at 1.8Ghz, while the R7800 has 1.7Ghz. Both of them have dual 32-bit ARMv7-A cores, but in this case the R7800 appears to have an advantage with it having advanced Krait-A15 cores while the WRT3200ACM has Cortex-A9 cores.

But the data you have above shows a 35-50% advantage for the Marvell Armada based WRT3200ACM compared to the Qualcomm ipq8065 based R7800, for wired routing. Of course the Marvell Armada has additional two CESA cores as crypto engines, similar to the ipq8065 having two NSS cores, but both are a wash out, since I believe neither are used for routing purposes in standard OpenWrt.

So what explains the significantly superior performance of the WRT3200ACM compared to R7800, for wired routing?

That has been discussed numerous times already, the abbreviated version would be, pure CPU performance isn't everything that matters for a router. In terms of pure CPU power, the r7800 is ahead (not by that far, but still ahead) - in terms of I/O throughput the mvebu platform is better designed[0] and its mainline drivers (ethernet!) drivers better optimized.

The ipq8065 SOC is derived from the KRAIT 300 smartphone SOC[1], which in turn is rather comparable to the cortex a15 - it is (was) a very fast SOC, but with little in the sense of I/O performance. In order to offset this, Qualcomm has relied on offloading these network tasks to the NSS/ NPU cores which can do the bulk of it alone, without bothering the system SOC (the ARM cores).

--
[0] just its wireless chipsets are abandoned and never matched their competition in terms of features and interoperability.
[1] Think of the APQ8064T/ Snapdragon 600 SOC, which powered e.g. the Samsung Galaxy S4, albeit equipped with four cores there.

My apologies, I was not aware of the previous discussions. Thank you for sharing the summary of those discussions in your post.

What exactly encompasses a better designed I/O throughput in mvebu? Is it simply the Ethernet drivers (i.e. software) or is there a hardware component too?

Does that actually matter?

--
Answering this would have to go very deep into the details, more than either of us is privy to know.
What Qualcomm has done with their NSS offloading is a valid solution with their use case in mind, it is at least on par with Marvell's mvebu design (and can do some things mvebu cannot, such as PPP, QoS and IPsec offloading (and that's only the top of the iceberg)) - OpenWrt not (being able- to) leverage that is an orthogonal issue (as is the question if one wants to rely on packet processing in proprietary firmware, bypassing netfilter code). Marvell however has opted to put in their weight of more generic networking IP (think Cavium/ Octeon) and pushed these wired drivers into the mainline drivers early - but totally ignored the wireless aspects.
Both companies have solved the same issue differently, coming from different backgrounds, and achieved comparable performance with their SDK.

QCA has opted to skip mainlining NSS support (which would have been a hard-sell), pushing only the un-accelerated drivers for their stmmac ethernet core.
Marvell hasn't followed up with their initial mwlwifi driver submission and never bothered to fix the bugs in their wireless firmware, before jumping ship and selling their wireless division to NXP - who immediately EOLed the existing designs.

Only as far as learning new things in life is concerned.

Thanks for indulging my curiosity and sharing the explanation above. Would I be reasonably correct in my summary takeaway from your response, that Marvell is better compared to ipq8065 for wired routing, in OpenWrt, primarily due to better wired drivers (i.e. software) and not better hardware?

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.