linux/drivers/net/ethernet
Maor Gottlieb 33cfaaa8f3 net/mlx5e: Split the main flow steering table
Currently, the main flow table is used for two purposes:
One is to do mac filtering and the other is to classify
the packet l3-l4 header in order to steer the packet to
the right RSS TIR.

This design is very complex, for each configured mac address we
have to add eleven rules (rule for each traffic type), the same if the
device is put to promiscuous/allmulti mode.
This scheme isn't scalable for future features like aRFS.

In order to simplify it, the main flow table is split to two flow
tables:
1. l2 table - filter the packet dmac address, if there is a match
we forward to the ttc flow table.

2. TTC (Traffic Type Classifier) table - classify the traffic
type of the packet and steer the packet to the right TIR.

In this new design, when new mac address is added, the driver adds
only one flow rule instead of eleven.

Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-29 16:29:11 -04:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-08 12:34:12 -05:00
8390 pcnet_cs: add new id 2016-02-16 16:06:13 -05:00
adaptec
adi
aeroflex
agere et131x: check return value of dma_alloc_coherent 2016-02-17 23:32:05 -05:00
allwinner
alteon
altera net: eth: altera: do not free array priv->mdio->irq 2016-03-06 22:59:18 -05:00
amd drivers: net: use NETDEV_TX_OK instead of NETDEV_TX_LOCKED 2016-04-26 15:53:05 -04:00
apm xgene: get_phy_device() doesn't return NULL anymore 2016-04-26 15:41:19 -04:00
apple
arc net: arc: trivial: cleanup the emac driver 2016-03-16 19:28:01 -04:00
atheros atle1: remove LLTX support and TX_UNLOCKED 2016-04-26 15:53:04 -04:00
aurora net: ethernet: nb8800: support fixed-link DT node 2016-02-24 11:32:11 -05:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-23 18:51:33 -04:00
brocade bna: fix list corruption 2016-03-01 15:19:43 -05:00
cadence net: macb: Fix simple typo 2016-04-04 16:16:36 -04:00
calxeda
cavium net: thunderx: Fix broken of_node_put() code. 2016-04-13 23:06:31 -04:00
chelsio cxgb4vf: Add support to enable logging of firmware mailbox commands for VF 2016-04-29 13:41:46 -04:00
cirrus
cisco enic: set netdev->vlan_features 2016-04-18 14:53:21 -04:00
davicom net: ethernet: davicom: fix devicetree irq resource 2016-02-21 22:40:49 -05:00
dec drivers: net: use NETDEV_TX_OK instead of NETDEV_TX_LOCKED 2016-04-26 15:53:05 -04:00
dlink
emulex benet: be_resume needs to protect be_open with rtnl_lock 2016-04-21 15:35:07 -04:00
ezchip net: ezchip: adapt driver to little endian architecture 2016-03-03 17:20:08 -05:00
faraday
freescale fec: move to new ethtool api {get|set}_link_ksettings 2016-04-18 14:45:09 -04:00
fujitsu fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address 2016-02-21 22:08:43 -05:00
hisilicon net: hns: change port-id property to reg property in dsaf port node 2016-04-29 13:39:03 -04:00
hp net: hp100: remove unnecessary #ifdefs 2016-01-29 20:33:38 -08:00
i825xx
ibm ibmvnic: Enable use of multiple tx/rx scrqs 2016-04-09 00:02:41 -04:00
intel i40evf: Add driver support for promiscuous mode 2016-04-27 13:06:01 -07:00
marvell net: mvneta: fix changing MTU when using per-cpu processing 2016-04-01 15:16:37 -04:00
mediatek net: mediatek: do not set the QID field in the TX DMA descriptors 2016-04-12 22:41:33 -04:00
mellanox net/mlx5e: Split the main flow steering table 2016-04-29 16:29:11 -04:00
micrel ethernet: micrel: fix some error codes 2016-03-18 19:39:54 -04:00
microchip net: ethernet: enc28j60: add device tree support 2016-04-29 16:23:02 -04:00
moxa net: moxa: fix an error code 2016-03-03 17:17:14 -05:00
myricom
natsemi
neterion drivers: net: remove NETDEV_TX_LOCKED 2016-04-26 15:53:05 -04:00
netronome nfp: add async reconfiguration mechanism 2016-04-16 22:34:40 -04:00
nuvoton treewide: Fix typo in printk 2016-02-15 11:18:22 +01:00
nvidia forcedeth: Use setup_timer() 2016-02-25 16:51:05 -05:00
nxp
oki-semi pch_gbe: replace private tx ring lock with common netif_tx_lock 2016-04-28 17:19:58 -04:00
packetengines
pasemi pasemi_mac: Replace LRO with GRO 2016-02-17 16:15:45 -05:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-27 15:43:10 -04:00
qualcomm net: qca_spi: clear IFF_TX_SKB_SHARING 2016-02-25 16:12:15 -05:00
rdc
realtek r8169:Remove unnecessary phy reset for pcie nic when setting link spped. 2016-03-13 22:32:44 -04:00
renesas sh_eth: rename ARSTR register bit 2016-04-26 16:07:20 -04:00
rocker rocker: move ageing_time from struct rocker to struct ofdpa 2016-03-12 20:11:13 -05:00
samsung net: sxgbe: fix error paths in sxgbe_platform_probe() 2016-03-27 22:39:22 -04:00
seeq
sfc net: relax setup_tc ndo op handle restriction 2016-03-03 16:25:15 -05:00
sgi
silan
sis
smsc net: smc911x: avoid unused variable warnings 2016-03-21 11:26:12 -04:00
stmicro net: ethernet: stmmac: update MDIO support for GMAC4 2016-04-29 15:14:24 -04:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
synopsys dwc_eth_qos: do phy_start before resetting hardware 2016-03-02 14:57:15 -05:00
tehuti drivers: net: remove NETDEV_TX_LOCKED 2016-04-26 15:53:05 -04:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-23 18:51:33 -04:00
tile
toshiba PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
tundra net: tsi108: use NULL for pointer-typed argument 2016-04-26 01:10:26 -04:00
via
wiznet net: w5100: support W5500 2016-04-27 21:55:45 -04:00
xilinx
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c net/ethoc: do not free array priv->mdio->irq 2016-03-06 22:58:51 -05:00
fealnx.c
jme.c drivers/net/ethernet/jme.c: Deinline jme_reset_mac_processor, save 2816 bytes 2016-04-13 22:57:00 -04:00
jme.h
Kconfig netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
korina.c
lantiq_etop.c
Makefile netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
netx-eth.c