• Vladimir Oltean's avatar
    net: mscc: ocelot: minimize definitions for stats · b69cf1c6
    Vladimir Oltean authored
    The current definition of struct ocelot_stat_layout is long-winded (4
    lines per entry, and we have hundreds of entries), so we could make an
    effort to use the C preprocessor and reduce the line count.
    
    Create an implicit correspondence between enum ocelot_reg, which tells
    us the register address (SYS_COUNT_RX_OCTETS etc) and enum ocelot_stat
    which allows us to index the ocelot->stats array (OCELOT_STAT_RX_OCTETS
    etc), and don't require us to specify both when we define what stats
    each switch family has.
    
    Create an OCELOT_STAT() macro that pairs only an enum ocelot_stat to an
    enum ocelot_reg, and an OCELOT_STAT_ETHTOOL() macro which also contains
    a name exported to the unstructured ethtool -S stringset API. For now,
    we define all counters as having the OCELOT_STAT_ETHTOOL() kind, but we
    will add more counters in the future which are not exported to the
    unstructured ethtool -S.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b69cf1c6
ocelot.h 36.7 KB