OpenCloudOS-Kernel/drivers/net/ethernet/intel/igb
Jesus Sanchez-Palencia 3048cf84d1 igb: Add support for ETF offload
Implement HW offload support for SO_TXTIME through igb's Launchtime
feature. This is done by extending igb_setup_tc() so it supports
TC_SETUP_QDISC_ETF and configuring i210 so time based transmit
arbitration is enabled.

The FQTSS transmission mode added before is extended so strict
priority (SP) queues wait for stream reservation (SR) ones.
igb_config_tx_modes() is extended so it can support enabling/disabling
Launchtime following the previous approach used for the credit-based
shaper (CBS).

As the previous flow, FQTSS transmission mode is enabled automatically
by the driver once Launchtime (or CBS, as before) is enabled.
Similarly, it's automatically disabled when the feature is disabled
for the last queue that had it setup on.

The driver just consumes the transmit times from the skbuffs directly,
so no special handling is done in case an 'invalid' time is provided.
We assume this has been handled by the ETF qdisc already.

Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-04 22:30:28 +09:00
..
Makefile net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_82575.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_82575.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_defines.h igb: Add support for ETF offload 2018-07-04 22:30:28 +09:00
e1000_hw.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_i210.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_i210.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_mac.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_mac.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_mbx.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_mbx.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_nvm.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_nvm.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_phy.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_phy.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000_regs.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
igb.h igb: Add support for ETF offload 2018-07-04 22:30:28 +09:00
igb_ethtool.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
igb_hwmon.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
igb_main.c igb: Add support for ETF offload 2018-07-04 22:30:28 +09:00
igb_ptp.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00