Subject: Re: [patch net-next RFC 0/6] Introduce devlink interface and first drivers to use it

From: Hannes Frederic Sowa <[email-masked]>
Date: Mon, 8 Feb 2016 11:15:38 +0100

Hello,

On 06.02.2016 20:40, Jiri Pirko wrote:
> Fri, Feb 05, 2016 at 06:38:42PM CET, [email-masked] wrote:
>> On Fri, Feb 05, 2016 at 11:01:22AM +0100, Hannes Frederic Sowa wrote:
>>>
>>> Okay. I see it more as changing mode of operation of hardware and thus has
>>> not really anything to do with networking. If you say you change ethernet to
>>> infiniband it has something to do with networking, sure. But I am fine with
>>> this, I just thought the code size could be reduced by adding this to sysfs
>>> quite a lot. I don't have a strong opinion on this.
>>
>> there is already a way to change eth/ib via
>> echo 'eth' > /sys/bus/pci/drivers/mlx4_core/0000:02:00.0/mlx4_port1
>>
>> sounds like this is another way to achieve the same?
>
> It is. However the current way is driver-specific, not correct.

Why is driver specific not correct? Actually it is very much a device 
specific thing, isn't it?

> For mlx5, we need the same, it cannot be done in this way. Do devlink is
> the correct way to go.

Do two drivers already justify a new complete netlink api? Doesn't this 
create the same problems like netdevice naming problems which needed 
multiple years to become stable in case we have multiple cards or some 
administrator reorders the cards (biosdevorder, systemd/udev issues)? 
Are ports always stable? How can we have a 1:1 relationship with 
ifindexes and how can they be stable? It is impossible to use that in 
scripts?

>> Why not hide echo/cat in iproute2 instead of adding parallel netlink api?
>> Or this is for switches instead of nics?
>> Then why it's not adding to switchdev?
>
> Note this is not specific to switch ASICs. This is for all network devices.

That's actually my fear. The relationship from "devlink-names" to 
ifindexes I didn't understand at all architecturally.

Bye,
Hannes