• Petr Machata's avatar
    mlxsw: spectrum: Configure MC-aware mode on mlxsw ports · 7b819530
    Petr Machata authored
    In order to give unicast traffic precedence over BUM traffic, configure
    multicast-aware mode on all ports.
    
    Under multicast-aware regime, when assigning traffic class to a packet,
    the switch doesn't merely take the value prescribed by the QTCT
    register. For BUM traffic, it instead assigns that value plus 8.
    
    ETS elements for TCs 8..15 thus need to be configured as well. Extend
    mlxsw_sp_port_ets_init() so that it maps each of them to the same
    subgroup as their corresponding TC from the range 0..7, such that TCs X
    and X+8 map to the same subgroup.
    
    The existing code configures TCs with strict priority. So far this was
    immaterial, because each TC had its own subgroup. Now that two TCs share
    a subgroup it becomes important. TCs are prioritized in order of 7, 6,
    ..., 0, 15, 14, ..., 8: the higher TCs used for BUM traffic end up being
    deprioritized. Since that's what's needed, keep that configuration as it
    is, and configure the new TCs likewise.
    
    Finally in mlxsw_sp_port_create(), invoke configuration of QTCTM to
    enable MC-aware mode on each port.
    Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7b819530
spectrum.c 143 KB