alistair23-linux/drivers/net/ethernet/mellanox/mlxsw
David Ahern 1f279233af mlxsw: spectrum_router: Return extack message on abort due to fib rules
Adding a FIB rule on a spectrum platform silently aborts FIB offload:
    $ ip ru add pref 99 from all to 192.168.1.1 table 10
    $ dmesg -c
    [  623.144736] mlxsw_spectrum 0000:03:00.0: FIB abort triggered. Note that FIB entries are no longer being offloaded to this device.

This patch reworks FIB rule handling to return a message to the user:
    $ ip ru add pref 99 from all to 8.8.8.8 table 11
    Error: spectrum: FIB rules not supported. Aborting offload.

spectrum currently only checks whether the fib rule is a default rule or
an l3mdev rule, both of which it knows how to handle. Any other it aborts
FIB offload. Move the processing to check the rule type inline with the
user request. If the rule is an unsupported one, then a work queue entry
is used to abort the offload. Change the rule delete handling to just
return since it does nothing at the moment.

Signed-off-by: David Ahern <dsahern@gmail.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-11-01 11:50:43 +09:00
..
cmd.h mlxsw: pci: Remove unused bit 2017-03-08 23:17:38 -08:00
core.c mlxsw: core: Fix possible deadlock 2017-10-18 12:19:15 +01:00
core.h mlxsw: core: Create the mlxsw_fw_rev struct 2017-05-25 17:46:17 -04:00
core_acl_flex_actions.c mlxsw: acl: Introduce ACL trap and forward action 2017-10-03 10:06:30 -07:00
core_acl_flex_actions.h mlxsw: acl: Introduce ACL trap and forward action 2017-10-03 10:06:30 -07:00
core_acl_flex_keys.c mlxsw: core: Introduce flexible keys support 2017-02-03 16:35:41 -05:00
core_acl_flex_keys.h mlxsw: acl: Add ip tos acl element 2017-07-17 09:18:23 -07:00
core_hwmon.c mlxsw: core: Zero payload buffers for couple of registers 2016-10-30 16:50:17 -04:00
core_thermal.c mlxsw: core: Implement thermal zone 2016-11-22 10:04:19 -05:00
emad.h mlxsw: Add interface to access registers and process events 2015-07-30 00:05:00 -07:00
i2c.c mlxsw: Fix mlxsw_i2c_write return value 2017-01-09 14:35:13 -05:00
i2c.h mlxsw: Introduce support for I2C bus 2016-11-16 23:29:04 -05:00
ib.h mlxsw: switchx2: Add IB port support 2016-10-30 16:50:17 -04:00
item.h mlxsw: item: Add helpers for getting pointer into payload for char buffer item 2017-02-03 16:35:38 -05:00
Kconfig mlxsw: spectrum_router: Add support for IPv6 routes addition / deletion 2017-08-03 15:36:00 -07:00
Makefile mlxsw: spectrum: Add the multicast routing hardware logic 2017-09-27 11:33:28 -07:00
minimal.c mlxsw: minimal: Add I2C support for Mellanox ASICs 2016-11-16 23:29:04 -05:00
pci.c mlxsw: convert to pci_alloc_irq_vectors 2017-04-11 11:16:03 -04:00
pci.h mlxsw: switchib: Introduce SwitchIB and SwitchIB silicon driver 2016-10-30 16:50:17 -04:00
pci_hw.h mlxsw: pci: Fix size of trap_id field in CQE 2017-06-06 12:45:23 -04:00
port.h mlxsw: Query maximum number of ports from firmware 2017-03-24 13:53:28 -07:00
reg.h mlxsw: reg: Avoid magic number in PPCNT 2017-10-27 23:25:55 +09:00
resources.h mlxsw: resources: Add multicast ERIF list entries resource 2017-09-19 14:21:40 -07:00
spectrum.c mlxsw: spectrum: Change stats cache to be local 2017-10-27 23:25:55 +09:00
spectrum.h mlxsw: spectrum: Change stats cache to be local 2017-10-27 23:25:55 +09:00
spectrum_acl.c mlxsw: spectrum_acl: Propagate errors from mlxsw_afa_block_jump/continue 2017-09-26 20:26:45 -07:00
spectrum_acl_flex_actions.c mlxsw: spectrum: Move ACL flexible actions instance to spectrum 2017-09-19 14:21:40 -07:00
spectrum_acl_flex_actions.h mlxsw: spectrum: Move ACL flexible actions instance to spectrum 2017-09-19 14:21:40 -07:00
spectrum_acl_flex_keys.h mlxsw: spectrum: Add tos to the ipv4 acl block 2017-07-17 09:18:23 -07:00
spectrum_acl_tcam.c mlxsw: spectrum_acl: Propagate errors from mlxsw_afa_block_jump/continue 2017-09-26 20:26:45 -07:00
spectrum_buffers.c mlxsw: spectrum_buffer: Reduce scope of shared buffer struct 2017-05-17 14:06:54 -04:00
spectrum_cnt.c mlxsw: spectrum: Support for counters on router interfaces 2017-03-28 17:11:55 -07:00
spectrum_cnt.h mlxsw: spectrum: Support for counters on router interfaces 2017-03-28 17:11:55 -07:00
spectrum_dcb.c mlxsw: spectrum: Do not override PAUSE settings 2016-08-08 12:57:27 -07:00
spectrum_dpipe.c mlxsw: spectrum_dpipe: Fix entries dump of the adjacency table 2017-10-24 19:02:02 +09:00
spectrum_dpipe.h mlxsw: spectrum_dpipe: Add initial support for the router adjacency table 2017-09-26 20:04:35 -07:00
spectrum_fid.c mlxsw: spectrum: Improve IPv6 unregistered multicast flooding 2017-07-17 09:19:39 -07:00
spectrum_flower.c mlxsw: spectrum_flower: Offload "ok" termination action 2017-09-26 20:26:45 -07:00
spectrum_ipip.c mlxsw: spectrum_router: Support GRE tunnels 2017-09-03 20:23:26 -07:00
spectrum_ipip.h mlxsw: spectrum: Drop refcounting of IPIP entries 2017-10-16 21:30:33 +01:00
spectrum_kvdl.c mlxsw: spectrum: Add another partition to KVD linear 2017-10-23 05:23:06 +01:00
spectrum_mr.c mlxsw: spectrum: mr: Make the function mlxsw_sp_mr_dev_vif_lookup static 2017-10-24 19:07:13 +09:00
spectrum_mr.h mlxsw: spectrum: mr_tcam: Add trap-and-forward multicast route 2017-10-03 10:06:30 -07:00
spectrum_mr_tcam.c mlxsw: spectrum: mr_tcam: Include the mr_tcam header file 2017-10-24 19:07:13 +09:00
spectrum_mr_tcam.h mlxsw: spectrum: Add the multicast routing hardware logic 2017-09-27 11:33:28 -07:00
spectrum_router.c mlxsw: spectrum_router: Return extack message on abort due to fib rules 2017-11-01 11:50:43 +09:00
spectrum_router.h mlxsw: spectrum_dpipe: Add adjacency group size 2017-10-23 05:23:05 +01:00
spectrum_switchdev.c mlxsw: spectrum_switchdev: Support bridge mrouter notifications 2017-10-09 10:18:11 -07:00
switchib.c mlxsw: make mlxsw_config_profile const 2017-08-11 14:57:04 -07:00
switchx2.c mlxsw: make mlxsw_config_profile const 2017-08-11 14:57:04 -07:00
trap.h mlxsw: spectrum: Add trap for multicast trap-and-forward routes 2017-10-03 10:06:30 -07:00
txheader.h mlxsw: spectrum: Add initial support for Spectrum ASIC 2015-10-16 07:15:23 -07:00