linux/drivers/net/ethernet/mellanox/mlxsw
Ido Schimmel 90183b980d mlxsw: spectrum: Initialize egress scheduling
Before introducing support for DCB ops we should first make sure we
initialize the relevant parts in the device correctly. Specifically, the
egress scheduling.

The device supports a superset of the 802.1Qaz standard with 4 hierarchy
levels that can be linked to each other in multiple ways and with
different transmission selection algorithms (TSA) employed between them.

However, since we only intend to support the 802.1Qaz standard we
flatten the hierarchies and let the user configure via DCB ops the TSA
and max rate shaper at the subgroup hierarchy (see figure below) and the
mapping between switch priority to traffic class. By default, all switch
priorities are mapped to traffic class 0, strict priority is employed
and max shaper is disabled.

Default configuration:

         switch priority 0      ...         switch priority 7
                 +                                  +
                 |                                  |
                 +----------------------------------+
                 |
              +--v--+                          +-----+
Traffic Class |     |                          |     |
  Hierarchy   | TC0 |           ...            | TC7 |
              |     |                          |     |
              +--+--+                          +--+--+
                 |                                |
              +--v--+                          +--v--+
  Subgroup    | SG0 |                          | SG7 |
  Hierarchy   |     |                          |     |
              +-----+                          +-----+
              | TSA |                          | TSA |
              +-----+           ...            +-----+
              | MAX |                          | MAX |
              +--+--+                          +--+--+
                 |                                |
                 +---------------+----------------+
                                 |
                              +--v--+
                      Group   |     |
                    Hierarchy | GR0 |
                              |     |
                              +--+--+
                                 |
                              +--v--+
                      Port    |     |
                    Hierarchy | PR0 |
                              |     |
                              +-----+

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-06 17:24:18 -04:00
..
cmd.h mlxsw: cmd: Introduce FID-offset flooding tables 2015-10-16 07:15:10 -07:00
core_hwmon.c mlxsw: core: remove an unnecessary condition 2016-01-06 15:07:47 -05:00
core.c mlxsw: core: Add devlink port splitter callbacks 2016-03-01 16:07:30 -05:00
core.h mlxsw: core: Add devlink port splitter callbacks 2016-03-01 16:07:30 -05:00
emad.h mlxsw: Add interface to access registers and process events 2015-07-30 00:05:00 -07:00
item.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-10-20 06:08:27 -07:00
Kconfig net: mellanox: add DEVLINK dependencies 2016-03-03 17:08:59 -05:00
Makefile mlxsw: core: Implement temperature hwmon interface 2015-11-30 15:05:40 -05:00
pci.c mlxsw: pci: Implement reset done check 2016-03-13 22:30:01 -04:00
pci.h mlxsw: pci: Implement reset done check 2016-03-13 22:30:01 -04:00
port.h mlxsw: spectrum: Introduce port splitting 2016-03-01 16:07:31 -05:00
reg.h mlxsw: reg: Add QoS Switch Traffic Class Table register 2016-04-06 17:24:18 -04:00
spectrum_buffers.c mlxsw: spectrum: Set port's shared buffer size to 0 2016-04-06 17:24:17 -04:00
spectrum_switchdev.c mlxsw: spectrum: Check requested ageing time is valid 2016-03-11 14:47:58 -05:00
spectrum.c mlxsw: spectrum: Initialize egress scheduling 2016-04-06 17:24:18 -04:00
spectrum.h mlxsw: spectrum: Add bytes to cells helper 2016-04-06 17:24:16 -04:00
switchx2.c mlxsw: Implement devlink interface 2016-03-01 16:07:30 -05:00
trap.h
txheader.h mlxsw: spectrum: Add initial support for Spectrum ASIC 2015-10-16 07:15:23 -07:00