mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-14 15:17:37 +04:00
The debugfs dump kept a record of its own, otto_l3_930x_dump_rec, with a copy of a route's attributes, and decoded host and prefix rows with its own copies of the readers' field positions. Split the decoding out of otto_l3_930x_host_route_read() and otto_l3_930x_route_read() into decoders that work on a fetched row, use them in the readers, the dump and the hit clearing, and keep in the record only where an entry sits and the route it holds. The dump prints the same. The two debug lines that showed the prefix reader's intermediate host route, default route and mask bits go with the decoding they sat in; the prefix length the reader still prints is what they add up to. Tested on a Hasivo S1100W-8XGT-SE (RTL9303) with IPv4 host routes and IPv4 and IPv6 prefix routes, forwarding and trapping. The routes dump, taken after traffic to the forwarding ones and again after clear_route_hits, matches main field by field, 28 rows each. Left out of the comparison are the ULA prefix each boot picks, and the hit bit outside the three rows that carried the test traffic, which other traffic can set at any moment. On those three rows the hit bit goes from 1 to 0. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Gennaro Cimmino <gcimmino@rayonra.net> Link: https://github.com/openwrt/openwrt/pull/25669 Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>