linux/drivers/net/ethernet
Ido Schimmel 577fa14d21 mlxsw: spectrum: Do not process learned records with a dummy FID
The switch periodically sends notifications about learned FDB entries.
Among other things, the notification includes the FID (Filtering
Identifier) and the port on which the MAC was learned.

In case the driver does not have the FID defined on the relevant port,
the following error will be periodically generated:

mlxsw_spectrum2 0000:06:00.0 swp32: Failed to find a matching {Port, VID} following FDB notification

This is not supposed to happen under normal conditions, but can happen
if an ingress tc filter with a redirect action is installed on a bridged
port. The redirect action will cause the packet's FID to be changed to
the dummy FID and a learning notification will be emitted with this FID
- which is not defined on the bridged port.

Fix this by having the driver ignore learning notifications generated
with the dummy FID and delete them from the device.

Another option is to chain an ignore action after the redirect action
which will cause the device to disable learning, but this means that we
need to consume another action whenever a redirect action is used. In
addition, the scenario described above is merely a corner case.

Fixes: cedbb8b259 ("mlxsw: spectrum_flower: Set dummy FID before forward action")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reported-by: Alex Kushnarov <alexanderk@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Tested-by: Alex Kushnarov <alexanderk@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-07-17 15:19:46 -07:00
..
3com
8390 SPDX update for 5.2-rc6 2019-06-21 09:58:42 -07:00
adaptec
aeroflex
agere
alacritech treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235 2019-06-19 17:09:07 +02:00
allwinner Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
alteon
altera
amazon Revert "net: ena: ethtool: add extra properties retrieval via get_priv_flags" 2019-06-26 09:07:39 -07:00
amd treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
apm
apple
aquantia Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-27 21:06:39 -07:00
arc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
atheros net: ag71xx: Add missing header 2019-07-17 15:18:02 -07:00
aurora
broadcom ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
brocade
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
calxeda net/ethernet: using dev_get_drvdata directly 2019-07-05 15:25:04 -07:00
cavium net: lio_core: fix potential sign-extension overflow on large shift 2019-06-18 21:00:40 -04:00
chelsio ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
cirrus
cisco
cortina
davicom
dec
dlink
emulex be2net: Signal that the device cannot transmit during reconfiguration 2019-07-16 12:41:37 -07:00
ezchip
faraday Linux 5.2-rc4 2019-06-14 14:18:53 -06:00
freescale ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
fujitsu
google gve: Remove the exporting of gve_probe 2019-07-14 12:12:59 -07:00
hisilicon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-13 15:57:37 -07:00
hp
huawei hinic: add fw version query 2019-07-07 22:15:12 -07:00
i825xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ibm ibmvnic: Fix unchecked return codes of memory allocations 2019-06-09 19:51:28 -07:00
intel Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
marvell ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
mediatek net: ethernet: mediatek: mtk_eth_soc: Add of_node_put() before goto 2019-07-16 12:38:37 -07:00
mellanox mlxsw: spectrum: Do not process learned records with a dummy FID 2019-07-17 15:19:46 -07:00
micrel treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
microchip treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
moxa
mscc net: ethernet: mscc: ocelot_board: Add of_node_put() before return 2019-07-16 12:38:17 -07:00
myricom
natsemi
neterion ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
netronome nfp: flower: ensure ip protocol is specified for L4 matches 2019-07-12 15:31:55 -07:00
ni net: nixge: Fix misuse of strlcpy 2019-07-07 19:23:05 -07:00
nuvoton
nvidia
nxp
oki-semi
packetengines
pasemi net: pasemi: fix an use-after-free in pasemi_mac_phy_init() 2019-07-08 16:33:02 -07:00
qlogic ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
qualcomm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-17 20:20:36 -07:00
rdc
realtek r8169: fix issue with confused RX unit after PHY power-down on RTL8411b 2019-07-13 19:25:53 -07:00
renesas
rocker Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-07 11:00:14 -07:00
samsung treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
seeq treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sfc sfc: Remove 'PCIE error reporting unavailable' 2019-07-08 12:16:48 -07:00
sgi
silan
sis sis900: correct a few typos 2019-07-14 12:22:11 -07:00
smsc docs: kbuild: convert docs to ReST and rename to *.rst 2019-06-14 14:21:21 -06:00
socionext net: netsec: remove static declaration for netsec_set_tx_de() 2019-07-09 14:46:40 -07:00
stmicro net: stmmac: Fix misuses of GENMASK macro 2019-07-11 14:30:07 -07:00
sun net: ethernet: sun: remove redundant assignment to variable err 2019-07-04 12:12:13 -07:00
synopsys
tehuti
ti net: ethernet: ti: cpsw: Add of_node_put() before return and break 2019-07-16 12:37:30 -07:00
toshiba Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
tundra
via
wiznet net: ethernet: wiznet: w5X00 add device tree support 2019-06-12 09:52:04 -07:00
xilinx net: axienet: fix a potential double free in axienet_probe() 2019-07-08 16:28:32 -07:00
xircom
xscale
dnet.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dnet.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ec_bhf.c
ethoc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
fealnx.c
jme.c ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
jme.h
Kconfig gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
korina.c
lantiq_etop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
lantiq_xrx200.c
Makefile gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
netx-eth.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00