diff options
author | Henry Tieman <henry.w.tieman@intel.com> | 2020-05-11 18:01:44 -0700 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2020-05-22 21:44:48 -0700 |
commit | 2c57ffcb199004825184f96081fbf036d3b2426a (patch) | |
tree | 5d8d5bf9837f2d3c88f3dd1c254206c879a3e0a1 /drivers/net/ethernet/intel/ice/ice_fdir.h | |
parent | 165d80d6adab51b6a2f9c40ad0c8d3dec18d7bef (diff) |
ice: Enable flex-bytes support
Flex-bytes allows for packet matching based on an offset and value. This
is supported via the ethtool user-def option. It is specified by providing
an offset followed by a 2 byte match value. Offset is measured from the
start of the MAC address.
The following restrictions apply to flex-bytes. The specified offset must
be an even number and be smaller than 0x1fe.
Example usage:
ethtool -N eth0 flow-type tcp4 src-ip 192.168.0.55 dst-ip 172.16.0.55 \
src-port 12 dst-port 13 user-def 0x10ffff action 32
Signed-off-by: Henry Tieman <henry.w.tieman@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_fdir.h')
-rw-r--r-- | drivers/net/ethernet/intel/ice/ice_fdir.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_fdir.h b/drivers/net/ethernet/intel/ice/ice_fdir.h index 977dcbc1400d..1c587766daab 100644 --- a/drivers/net/ethernet/intel/ice/ice_fdir.h +++ b/drivers/net/ethernet/intel/ice/ice_fdir.h @@ -68,6 +68,14 @@ struct ice_fd_fltr_desc_ctx { u8 fdid_mdid; }; +#define ICE_FLTR_PRGM_FLEX_WORD_SIZE sizeof(__be16) + +struct ice_rx_flow_userdef { + u16 flex_word; + u16 flex_offset; + u16 flex_fltr; +}; + struct ice_fdir_v4 { __be32 dst_ip; __be32 src_ip; @@ -112,6 +120,11 @@ struct ice_fdir_fltr { struct ice_fdir_extra ext_data; struct ice_fdir_extra ext_mask; + /* flex byte filter data */ + __be16 flex_word; + u16 flex_offset; + u16 flex_fltr; + /* filter control */ u16 q_index; u16 dest_vsi; |