Page MenuHomeFreeBSD

routing: Fix crashes with dpdk_lpm algo.

Authored by melifaro on Aug 15 2021, 10:38 PM.



When a prefix gets deleted from the RIB, dpdk_lpm algo needs to know
the nexthop of the "parent" prefix to update its internal state.
The glue code, which utilises RIB as a backing route store, used
fib4_lookup_rt() after the prefix deletion. This approach didn't
work for "nested prefixes": if, and
exists in RIB, deleting resulted in being
returned. This, in turn, resulted in failure to update the entire
/23 with a next nexhop, leading to eventual crashes.

Fix this by creating per-family rt_get_inet[6]_parent() helpers
and using them in the dpdk_lpm code.

Diff Detail

R10 FreeBSD src repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.