Re: [PATCH net-next 6/6] netdevsim: Add simple FIB resource controller via devlink
From: Jiri Pirko <jiri@resnulli.us>
Date: 2018-04-06 05:35:41
Thu, Apr 05, 2018 at 10:10:29PM CEST, dsa@cumulusnetworks.com wrote:
On 4/5/18 11:27 AM, Jiri Pirko wrote:quoted
Wed, Mar 28, 2018 at 03:22:00AM CEST, dsa@cumulusnetworks.com wrote:quoted
Add devlink support to netdevsim and use it to implement a simple, profile based resource controller. Only one controller is needed per namespace, so the first netdevsim netdevice in a namespace registers with devlink. If that device is deleted, the resource settings are deleted.I don't understand why you add 1:1 fixed relationship between netnamespace and devlink instance. That is highly misleading and reader might think that those 2 are somehow related. They are not. You can have multiple devlink instances for many ports in a single namespace.The netdevsim devlink instance is an example of limiting the number of FIB entries and FIB rules for a namespace. It is currently limited to the init_net based on past discussion. It does not make sense to have multiple resource controllers for the same network namespace, hence the limit of only registering with devlink on the first device create.
Devlink instance represents an ASIC. 1:1. There is no relation with network namespaces and should not be. I have no clue why you think so. The model looks as I described it down below in the picture.
quoted
Could you please clarify? Also, to see the relationship between individual netdevsim netdevices and the parent devlink instance, we should use devlink_port instances, like this: devlink1 devlink2 | | | | dl_port1_1 dlport1_2 dlport2_1 dlport2_2 | | | | eth0 eth1 eth2 eth3 Note that "devlink instance" reprensents one ASIC. The address of the devlink instance is the bus address of the ASIC. Here, you use address of some/first netdevsim netdev instance.The ASIC here is the kernel tables in a namespace. It does not make sense to have 2 devlink instances for a single namespace.
Again. No clue why you build relationship with namespace.
quoted
The way it is implemented in netdevsim by this patch is wrong on so many levels :( Could you please fix this? I'm more than happy to help you with this, please say so. Thanks!What is there to fix? Not creating a netdevsim device per netdevsim netdevice? That is completely unrelated to the devlink change.
To fit the model. Multiple devlink instances, each representing one "virtual" ASIC, devlink_port instances, 1 for each netdevsim port. Netdevsim port should simulate real devices. No real device should have 1:1 relation with network namespace. That is just simply wrong.