lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 25 Jun 2022 01:03:17 +0300 From: Vladimir Oltean <olteanv@...il.com> To: Oleksij Rempel <o.rempel@...gutronix.de> Cc: Woojung Huh <woojung.huh@...rochip.com>, Andrew Lunn <andrew@...n.ch>, Vivien Didelot <vivien.didelot@...il.com>, Florian Fainelli <f.fainelli@...il.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, kernel@...gutronix.de, linux-kernel@...r.kernel.org, netdev@...r.kernel.org, Lukas Wunner <lukas@...ner.de>, UNGLinuxDriver@...rochip.com Subject: Re: [PATCH net-next v1 2/3] net: dsa: ar9331: add support for pause stats On Fri, Jun 24, 2022 at 02:59:01PM +0200, Oleksij Rempel wrote: > Add support for pause stats and fix rx_packets/tx_packets calculation. > > Pause packets are counted by raw.rx64byte/raw.tx64byte counters, so > subtract it from main rx_packets/tx_packets counters. > > tx_/rx_bytes are not affected. > > Signed-off-by: Oleksij Rempel <o.rempel@...gutronix.de> > --- > drivers/net/dsa/qca/ar9331.c | 23 +++++++++++++++++++++-- > 1 file changed, 21 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/dsa/qca/ar9331.c b/drivers/net/dsa/qca/ar9331.c > index fb3fe74abfe6..82412f54c432 100644 > --- a/drivers/net/dsa/qca/ar9331.c > +++ b/drivers/net/dsa/qca/ar9331.c > @@ -606,6 +607,7 @@ static void ar9331_sw_phylink_mac_link_up(struct dsa_switch *ds, int port, > static void ar9331_read_stats(struct ar9331_sw_port *port) > { > struct ar9331_sw_priv *priv = ar9331_sw_port_to_priv(port); > + struct ethtool_pause_stats *pstats = &port->pause_stats; > struct rtnl_link_stats64 *stats = &port->stats; > struct ar9331_sw_stats_raw raw; > int ret; > @@ -625,9 +627,11 @@ static void ar9331_read_stats(struct ar9331_sw_port *port) > stats->tx_bytes += raw.txbyte; > > stats->rx_packets += raw.rx64byte + raw.rx128byte + raw.rx256byte + > - raw.rx512byte + raw.rx1024byte + raw.rx1518byte + raw.rxmaxbyte; > + raw.rx512byte + raw.rx1024byte + raw.rx1518byte + > + raw.rxmaxbyte - raw.rxpause; > stats->tx_packets += raw.tx64byte + raw.tx128byte + raw.tx256byte + > - raw.tx512byte + raw.tx1024byte + raw.tx1518byte + raw.txmaxbyte; > + raw.tx512byte + raw.tx1024byte + raw.tx1518byte + > + raw.txmaxbyte - raw.txpause; Is there an authoritative source who is able to tell whether rtnl_link_stats64 :: rx_packets and tx_packets should count PAUSE frames or not? > > stats->rx_length_errors += raw.rxrunt + raw.rxfragment + raw.rxtoolong; > stats->rx_crc_errors += raw.rxfcserr; > @@ -646,6 +650,9 @@ static void ar9331_read_stats(struct ar9331_sw_port *port) > stats->multicast += raw.rxmulti; > stats->collisions += raw.txcollision; > > + pstats->tx_pause_frames += raw.txpause; > + pstats->rx_pause_frames += raw.rxpause; > + > spin_unlock(&port->stats_lock); > }
Powered by blists - more mailing lists