i40e: add parsing of flexible filter fields from userdef
Add code to parse the user-def field into a data structure format. This code is intended to allow future extensions of the user-def field by keeping all code that actually reads and writes the field into a single location. This ensures that we do not litter the driver with references to the user-def field and minimizes the amount of bitwise operations we need to do on the data. Add code which parses the lower 32bits into a flexible word and its offset. This will be used in a future patch to enable flexible filters which can match on some arbitrary data in the packet payload. For now, we just return -EOPNOTSUPP when this is used. Add code to fill in the user-def field when reporting the filter back, even though we don't actually implement any user-def fields yet. Additionally, ensure that we mask the extended FLOW_EXT bit from the flow_type now that we will be accepting filters which have the FLOW_EXT bit set (and thus make use of the user-def field). Change-Id: I238845035c179380a347baa8db8223304f5f6dd7 Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
43b15697a3
commit
e793095e8a
@@ -202,6 +202,15 @@ enum i40e_fd_stat_idx {
|
||||
#define I40E_FD_ATR_TUNNEL_STAT_IDX(pf_id) \
|
||||
(I40E_FD_STAT_PF_IDX(pf_id) + I40E_FD_STAT_ATR_TUNNEL)
|
||||
|
||||
/* The following structure contains the data parsed from the user-defined
|
||||
* field of the ethtool_rx_flow_spec structure.
|
||||
*/
|
||||
struct i40e_rx_flow_userdef {
|
||||
bool flex_filter;
|
||||
u16 flex_word;
|
||||
u16 flex_offset;
|
||||
};
|
||||
|
||||
struct i40e_fdir_filter {
|
||||
struct hlist_node fdir_node;
|
||||
/* filter ipnut set */
|
||||
|
Reference in New Issue
Block a user