On Wed, 31 Jul 2019 16:07:31 -0600, David Ahern wrote: > On 7/31/19 4:02 PM, Jakub Kicinski wrote: > > Can you elaborate further? Ports for most purposes are represented by > > netdevices. Devlink port instances expose global topological view of > > the ports which is primarily relevant if you can see the entire ASIC. > > I think the global configuration and global view of resources is still > > the most relevant need, so in your diagram you must account for some > > "all-seeing" instance, e.g.: > > > > namespace 1 | namespace 2 | ... | namespace N > > | | | > > { ports 1 } | { ports 2 } | ... | { ports N } > > | | | > > subdevlink 1 | subdevlink 2 | ... | subdevlink N > > \______ | _______/ > > master ASIC devlink > > ================================================= > > driver > > > > No? > > sure, there could be a master devlink visible to the user if that makes > sense or the driver can account for it behind the scenes as the sum of > the devlink instances. > > The goal is to allow ports within an asic [1] to be divided across > network namespace where each namespace sees a subset of the ports. This > allows creating multiple logical switches from a single physical asic. > > [1] within constraints imposed by the driver/hardware - for example to > account for resources shared by a set of ports. e.g., front panel ports > 1 - 4 have shared resources and must always be in the same devlink instance.
So the ASIC would start out all partitioned? Presumably some would still like to use it non-partitioned? What follows there must be a top level instance to decide on partitioning, and moving resources between sub-instances. Right now I don't think there is much info in devlink ports which would be relevant without full view of the ASIC..