Re: [PATCH] net: Add etun driver [message #18090] |
Fri, 06 April 2007 21:20 |
Ben Greear
Messages: 30 Registered: June 2006
|
Member |
|
|
Eric W. Biederman wrote:
> etun is a simple two headed tunnel driver that at the link layer looks
> like ethernet. It's target audience is communicating between network
> namespaces but it is general enough it has other valid uses as well.
>
> Ben Greear implemented a similar device called redir-dev, for network
> emulation.
>
> OpenVZ has a similar device that goes by the name veth.
>
> I didn't want to mess with ioctls or weird non-general network
> interfaces for creating devices, so I used sysfs as my control
> mechanism.
>
> To create a pair of devices called veth0 and veth1:
> echo -n 'veth0,veth1' > /sys/module/etun/parameters/newif
>
> To destroy a pair of devices:
> echo -n 'veth0' > /sys/module/etun/parameters/delif
>
Is there any way to tell for certain if an interface is a etun or not?
Maybe
a file could be found (or not) in sysfs somewhere?
Also, how do you find the peer device from user-space? This would be
very useful
for anyone trying to manage these devices with a user-space program.
When you are creating new devices, I think you should check to make
sure there isn't already a device with that name.
In general though, I look forward to this being in the kernel so I can drop
my redirect device code from my out-of-tree patch.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|
|
Re: [PATCH] net: Add etun driver [message #18105 is a reply to message #18103] |
Sat, 07 April 2007 03:31 |
Ben Greear
Messages: 30 Registered: June 2006
|
Member |
|
|
Eric W. Biederman wrote:
> Ben Greear <greearb@candelatech.com> writes:
>
>
>> Is there any way to tell for certain if an interface is a etun or not? Maybe
>> a file could be found (or not) in sysfs somewhere?
>>
>
> Link for any decent network driver ethtool -i <interface>
>
I guess that will do, but then if you ever change the strings, any
user-space that is
depending on this will break or have to be modified with additional
cruft. It seems
cleaner to me to have an ioctl or a specific place in /proc or some
other virtual
fs, but I can deal with it either way...
>> Also, how do you find the peer device from user-space? This would be very
>> useful
>> for anyone trying to manage these devices with a user-space program.
>>
>
> Currently "ethtool -S <interface>"
> And read the partner_ifindex.
>
Ok, that will work. Again, my personal preference is for a single
specific ioctl or proc'ish file
to read the specific value instead of having to parse strings, but this
will do.
> Further whoever generates the pair specifies the initial set of names.
>
Yeah, but you can't depend on knowing that in an interesting environment.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|
|
Re: [PATCH] net: Add etun driver [message #18109 is a reply to message #18108] |
Sat, 07 April 2007 07:31 |
Ben Greear
Messages: 30 Registered: June 2006
|
Member |
|
|
Eric W. Biederman wrote:
> Ben Greear <greearb@candelatech.com> writes:
>
>
>> I guess that will do, but then if you ever change the strings, any user-space
>> that is
>> depending on this will break or have to be modified with additional cruft. It
>> seems
>> cleaner to me to have an ioctl or a specific place in /proc or some other
>> virtual
>> fs, but I can deal with it either way...
>>
>
> True if the name of the driver changes from etun there is an issue.
>
So, how about a sysfs field for this too, something like 'is-etun' or
whatever...
Or, IOCTL works fine too, of course.
>
>>>> Also, how do you find the peer device from user-space? This would be very
>>>> useful
>>>> for anyone trying to manage these devices with a user-space program.
>>>>
>>>>
>>> Currently "ethtool -S <interface>"
>>> And read the partner_ifindex.
>>>
>>>
>> Ok, that will work. Again, my personal preference is for a single specific
>> ioctl or proc'ish file
>> to read the specific value instead of having to parse strings, but this will do.
>>
>
> Hmm. I guess there is string parsing to identify the index.
>
> I guess a sysfs device attribute would work as well.
>
Yes, that would be much appreciated.
>
>>> Further whoever generates the pair specifies the initial set of names.
>>>
>>>
>> Yeah, but you can't depend on knowing that in an interesting environment.
>>
>
> Frankly. In an interesting environment I haven't been able to think of a
> way to successfully say anything about the partner device.
>
> The problem is that all identifiers are namespace local so the remote side
> is not in the current namespace the ifindex or the device name mean nothing.
>
> In that case the only remotely usable value I can return is the mac address
> of the other side.
>
Couldn't you also show the peer's name-space id in that case?
MAC could be duplicated, so that's not a very good key.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|