Re: [patch net-next RFC 1/2] fib: introduce fib notification infrastructure
flat view
From: Roopa Prabhu <hidden>
Date: 2016-09-19 14:53:11
On 9/18/16, 11:06 PM, Jiri Pirko wrote:
Mon, Sep 19, 2016 at 01:23:47AM CEST, roopa@cumulusnetworks.com wrote:quoted
On 9/6/16, 5:01 AM, Jiri Pirko wrote:quoted
From: Jiri Pirko <redacted> This allows to pass information about added/deleted fib entries to whoever is interested. This is done in a very similar way as devinet notifies address additions/removals. Signed-off-by: Jiri Pirko <redacted> ---
[snip]
quoted
quoted
#define KEYLENGTH (8*sizeof(t_key))@@ -1190,6 +1221,10 @@ int fib_table_insert(struct fib_table *tb, struct fib_config *cfg) fib_release_info(fi_drop); if (state & FA_S_ACCESSED) rt_cache_flush(cfg->fc_nlinfo.nl_net); + + call_fib_notifiers(FIB_EVENT_TYPE_ADD, key, plen, fi, + new_fa->fa_tos, cfg->fc_type, + tb->tb_id, cfg->fc_nlflags); rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, tb->tb_id, &cfg->fc_nlinfo, NLM_F_REPLACE);@@ -1241,6 +1276,8 @@ int fib_table_insert(struct fib_table *tb, struct fib_config *cfg) tb->tb_num_default++; rt_cache_flush(cfg->fc_nlinfo.nl_net); + call_fib_notifiers(FIB_EVENT_TYPE_ADD, key, plen, fi, tos, + cfg->fc_type, tb->tb_id, cfg->fc_nlflags);It appears that this is in addition to the existing switchdev_fib_ipv4_add call right above this. Is the intent to do both ?. i don't see a need to do both.I already have patchset improved that it removes the switchdev fib code. Have to do some more testing, will send it soon.
ok, ack.
quoted
and switchdev_fib_ipv4_add offloads before the route is added to the kernel. But the notifier seems to fire after the route is added to the kernel.Yeah, I wanted to align it with rtmsg_fib calls. Also I think it makes sense to have slowpath ready before offload.
ok, ..but..that changes existing behavior though. and if the hw route add fails..., you may have inconsistent state between hw and sw.