]> git.karo-electronics.de Git - linux-beck.git/commit
net/mlx5: Introduce TSAR manipulation firmware commands
authorMohamad Haj Yahia <mohamad@mellanox.com>
Thu, 11 Aug 2016 08:21:39 +0000 (11:21 +0300)
committerLeon Romanovsky <leon@kernel.org>
Sun, 30 Oct 2016 13:43:12 +0000 (15:43 +0200)
commit813f854053c26204e2723c498def4c7870dcc7f4
treed7f151a2c0e0ea6a6b5075d966a48a99115856be
parent86490d9a5969eaa8217a9329a6f0875cd0b041bc
net/mlx5: Introduce TSAR manipulation firmware commands

TSAR (stands for Transmit Scheduling ARbiter) is a hardware component
that is responsible for selecting the next entity to serve on the
transmit path.
The arbitration defines the QoS policy between the agents connected to
the TSAR.
The TSAR is a consist two main features:
1) BW Allocation between agents:
The TSAR implements a defecit weighted round robin between the agents.
Each agent attached to the TSAR is assigned with a weight and it is
awarded transmission tokens according to this weight.
2) Rate limer per agent:
Each agent attached to the TSAR is (optionally) assigned with a rate
limit.
TSAR will not allow scheduling for an agent exceeding its defined rate
limit.

In this patch we implement the API of manipulating the TSAR.

Signed-off-by: Mohamad Haj Yahia <mohamad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
drivers/net/ethernet/mellanox/mlx5/core/rl.c
include/linux/mlx5/mlx5_ifc.h