lkml.org 
[lkml]   [2021]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next v8 1/2] net: dsa: add optional stats64 support
    Date
    Allow DSA drivers to export stats64

    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
    ---
    include/net/dsa.h | 4 +++-
    net/dsa/slave.c | 14 +++++++++++++-
    2 files changed, 16 insertions(+), 2 deletions(-)

    diff --git a/include/net/dsa.h b/include/net/dsa.h
    index 4e60d2610f20..c50abb295fb6 100644
    --- a/include/net/dsa.h
    +++ b/include/net/dsa.h
    @@ -477,7 +477,7 @@ struct dsa_switch_ops {
    void (*phylink_fixed_state)(struct dsa_switch *ds, int port,
    struct phylink_link_state *state);
    /*
    - * ethtool hardware statistics.
    + * Port statistics counters.
    */
    void (*get_strings)(struct dsa_switch *ds, int port,
    u32 stringset, uint8_t *data);
    @@ -486,6 +486,8 @@ struct dsa_switch_ops {
    int (*get_sset_count)(struct dsa_switch *ds, int port, int sset);
    void (*get_ethtool_phy_stats)(struct dsa_switch *ds,
    int port, uint64_t *data);
    + void (*get_stats64)(struct dsa_switch *ds, int port,
    + struct rtnl_link_stats64 *s);

    /*
    * ethtool Wake-on-LAN
    diff --git a/net/dsa/slave.c b/net/dsa/slave.c
    index 4a0498bf6c65..1fb823d3c7d7 100644
    --- a/net/dsa/slave.c
    +++ b/net/dsa/slave.c
    @@ -1602,6 +1602,18 @@ static struct devlink_port *dsa_slave_get_devlink_port(struct net_device *dev)
    return dp->ds->devlink ? &dp->devlink_port : NULL;
    }

    +static void dsa_slave_get_stats64(struct net_device *dev,
    + struct rtnl_link_stats64 *s)
    +{
    + struct dsa_port *dp = dsa_slave_to_port(dev);
    + struct dsa_switch *ds = dp->ds;
    +
    + if (ds->ops->get_stats64)
    + ds->ops->get_stats64(ds, dp->index, s);
    + else
    + dev_get_tstats64(dev, s);
    +}
    +
    static const struct net_device_ops dsa_slave_netdev_ops = {
    .ndo_open = dsa_slave_open,
    .ndo_stop = dsa_slave_close,
    @@ -1621,7 +1633,7 @@ static const struct net_device_ops dsa_slave_netdev_ops = {
    #endif
    .ndo_get_phys_port_name = dsa_slave_get_phys_port_name,
    .ndo_setup_tc = dsa_slave_setup_tc,
    - .ndo_get_stats64 = dev_get_tstats64,
    + .ndo_get_stats64 = dsa_slave_get_stats64,
    .ndo_get_port_parent_id = dsa_slave_get_port_parent_id,
    .ndo_vlan_rx_add_vid = dsa_slave_vlan_rx_add_vid,
    .ndo_vlan_rx_kill_vid = dsa_slave_vlan_rx_kill_vid,
    --
    2.30.0
    \
     
     \ /
      Last update: 2021-01-11 11:51    [W:4.127 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site