• Vladimir Oltean's avatar
    net: dsa: report and change port dscp priority using dcbnl · 47d75f78
    Vladimir Oltean authored
    Similar to the port-based default priority, IEEE 802.1Q-2018 allows the
    Application Priority Table to define QoS classes (0 to 7) per IP DSCP
    value (0 to 63).
    
    In the absence of an app table entry for a packet with DSCP value X,
    QoS classification for that packet falls back to other methods (VLAN PCP
    or port-based default). The presence of an app table for DSCP value X
    with priority Y makes the hardware classify the packet to QoS class Y.
    
    As opposed to the default-prio where DSA exposes only a "set" in
    dsa_switch_ops (because the port-based default is the fallback, it
    always exists, either implicitly or explicitly), for DSCP priorities we
    expose an "add" and a "del". The addition of a DSCP entry means trusting
    that DSCP priority, the deletion means ignoring it.
    
    Drivers that already trust (at least some) DSCP values can describe
    their configuration in dsa_switch_ops :: port_get_dscp_prio(), which is
    called for each DSCP value from 0 to 63.
    
    Again, there can be more than one dcbnl app table entry for the same
    DSCP value, DSA chooses the one with the largest configured priority.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    47d75f78
dsa.h 41.4 KB