Re: [patch net-next 1/6] fib: introduce FIB notification infrastructure
flat view
From: Jiri Pirko <jiri@resnulli.us>
Date: 2016-09-22 09:43:59
Thu, Sep 22, 2016 at 07:13:50AM CEST, idosch@idosch.org wrote:
On Wed, Sep 21, 2016 at 01:53:09PM +0200, Jiri Pirko wrote:quoted
From: Jiri Pirko <redacted> This allows to pass information about added/deleted FIB entries/rules to whoever is interested. This is done in a very similar way as devinet notifies address additions/removals. Signed-off-by: Jiri Pirko <redacted>[...]quoted
#include <linux/slab.h> #include <linux/export.h> #include <linux/vmalloc.h> +#include <linux/notifier.h> #include <net/net_namespace.h> #include <net/ip.h> #include <net/protocol.h>@@ -84,6 +85,44 @@ #include <trace/events/fib.h> #include "fib_lookup.h" +static BLOCKING_NOTIFIER_HEAD(fib_chain); + +int register_fib_notifier(struct notifier_block *nb) +{ + return blocking_notifier_chain_register(&fib_chain, nb); +} +EXPORT_SYMBOL(register_fib_notifier);If we remove and insert the switch driver, then the existing FIB entries should be replayed when we register our notification block. Otherwise, all of these entries will be missing from the switch's tables. I believe it should be handled like register_netdevice_notifier(), where "registration and up events are replayed".
Agreed. This patchset does not change this behaviour as the original switchdev solution has the same "ordering" issue. We should take care of it as a part of yours ordering patchsets.