netlink-notifier: Support multiple groups.
authorJarno Rajahalme <jarno@ovn.org>
Mon, 13 Jun 2016 21:22:32 +0000 (14:22 -0700)
committerJarno Rajahalme <jarno@ovn.org>
Mon, 13 Jun 2016 21:22:32 +0000 (14:22 -0700)
commit77ee67e42dd730be7a1e3502d4f54a3f1ad17e73
tree6981aaf0cb73ed6fb108eedaa09bf4f2dcdbf39a
parent9044f2c11ff0021a9f5eb582ff25aa558dfa8a01
netlink-notifier: Support multiple groups.

A netlink notifier ('nln') already supports multiple notifiers.  This
patch allows each of these notifiers to subscribe to a different
multicast group.  Sharing a single socket for multiple event types
(each on their own multicast group) provides serialization of events
when reordering of different event types could be problematic.  For
example, if a 'create' event and 'delete' event are on different
netlink multicast group, we may want to process those events in the
order in which kernel issued them, rather than in the order we happen
to check for them.

Moving the multicast group argument from nln_create() to
nln_notifier_create() allows each notifier to specify a different
multicast group.  The parse callback needs to identify the group the
message belonged to by returning the corresponding group number, or 0
when an parse error occurs.

Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
Acked-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com>
lib/netlink-notifier.c
lib/netlink-notifier.h
lib/route-table.c
lib/rtnetlink.c
tests/test-netlink-conntrack.c