mirror_ubuntu-kernels/drivers/net/ethernet/intel
Jacob Keller 0e588de17f i40e: implement support for flexible word payload
Add support for flexible payloads passed via ethtool user-def field.
This support is somewhat limited due to hardware design. The input set
can only be programmed once per filter type, and the flexible offset is
part of this filter input set. This means that the user cannot program
both a regular and a flexible filter at the same time for a given flow
type. Additionally, the user may not program two flexible filters of the
same flow type with different offsets, although they are allowed to
configure different values at that offset location.

We support a single flexible word (2byte) value per protocol type, and
we handle the FLX_PIT register using a list of flexible entries so that
each flow type may be configured separately.

Due to hardware implementation, the flexible data is offset from the
start of the packet payload, and thus may not be in part of the header
data. For this reason, the offset provided by the user defined data is
interpreted as a byte offset from the start of the matching payload.
Previous implementations have tried to represent the offset as from the
start of the frame, but this is not feasible because header sizes may
change due to options.

Change-Id: 36ed27995e97de63f9aea5ade5778ff038d6f811
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>
2017-03-23 21:13:33 -07:00
..
e1000 e1000: use new API ethtool_{get|set}_link_ksettings 2017-03-21 15:27:58 -07:00
e1000e e1000e: use new API ethtool_{get|set}_link_ksettings 2017-03-21 15:31:30 -07:00
fm10k mqprio: Modify mqprio to pass user parameters via ndo_setup_tc. 2017-03-15 15:20:27 -07:00
i40e i40e: implement support for flexible word payload 2017-03-23 21:13:33 -07:00
i40evf i40evf: use new api ethtool_{get|set}_link_ksettings 2017-03-20 16:43:30 -07:00
igb igb: use new API ethtool_{get|set}_link_ksettings 2017-03-21 15:42:19 -07:00
igbvf igbvf: use new API ethtool_{get|set}_link_ksettings 2017-03-21 15:51:39 -07:00
ixgb ixgb: use new API ethtool_{get|set}_link_ksettings 2017-03-21 15:53:19 -07:00
ixgbe igb/ixgbe: Fix typo in igb_build_skb and/or ixgbe_build_skb code comment 2017-03-17 12:55:55 -07:00
ixgbevf ixgbevf: get rid of custom busy polling code 2017-02-03 17:17:53 -05:00
e100.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
Kconfig ptp_clock: Allow for it to be optional 2016-11-16 09:26:34 +01:00
Makefile fm10k: Add skeletal frame for Intel(R) FM10000 Ethernet Switch Host Interface Driver 2014-09-23 03:59:13 -07:00