diff options
author | Vlad Dogaru <ddvlad@rosedu.org> | 2011-01-23 22:37:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-25 02:23:28 -0500 |
commit | a512b92b3af4b03fc6834617a042dc85fbd4e34e (patch) | |
tree | 54bdb2b03bca25b5aa35ead52c5122707f0b9727 /net/core | |
parent | 84c49d8c3e4abefb0a41a77b25aa37ebe8d6b743 (diff) |
net: add sysfs entry for device group
The group of a network device can be queried or changed from userspace
using sysfs.
For example, considering sysfs mounted in /sys, one can change the group
that interface lo belongs to:
echo 1 > /sys/class/net/lo/group
Signed-off-by: Vlad Dogaru <ddvlad@rosedu.org>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/net-sysfs.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 81367ccf330..2e4a393dfc3 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c | |||
@@ -295,6 +295,20 @@ static ssize_t show_ifalias(struct device *dev, | |||
295 | return ret; | 295 | return ret; |
296 | } | 296 | } |
297 | 297 | ||
298 | NETDEVICE_SHOW(group, fmt_dec); | ||
299 | |||
300 | static int change_group(struct net_device *net, unsigned long new_group) | ||
301 | { | ||
302 | dev_set_group(net, (int) new_group); | ||
303 | return 0; | ||
304 | } | ||
305 | |||
306 | static ssize_t store_group(struct device *dev, struct device_attribute *attr, | ||
307 | const char *buf, size_t len) | ||
308 | { | ||
309 | return netdev_store(dev, attr, buf, len, change_group); | ||
310 | } | ||
311 | |||
298 | static struct device_attribute net_class_attributes[] = { | 312 | static struct device_attribute net_class_attributes[] = { |
299 | __ATTR(addr_assign_type, S_IRUGO, show_addr_assign_type, NULL), | 313 | __ATTR(addr_assign_type, S_IRUGO, show_addr_assign_type, NULL), |
300 | __ATTR(addr_len, S_IRUGO, show_addr_len, NULL), | 314 | __ATTR(addr_len, S_IRUGO, show_addr_len, NULL), |
@@ -316,6 +330,7 @@ static struct device_attribute net_class_attributes[] = { | |||
316 | __ATTR(flags, S_IRUGO | S_IWUSR, show_flags, store_flags), | 330 | __ATTR(flags, S_IRUGO | S_IWUSR, show_flags, store_flags), |
317 | __ATTR(tx_queue_len, S_IRUGO | S_IWUSR, show_tx_queue_len, | 331 | __ATTR(tx_queue_len, S_IRUGO | S_IWUSR, show_tx_queue_len, |
318 | store_tx_queue_len), | 332 | store_tx_queue_len), |
333 | __ATTR(group, S_IRUGO | S_IWUSR, show_group, store_group), | ||
319 | {} | 334 | {} |
320 | }; | 335 | }; |
321 | 336 | ||