Page MenuHomeFreeBSD

Remove per-packet ifa refcounting from IPv6 fast path.
ClosedPublic

Authored by melifaro on Sat, Feb 13, 3:04 PM.

Details

Summary

Currently ip6_input() calls in6ifa_ifwithaddr() for
every local packet, in order to check if the target ip
belongs to the local ifa in proper state and increase
its counters.

in6ifa_ifwithaddr() references found ifa.
With epoch changes, both ip6_input() and all other current callers
of in6ifa_ifwithaddr() do not need this reference
anymore, as epoch provides stability guarantee.

Given that, update in6ifa_ifwithaddr() to allow
it to return ifa without referencing it, while preserving
option for getting referenced ifa if so desired.

Note: depends on D28647.

Diff Detail

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

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Mon, Feb 15, 10:33 PM
This revision was automatically updated to reflect the committed changes.