Hi Birger,

This looks good. I will try to have a closer look in the next days.

Hauke

On 6/26/21 11:17 PM, Birger Koblitz wrote:
Hi Hauke,

it looks as if there could be a more elegant solution to this, tomn just posted
this on the forum:
https://forum.openwrt.org/t/support-for-rtl838x-based-managed-switches/57875
I did not have time to test it so far, though.

Birger

On 22/06/2021 00:45, Hauke Mehrtens wrote:
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 <[email protected]>
---
  .../lib/preinit/05_set_preinit_iface_realtek        | 13 +++++++++++++
  .../lib/preinit/98_remove_preinit_realtek           |  6 ++++++
  2 files changed, 19 insertions(+)
  create mode 100644 target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek   create mode 100644 target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek

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 000000000000..e2a7cf5a69e9
--- /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 000000000000..dc5fdb059b9b
--- /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



_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to