Netgear R7800 exploration (IPQ8065, QCA9984)

@hnyman

https://github.com/dissent1/r7800/commit/5ae4a7425aac4211550e86060e556e6a3d5435cc
You should check kernel modules kmod-fast-classifier and kmod-sfe-cm in menu config under kernel modules -> network support

Works only in k4.9, because there were some changes in netfilter that I've hardcoded into the driver

edit: adjusted dependencies and auto load to load after kmod-ipt-*. It's enough to select kmod-shortcut-fe-cm

You don't necessarily need a real Gigabit provider line to test the NAT speeds as it might be hard to organize a saturation from the real Internet and test full-duplex with it.

An alternative setup would be 2 PCs, each with a Gigabit Ethernet port (all modern hardware has them). The "server" PC, connected to the WAN port of the router, will need to run a DHCP server and iperf in the server mode, and the "client" PC, connected to one of the LAN ports, will run the client mode of iperf. The DHCP server on the server PC will need to be configured to provide an IP from a different subnet than router's own LAN. Afterwards tests can be done iin both directions (half- or full-duplex). The easiest way to organize this is to boot a live Linux distro on both PCs.

Results from one year ago (DD-WRT): https://www.dd-wrt.com/phpBB2/viewtopic.php?p=1044363&sid=832243585bdb755fd74a44bcec3d2abc#1044363

Unfortunately I don't have access to the router any more.

I understand your post. I also know how to test without an actual gigabit internet connection. I'm just making a point that use cases may affect performance differently. If I'm never stressing my wired or wireless enough I'm likely to claim that it is stable. Conversely, if I'm constantly pushing maximum throughput through all my interfaces, I'm more likely to see bottlenecks/crashes that arent visible to others.

cchhat01

For k4.9. You should pick only kmod-fast-classifier under kernel modules - network support in menuconfig.
https://github.com/dissent1/r7800/commit/6e2637f7199526bdcc2ad7acb2aea6935e7a5ff2

So it is true that from 128Mb NAND is only ~20Mb available ?
(I know i can extend it with extroot)
Thanks.

By default, yes, only some 19 MB is available after flashing the router: to preserve the possibility to revert back into a fully functional Netgear OEM, the LEDE firmware is only stored to the 30 MB "ubi" partition and the 70 MB "Netgear" partition is left intact and marked read-only..

But you can compile an image that uses a larger portion of the flash:

hello,
anyone notice that wireless playing a bluray .mkv from usb ports storage and e-sata create artefacts/blocking in the video stream?

edit:
in build - LEDE 17.01: lede1701-r3469-870ca0da7a-20170724 graphics corruption don't happen.
in build - LEDE master: lede-r4619-d72371e42b-20170723 graphics corruption happen!!

Is this still a case?
I'm looking for a new router for 250/20 Mb/s connection to use with SQM layer_cake. I'm considering the Netgear R7800 but those new information are making me want to reject this device. Can anyone clear this up for me, please?

Greetings,

Is SQM QoS "broken" in the latest snapshot build ?

Downloaded today, dated 07-29-2017,

Running: LEDE Reboot SNAPSHOT r4651-a6f6f8d / LuCI Master (git-17.209.51293-4c9ae3f)

Installed LuCi packages, luci-app-qos, luci-app-sqm, luci-app-advanced-reboot

I have SQM enabled, but testing from DSLReports.com indicates Bufferfloat, like the module is not active.

  • I checked the interfaces: (eth0.2, ppoe-wan), they both mirror each other in ingress/egress traffic,
    SQM is setup on the (ppoe-wan) interface,

Any help, tips, feedback would be greatly appreciated, Thanks.

Luci-app-advanced-reboot has no relevance for R7800.
If you have SQM, you do not need luci-app-qos and qos-scripts.

@hnyman, Thanks for the reply.

I'll continue checking to see if I can find the root cause, and post in a (new) thread.

Kind Regards, Robert

Could someone please run iperf3 as a client from a router? I experience strange behavior - throughout is 10-15 mbits. When iperf3 is ran as a server on r7800, then throughput is 850-900 mbits (guess it's my pc nics top)

If someone is interested I've made a startup script that adjusts smp affinity.

1 Like

@Nague: Are you sure IGMP snooping worked correctly also for IGMPv2? My testing indicates that it does not, and I am really frustrated at the moment. I made a post about it here, but the rundown is that with IGMP snooping enabled, the switch drops all IGMP query messages.

What this means, is that a client may send a report/join message to a server, and start receiving the stream, but when the server (after some timeout) sends a query to see if the client still wants to receive the stream, the query is dropped on ingress, so the client never gets it. Thus the server never gets a response to the query, and stops the stream.

Immensely annoying!

@mroek : I'm not sure IGMP snooping feature works correctly in v2. We can try to troubleshoot, let's continue in your post.

@dissent1: I've been thinking about testing a little bit with the new DSA driver, but I'm having a hard time finding proper documentation as to how I'd set whether a port is a tagged or untagged member of a VLAN, and also how to set the default VLAN? Do you use VLANs in your setup? The old switch UCI config is not adjusted for this driver, is it? If it is, then this question is irrelevant, of course. When it comes to IGMP snooping, it seems that the only setup for that is for a bridge, so if IGMP snooping is set for br-lan, then the driver should automatically set the proper switch config for that?

Here's how you set vlans, screenshot of br-lan -> physical settings

Yes that's correct, in theory. By design the driver propagates kernel settings into the switch, so it behaves like each port is a real NIC. But as I get it it's more like multicast offloading, so multicast forwarding is done within the switch.

1 Like

I'm not entirely clear what is set in that screenshot. All the ticked interfaces are bridged, and the custom interface belongs to VLAN 3 on port lan1? So incoming packets on lan 1 with VLAN id 3 is then forwarded (untagged) within the bridge? What about egress? How do you set whether a interface is a tagged or an untagged member of a VLAN?

On that screenshot - lan port 1 is tagged with vid 3, lan 2-4 are untagged, you can combine whatever you want.
A port cant be untagged member of vlan - it's wether a member of vlan and tagged or untagged completely there's no 3rd option. What you have seen with luci switch before where you can set cpu and port tagged independently - is somewhat excessive configuration, or misconfiguration if you call it.

If you want to tag a port you add .vid to it i.e. lan1.3 or 'wan.8' etc. you can add as many vids to a single port as you want and bridge em together, route or send to the moon (not really).

Yes, exactly, and they all are bridged together - can communicate with each other

All the packets that are destined to lan port 1 in that configuration are tagged with vid 3, that's pretty simple :slight_smile:

edit: forgot to mention - after you fill custom interface field with custom interface you it apply and it's added to the list above it

@philjohn it's mostly fixes there that I've gathered from qsdk, Shortcut fe and qca8k driver (stripped version from blogic's repo).