ixgbe: Fix deleting link filters for cls_u32 offloads
authorAmritha Nambiar <amritha.nambiar@intel.com>
Sat, 7 May 2016 02:09:51 +0000 (19:09 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 29 Jun 2016 17:05:24 +0000 (10:05 -0700)
commit1ecedc926be12a91271e41913ebeba8cf32e9a6c
treec60995b4f0b9faed57b949356bb09a8ea33a511e
parent3d05b15b03daa4e8c350a97d0d83d2c2abc8b8ef
ixgbe: Fix deleting link filters for cls_u32 offloads

On deleting filters which are links to a child hash table, the filters
in the child hash table must be cleared from the hardware if there
is no link between the parent and child hash table.

Verified with the following filters:

Create a child hash table:
handle 1: u32 divisor 1

Link to the child hash table from parent hash table:
handle 800:0:10 u32 ht 800: link 1: \
offset at 0 mask 0f00 shift 6 plus 0 eat \
match ip protocol 6 ff match ip dst 15.0.0.1/32

Add filters into child hash table:
handle 1:0:2 u32 ht 1: \
match tcp src 22 ffff action drop
        handle 1:0:3 u32 ht 1: \
        match tcp src 33 ffff action drop

Delete link filter from parent hash table:
handle 800:0:10 u32

Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
Acked-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>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_model.h