aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2021-06-22 00:45:21 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2021-06-22 23:52:09 +0200
commit72d93c1ba44eb8f1b0a0978f71b06720365fd0e5 (patch)
tree0be62b79a0ef792305aa55c924bf36d63a4428c5
parent7a5a247c1fdea5e24e68958edade7747f065b066 (diff)
downloadupstream-72d93c1ba44eb8f1b0a0978f71b06720365fd0e5.tar.gz
upstream-72d93c1ba44eb8f1b0a0978f71b06720365fd0e5.tar.bz2
upstream-72d93c1ba44eb8f1b0a0978f71b06720365fd0e5.zip
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@hauke-m.de> (cherry picked from commit b7ee0786b56d1088c195fe7c1cdb1ad7d20c9245)
-rw-r--r--target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek13
-rw-r--r--target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek6
2 files changed, 19 insertions, 0 deletions
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