VLAN Patch Not Working on Linksys EA6350v3 v21.02

I've been using my two Linksys EA6350v3's on v19.07.3 for a while now but wanted to try 21.02.0 so I can try and get my head around the new DSA (distributed switch architecture). There are still problems with the switch on IPQ40xx based devices but there were two files that were used to rectifiy the issue for OpenWrt v19.07:

  • 02_network (target/linux/ipq40xx/base-files/etc/board.d0

  • 715-net-essedma-disable-default-vlan.patch (target/linux/ipq40xx/patches-5.4)

As of August 2020, there are still known problems with the switch used in IPQ40xx based devices. Therefore the use of VLANs is not fully supported at this time. See this post for a workaround. Switch config strangeness - consider using NoTengoBattery's custom firmware which does support VLAN as expected by using the patches from Christian Lampeter.

I tried to apply the 715-net-essedma-disable-default-vlan.patch but it was getting stuck on the following:

/* Update rx statistics */
@@ -1414,8 +1412,6 @@ netdev_tx_t edma_xmit(struct sk_buff *sk
if (!adapter->edma_cinfo->is_single_phy) {
if (unlikely(skb_vlan_tag_present(skb)))
flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_FLAG;
- else if (adapter->default_vlan_tag)

/* Check and mark checksum offload */


Applying /home/vm/openwrt/21.02/target/linux/ipq40xx/patches-5.4/715-net-essedma-disable-default-vlan.patch using plaintext:
patching file arch/arm/boot/dts/qcom-ipq4019.dtsi
Hunk #1 succeeded at 666 (offset 35 lines).
Hunk #2 succeeded at 704 (offset 35 lines).
patching file drivers/net/ethernet/qualcomm/essedma/edma.c
Hunk #1 succeeded at 727 (offset -2 lines).
Hunk #2 FAILED at 1412.
1 out of 2 hunks FAILED -- saving rejects to file drivers/net/ethernet/qualcomm/essedma/edma.c.rej
Patch failed! Please fix /home/vm/openwrt/21.02/target/linux/ipq40xx/patches-5.4/715-net-essedma-disable-default-vlan.patch!
make[4]: *** [Makefile:34: /home/vm/openwrt/21.02/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.150/.prepared_fbab73a3e683b53667c3ef9e9edff3d3] Error 1
make[4]: Leaving directory '/home/vm/openwrt/21.02/target/linux/ipq40xx'
make[3]: *** [Makefile:11: compile] Error 2
make[3]: Leaving directory '/home/vm/openwrt/21.02/target/linux'
time: target/linux/compile#12.75#10.47#22.81
ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:25: target/linux/compile] Error 1
make[2]: Leaving directory '/home/vm/openwrt/21.02'
make[1]: *** [target/Makefile:18: /home/vm/openwrt/21.02/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.target_compile] Error 2
make[1]: Leaving directory '/home/vm/openwrt/21.02'
make: *** [/home/vm/openwrt/21.02/include/toplevel.mk:230: world] Error 2

From looking through NoTengoBattery's GitHub repository found here he no longer uses the 715-net-essedma-disable-default-vlan.patch however he does still utilise a modified 02_network file.

I tried NoTengoBattery's Optimized build for IPQ40xx devices found here had a look at the switch and VLAN settings within LuCI and the VLAN configuration doesn't look anything like the screenshots from the DSA Mini-Tutorial.

DSA Mini-Tutorial

br-lan Bridge VLAN Filtering

Interfaces > Devices

Is there any plan to get working VLAN within LuCI? I made myself a post-install UCI script that configures the entire router including setting VLANs and these were made and tested for v19.07. Will they still work with 21.02 or have they completely changed?

I compiled an image without the 715-net-essedma-disable-default-vlan.patch file and used the diff config config.buildinfo from the OpenWrt download web directories so that I had an exact copy of the official firmware. Unfortunately, the Switch menu link disappeared in LuCI found at Network > Switch. However, after going back into make menu config I noticed that kmod-swconfig wasn't selected.

However, with the VLANs being configured from Network > Interfaces > Devices > Bridge VLAN filtering does the Network > Switch menu link still exist/need to exist?

This is, mostly, because the device does not support DSA at the moment (generally speaking, all ipq40xx are unsupported). And as such, the DSA tutorial simply doesn't apply. You need to check the "classic" switch tutorial in this case.

I do. Indeed, when I refactored the code I renamed it. Please take a look at this commit:

In any case, check the master version of the involved files to get the latest version of them.

You are looking at old files. That is why it's not working. Check the newer versions and let all us know your findings.

1 Like

Thank you very much for the reply.

I've added the two updated files in place of the old ones I was previosuly using and I'm now able to successfully compile a firmware image without any errors.

The only problem I have now is when I flash it to the router I'm unable to communciate with it at all, forcing me to do the firmware recovery procedure to revert it to the first partiton where the stock Linksys firmware is installed.

Any ideas what's going on here?

Is a known problem. You need to factory reset the firmware or uncheck the "keep settings" when flashing. This is because the old switch configuration is invalid and this prevent any communication.

I have been using the squashfs-factory.bin file and flashing from the stock Linksys firmware.

There seemed to be a problem with the config.buildinfo diff file that I used from the official OpenWrt download directory. I scrapped it all together and went straight in with make menuconfig selected the target and device, compiled and flashed it to the device and it's been fine.

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