Skip to contentSkip to conversation

What is the best way for multiple net_devices

DISCUSSION andrew may 3 participants 5 messages Jun 27, 2001

lore
Share & tools
lore

andrew may

author
#0 lore raw

Is there a standard way to make multiple copies of a network device?

For things like the bonding/ipip/ip_gre and others they seem to expect insmod -o copy1 module.o
insmod -o copy2 module.o

It seems to me that this will waste space creating copies of all the static data.

Then there are things like ipsec that create a few static net_dev structures, but I have no idea how they deal with more entries. They probably don't.

The PCI drivers seem to be pretty clean with init_one type functions.

Is there anything similar for generic hardware-less network devices.

I would hate to have write an ioctl to create a new device without loading a module twice.

--
Andrew May
[email protected]

#1 lore raw
Quoted 6 lines · andrew may

Is there a standard way to make multiple copies of a network device?

For things like the bonding/ipip/ip_gre and others they seem to expect insmod -o copy1 module.o
insmod -o copy2 module.o

The network driver should provide the capability to add new devices.

Most drivers currently have the capability to do N devices, where N is some constant set at compile time. Typically you use ifconfig, a special-purpose userland program, or sometimes even sysctls to configure additional net devices.

It's certainly possible to modify the driver to create additional network interfaces on the fly, but a lot of drivers are not coded to do that at present.

Signature · 3 lines
Jeff Garzik      | Andre the Giant has a posse.
Building 1024    |
MandrakeSoft     |
author
#2 lore raw
Quoted 4 lines · Maksim Krasnyanskiy
Quoted 2 lines

Any examples of drivers and apps that do this cleanly. The ones I have seen are not.

TUN/TAP driver and tuncfg utility
http://vtun.sf.net/tun

OK, thanks that is nice, but I think adding support to get into the /dev namespace may be a little heavy for things like bonding or ipip.

I did not see tuncfg. From what I could see there were 2 ways to create new devices. There was a script with mknod and then the ioctl(fd, TUNSETIFF, (void *) &ifr).

I could do a similar ioctl for a pure net device but I still need a dummy socket for creating/destroying devices.

I am going for an embedded system so I want to keep things light.

author
#3 lore raw
In reply to andrew may
Quoted 9 lines · Jeff Garzik
Quoted 6 lines · andrew may

Is there a standard way to make multiple copies of a network device?

For things like the bonding/ipip/ip_gre and others they seem to expect insmod -o copy1 module.o
insmod -o copy2 module.o

The network driver should provide the capability to add new devices.

I am planning to write or patch some drivers to do this as well as other things.

I would want to add things at run time after the module is alreaded loaded. So options to the module won't work.

I don't know how to use ifconfig to create a new device.

Any examples of drivers and apps that do this cleanly. The ones I have seen are not.