Add support for Linksys EA6350 v3

@chunkeey has pushed ipqess and "ipq40xx-ized" qca8k driver to his staging tree
Have you also tested that?

Doing the EA8300 development in March/April 2019, yes. Through no fault of Chunkeey at all, the upstream Linux behavior, was, at that time, not robust enough for me to use. There were some significant changes in Linux 5.x that made backporting the entire driver and DSA framework back to 4.19 infeasible.

Admittedly, I haven't checked on it in the last couple of months. It will be something I reexamine again. in the section "Bridge VLAN filtering" indicates that there are several port_vlan_* functions required for VLAN functionality. From dsa.h on Linux master

         * VLAN support
        int     (*port_vlan_filtering)(struct dsa_switch *ds, int port,
                                       bool vlan_filtering);
        int (*port_vlan_prepare)(struct dsa_switch *ds, int port,
                                 const struct switchdev_obj_port_vlan *vlan);
        void (*port_vlan_add)(struct dsa_switch *ds, int port,
                              const struct switchdev_obj_port_vlan *vlan);
        int     (*port_vlan_del)(struct dsa_switch *ds, int port,
                                 const struct switchdev_obj_port_vlan *vlan);

I don't see those in the qca8k driver, at least at this time, again on Linux master

Hi, thanks for the reports on VLAN functionality not working 100% on this device. I just purchased a Linksys EA6350v3 router to replace an older OpenWrt device but need tagged and untagged VLANs. I'll follow this thread for updates.

If you don't need all ports, you can just omit WAN port. You can use full VLAN functionality on LAN switch. You can even map one of the LAN ports to WAN network. Dirty workaround, but it's working fine :wink:

Is the USB port working?
I want to connect my iPhone for tethering.

Follow the steps written here:
Only it stops here:

[ 909.354536] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 1040.371633] ipheth 1-1:4.2: Apple iPhone USB Ethernet device attached

So no new USB interface, do I need any other drivers?

On the IPQ4019, there are typically two active Ethernet MACs. The way the driver works, one is "hard bound" to the "Internet" port (the label, not necessarily how you use it) and the other is hard bound to the "LAN" ports. This is done with VLAN 1 and VLAN 2. Using those two VLANs for anything but untagged on those ports is likely to be a problem. Configuration using LuCI is likely to be "challenging", at best. Editing the config files is my preference.

VLAN trunking on the Internet interface works quite well (for VLAN IDs other than 1 and 2), tagged on both the CPU port and the Internet port of the switch. I have not tried on the LAN ports, but I would expect that it works there as well. (I use the Internet port for my VLAN trunk.)

If you want to bridge between the Internet and LAN ports, then you need to configure it in three places:

  • Set up the VLAN on the switch for the Internet port (tagged, for example) and the CPU (tagged)
  • Set up the VLAN on the switch for the LAN ports (untagged, for example) and the CPU (tagged)
  • Bridge eth0.NNNN and eth1.NNNN

Not exactly. There is no need to bridge. eth0.1 doesn't work. Bridging lan port to wan works this way:

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr ''
	option netmask ''
	option ip6assign '64'

config interface 'wan'
	option ifname 'eth1'
	option proto 'dhcp'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option vid '1'
	option ports '0 2 3 4'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option vid '2'
	option ports '0t 1 5'

That may work for those specific VLANs and tagging, but a different configuration approach is needed to provide, for example

  • VLAN 100 on Internet tagged
  • VLAN 100 on LAN 1-4 untagged

Edit: Checking to see if the EA6350v3 is a single- or dual-MAC device

The shared changes to the IPQ4019 DTS related to the current switch/VLAN topics are from

  • 702-dts-ipq4019-add-PHY-switch-nodes.patch
  • 711-dts-ipq4019-add-ethernet-essedma-node.patch
1 Like

That's true. But if you simply need to bridge a lan port to wan, it is the way to do it.

You can't use vlan 1 or 2 as e.g. eth0.1 and eth0.2 for the reason you mentioned.

Regarding Luci. The 02_network script doesn't have wan mentioned. That's why we don't have wan in Luci. I think we need to fix it, because if a user saves any configuration in Luci, port 5 will be excluded. That is an obvious bug.

1 Like

Thanks everyone for the great work here. I successfully installed the latest Snapshot and Luci on my EA6350. I needed to return to stock but discovered I have flashed both partitions. I can't seem to get any 100 TTL pings at boot or to get the u-boot tftp client method to initiate. Did I screw up u-boot or the possibility to recover with tftp? Or is there an easier way to revert to stock with SSH or through the GUI Luci? Will I need to invest in a USB serial cable at this point?

I've read through the extensive documentation here and it begins to read like a soap opera. Does anyone have access to the "ReturnToStock" script without all the drama? or has any advice on how to return to stock. Thank you.

Is there support for software offloading :question: I am getting poor performance with SQM, and when I enabled software offloading I am getting the same speeds. My 300 Down /12 Up line with SQM enable (cake and piece of cake) get 180 Down /8 Up.

I suspect you’ve got config problems if you’re seeing those rates. Why don’t you open a new thread about your issue.

1 Like

Be aware that SQM and flow-offloading are mutually exclusive from a functional point of view.

Flow-offloading works by the kernel learning about existing connections, and taking care of subsequent packets of these established connections before hitting- and passing through all of the netfilter stack.

The way SQM works is by keeping track of every single packet and sending it exactly at the time necessary to provide optimal bufferbloat results, to shape the connection parameters.

This means that all traffic being shaped does need to pass through the (full-) netfilter stack, not allowing any shortcuts (such as flow-offloading).

While you can enable SQM in combination with software flow-offloading, it loses its effect (almost) completely; you cannot combine it with hardware flow-offloading (currently only available on mt7621).

1 Like

Thank you for the explanation. I am guessing that the processor in the EA6350v3 might be too slow for my connection with SQM. I ran htop and one of my cores hit 100% when running a speed test with SQM on.

If I recall correctly, @nbd says flow-offload does not bypass tc/qdisc, which SQM relies on

Can I please have a copy of this script if you can find it? Thanks so much.

First of all, thanks a lot for adding support to this router. I've just bought one in the hopes of using Open WRT on it and followed the installation instructions. After flashing the image, I can see the light on top of it goes solid, but I can't connect to I've managed to recover to the factory image by following the instructions and tried flashing it 3 times with no success. I checked SHA256 of my downloaded file and it's a match.
I must be doing something really stupid... can someone please help me?

Apologies if this is not the correct place for this. It's my first post.

This isn't quite telling if you're trying to connect to a webinterface (which isn't going to work, as the ea6350v3 currently is only supported in snapshots, which never ship luci) or if you're trying to connect via ssh (as you need to, then you can install luci at runtime).

Thanks a lot! I was trying web access. I managed to connect via SSH now and will read about how to install luci.

1 Like

fwiw, OpenWrt 19.07 snapshot is available for ea6350 v3. This includes LuCI.

Amazon UK finally dispatched the ea6350v3 I ordered 3 weeks ago so I hope to try 19.07 snapshot on it.