Message ID | 1295225393-5779-1-git-send-email-david.ward@ll.mit.edu |
---|---|
State | Rejected, archived |
Delegated to: | David Miller |
Headers | show |
On 2011-01-17 01:49, David Ward wrote: > When the dummy network driver is initialized with no parameters, a link > is automatically created (named 'dummy0'). This is inconsistent with > other virtual network drivers such as veth, macvlan, and macvtap, which > do not create a link upon initialization. Actually, this is consistent with _other_ virtual network drivers such as loopback, ifb, and teql, which create a link upon initialization ;-) Jarek P. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 16 Jan 2011 19:49:53 -0500 David Ward <david.ward@ll.mit.edu> wrote: > When the dummy network driver is initialized with no parameters, a link > is automatically created (named 'dummy0'). This is inconsistent with > other virtual network drivers such as veth, macvlan, and macvtap, which > do not create a link upon initialization. > > This also causes confusing behavior when sending an RTM_NEWLINK message > for a dummy link, because the kernel will load the dummy network driver > first if it has not already been loaded. When that occurs, the result > is that two new links are actually created (or if IFLA_IFNAME is set to > 'dummy0', the error EEXIST is returned). The following iproute command > demonstrates this behavior: > > ip link add [ name dummy0 ] type dummy > > With this change, users who still want to have a link created when the > dummy network driver is loaded (instead of using iproute to create the > link as shown above) just need to set the 'numdummies' parameter to 1: > > modprobe dummy numdummies=1 > > Signed-off-by: David Ward <david.ward@ll.mit.edu> I understand what you are trying to do, and it makes sense. But because of the history behind this it can't change. We can't change existing API and break user scripts. The 'ip link' command support is new (in last couple of years), and the module parameter has been around since early days. If you want to load module without any devices just use: modprobe dummy numdummies=0
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index ff2d29b..ac8815f 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c @@ -38,7 +38,7 @@ #include <net/rtnetlink.h> #include <linux/u64_stats_sync.h> -static int numdummies = 1; +static int numdummies = 0; static int dummy_set_address(struct net_device *dev, void *p) {
When the dummy network driver is initialized with no parameters, a link is automatically created (named 'dummy0'). This is inconsistent with other virtual network drivers such as veth, macvlan, and macvtap, which do not create a link upon initialization. This also causes confusing behavior when sending an RTM_NEWLINK message for a dummy link, because the kernel will load the dummy network driver first if it has not already been loaded. When that occurs, the result is that two new links are actually created (or if IFLA_IFNAME is set to 'dummy0', the error EEXIST is returned). The following iproute command demonstrates this behavior: ip link add [ name dummy0 ] type dummy With this change, users who still want to have a link created when the dummy network driver is loaded (instead of using iproute to create the link as shown above) just need to set the 'numdummies' parameter to 1: modprobe dummy numdummies=1 Signed-off-by: David Ward <david.ward@ll.mit.edu> --- drivers/net/dummy.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)