linux/drivers/net/ethernet
Sridhar Samudrala 947f8a4552 ixgbe: Add support for redirect action to cls_u32 offloads
This patch enables 'redirect' to a SRIOV VF or a offloaded macvlan
device queue via tc 'mirred' action.

Verified with the following script that creates SRIOV VFs,  offloaded
macvlan and adds tc u32 filters with redirect action to the associated
netdevs.

 # add ingress qdisc.
 tc qdisc add dev p4p1 ingress

 # enable hw tc offload.
 ethtool -K p4p1 hw-tc-offload on

 # create 4 sriov VFs and bring up the first one.
 echo 4 > /sys/class/net/p4p1/device/sriov_numvfs
 sleep 1
 ip link set p4p1 up
 ip link set p4p1_0 up

 # create a offloaded macvlan device and bring it up.
 ethtool -K p4p1 l2-fwd-offload on
 ip link add link p4p1 name mvlan_1 type macvlan
 ip link set mvlan_1 up

 # add u32 filter with action to redirect to VF netdev
 tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
    handle 800:0:1 u32 ht 800: \
    match ip src 192.168.1.3/32 \
    action mirred egress redirect dev p4p1_0

 # add u32 filter with action to redirect to macvlan netdev
 tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
    handle 800:0:2 u32 ht 800: \
    match ip src 192.168.2.3/32 \
    action mirred egress redirect dev mvlan_1

Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-05-04 00:24:28 -07: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 drivers: net: xgene: constify xgene_cle_ops structure 2016-05-03 13:03:05 -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 net: ethernet: fec_mpc52xx: move to new ethtool api {get|set}_link_ksettings 2016-05-03 13:03:53 -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
i825xx
ibm ibmvnic: Enable use of multiple tx/rx scrqs 2016-04-09 00:02:41 -04:00
intel ixgbe: Add support for redirect action to cls_u32 offloads 2016-05-04 00:24:28 -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: Enabling aRFS mechanism 2016-04-29 16:29:12 -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 qed: Apply tunnel configurations after PF start 2016-05-03 15:48:32 -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 ravb: Remove rx buffer ALIGN 2016-05-03 12:45:13 -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 stmmac: dwmac-socfpga: kill init() and rename setup() to set_phy_mode() 2016-05-03 15:22:20 -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
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