[openwrt/openwrt] realtek: Fix failsafe mode

LEDE Commits lede-commits at lists.infradead.org
Tue Jun 22 14:53:14 PDT 2021


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/72d93c1ba44eb8f1b0a0978f71b06720365fd0e5

commit 72d93c1ba44eb8f1b0a0978f71b06720365fd0e5
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Tue Jun 22 00:45:21 2021 +0200

    realtek: Fix failsafe mode
    
    The RTL8380-RTL9300 switches only forward packets when VLAN ID 1 is
    configured. Do not use the standard failsafe configuration for DSA
    accessing the default port directly, but configure a switch on the lan1
    interface instead.
    
    This will add the VLAN ID 1 configuration to the switch:
    $ bridge vlan show
    port              vlan-id
    lan1              1 PVID Egress Untagged
    switch            1 PVID Egress Untagged
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit b7ee0786b56d1088c195fe7c1cdb1ad7d20c9245)
---
 .../base-files/lib/preinit/05_set_preinit_iface_realtek     | 13 +++++++++++++
 .../base-files/lib/preinit/98_remove_preinit_realtek        |  6 ++++++
 2 files changed, 19 insertions(+)

diff --git a/target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek b/target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek
new file mode 100644
index 0000000000..e2a7cf5a69
--- /dev/null
+++ b/target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek
@@ -0,0 +1,13 @@
+set_preinit_iface() {
+
+	# Create a switch on lan1 to configure the VLAN 1.
+	# Without configuring VLAN ID 1 RTL8380 - RTL9300 will not
+	# forward packets.
+	ip link add name switch type bridge vlan_filtering 1
+	ip link set dev lan1 master switch
+	ip link set lan1 up
+
+	pi_ifname=switch
+}
+
+boot_hook_add preinit_main set_preinit_iface
diff --git a/target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek b/target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek
new file mode 100644
index 0000000000..dc5fdb059b
--- /dev/null
+++ b/target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek
@@ -0,0 +1,6 @@
+remove_switch() {
+	# delete switch created in 05_set_preinit_iface_realtek again
+	ip link del name switch
+}
+
+boot_hook_add preinit_main remove_switch



More information about the lede-commits mailing list