HomeFreeBSD

Merge helper fib* functions used for basic lookups.

Description

Merge helper fib* functions used for basic lookups.

Vast majority of rtalloc(9) users require only basic info from
route table (e.g. "does the rtentry interface match with the interface

I have?". "what is the MTU?", "Give me the IPv4 source address to use",
etc..).

Instead of hand-rolling lookups, checking if rtentry is up, valid,

dealing with IPv6 mtu, finding "address" ifp (almost never done right),
provide easy-to-use API hiding all the complexity and returning the
needed info into small on-stack structure.

This change also helps hiding route subsystem internals (locking, direct

rtentry accesses).

Additionaly, using this API improves lookup performance since rtentry is not

locked.

(This is safe, since all the rtentry changes happens under both radix WLOCK

and rtentry WLOCK).

Sponsored by: Yandex LLC

Details

Provenance
melifaroAuthored on
Parents
rS291992: Added two vnode cache regression tests.
Branches
Unknown
Tags
Unknown