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 */
adapter->stats.rx_packets++;
@@ -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)
- flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_DEFAULT_FLAG;
}
/* Check and mark checksum offload */
error
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?