linux/drivers/net/ethernet
Amritha Nambiar a9ce82f744 i40e: Enable 'channel' mode in mqprio for TC configs
The i40e driver is modified to enable the new mqprio hardware
offload mode and factor the TCs and queue configuration by
creating channel VSIs. In this mode, the priority to traffic
class mapping and the user specified queue ranges are used
to configure the traffic classes by setting the mode option to
'channel'.

Example:
  map 0 0 0 0 1 2 2 3 queues 2@0 2@2 1@4 1@5\
  hw 1 mode channel

qdisc mqprio 8038: root  tc 4 map 0 0 0 0 1 2 2 3 0 0 0 0 0 0 0 0
             queues:(0:1) (2:3) (4:4) (5:5)
             mode:channel
             shaper:dcb

The HW channels created are removed and all the queue configuration
is set to default when the qdisc is detached from the root of the
device.

This patch also disables setting up channels via ethtool (ethtool -L)
when the TCs are configured using mqprio scheduler.

The patch also limits setting ethtool Rx flow hash indirection
(ethtool -X eth0 equal N) to max queues configured via mqprio.
The Rx flow hash indirection input through ethtool should be
validated so that it is within in the queue range configured via
tc/mqprio. The bound checking is achieved by reporting the current
rss size to the kernel when queues are configured via mqprio.

Example:
  map 0 0 0 1 0 2 3 0 queues 2@0 4@2 8@6 11@14\
  hw 1 mode channel

Cannot set RX flow hash configuration: Invalid argument

Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-10-13 14:06:37 -07:00
..
3com
8390
adaptec
adi drivers: net: adi: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
aeroflex
agere drivers: net: et131x: use setup_timer() helper. 2017-09-21 11:44:39 -07:00
alacritech
allwinner
alteon
altera
amazon net: ena: Remove redundant unlikely() 2017-09-26 09:54:06 -07:00
amd drivers: net: amd: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
apm drivers: net: xgene: Remove return statement from void function 2017-09-05 14:58:25 -07:00
apple
aquantia atlantic: fix iommu errors 2017-09-26 13:44:31 -07:00
arc
atheros
aurora
broadcom net: bgmac: enable master mode for BCM54210E and B50212E PHYs 2017-10-12 22:59:38 -07:00
brocade
cadence
calxeda
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-09 20:11:09 -07:00
chelsio cxgb4: add new T5 pci device id's 2017-10-10 12:51:07 -07:00
cirrus
cisco drivers: net: enic: use setup_timer() helper. 2017-09-21 11:44:44 -07:00
davicom davicom: Display proper debug level up to 6 2017-09-08 20:53:10 -07:00
dec drivers: net: uli526x: use setup_timer() helper. 2017-09-21 11:44:44 -07:00
dlink drivers: net: sundance: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
emulex be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx 2017-09-13 09:28:18 -07:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-23 10:16:53 -07:00
fujitsu
hisilicon net: hns3: make local functions static 2017-10-11 15:21:28 -07:00
hp
huawei net-next/hinic: Fix a case of Tx Queue is Stopped forever 2017-09-28 10:26:50 -07:00
i825xx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
ibm ibmvnic: Set state UP 2017-10-01 04:02:35 +01:00
intel i40e: Enable 'channel' mode in mqprio for TC configs 2017-10-13 14:06:37 -07:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-05 18:19:22 -07:00
mediatek
mellanox net/mlx4_en: XDP_TX, assign constant values of TX descs on ring creaion 2017-10-11 20:21:23 -07:00
micrel
microchip
moxa
myricom
natsemi drivers: net: natsemi: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
neterion vxge: Clean up unused variables in vxge-traffic 2017-10-12 12:24:53 -07:00
netronome nfp: bpf: pass dst register to ld_field instruction 2017-10-09 09:51:03 -07:00
nuvoton w90p910_ether: include linux/interrupt.h 2017-09-12 20:59:19 -07:00
nvidia forcedeth: optimize the xmit/rx with unlikely 2017-09-23 20:04:23 -07:00
nxp
oki-semi
packetengines drivers: net: packetengines: use setup_timer() helper. 2017-09-21 11:44:44 -07:00
pasemi
qlogic qed: Add iWARP support for fpdu spanned over more than two tcp packets 2017-10-09 10:21:27 -07:00
qualcomm Revert "net: qcom/emac: enforce DMA address restrictions" 2017-10-12 10:50:10 -07:00
rdc
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-23 10:16:53 -07:00
renesas ravb: Consolidate clock handling 2017-10-12 23:00:50 -07:00
rocker rocker: fix rocker_tlv_put_* functions for KASAN 2017-09-25 20:18:27 -07:00
samsung
seeq
sfc
sgi
silan
sis drivers: net: sis900: use setup_timer() helper. 2017-09-21 11:44:42 -07:00
smsc drivers: net: smsc: use setup_timer() helper. 2017-09-21 11:44:41 -07:00
stmicro net: ethernet: stmmac: Clean up dead code 2017-10-08 21:19:07 -07:00
sun ldmvsw: Remove redundant unlikely() 2017-09-26 10:15:44 -07:00
synopsys
tehuti
ti net: ti: netcp: use setup_timer 2017-09-21 15:48:46 -07:00
tile
toshiba drivers: net: spider_net: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
tundra
via dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
wiznet
xilinx
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c drivers: net: fealnx: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
jme.c
jme.h
Kconfig
korina.c net: korina: bump version 2017-09-18 16:50:07 -07:00
lantiq_etop.c
Makefile
netx-eth.c