realtek: Increase verbosity in rtldsa_fib4_add()/rtldsa_fib4_del()
authorMarkus Stockhausen <[email protected]>
Fri, 12 Sep 2025 09:55:47 +0000 (05:55 -0400)
committerRobert Marko <[email protected]>
Wed, 17 Sep 2025 17:21:58 +0000 (19:21 +0200)
commit532c51c15a3277b8375321a7588f12da06689d52
treef64d62775d2511e07ad0e713eee4aaaf92d46d73
parentd62ecd6c079ab5443f7a4a7ce5afd91b711c0aa1
realtek: Increase verbosity in rtldsa_fib4_add()/rtldsa_fib4_del()

L3 routing in Realtek switches is some magic voodoo. Especially
the syslog messages are not helpful at all for error diagnosis. As
a first step refactor rtldsa_fib4_add() and rtldsa_fib4_del() to
get some idea what is going on. For this add a helper function
rtldsa_fib4_check() for basic sanity checks and logging.

Do not only increase verbosity but fix some coding as well.

- Drop leftover checks for subnet 192.168.100.x
- Better detection of broadcast routes
- clearer MAC/VLAN formatting
- sort variables descending
- rename 1 char variable "r" to "route"
- change log helpers from pr...() to dev_...()

Before:

[    5.640463] rtl83xx_fib_event_work_do: FIB4 default rule failed
[    5.647164] rtl83xx_fib_event_work_do: FIB4 default rule failed
[   13.975386] rtl83xx_fib_event_work_do: FIB4 failed
[   13.981456] rtl83xx_fib_event_work_do: FIB4 failed
[   13.986906] rtl83xx_fib_event_work_do: FIB4 failed
[   18.455777] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   18.470993] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   18.476839] rtl83xx_fib4_del: no such gateway: 0.0.0.0

After:

[   13.812501] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.1.1/32 (VLAN 0, MAC 80:00:37:74:80:00)
[   13.823501] rtl83xx-switch switch@1b000000: lower interface lan1 not found
[   13.831371] rtl83xx-switch switch@1b000000: fib_add() failed
[   13.848157] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.1.255/32 (VLAN 0, MAC 80:00:37:74:80:00)
[   13.859264] rtl83xx-switch switch@1b000000: skip loopback/broadcast address
[   13.883086] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.1.0/24 (VLAN 0, MAC 80:00:37:74:80:00)
[   13.894051] rtl83xx-switch switch@1b000000: lower interface lan1 not found
[   13.902009] rtl83xx-switch switch@1b000000: fib_add() failed
[   18.342938] rtl83xx-switch switch@1b000000: delete IPv4 route 192.168.1.0/24 (VLAN 0, MAC 80:00:37:74:80:00)
[   18.354162] rtl83xx-switch switch@1b000000: no such gateway: 0.0.0.0
[   18.361483] rtl83xx-switch switch@1b000000: fib_del() failed
[   18.378327] rtl83xx-switch switch@1b000000: delete IPv4 route 192.168.1.255/32 (VLAN 0, MAC 80:00:37:74:80:00)
[   18.389736] rtl83xx-switch switch@1b000000: skip loopback/broadcast address
[   18.419856] rtl83xx-switch switch@1b000000: delete IPv4 route 192.168.1.1/32 (VLAN 0, MAC 80:00:37:74:80:00)
[   18.431160] rtl83xx-switch switch@1b000000: no such gateway: 0.0.0.0
[   18.438452] rtl83xx-switch switch@1b000000: fib_del() failed
[   54.570217] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.2.71/32 (VLAN 1, MAC d8:ec:5e:5b:7d:a1)
[   54.581329] rtl83xx-switch switch@1b000000: route hashtable extended for gw 0.0.0.0
[   54.638792] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.2.255/32 (VLAN 1, MAC d8:ec:5e:5b:7d:a1)
[   54.649913] rtl83xx-switch switch@1b000000: skip loopback/broadcast address
[   54.780897] rtl83xx-switch switch@1b000000: add IPv4 route 192.168.2.0/24 (VLAN 1, MAC d8:ec:5e:5b:7d:a1)
[   54.791883] rtl83xx-switch switch@1b000000: route hashtable extended for gw 0.0.0.0

Signed-off-by: Markus Stockhausen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20029
Signed-off-by: Robert Marko <[email protected]>
target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c