Subject: Re: [RFC RTNETLINK 00/09]: Netlink link creation API

From: Patrick McHardy <[email-masked]>
Date: Wed, 06 Jun 2007 18:25:05 +0200

Eric W. Biederman wrote:
> Patrick McHardy <[email-masked]> writes:
> 
> 
>>>I still think adding a IFLA_PARTNER or a custom attribute is cleaner
>>>in this case.  Slight semantic mismatches are the worst design bugs
>>>to correct.
>>
>>
>>Indeed, IFLA_PARTNER sounds like a better idea. I just suggested to
>>Pavel to create only a single device per newlink operation and binding
>>them later, what do you think about that?
> 
> 
> I don't think it solves much because we still need a way to report the
> partner device.

I was thinking of something like this:

ip link add veth0 type veth
ip link add veth1 partner veth0 type veth

ip would resolve veth0 to an ifindex and set IFLA_PARTNER. But Alexey
just raised a few good points, so this might not work.

> On the actual using side I think it makes the core of the driver much
> more difficult to get right.  
> 
> Basically if we can't count on having a partner device we have to
> add NULL pointer checks and locking to the packet dispatch which
> is otherwise unnecessary.

All you'd need to do is keep the queue stopped until the device
is bound. No changes to rx or tx path neccessary.