net: cls_u32: Add support for skip-sw flag to tc u32 classifier.
authorSamudrala, Sridhar <sridhar.samudrala@intel.com>
Fri, 13 May 2016 00:08:23 +0000 (17:08 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 May 2016 17:30:57 +0000 (13:30 -0400)
commitd34e3e181395192d6d1f50dd97bd7854e04e33a4
tree79482667c26a1d1dcc54fc8147a27ddb92be5cea
parent760edee8b59ebf05bb268d0a6b568f76bb1bb599
net: cls_u32: Add support for skip-sw flag to tc u32 classifier.

On devices that support TC U32 offloads, this flag enables a filter to be
added only to HW. skip-sw and skip-hw are mutually exclusive flags. By
default without any flags, the filter is added to both HW and SW, but no
error checks are done in case of failure to add to HW. With skip-sw,
failure to add to HW is treated as an error.

Here is a sample script that adds 2 filters, one with skip-sw and the other
with skip-hw flag.

   # add ingress qdisc
   tc qdisc add dev p4p1 ingress

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

   # add u32 filter with skip-sw flag.
   tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
      handle 800:0:1 u32 ht 800: flowid 800:1 \
      skip-sw \
      match ip src 192.168.1.0/24 \
      action drop

   # add u32 filter with skip-hw flag.
   tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
      handle 800:0:2 u32 ht 800: flowid 800:2 \
      skip-hw \
      match ip src 192.168.2.0/24 \
      action drop

Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_cls.h
include/uapi/linux/pkt_cls.h
net/sched/cls_u32.c