linux/drivers/net/ethernet/intel/ixgbe
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
..
ixgbe_82598.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_82599.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_common.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_common.h ixgbe: consolidate the configuration of spoof checking 2016-04-24 17:54:22 -07:00
ixgbe_dcb_82598.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_dcb_82598.h ixgbe: update date to 2013 2013-02-05 01:44:13 -08:00
ixgbe_dcb_82599.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_dcb_82599.h ixgbe: clean up checkpatch warnings about CODE_INDENT and LEADING_SPACE 2014-05-23 05:24:04 -07:00
ixgbe_dcb_nl.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_dcb.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_dcb.h IXGBE: Set the SW prio_tc values at initialization to the HW setting. 2013-05-21 03:14:21 -07:00
ixgbe_debugfs.c ixgbe: don't check NULL for debugfs_remove_recursive 2014-05-23 05:28:24 -07:00
ixgbe_ethtool.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_fcoe.c ixgbe: Fix MDD events generated when FCoE+SRIOV are enabled 2016-01-08 04:15:00 -08:00
ixgbe_fcoe.h ixgbe: adds x550 specific FCoE offloads 2015-04-10 00:15:55 -07:00
ixgbe_lib.c ixgbe: Add support for x550em_a 10G MAC type 2016-04-07 16:15:35 -07:00
ixgbe_main.c ixgbe: Add support for redirect action to cls_u32 offloads 2016-05-04 00:24:28 -07:00
ixgbe_mbx.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_mbx.h ixgbe: Make all unchanging ops structures const 2016-04-04 13:36:58 -07:00
ixgbe_model.h ixgbe: Extend cls_u32 offload to support UDP headers 2016-04-04 17:44:56 -07:00
ixgbe_phy.c ixgbe: Always turn PHY power on when requested 2015-12-03 02:45:13 -08:00
ixgbe_phy.h ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_ptp.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_sriov.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_sriov.h ixgbe: add a callback to set the maximum transmit bitrate 2016-04-04 17:44:46 -07:00
ixgbe_sysfs.c ixgbe: add Linux NICS mailing list to contact info 2014-03-12 19:05:30 -07:00
ixgbe_type.h ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_x540.c ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
ixgbe_x540.h ixgbe: Place SWFW semaphore in known valid state at probe 2016-04-04 17:44:50 -07:00
ixgbe_x550.c ixgbe: use msleep for long delays 2016-04-25 04:55:20 -07:00
ixgbe.h ixgbe: use BIT() macro 2016-04-25 04:15:11 -07:00
Makefile ixgbe: Add X550 support function pointers 2014-12-05 09:13:07 -08:00