• Amritha Nambiar's avatar
    ixgbe: Match on multiple headers for cls_u32 offloads · 1cdaaf54
    Amritha Nambiar authored
    Adds support to set filters with multiple header fields (L3,L4)to match on.
    This is achieved in the following order:
    1. Create a leaf hash table for the next header.
    2. Create a link to the leaf hash table from the base hash table with
       matches on next header type and current header fields.
    3. Add filter in leaf hash table with match on next header fields and
       action.
    
    Verified with the following filters :
    
    Match TCP and DIP:
            handle 1: u32 divisor 1
            u32 ht 800: order 1 link 1: \
            offset at 0 mask 0f00 shift 6 plus 0 eat \
            match ip protocol 6 ff match ip dst 10.0.0.1/32
            match tcp src 28 ffff action drop
    
    Delete the filter:
    
    Match on DIP, SIP, UDP (SPort, DPort):
            handle 2: u32 divisor 1
            u32 ht 800: order 2 link 2: \
            offset at 0 mask 0f00 shift 6 plus 0 eat \
            match ip dst 15.0.0.2/32 match ip protocol 17 ff \
            match ip src 15.0.0.1/32
            match udp src 30 ffff match udp dst 32 ffff action drop
    Signed-off-by: default avatarAmritha Nambiar <amritha.nambiar@intel.com>
    Acked-by: default avatarSridhar Samudrala <sridhar.samudrala@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    1cdaaf54
ixgbe_model.h 3.39 KB