]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_dplane.c
zebra: move ipset and ipset_entry to zebra dplane contexts
authorPhilippe Guibert <philippe.guibert@6wind.com>
Wed, 17 Feb 2021 10:43:52 +0000 (11:43 +0100)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Wed, 10 Mar 2021 13:57:32 +0000 (14:57 +0100)
commitef524230a6baa5dd5dd337d723d47fe984d3e304
treeb5eba1201fad225c2f0c69a7b09bea8d3916e2d3
parent5162e00045e1fe5ee4acd34d9e507e54f668e1e0
zebra: move ipset and ipset_entry to zebra dplane contexts

like it has been done for iptable contexts, a zebra dplane context is
created for each ipset/ipset entry event. The zebra_dplane_ctx job is
then enqueued and processed by separate thread. Like it has been done
for zebra_pbr_iptable context, the ipset and ipset entry contexts are
encapsulated into an union of structures in zebra_dplane_ctx.

There is a specificity in that when storing ipset_entry structure, there
was a backpointer pointer to the ipset structure that is necessary
to get some complementary information before calling the hook. The
proposal is to use an ipset_entry_info structure next to the ipset_entry,
in the zebra_dplane context. That information is used for ipset_entry
processing. The ipset name and the ipset type are the only fields
 necessary.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
lib/zclient.c
lib/zclient.h
zebra/kernel_netlink.c
zebra/zapi_msg.c
zebra/zapi_msg.h
zebra/zebra_dplane.c
zebra/zebra_dplane.h
zebra/zebra_nhg.c
zebra/zebra_pbr.c
zebra/zebra_pbr.h
zebra/zebra_rib.c