Subject: Re: [patch net-next 1/4] netdevice: add SW statistics ndo

From: Roopa Prabhu <[email-masked]>
Date: Thu, 12 May 2016 14:10:08 -0700

On 5/12/16, 4:48 AM, Jiri Pirko wrote:
> From: Nogah Frankel <[email-masked]>
>
> Till now we had a ndo statistics function that returned SW statistics.
> We want to change the "basic" statistics to return HW statistics if
> available.
> In this case we need to expose a new ndo to return the SW statistics.
> Add a new ndo declaration to get SW statistics
> Add a function that gets SW statistics if a competible ndo exist
>
> Signed-off-by: Nogah Frankel <[email-masked]>
> Reviewed-by: Ido Schimmel <[email-masked]>
> Signed-off-by: Jiri Pirko <[email-masked]>
> ---
>
To me netdev stats is  combined 'SW + HW' stats for that netdev.
ndo_get_stats64 callback into the drivers does the magic of adding HW stats
to SW (netdev) stats and returning (see enic_get_stats). HW stats is available for netdevs
that are offloaded or are backed by hardware. SW stats is the stats that the driver maintains
(logical or physical). HW stats is queried and added to the SW stats.
In fact, we represent all our offloaded netdev stats following this model.
This fits well for logical devices like vlan/bond/vxlan which are hardware offloaded too.

There is HW extended stats which today are represented by ethtool
and I had an example of a new nested attribute like IFLA_STATS_LINK_HW_EXTENDED
to provide ethtool like extensible stats. If people want pure hardware stats, they
get it via this. In which case I am not seeing the point in adding a new ndo and a new
stats attribute just for this. If you are looking for pure hardware stats, any reason we cant
just use the IFLA_STATS_LINK_HW_EXTENDED and add ethtool like hw stats ?.
This will be one place to look for all hardware stats and will be extensible too.