On Tue, Oct 25, 2022 at 07:09:48PM -0700, Jakub Kicinski wrote: > The previous attempt to augment carrier_down (see Link) > was not met with much enthusiasm so let's do the simple > thing of exposing what some devices already maintain. > Add a common ethtool statistic for link going down. > Currently users have to maintain per-driver mapping > to extract the right stat from the vendor-specific ethtool -S > stats. carrier_down does not fit the bill because it counts > a lot of software related false positives. > > Add the statistic to the extended link state API to steer > vendors towards implementing all of it. > > Implement for bnxt. mlx5 and (possibly) enic also have > a counter for this but I leave the implementation to their > maintainers. > +struct ethtool_link_ext_stats { > + /* Custom Linux statistic for PHY level link down events. > + * In a simpler world it should be equal to netdev->carrier_down_count > + * unfortunately netdev also counts local reconfigurations which don't > + * actually take the physical link down, not to mention NC-SI which, > + * if present, keeps the link up regardless of host state. > + * This statistic counts when PHY _actually_ went down, or lost link. > + */ > + u64 LinkDownEvents; > +}; You might want to consider a generic implementation in phylib. You should then have over 60 drivers implementing this, enough momentum it might actually get used. Andrew