Messages in this thread Patch in this message | | | From | Oleksij Rempel <> | Subject | [PATCH net-next v1 1/3] net: dsa: add get_pause_stats support | Date | Fri, 24 Jun 2022 14:59:00 +0200 |
| |
Add support for pause stats
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- include/net/dsa.h | 2 ++ net/dsa/slave.c | 11 +++++++++++ 2 files changed, 13 insertions(+)
diff --git a/include/net/dsa.h b/include/net/dsa.h index 14f07275852b..c8d7696cb2bf 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -890,6 +890,8 @@ struct dsa_switch_ops { struct ethtool_eth_ctrl_stats *ctrl_stats); void (*get_stats64)(struct dsa_switch *ds, int port, struct rtnl_link_stats64 *s); + void (*get_pause_stats)(struct dsa_switch *ds, int port, + struct ethtool_pause_stats *pause_stats); void (*self_test)(struct dsa_switch *ds, int port, struct ethtool_test *etest, u64 *data); diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 2e1ac638d135..b2710ee46644 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1097,6 +1097,16 @@ static int dsa_slave_set_link_ksettings(struct net_device *dev, return phylink_ethtool_ksettings_set(dp->pl, cmd); } +static void dsa_slave_get_pause_stats(struct net_device *dev, + struct ethtool_pause_stats *pause_stats) +{ + struct dsa_port *dp = dsa_slave_to_port(dev); + struct dsa_switch *ds = dp->ds; + + if (ds->ops->get_pause_stats) + ds->ops->get_pause_stats(ds, dp->index, pause_stats); +} + static void dsa_slave_get_pauseparam(struct net_device *dev, struct ethtool_pauseparam *pause) { @@ -2087,6 +2097,7 @@ static const struct ethtool_ops dsa_slave_ethtool_ops = { .get_eee = dsa_slave_get_eee, .get_link_ksettings = dsa_slave_get_link_ksettings, .set_link_ksettings = dsa_slave_set_link_ksettings, + .get_pause_stats = dsa_slave_get_pause_stats, .get_pauseparam = dsa_slave_get_pauseparam, .set_pauseparam = dsa_slave_set_pauseparam, .get_rxnfc = dsa_slave_get_rxnfc, -- 2.30.2
| |