Files
openwrt/target
Gennaro Cimmino 47b46ced13 realtek: l3: keep a trap whose source list is incomplete
A prefix with source-specific IPv6 routes gets one trap row, which
keeps a list of their sources and goes once the list is empty and no
route without a source is left. When the allocation for a source
failed, that source was left out: once the list was empty the row
went, or a route without a source took it over, though the kernel
still had the source-specific route the row was trapping for.

Mark the row when a source could not be tracked, count it as still
standing for sources, and ask for a FIB replay, which builds the list
again from scratch.

Tested on a Hasivo S1100W-8XGT-SE (RTL9303) with L3 offload enabled,
through a bench-only debugfs counter that fails the next source
allocation: under an IPv6 /32 forwarding in hardware, a /48 with a
source-specific route via another host and a source-specific blackhole
for the sender, whose tracking fails. Once the first is deleted, the
kernel drops the sender's echoes: without this change the trap row
goes and the /32 forwards all 5 to the host, with it the row stays, the
FIB is replayed and none arrive.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Gennaro Cimmino <gcimmino@rayonra.net>
Link: https://github.com/openwrt/openwrt/pull/25623
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2026-10-05 11:46:22 +02:00
..
…
…