linux/drivers/net/ethernet
Ido Schimmel 1c6c6d221e mlxsw: spectrum: Mirror certain packets to CPU
Instead of trapping certain packets to the CPU and then relying on it to
flood them we can instead make the device mirror them.

The following packet types are mirrored:

* DHCP: Broadcast packets that should be flooded by the device, but also
trapped in case CPU is running the DHCP server.

* IGMP query: Multicast packets that need to be forwarded to other
bridge ports, but also trapped so that receiving netdev will be marked
as a router port by the bridge driver.

* ARP request: Broadcast packets that should be forwarded to other
bridge ports, but also trapped in case requested IP is of the local
machine.

* ARP response: Unicast packets that should be forwarded by the bridge
but also trapped in case response is directed at us.

Set the trap action of such packets to mirror and mark them using
'offload_fwd_mark' to prevent the bridge driver from forwarding them
itself.

Note that OSPF packets are also marked despite their action being trap.
The reason for this is that the device traps such packets in the
pipeline after they were already flooded.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-08-26 13:13:37 -07:00
..
3com treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
8390 net: ethernet: ax88796: avoid null pointer dereference 2016-08-01 13:32:51 -07:00
adaptec treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
adi net: bfin_mac: Fix a few spelling fixes 2016-08-13 15:14:56 -07:00
aeroflex net: ethernet: greth: use phy_ethtool_{get|set}_link_ksettings 2016-08-08 15:42:21 -07:00
agere Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
allwinner net: ethernet: sun4i-emac: use phy_ethtool_{get|set}_link_ksettings 2016-06-22 16:22:41 -04:00
alteon
altera ethernet: altera: add missing of_node_put 2016-08-01 21:42:57 -07:00
amazon net: ena: change the return type of ena_set_push_mode() to be void. 2016-08-23 17:42:33 -07:00
amd net: amd-xgbe: use correct format specifier 2016-08-01 13:32:51 -07:00
apm drivers: net: xgene: Fix backward compatibility 2016-08-13 11:48:53 -07:00
apple
arc net: arc_emac: add missing of_node_put() in arc_emac_probe() 2016-08-06 00:07:38 -04:00
atheros Merge branch 'pci/msi-affinity' into next 2016-08-01 12:34:01 -05:00
aurora ethernet: aurora: nb8800: add missing of_node_put after calling of_parse_phandle 2016-08-01 21:43:47 -07:00
broadcom net: systemport: Fix ordering in intrl2_*_mask_clear macro 2016-08-25 16:52:44 -07:00
brocade bna: remove global bnad_list_mutex 2016-08-08 15:41:27 -07:00
cadence net: ethernet: macb: Add support for rx_clk 2016-08-18 20:58:42 -07:00
calxeda
cavium liquidio: declare liquidio_set_rxcsum_command static 2016-08-23 16:53:55 -07:00
chelsio cxgb4: Remove unused including <linux/version.h> 2016-08-23 17:17:48 -07:00
cirrus net: cx89x0: Add DT support 2016-06-15 12:17:57 -07:00
cisco net: enic: use correct type specifier 2016-08-01 13:32:52 -07:00
davicom dm9000: Fix irq trigger type setup on non-dt platforms 2016-08-09 15:08:22 -07:00
dec net: fix up a few missing hashtable.h conflict resolutions 2016-08-13 14:51:02 -07:00
dlink treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
emulex be2net: replace polling with sleeping in the FW completion path 2016-08-08 15:38:27 -07:00
ezchip Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
faraday net/faraday: Disallow using reversed MAC address from hardware 2016-07-20 21:05:18 -07:00
freescale net: fix up a few missing hashtable.h conflict resolutions 2016-08-13 14:51:02 -07:00
fujitsu treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
hisilicon net: hns: remove redundant dev_err call in hns_dsaf_get_cfg() 2016-08-23 17:17:49 -07:00
hp treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
i825xx treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ibm ibmvnic: fix error return code in ibmvnic_probe() 2016-08-25 16:41:00 -07:00
intel ixgbe: Add support for new X557 device 2016-08-20 19:51:25 -07:00
marvell net: ethernet: marvell: mvneta: use new api ethtool_{get|set}_link_ksettings 2016-08-08 15:42:21 -07:00
mediatek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-18 01:17:32 -04:00
mellanox mlxsw: spectrum: Mirror certain packets to CPU 2016-08-26 13:13:37 -07:00
micrel drivers: net: Don't print unpopulated net_device name 2016-05-17 12:30:19 -04:00
microchip enc28j60: Fix race condition in enc28j60 driver 2016-07-02 14:48:14 -04:00
moxa treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
myricom myri10ge: fix sleeping with bh disabled 2016-04-28 14:21:14 -04:00
natsemi treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
neterion net: s2io: simplify logical constraint 2016-08-01 13:32:52 -07:00
netronome nfp: check idx is -ENOSPC before using it is an index 2016-07-11 13:52:00 -07:00
nuvoton net: ethernet: nuvoton: fix spelling mistake: "aligment" -> "alignment" 2016-08-18 23:29:43 -07:00
nvidia
nxp net: lpc_eth: Remove unused 'pldat' variable 2016-07-04 23:55:29 -07:00
oki-semi pch_gbe: replace private tx ring lock with common netif_tx_lock 2016-04-28 17:19:58 -04:00
packetengines treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
pasemi net: ethernet: pasemi_mac: use phy_ethtool_{get|set}_link_ksettings 2016-07-15 16:41:34 -07:00
qlogic qede: Add support for Tx/Rx-only queues. 2016-08-23 17:11:54 -07:00
qualcomm treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
rdc net: r6040: Bump version and date 2016-07-05 00:10:30 -07:00
realtek 8139too: fix system hang when there is a tx timeout event. 2016-08-01 21:38:53 -07:00
renesas net: ethernet: renesas: ravb: use new api ethtool_{get|set}_link_ksettings 2016-08-20 22:27:17 -07:00
rocker bridge: switchdev: Add forward mark support for stacked devices 2016-08-26 13:13:36 -07:00
samsung net: ethernet: sxgbe: use phy_ethtool_{get|set}_link_ksettings 2016-06-28 09:12:35 -04:00
seeq treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
sfc sfc: avoid division by zero 2016-08-18 23:28:22 -07:00
sgi treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
silan
sis treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
smsc net: ethernet: smsc9420: use phy_ethtool_{get|set}_link_ksettings 2016-07-15 16:41:35 -07:00
stmicro ethernet: stmicro: stmmac: add missing of_node_put after calling of_parse_phandle 2016-08-01 21:43:49 -07:00
sun treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
synopsys dwc_eth_qos: Remove deprecated create_singlethread_workqueue 2016-07-17 22:27:39 -07:00
tehuti treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ti net: ethernet: ti: cpsw: add ethtool channels support 2016-08-23 00:13:11 -07:00
tile timers, driver/net/ethernet/tile: Initialize the egress timer as pinned 2016-07-07 10:25:14 +02:00
toshiba net: ethernet: tc35815: use phy_ethtool_{get|set}_link_ksettings 2016-07-15 16:41:33 -07:00
tundra net/ethernet: tundra: fix dump_eth_one warning in tsi108_eth 2016-08-08 13:08:21 -07:00
via treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
wiznet net: ethernet: wiznet: Remove create_workqueue 2016-06-02 12:15:17 -07:00
xilinx net: axienet: Fix return value check in axienet_probe() 2016-07-20 14:46:00 -07:00
xircom ethernet: xircom: fix spelling mistakes on "excessive collisions" 2016-06-27 04:19:14 -04:00
xscale net: ethernet: ixp4xx_eth: use phy_ethtool_{get|set}_link_ksettings 2016-07-04 15:59:52 -07:00
dnet.c net: ethernet: dnet: use phy_ethtool_{get|set}_link_ksettings 2016-06-28 05:10:26 -04:00
dnet.h net: ethernet: dnet: use phydev from struct net_device 2016-06-28 05:10:26 -04:00
ec_bhf.c
ethoc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
fealnx.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
jme.c
jme.h
Kconfig net: ena: Add a driver for Amazon Elastic Network Adapters (ENA) 2016-08-12 17:12:08 -07:00
korina.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
lantiq_etop.c net: ethernet: lantiq_etop: use phy_ethtool_{get|set}_link_ksettings 2016-07-04 15:59:51 -07:00
Makefile net: ena: Add a driver for Amazon Elastic Network Adapters (ENA) 2016-08-12 17:12:08 -07:00
netx-eth.c drivers: net: Don't print unpopulated net_device name 2016-05-17 12:30:19 -04:00