On 4/13/16, 5:11 AM, Jamal Hadi Salim wrote: > On 16-04-12 09:21 AM, Thomas Graf wrote: >> On 04/11/16 at 08:53pm, roopa wrote: >>> Top level stats attributes can be netdev or global attributes: We can >>> include string "LINK" in >>> the names of all stats belonging to a netdev to make it easier to recognize >>> the netdev stats (example): >>> IFLA_STATS_LINK64, (netdev) >>> IFLA_STATS_LINK_INET6, (netdev) >>> IFLA_STATS_TCP, (non-netdev, global tcp stats) >> >> This is fine as well. It means that we cant mix netdev and non-netdev >> stats or stats for multiple netdevs in the same request which would >> not be the case if you nest it and have a top level attribute which >> is a list of requests. That may be borderline to overengineering >> though so I'm fine this as well. > > > Well - using a subheader which has ifindex on it for non-netdev stats > seems wrong then. I think its ok for ifindex to be optional. Almost all msg types have subheaders with ifindex and it is almost always optional in the GET request (eg RTM_GETLINK with NLM_F_DUMP ifindex is optional and never checked). Here we make ifindex optional both ways.
Its optional in the GET request with NLM_F_DUMP and it is also optional in the msg to userspace (NEW). And no ifindex in NEW will indicate that the message is not tied to a specific netdev (ie global stats). Thanks!