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]>