Mon, Sep 19, 2016 at 04:53:07PM CEST, ro...@cumulusnetworks.com wrote:
>On 9/18/16, 11:06 PM, Jiri Pirko wrote:
>> Mon, Sep 19, 2016 at 01:23:47AM CEST, ro...@cumulusnetworks.com wrote:
>>> On 9/6/16, 5:01 AM, Jiri Pirko wrote:
>>>> From: Jiri Pirko <j...@mellanox.com>
>>>>
>>>> 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 <j...@mellanox.com>
>>>> ---
>
>[snip]
>>>>  
>>>>  #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.
>>
>>
>>> 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.

If the hw route add fails, driver will be responsible for abort,
cleanining up hw and set appropriate traps to get packets to cpu
processing.

Reply via email to