What's new

[RT-AC87U] the platform details

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

RMerlin

Asuswrt-Merlin dev
First to save you some time: if you are looking for benchmarks or in-depth review of the wireless performance, you can skip this post. My appartment is no challenge for even an entry level router, so there is no way I could do any kind of benchmarking of wifi that would be meaningful. For this, wait for the experts like Tim to put one through their gauntlet of tests. I will only say that I've had zero issue with the wifi so far, both Android devices and an Intel ac7260 mini-PCI card.

Now, for the rest of you: what's in the RT-AC87U.

The platform:
Let's start with some nekkid picture of the RT-AC87U:

http://www.lostrealm.ca/temp/rtac87u.jpg

The RT-AC87U is an unusual beast, as it sports radios from two different manufacturers, as well as two completely different CPUs, each of them running their own operating system.

The basic platform is your average Broadcom Northstar. We have a Broadcom BCM4709 CPU running @ 1 GHz, with 256 MB of DDR3 800 MHz RAM, and 128 MB of NAND flash memory. There's one BCM4360 (based on syslog - I didn't check the physical chip) radio for the 2.4 GHz band.

The switch from a BCM4708 to BCM4709 bumps the CPU clock to 1 GHz, in addition to supporting more advanced hardware acceleration. This chip adds Flow Accelerator support (FA for short) on top of the usual Cut-Through-Forwarding (or CTF). This is configurable on the webui as being "Level 1 CTF" or "Level 2 CTF" (the latter adding FA on top of it).

The novelty part is the Quantenna SoC. This chip contains both a CPU (an ARC 700 running at 500 MHz) and a 5 GHz radio. That CPU runs its own Linux kernel, which also handles the 5 GHz radio. That means the 5 GHz stuff is run by that CPU, freeing the main Broadcom CPU.

EDIT: this is probably the CPU used by Quantenna: http://www.synopsys.com/IP/ProcessorIP/ARCProcessors/ARC700/Pages/default.aspx

Internally, the Broadcom (BCM) environment (which is where Asuswrt runs) talks with the Quantenna (QTN) environment through an internal switch. The two of them talk through RPC calls. This means Asuswrt will connect over the internal network to the QTN firmware to configure things such as SSID or crypto, retrieving client info, etc...

The details on the QTN environment:

Code:
quantenna # uname -a
Linux soc1 2.6.35.12 #2 Fri Jun 13 11:20:34 CST 2014 arc unknown
quantenna # cat /proc/cpuinfo

Processor Family: ARC 700 [0x33]
CPU speed :     500.00 Mhz
Timers:         TIMER1 TIMER0 
Interrupt Vect Base:    0x88026800 
Peripheral Base: NOT present; assuming 0xCOFC0000 
Data UNCACHED Base (I/O): start 0xc0 Sz, 1024 MB 
Bogo MIPS :     248.21
ARC700 MMU Ver [2]
   PAGE SIZE 8k
   JTLB 128 x 2 = 256 entries
   uDTLB 8 entr, uITLB 4 entr
TLB Refill "will NOT" Flush uTLBs
Detected I-cache : 
  Type=2 way set-assoc, Line length=32, Size=16K (enabled)
Detected D-cache : 
  Type=4 way set-assoc, Line length=32, Size=16K (enabled)
Extensions:
   MPY: 32x32 with ANY Result Reg   MAC MPY: Dual 16 x 16 and 32 x 16
   DCCM: N/A  ICCM: N/A
   CRC: N/A,   SWAP: Present   NORM: Present
   Min-Max: Present,   Barrel Shifter: Present
   Ext Arith Insn: Present
Floating Point Extension: N/A
quantenna # free
              total         used         free       shared      buffers
  Mem:        54488        23072        31416            0            0
 Swap:            0            0            0
Total:        54488        23072        31416

This environment is very barebone, and is only used for the 5 GHz stuff, so at this point don't expect to be running anything else in that environment.

The reason why Asus chose that QTN chip (as far as I know) is because it's the first 802.11ac Wave 2 chip available on the market. That means it brings 4x4 (up to 1700 Mbps), as well as MU-MIMO support. Currently there is no client available to support either of these (Asus mentionned a client being available at the end of August), so for the time being the only way to truly push this thing to its maximum speed is by bridging two of them together. This was also the case when the RT-AC66U launched.

The physical device:
Port-wise, the router has 1 x USB 3.0 + 1 x USB 2.0, 4 LAN + 1 WAN. The USB LED is gone, however the WAN led is now dual color - it will lit red if WAN is currently down.

The case itself (as seen in another thread) is what was shown by Asus at Computex 2014 for the RT-AC3200. They went back to a flat design (versus the standing design of the past few high end models). It's also wall-mountable, with four detachable antennas.

The front sports two large buttons, which allows you to disable Wifi or the LEDs.

One interesting note: the USB 3.0 port is at the front, while the USB 2.0 port is at the back. This is quite convenient, however this will be a problem if you use a hard disk that uses a Y-shaped USB cable to provide power to your hard disk - those Y cables are often too short to be able to reach both the front and the back of the router. If you do need to use such a hard disk, you might want to get a short USB extension to be able to reach the second port at the back.


The software side
Sometimes referred to as being Asuswrt 2.0 (altho I believe the current firmware release is internally known as Asuswrt 1.5 based on comments I saw in the GPL code), the firmware got a nice feature bump along with the release of this router.

The most visible change is AiProtect and Adaptive QoS. Both of these are powered by a DPI (Deep Packet Inspection) engine provided by Trend Micro. This engine allows traffic to be analyzed at the lowest level, based on the actual content, not just by the IP and ports they connect to. That means that out of the box, if you enable Intelligence QoS (or iQoS for short), you won't have to start configuring rules. Your VoIP traffic will automatically get a bump, while P2P traffic priority will be dropped if anything else with a higher priority is detected.

The original (traditional) QoS is still available for those who prefer to manually tweak that based on port and IPs rather than on traffic analysis.

Another interesting thing to note: iQoS is compatible with hardware acceleration. That means you can keep hardware acceleration enabled (although only Level 1 is supported) while having iQoS enabled. I was able to confirm this when an iperf benchmark between LAN and WAN gave me a throughput result of 750 Mbps. So, that means that iQoS can be used even with high speed broadband.

One thing to note: aside from iQoS and traditional QoS, there is also some additional tweaking that can be done on the Adaptive QoS page itself. Unfortunately I have no idea how these work and what their relation is to iQoS/QoS. On the Adaptive QoS page (which serves as the new traffic monitoring page BTW), you can drag and drop a priority on top of a device. Unfortunately, there is no documentation available yet as to how this works (and I haven't had the chance to ask Asus yet).

(end of part I)
 
Last edited:
The software side (continued)

AiProtect is the other big newcomer. AiProtect regroups various security/control related features. Parental Control for one now falls into this new category. Just like QoS, the old time-based control is still present, but is also augmented with a new App-based control. This allows you to limit what type of applications some specific devices (such as your kid's portable devices, for example) can use. You can, for example, prevent your kid's tablet from being able to use P2P applications.

On the purely security-related front, AiProtect has options that can prevent network intrusions, or block Internet access if a device on your LAN is detected as being actively hosting malware. It can also be set to block access to known malicious sites.

Finally, a new overall security check option lets you see at a glance all the security-related things you might need to check on your router. This page will show you for example if you are using a weak password, or if you have UPnP left enabled (for the more security-concious users who might want to close that door).

These new features based on the DPI engine require additional CPU power. For this reason, these cannot be implemented on older devices using a single core MIPS CPU (like the RT-AC66). The newer dual core ARM devices such as the RT-AC56 or RT-AC68 should be able to run it, however it is unknown at this point if Asus intends to port these features to these older models. I know that one technical issue involved is that the firmware partition on the flash is too small to add the new DPI engine without chopping some parts to make some space, or upgrading the bootloader (always a very risky business!) to change the partition size (which would probably have the side effect to prevent older firmware versions from being usable).


Change of provider for filesystem driver
NTFS and HFS+ are proprietary filesystems. To be able to support them at an acceptable performance level (the open-source drivers for both of these have pretty bad performance, even more noticeable on the weaker CPUs of these embedded devices when compared to a full-blown desktop), Asus has been using a commercial driver provided by Paragon. With the RT-AC87U, Asus switched to a commercial driver provided this time by Tuxera (better known as the developers/maintainers of the open-source NTFS-3G driver). The performance level is on par with Paragon (and even faster in some situation - writing speed over SMB was faster for me), but it should hopefully bring improvements to stability and reliability. At this point, only the RT-AC87U uses that driver - it's unclear whether previous routers will also make the switch.

A quick SMB benchmark here gave me 40 MB/s in write speed, and 51 MB/s of read speed with an USB 3.0 hard disk. Write speed is notably faster than what I was getting on the RT-AC68U, however part of it is probably due to the faster CPU (1 GHz vs 800 MHz).


Other incremental changes
Another visible change in Asuswrt 2.0 is a much improved client list. That client list lets you assign icons and even names to various devices, in addition to displaying additional info such as the RSSI of wireless clients. This feature was debuted a few weeks ago in the first 3.0.0.4.376_xxxx firmwares released for the N66/AC66/AC68.


The big question: AC2400 (RT-AC87U) or AC3200 (R8000/RT-AC3200)?

This is the loaded question that many will be asking these days. To be honest, I wouldn't know what to answer. Both routers have their own benefits and disadvantages. Both are very new platforms, so they will probably take a few months to mature. I know that Asus still has some performance improvements up their sleeves that will appear in the coming weeks. There is no MU-MIMO or 4x4 client yet on the market for the RT-AC87U, and band steering compatibility on the Netgear R8000 is currently very spotty. Personally, I favor Asus for the firmware features, but the dual 5 GHz setup of the R8000 (and yet to be released RT-AC3200) is something you can benefit from right now, by manually splitting your bandwidth-intensive clients between the two radios.

Potential buyers will probably get a clearer picture once Tim puts both of these through a series of wireless-related tests.

What about custom firmwares?
I've had Asuswrt-Merlin running on the RT-AC87U for a few weeks now (thanks for Asus providing me with a development sample). Brainslayer has also been working on DD-WRT support for quite a while now. I might publish an alpha release of Asuswrt-Merlin in the coming days if there is enough demand for it (be warned that it will be based on three weeks old code from Asus, so it will definitely NOT be optimal yet - I have to wait for the source code of the final FW release to bring it up-to-date).

As for the R8000, I suspect that DD-WRT will eventually support it. One thing to note however is the R8000 is based on a newer SDK from Broadcom (SDK7), so support for it might take a bit longer than usual.

I can't say for the Tomato side of things. Technically, supporting the RT-AC87U is very doable, but will require time and a lot of work.
 
Internally, the Broadcom (BCM) environment (which is where Asuswrt runs) talks with the Quantenna (QTN) environment through an internal switch. The two of them talk through RPC calls. This means Asuswrt will connect over the internal network to the QTN firmware to configure things such as SSID or crypto, retrieving client info, etc...

Arghhhh, now this sounds like big trouble. Another fixed OS inside one of the radio cores.

How do you update the embedded OS on those radio chips if a bug is discovered? Or do they think they throw out a bug free radio. LOL

How do you know it is not full of backdoors, I mean you can somehow analyze a driver, but how do you analyze the OS on this embedded core?

Are there sources available for that core, so 3rd party developers can analyze it?

How much power does this unit draw, with all radios enabled?
 
Arghhhh, now this sounds like big trouble. Another fixed OS inside one of the radio cores.

How do you update the embedded OS on those radio chips if a bug is discovered? Or do they think they throw out a bug free radio. LOL

The second firmware is a bootable image included inside the regular firmware, from which the second CPU boots. So when you upgrade the router's firmware, it can contain a newer version of that second firmware. This is not embedded into the hardware, it's inside the main firmware, and booted from RAM on every router reboot.

How do you know it is not full of backdoors, I mean you can somehow analyze a driver, but how do you analyze the OS on this embedded core?

Why would you suspect that it'd be full of backdoors? Quantenna and Asus ain't exactly some basement kiddies releasing malwares and selling it on eBay. The same way you can't tell that a Cisco, Juniper, Sonicwall or any other closed-source router doesn't contain any backdoor. Also the same you cannot tell if the closed-source Broadcom bits have any backdoor. If you're that paranoid and do not trust the manufacturer, don't buy any commercial product, and roll out your own software. It's the only way to be 100% sure.

Are there sources available for that core, so 3rd party developers can analyze it?

Not at this point. This is basically a Linux 2.6.35 kernel with Busybox 1.10, and possibly a few other tools.

The client-side that communicates with it is open source.

How much power does this unit draw, with all radios enabled?

No idea, I don't have anything to measure power draw.
 
Last edited:
Excellent write up!

I definitely see improved range on my wireless devices (I am coming from an AC66U), more importantly I am now able to stream my Playstation Vita remotely from the end of the house where previously I couldn't.

Looking forward to your firmware releases, my AC66U lived on your work. How long you think until a beta version of your firmware is released?
 
Looking forward to your firmware releases, my AC66U lived on your work. How long you think until a beta version of your firmware is released?

I can't say, as I'm currently waiting for Asus to provide me with the final release code. I currently have all features implemented, but my code is based on 1088, which is about a month old. They said they would have something for me early this week.
 
Not at this point. This is basically a Linux 2.6.35 kernel with Busybox 1.10, and possibly a few other tools.

Yes basically, but this comes from Quantenna and maybe Quantenna thinks, that GPL doesn't apply to them. I hope that Asus really did their homework to make sure they are not getting legal problems again.

Anyways, running another OS inside this radio chip sounds like waste of resources and must be very inefficient.
 
Anyways, running another OS inside this radio chip sounds like waste of resources and must be very inefficient.

On the contrary. It means the 5 GHz radio has its own dedicated CPU. That reduces the load on the main CPU under higher traffic loads. This is actually common for high performance devices. You aren't wasting resources here, you are adding more resources (a second CPU with its own dedicated 64 MB of RAM).

I can't comment on Quantenna and GPL. I try to stay away from any legalese, political and religious matters (all of three are always mixed together when talks about the GPL arise). If Quantenna doesn't make any change to the GPL code they use, then all they would have to do is point you at the kernel.org or Busybox website. AFAIK, the GPL doesn't mean you are required to publish the whole source code yourself. It requires of you that you either provide any changes you made to GPL code, or point at that GPL code.
 
Last edited:
Howdy,
I just want a little confirmation...

You will be working your magic on a firmware for the new RT-AC87u/r in the future? I see your working with some early code, but What I am looking for is, will we have your firmware for this unit?

if yes, I guess I better look into buying one. :)
 
Howdy,
I just want a little confirmation...

You will be working your magic on a firmware for the new RT-AC87u/r in the future? I see your working with some early code, but What I am looking for is, will we have your firmware for this unit?

if yes, I guess I better look into buying one. :)

Yes, I already have all functionalities implemented on top of 376_1088. IPsec and L7 filtering had to be dropped however, as these two are incompatible with the new DPI engine. But everything else, including Stealth Mode, extended wireless client info report or temperature monitoring has been implemented to support the RT-AC87.

I received the 376_1779 source code last night. It will take a while to merge and test it out however, quite a bit has changed since 376_1088. Merging the webui is becoming increasingly difficult, and Asus has changed quite a lot of things there these past couple of weeks. These days, merging the webui alone takes 30-40% of the time of a complete GPL merge.
 
On the contrary. It means the 5 GHz radio has its own dedicated CPU. That reduces the load on the main CPU under higher traffic loads. This is actually common for high performance devices. You aren't wasting resources here, you are adding more resources (a second CPU with its own dedicated 64 MB of RAM).

I can't comment on Quantenna and GPL. I try to stay away from any legalese, political and religious matters (all of three are always mixed together when talks about the GPL arise). If Quantenna doesn't make any change to the GPL code they use, then all they would have to do is point you at the kernel.org or Busybox website. AFAIK, the GPL doesn't mean you are required to publish the whole source code yourself. It requires of you that you either provide any changes you made to GPL code, or point at that GPL code.

Yes sure, but this chip has to boot the integrated os in a second or so and you probably don't get that without modifications. Of course I might be wrong here and the whole router needs 5min to boot. LOL

Anyways, have you done some routing benchmarks if qos is enabled you said there is some packet inspection used. Packet inspection normally uses a lot of cpu power. I wonder how much load this causes and how it affects performance.
 
Yes sure, but this chip has to boot the integrated os in a second or so and you probably don't get that without modifications. Of course I might be wrong here and the whole router needs 5min to boot. LOL

The Quantenna radio adds about 25 seconds to the boot time.

Anyways, have you done some routing benchmarks if qos is enabled you said there is some packet inspection used. Packet inspection normally uses a lot of cpu power. I wonder how much load this causes and how it affects performance.

With iQoS enabled, I was able to hit 750 Mbps when running iperf between LAN and WAN, which I must say REALLY surprised me. Earlier betas I had from Asus would only give me around 90 Mbps. CTF actually works with iQoS enabled.

I didn't test with Intrusion Detection enabled, that would be an interesting thing to benchmark as well. I can't test it as easily right now since the AC87U is currently fronting my LAN, but I can test it next time I swap it back with the AC68U.
 
RT-AC87U disk performance

I did a few disk performance test using an alpha build of my firmware on the RT-AC87U. This time I used my faster 3 TB HDD instead of the small 2.5" HDD. I can't use that larger disk on the stock FW since the kernel requires an additional patch to support it, that's why the tests were done with my FW. However performance should be nearly identical to stock FW as I don't have any additional optimization over stock FW.

I've decided to spice things up. As I mentionned, Asus has switched to a different driver to handle NTFS (as well as HFS+ and FAT32). I wanted to see the difference between the old driver from Paragon, and the new one from Tuxera.

As you can see, USB performance is quite better than it was on the RT-AC56U/RT-AC68U. And these tests are without the additional improvements Asus are currently working on.

The test was done with my desktop connected over Gigabit Ethernet. The file is a 1.5 GB backup file from Steam (I picked the first large enough file I found on my HDD).

The old drivers from Paragon:

Read
87-paragon-read.png


Write
87-paragon-write.png


Even with the old driver, disk performance is notably improved over the RT-AC56/68, probably in good part thanks to the faster CPU.


And now the newer driver from Tuxera:

Read
87-tuxera-read.png


Write
87-tuxera-write.png



Read performance is getting really nice, getting very close to 70 MB/s.

So in conclusion, the RT-AC87U still doesn't give NAS performance, but it's getting pretty close. And this is without the additional improvements Asus has planned which showed even better results in an early alpha build.
 
Last edited:

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top