|
@@ -822,6 +822,7 @@ static noinline size_t if_nlmsg_size(const struct net_device *dev,
|
|
|
+ nla_total_size(4) /* IFLA_NUM_RX_QUEUES */
|
|
|
+ nla_total_size(1) /* IFLA_OPERSTATE */
|
|
|
+ nla_total_size(1) /* IFLA_LINKMODE */
|
|
|
+ + nla_total_size(4) /* IFLA_CARRIER_CHANGES */
|
|
|
+ nla_total_size(ext_filter_mask
|
|
|
& RTEXT_FILTER_VF ? 4 : 0) /* IFLA_NUM_VF */
|
|
|
+ rtnl_vfinfo_size(dev, ext_filter_mask) /* IFLA_VFINFO_LIST */
|
|
@@ -970,7 +971,9 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
|
|
|
(dev->qdisc &&
|
|
|
nla_put_string(skb, IFLA_QDISC, dev->qdisc->ops->id)) ||
|
|
|
(dev->ifalias &&
|
|
|
- nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)))
|
|
|
+ nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
|
|
|
+ nla_put_u32(skb, IFLA_CARRIER_CHANGES,
|
|
|
+ atomic_read(&dev->carrier_changes)))
|
|
|
goto nla_put_failure;
|
|
|
|
|
|
if (1) {
|
|
@@ -1147,6 +1150,7 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
|
|
|
[IFLA_NUM_TX_QUEUES] = { .type = NLA_U32 },
|
|
|
[IFLA_NUM_RX_QUEUES] = { .type = NLA_U32 },
|
|
|
[IFLA_PHYS_PORT_ID] = { .type = NLA_BINARY, .len = MAX_PHYS_PORT_ID_LEN },
|
|
|
+ [IFLA_CARRIER_CHANGES] = { .type = NLA_U32 }, /* ignored */
|
|
|
};
|
|
|
|
|
|
static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
|