linux/drivers/net/ethernet/intel
Avinash Dayanand c27eac4816 i40e: Enable ADq and create queue channel/s on VF
This patch enables ADq and creates queue channels on a VF. An ADq
enabled VF can have up to 4 VSIs and each one of them represents
a traffic class and this is termed as a queue channel. Each of these
VSIs can have up to 4 queues. This patch services the request for
enabling ADq and adds queue channel based on the TC mqprio info
provided by the user in the VF.

Initially a check is made to see if spoof check is OFF, if not ADq
will not be enabled. PF notifies VF for a reset in order to complete
the creation of ADq resources i.e. creation of additional VSIs and
allocation of queues as per TC information, all in the reset path.

Steps:
======
1. Turn off the spoof check
2. Enable ADq using tc mqprio command with or without rate limit.
3. Pass traffic.

Example:
========
% ip link set dev eth0 vf 0 spoofchk off
% tc qdisc add dev $iface root mqprio num_tc 4 map\
	0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 queues\
	4@0 4@4 4@8 4@8 hw 1 mode channel

Expected results:
=================
1. Total number of queues for the VF should be sum of queues of all TCs.
2. Traffic flow should be normal without errors.

Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-02-14 09:43:22 -08:00
..
e1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
e1000e e1000e: Alert the user that C-states will be disabled by enabling jumbo frames 2018-01-24 12:27:48 -08:00
fm10k fm10k: clarify action when updating the VLAN table 2018-01-24 14:23:27 -08:00
i40e i40e: Enable ADq and create queue channel/s on VF 2018-02-14 09:43:22 -08:00
i40evf i40evf: add ndo_setup_tc callback to i40evf 2018-02-14 09:43:22 -08:00
igb igb: Clear TXSTMP when ptp_tx_work() is timeout 2018-01-24 12:27:48 -08:00
igbvf igbvf: Use smp_rmb rather than read_barrier_depends 2017-11-21 23:46:04 -08:00
ixgb ethernet/intel: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
ixgbe ixgbe: don't set RXDCTL.RLPML for 82599 2018-01-26 10:25:35 -08:00
ixgbevf ixgbevf: use ARRAY_SIZE for various array sizing calculations 2018-01-26 10:25:15 -08:00
e100.c net: e100: Replace PCI pool old API 2018-01-02 16:14:17 -06:00
Kconfig i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00