From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roopa Prabhu Subject: Re: [patch net-next v7 1/3] netdevice: Add offload statistics ndo Date: Tue, 06 Sep 2016 08:08:25 -0700 Message-ID: <57CEDBE9.1090501@cumulusnetworks.com> References: <1473095937-27100-1-git-send-email-jiri@resnulli.us> <1473095937-27100-2-git-send-email-jiri@resnulli.us> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, davem@davemloft.net, nogahf@mellanox.com, idosch@mellanox.com, eladr@mellanox.com, yotamg@mellanox.com, ogerlitz@mellanox.com, nikolay@cumulusnetworks.com, linville@tuxdriver.com, tgraf@suug.ch, gospo@cumulusnetworks.com, sfeldma@gmail.com, sd@queasysnail.net, eranbe@mellanox.com, ast@plumgrid.com, edumazet@google.com, hannes@stressinduktion.org, f.fainelli@gmail.com, dsa@cumulusnetworks.com To: Jiri Pirko Return-path: Received: from mail-pa0-f49.google.com ([209.85.220.49]:35260 "EHLO mail-pa0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754779AbcIFPI1 (ORCPT ); Tue, 6 Sep 2016 11:08:27 -0400 Received: by mail-pa0-f49.google.com with SMTP id b2so3228744pat.2 for ; Tue, 06 Sep 2016 08:08:26 -0700 (PDT) In-Reply-To: <1473095937-27100-2-git-send-email-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org List-ID: On 9/5/16, 10:18 AM, Jiri Pirko wrote: > From: Nogah Frankel > > Add a new ndo to return statistics for offloaded operation. > Since there can be many different offloaded operation with many > stats types, the ndo gets an attribute id by which it knows which > stats are wanted. The ndo also gets a void pointer to be cast according > to the attribute id. > > Signed-off-by: Nogah Frankel > Signed-off-by: Jiri Pirko > --- > include/linux/netdevice.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 67bb978..2d2c09b 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -924,6 +924,14 @@ struct netdev_xdp { > * 3. Update dev->stats asynchronously and atomically, and define > * neither operation. > * > + * bool (*ndo_has_offload_stats)(int attr_id) > + * Return true if this device supports offload stats of this attr_id. > + * > + * int (*ndo_get_offload_stats)(int attr_id, const struct net_device *dev, > + * void *attr_data) > + * Get statistics for offload operations by attr_id. Write it into the > + * attr_data pointer. > + * this could have been a single ndo_get_offload_stats like the others. and possibly new ndo_get_offload_stats_size. Ideally the driver could do the nest. But, this can be changed if needed in the future. > * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, __be16 proto, u16 vid); > * If device supports VLAN filtering this function is called when a > * VLAN id is registered. > @@ -1155,6 +1163,10 @@ struct net_device_ops { > > struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev, > struct rtnl_link_stats64 *storage); > + bool (*ndo_has_offload_stats)(int attr_id); > + int (*ndo_get_offload_stats)(int attr_id, > + const struct net_device *dev, > + void *attr_data); > struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); > > int (*ndo_vlan_rx_add_vid)(struct net_device *dev,