It's time they released a new stable version of OpenWRT. The new kernel with the DSA driver is very necessary, since with the old swconfig at <= 19.07 the Mediatek MT7621 SoC Switch is unstable. (Topic discussed here Mtk_soc_eth watchdog timeout after r11573).
With the new kernel 5.4.x and the DSA driver, I can confirm that it is 100% stable for me. Launching the same tests that in a few minutes left the router hanging or rebooted on 19.07, with the master branch it is working perfectly. In my opinion the master branch is mature enough to release a stable version, at least for MT7621 devices.
That is why I have build my own UNOFFICIAL "stable" branch for all MT7621 targets, based on master branch. With its own repository with all packages to avoid one of the problems of snapshot builds; when a new one is released, the kernel modules are no longer compatible with the previous build.
I have called it "FreeWRT 20.12", in commemoration of one of the first mod firmwares that was created and i used along time ago for the mythical WRT54G.
The builds contains the necessary basic packages, such as the officially released versions. I have only added luci (not included in snapshots) with the material theme (bootstrap is also available). You can install any package from luci or ssh.
You can download it here: http://downloads.freewrt.tk
This actual version is based on snapshot r15237.
I will update when major changes are made to the mt7621 or security patches are included.
Q - Can I update without losing my configuration?
A - If you update from 19.07.x or earlier preserving the configuration, keep in mind that it will not work because the names of the physical network interfaces change from the old swconfig driver to the new DSA. Most MT7621 devices have renamed the ports as 'wan' for wan port or 'lanX' to lan ports, with the exception of the UBNT ER-X which are labeled eth0~eth4.
There are several methods of updating without losing general settings. With the first one, the network configuration is lost, having to reconfigure it. With the second you can edit config to new device names before upgrade to get working on new firmware.
First of all make a backup of your configuration.
Method 1: Connect via ssh and delete the /etc/config/network. Immediately and without restarting or changing anything else, sysupgrade to FreeWRT. When it has been updated and restarted, the file will be recreated to the default network settings.
Method 2: Connect by ssh and edit the file /etc/config/network with vi or nano. Under LAN interface config (or network interface with allowed access to configuration), change the value of ifname to the new interface name in the DSA driver. For example 'lan1' for the first LAN port of the router (it depends on the model, it will be called lanX or ethX). Remove all sections referring to 'config switch' and 'config switch_vlan'. Save the changes to the file and perform the sysupgrade. When it has restarted, you will be able to access the configuration from device connected to the first port of the router, and the network configuration (interfaces, ips, routes, etc.) will have been maintained. You will only have to edit the configuration of the others network interfaces (wan for example) to match new adapter names for each port/vlan (via luci, uci or editing network config file).
Note you can also have to edit other config files from packages that use network adapter interfaces names instead of uci interfaces names in order to get working again (for example udpxy).
Q - How are the Switch or VLANs configured in new DSA driver?
A - In the old driver, for the system there was only one network adapter (or two depending on the SoC hardware design) that grouped all the Switch ports in the same adapter (eth0 or eth1). To separate them, a VLAN had to be configured for each port, tagged or untagged using swconfig. The associated interfaces were called eth0.X where X is the number of the VLAN, and more than one physical port can belong to it.
With the new DSA driver, there is no swconfig. Each physical port is a separate network adapter. For example the physical WAN port can be labeled 'wan' or 'eth0', LAN1 'lan1' or 'eth1', LAN2 'lan2' or 'eth2', etc. Each of these adapters can be configured VLAN tagging independently. For example, if we want to tag the traffic of our ISP in VLAN6 on the WAN port, the adapter name 'wan.6' (or 'eth0.6, depends on device) must be added on the network interface config. If we want to add another tagged VLAN to the same port, it's added in 'wan.X' format. To tag a VLAN on another port, the corresponding adapter is used. For example for VLAN3 tagged on LAN1 port 'lan1.3' must be used (or the adapter corresponding to physical port of your device). For untagged traffic on each port, only the adapter name (lanX) is used without dot notation. This can be configured directly in the network settings, using luci, uci or editing network file. By using the adapter names with their VLAN IDs, these are created automatically. Since quite a few commits in the master branch, it is not necessary to execute any commands to configure the VLAN of the ports.
Please comment if the issues related to the Switch have been fixed for you with DSA.