rtnetlink.c (69dbdd819599e2f3b77c172e83af512845bca5ad) rtnetlink.c (369cf77a6a3e41b1110506ddf43d45804103bfde)
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * Routing netlink socket interface: protocol independent part.
7 *
8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>

--- 333 unchanged lines hidden (view full) ---

342static size_t rtnl_link_get_size(const struct net_device *dev)
343{
344 const struct rtnl_link_ops *ops = dev->rtnl_link_ops;
345 size_t size;
346
347 if (!ops)
348 return 0;
349
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * Routing netlink socket interface: protocol independent part.
7 *
8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>

--- 333 unchanged lines hidden (view full) ---

342static size_t rtnl_link_get_size(const struct net_device *dev)
343{
344 const struct rtnl_link_ops *ops = dev->rtnl_link_ops;
345 size_t size;
346
347 if (!ops)
348 return 0;
349
350 size = nlmsg_total_size(sizeof(struct nlattr)) + /* IFLA_LINKINFO */
351 nlmsg_total_size(strlen(ops->kind) + 1); /* IFLA_INFO_KIND */
350 size = nla_total_size(sizeof(struct nlattr)) + /* IFLA_LINKINFO */
351 nla_total_size(strlen(ops->kind) + 1); /* IFLA_INFO_KIND */
352
353 if (ops->get_size)
354 /* IFLA_INFO_DATA + nested data */
352
353 if (ops->get_size)
354 /* IFLA_INFO_DATA + nested data */
355 size += nlmsg_total_size(sizeof(struct nlattr)) +
355 size += nla_total_size(sizeof(struct nlattr)) +
356 ops->get_size(dev);
357
358 if (ops->get_xstats_size)
356 ops->get_size(dev);
357
358 if (ops->get_xstats_size)
359 size += ops->get_xstats_size(dev); /* IFLA_INFO_XSTATS */
359 /* IFLA_INFO_XSTATS */
360 size += nla_total_size(ops->get_xstats_size(dev));
360
361 return size;
362}
363
364static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev)
365{
366 const struct rtnl_link_ops *ops = dev->rtnl_link_ops;
367 struct nlattr *linkinfo, *data;

--- 1419 unchanged lines hidden ---
361
362 return size;
363}
364
365static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev)
366{
367 const struct rtnl_link_ops *ops = dev->rtnl_link_ops;
368 struct nlattr *linkinfo, *data;

--- 1419 unchanged lines hidden ---