[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180329.141102.564703333727435685.davem@davemloft.net>
Date: Thu, 29 Mar 2018 14:11:02 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: dsa@...ulusnetworks.com
Cc: netdev@...r.kernel.org, roopa@...ulusnetworks.com,
shm@...ulusnetworks.com, jiri@...lanox.com, idosch@...lanox.com,
jakub.kicinski@...ronome.com, andy.roulin@...il.com
Subject: Re: [PATCH net-next 0/6] net: Allow FIB notifiers to fail add and
replace
From: David Ahern <dsa@...ulusnetworks.com>
Date: Tue, 27 Mar 2018 18:21:54 -0700
> I wanted to revisit how resource overload is handled for hardware offload
> of FIB entries and rules. At the moment, the in-kernel fib notifier can
> tell a driver about a route or rule add, replace, and delete, but the
> notifier can not affect the action. Specifically, in the case of mlxsw
> if a route or rule add is going to overflow the ASIC resources the only
> recourse is to abort hardware offload. Aborting offload is akin to taking
> down the switch as the path from data plane to the control plane simply
> can not support the traffic bandwidth of the front panel ports. Further,
> the current state of FIB notifiers is inconsistent with other resources
> where a driver can affect a user request - e.g., enslavement of a port
> into a bridge or a VRF.
>
> As a result of the work done over the past 3+ years, I believe we are
> at a point where we can bring consistency to the stack and offloads,
> and reliably allow the FIB notifiers to fail a request, pushing an error
> along with a suitable error message back to the user. Rather than
> aborting offload when the switch is out of resources, userspace is simply
> prevented from adding more routes and has a clear indication of why.
>
> This set does not resolve the corner case where rules or routes not
> supported by the device are installed prior to the driver getting loaded
> and registering for FIB notifications. In that case, hardware offload has
> not been established and it can refuse to offload anything, sending
> errors back to userspace via extack. Since conceptually the driver owns
> the netdevices associated with its asic, this corner case mainly applies
> to unsupported rules and any races during the bringup phase.
>
> Patch 1 fixes call_fib_notifiers to extract the errno from the encoded
> response from handlers.
>
> Patches 2-5 allow the call to call_fib_notifiers to fail the add or
> replace of a route or rule.
>
> Patch 6 adds a simple resource controller to netdevsim to illustrate
> how a FIB resource controller can limit the number of route entries.
Series applied, thanks David.
Powered by blists - more mailing lists