On 5/1/18 2:16 AM, Ido Schimmel wrote:
> Since commit 9776d32537d2 ("net: Move call_fib_rule_notifiers up in
> fib_nl_newrule") it is possible to forbid the installation of
> unsupported FIB rules.
> 
> Have mlxsw return an error for non-default FIB rules in addition to the
> existing extack message.
> 
> Example:
> # ip rule add from 198.51.100.1 table 10
> Error: mlxsw_spectrum: FIB rules not supported.
> 
> Note that offload is only aborted when non-default FIB rules are already
> installed and merely replayed during module initialization.
> 
> Signed-off-by: Ido Schimmel <ido...@mellanox.com>
> ---
>  drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 
> b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> index 8e4edb634b11..baea97560029 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> @@ -5899,7 +5899,7 @@ static int mlxsw_sp_router_fib_rule_event(unsigned long 
> event,
>       }
>  
>       if (err < 0)
> -             NL_SET_ERR_MSG_MOD(extack, "FIB rules not supported. Aborting 
> offload");
> +             NL_SET_ERR_MSG_MOD(extack, "FIB rules not supported");
>  
>       return err;

shouldn't mlxsw_sp_router_fib_rule_event return -EOPNOTSUPP instead of
-1 (EPERM)?


>  }
> @@ -5926,8 +5926,8 @@ static int mlxsw_sp_router_fib_event(struct 
> notifier_block *nb,
>       case FIB_EVENT_RULE_DEL:
>               err = mlxsw_sp_router_fib_rule_event(event, info,
>                                                    router->mlxsw_sp);
> -             if (!err)
> -                     return NOTIFY_DONE;
> +             if (!err || info->extack)
> +                     return notifier_from_errno(err);
>       }
>  
>       fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
> 

Reply via email to