CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2015/09/26 22:27:57
Modified files:
sys/netinet : ip_carp.c
Log message:
make carp_input mpsafe.
there are three data structures involved here:
the list of carp interfaces on a parent interface (struct carp_if)
is now accessed via the if_ih cookie. its lifetime is managed by
the if_ih_insert and if_ih_remove calls.
the second is the interfaces (struct carp_softc) in the list above.
these has been moved from being access via a TAILQ to an SRPL.
modifications to the list are serialised by the kernel lock.
the third is the list of vhost entries (struct carp_vhost_entry).
these used to be in a LIST on each carp_softc, but have been moved
to being accessed vian an SRPL. modifications to the list are
serialised by the kernel lock.
written at l2k15
tested by mpi@ and hrvoje popovski
ok mpi@