return ret;
 }
 
+NETDEVICE_SHOW(group, fmt_dec);
+
+static int change_group(struct net_device *net, unsigned long new_group)
+{
+       dev_set_group(net, (int) new_group);
+       return 0;
+}
+
+static ssize_t store_group(struct device *dev, struct device_attribute *attr,
+                        const char *buf, size_t len)
+{
+       return netdev_store(dev, attr, buf, len, change_group);
+}
+
 static struct device_attribute net_class_attributes[] = {
        __ATTR(addr_assign_type, S_IRUGO, show_addr_assign_type, NULL),
        __ATTR(addr_len, S_IRUGO, show_addr_len, NULL),
        __ATTR(flags, S_IRUGO | S_IWUSR, show_flags, store_flags),
        __ATTR(tx_queue_len, S_IRUGO | S_IWUSR, show_tx_queue_len,
               store_tx_queue_len),
+       __ATTR(group, S_IRUGO | S_IWUSR, show_group, store_group),
        {}
 };