vlan: multiqueue vlan device
[deliverable/linux.git] / net / 8021q / vlan_netlink.c
index e9c91dcecc9bc8552cb71e63637aa0565df53a2c..343146e1bceb0998e1b2a0804b5a798944669ea5 100644 (file)
@@ -100,6 +100,25 @@ static int vlan_changelink(struct net_device *dev,
        return 0;
 }
 
+static int vlan_get_tx_queues(struct net *net,
+                             struct nlattr *tb[],
+                             unsigned int *num_tx_queues,
+                             unsigned int *real_num_tx_queues)
+{
+       struct net_device *real_dev;
+
+       if (!tb[IFLA_LINK])
+               return -EINVAL;
+
+       real_dev = __dev_get_by_index(net, nla_get_u32(tb[IFLA_LINK]));
+       if (!real_dev)
+               return -ENODEV;
+
+       *num_tx_queues      = real_dev->num_tx_queues;
+       *real_num_tx_queues = real_dev->real_num_tx_queues;
+       return 0;
+}
+
 static int vlan_newlink(struct net_device *dev,
                        struct nlattr *tb[], struct nlattr *data[])
 {
@@ -216,6 +235,7 @@ struct rtnl_link_ops vlan_link_ops __read_mostly = {
        .maxtype        = IFLA_VLAN_MAX,
        .policy         = vlan_policy,
        .priv_size      = sizeof(struct vlan_dev_info),
+       .get_tx_queues  = vlan_get_tx_queues,
        .setup          = vlan_setup,
        .validate       = vlan_validate,
        .newlink        = vlan_newlink,
This page took 0.024322 seconds and 5 git commands to generate.