linux_dsm_epyc7002/drivers/net
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
..
appletalk
arcnet
bonding bonding: fix bond_get_stats() 2016-03-18 23:14:15 -04:00
caif
can can: rcar_can: Add r8a7795 support 2016-03-10 10:30:21 +01:00
cris
dsa net: dsa: mv88e6131: enable hardware bridging 2016-04-04 21:31:35 -04:00
ethernet mlxsw: spectrum: Initialize egress scheduling 2016-04-06 17:24:18 -04:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Fix the order of num_sc_offered decrement 2016-03-23 21:51:08 -04:00
ieee802154
ipvlan vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
irda irda: sh_irda: remove driver 2016-04-04 16:24:13 -04:00
phy net: phy: bcm7xxx: Add entries for Broadcom BCM7346 and BCM7362 2016-03-25 11:37:57 -04:00
plip
ppp ppp: take reference on channels netns 2016-03-23 14:35:31 -04:00
slip
team team: team should sync the port's uc/mc addrs when add a port 2016-03-30 17:06:58 -04:00
usb net: usb: cdc_ncm: adding Telit LE910 V2 mobile broadband card 2016-03-31 17:15:35 -04:00
vmxnet3 vmxnet3: fix lock imbalance in vmxnet3_tq_xmit() 2016-03-14 13:10:29 -04:00
wan farsync: fix off-by-one bug in fst_add_one 2016-03-14 13:09:49 -04:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
xen-netback xen-netback: reduce log spam 2016-03-13 22:08:01 -04:00
dummy.c
eql.c
geneve.c geneve: fix populating tclass in geneve_get_v6_dst 2016-03-20 13:44:34 -04:00
ifb.c
Kconfig macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
macvlan.c vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
macvtap.c macvtap: always pass ethernet header in linear 2016-03-11 14:45:21 -05:00
Makefile macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c rapidio/rionet: add mport removal handling 2016-03-22 15:36:02 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c sock: enable timestamping using control messages 2016-04-04 15:50:30 -04:00
veth.c veth: implement ndo_set_rx_headroom 2016-03-01 15:54:31 -05:00
virtio_net.c virtio/vhost: new features, performance improvements, cleanups 2016-03-20 13:28:18 -07:00
vrf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-08 12:34:12 -05:00
vxlan.c vxlan: implement GPE 2016-04-06 16:50:32 -04:00
xen-netfront.c