i40e: Add support setting TC max bandwidth rates
authorAmritha Nambiar <amritha.nambiar@intel.com>
Thu, 7 Sep 2017 11:00:32 +0000 (04:00 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 13 Oct 2017 21:16:53 +0000 (14:16 -0700)
commit2027d4deacb129579f022746830ea05b72fe114a
treed0f37bc9e5a1f17b511de6e61aca84d0a85eb51a
parent5ecae4120a6b50fb8a31d2f335eab390bcf5ad66
i40e: Add support setting TC max bandwidth rates

This patch enables setting up maximum Tx rates for the traffic
classes in i40e. The maximum rate is offloaded to the hardware through
the mqprio framework by specifying the mode option as 'channel' and
shaper option as 'bw_rlimit' and is configured for the VSI. Configuring
minimum Tx rate limit is not supported in the device. The minimum
usable value for Tx rate is 50Mbps.

Example:
# tc qdisc add dev eth0 root mqprio num_tc 2  map 0 0 0 0 1 1 1 1\
  queues 4@0 4@4 hw 1 mode channel shaper bw_rlimit\
  max_rate 4Gbit 5Gbit

To dump the bandwidth rates:
# tc qdisc show dev eth0

qdisc mqprio 804a: root  tc 2 map 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
             queues:(0:3) (4:7)
             mode:channel
             shaper:bw_rlimit   max_rate:4Gbit 5Gbit

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>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_main.c