Subject: Re: displayed name changed in ip link show for bridge- and other interfaces

From: Nicolas Dichtel <[email-masked]>
Date: Tue, 23 Jun 2015 14:48:32 +0200

Le 21/06/2015 00:58, Oliver Hartkopp a écrit :
>
>
> On 06/17/2015 09:26 AM, Nicolas Dichtel wrote:
>> Le 16/06/2015 19:35, Oliver Hartkopp a écrit :
>>> On 15.06.2015 17:54, Stephen Hemminger wrote:
>>>> On Mon, 15 Jun 2015 11:13:12 +0200
>>>> Nicolas Dichtel <[email-masked]> wrote:
>>>>
>>>>> Theoretically, virtual interfaces should advertise an IFLA_LINK to 0.
>>>>> I don't know what is the best fix:
>>>>>     - patching iproute2 to avoid this '@NONE'
>>>>>     - patching the kernel (see below).
>>>>
>>>>
>>>> Sorry this is an ABI change. The kernel has to go back
>>>> to doing the same thing as before.
>>>>
>>>
>>> Isn't this too late right now at 4.1-rc8 stage???
>>>
>>> At least the patch suggested for br_device.c at
>>>
>>> http://marc.info/?l=linux-netdev&m=143435960111768&w=2
>>>
>>> would been necessary in all networking drivers, right?
>>>
>>> I currently see this @NONE stuff with virtual CAN devices too.
>> Another solution is to revert e1622baf54df ("dev: set iflink to 0 for virtual
>> interfaces") and add a ndo_get_iflink handler which returns 0 for all virtual
>> interfaces that had this IFLA_LINK set to 0 before the series.
>> But it's not consistent between virtual interfaces.
>
> I have no good suggestion, as I don't know if this makes a difference for the
> ABI to finally make 'ip' omit the '@NONE' output.
>
> E.g. virtual CAN interfaces (vcan.c) now print this @NONE and they never have
> a (physical?) link. So you probably have to deal with different virtual
> interfaces anyway, right?
Yes, with the current code, all virtual interfaces (that define a
rtnl_link_ops) will have this "@SOMETHING" because IFLA_LINK is now set to 0.
The initial goal of iflink was to be able to identify virtual interfaces vs
physical one. But this was not consistent between virtual interfaces.
If it is required to go back to the previous state, I think the best solution
would be the one explained above (revert e1622baf54df + add ndo_get_iflink()
where needed).

David, what is your opinion?

Regards,
Nicolas