Commit 0dbf2dbb authored by Eric Lemoine's avatar Eric Lemoine Committed by David S. Miller

[NET]: Allow get/set of dev->weight via netlink.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f6b652d8
...@@ -565,6 +565,8 @@ enum ...@@ -565,6 +565,8 @@ enum
#define IFLA_TXQLEN IFLA_TXQLEN #define IFLA_TXQLEN IFLA_TXQLEN
IFLA_MAP, IFLA_MAP,
#define IFLA_MAP IFLA_MAP #define IFLA_MAP IFLA_MAP
IFLA_WEIGHT,
#define IFLA_WEIGHT IFLA_WEIGHT
__IFLA_MAX __IFLA_MAX
}; };
......
...@@ -176,6 +176,11 @@ static int rtnetlink_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, ...@@ -176,6 +176,11 @@ static int rtnetlink_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
RTA_PUT(skb, IFLA_TXQLEN, sizeof(txqlen), &txqlen); RTA_PUT(skb, IFLA_TXQLEN, sizeof(txqlen), &txqlen);
} }
if (1) {
u32 weight = dev->weight;
RTA_PUT(skb, IFLA_WEIGHT, sizeof(weight), &weight);
}
if (1) { if (1) {
struct ifmap map = { struct ifmap map = {
.mem_start = dev->mem_start, .mem_start = dev->mem_start,
...@@ -333,6 +338,13 @@ static int do_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) ...@@ -333,6 +338,13 @@ static int do_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
dev->tx_queue_len = *((u32 *) RTA_DATA(ida[IFLA_TXQLEN - 1])); dev->tx_queue_len = *((u32 *) RTA_DATA(ida[IFLA_TXQLEN - 1]));
} }
if (ida[IFLA_WEIGHT - 1]) {
if (ida[IFLA_WEIGHT - 1]->rta_len != RTA_LENGTH(sizeof(u32)))
goto out;
dev->weight = *((u32 *) RTA_DATA(ida[IFLA_WEIGHT - 1]));
}
err = 0; err = 0;
out: out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment