CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    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@

Reply via email to