linux-pinenote/drivers/net/ethernet/intel
John Fastabend b82b17d929 net: ixgbe: add support for tc_u32 offload
This adds initial support for offloading the u32 tc classifier. This
initial implementation only implements a few base matches and actions
to illustrate the use of the infrastructure patches.

However it is an interesting subset because it handles the u32 next
hdr logic to correctly map tcp packets from ip headers using the ihl
and protocol fields. After this is accepted we can extend the match
and action fields easily by updating the model header file.

Also only the drop action is supported initially.

Here is a short test script,

 #tc qdisc add dev eth4 ingress
 #tc filter add dev eth4 parent ffff: protocol ip \
	u32 ht 800: order 1 \
	match ip dst 15.0.0.1/32 match ip src 15.0.0.2/32 action drop

<-- hardware has dst/src ip match rule installed -->

 #tc filter del dev eth4 parent ffff: prio 49152
 #tc filter add dev eth4 parent ffff: protocol ip prio 99 \
	handle 1: u32 divisor 1
 #tc filter add dev eth4 protocol ip parent ffff: prio 99 \
	u32 ht 800: order 1 link 1: \
	offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
 #tc filter add dev eth4 parent ffff: protocol ip \
	u32 ht 1: order 3 match tcp src 23 ffff action drop

<-- hardware has tcp src port rule installed -->

 #tc qdisc del dev eth4 parent ffff:

<-- hardware cleaned up -->

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-17 09:47:36 -05:00
..
e1000 e1000: Elementary checkpatch warnings and checks removed 2015-12-12 23:13:52 -08:00
e1000e e1000e: Fix msi-x interrupt automask 2015-12-14 20:19:47 -08:00
fm10k net: rework setup_tc ndo op to consume general tc operand 2016-02-17 09:47:35 -05:00
i40e net: rework setup_tc ndo op to consume general tc operand 2016-02-17 09:47:35 -05:00
i40evf i40e: AQ Add external power class to get link status 2016-02-03 22:30:38 -08:00
igb igb: Add workaround for VLAN tag stripping on 82576 2016-02-15 16:52:33 -08:00
igbvf igb/igbvf: don't give up 2016-02-15 16:17:57 -08:00
ixgb drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ixgbe net: ixgbe: add support for tc_u32 offload 2016-02-17 09:47:36 -05:00
ixgbevf ixgbevf: minor cleanups for ixgbevf_set_itr() 2015-12-29 19:16:05 -08:00
e100.c e100: Release skb when DMA mapping is failed in e100_xmit_prepare 2015-08-18 14:06:05 -07:00
Kconfig i40e: Kernel dependency update for i40e to support geneve offload 2015-12-16 10:58:56 -05:00
Makefile fm10k: Add skeletal frame for Intel(R) FM10000 Ethernet Switch Host Interface Driver 2014-09-23 03:59:13 -07:00