Re: [PATCH net-next v2 4/7] devlink: allow subports on devlink PCI ports

Jiri Pirko
2019-03-21T08:56:10Z

Mon, Mar 18, 2019 at 08:16:42PM CET, jakub.kicinski@netronome.com wrote:
>On Mon, 18 Mar 2019 13:11:54 +0100, Jiri Pirko wrote:
>> >> >2. flavour should not be vf/pf, flavour should be hostport, switchport.
>> >> >Because switch is flat and agnostic of pf/vf/mdev.
>> >>
>> >> Not sure. It's good to have this kind of visibility.
>> >
>> >Yes, this subthread honestly makes me go from 60% sure to 95% sure we
>> >shouldn't do the dual object thing :( Seems like Parav is already
>> >confused by it and suggests host port can exist without switch port :(
>>
>> Although I understand your hesitation, the host ports are also
>> associated with the asic and should be under the devlink instance.
>> It is just a matter of proper documentation and clear code to avoid
>> confusions.
>
>They are certainly a part and belong to the ASIC, the question in my
>mind is more along the lines of do we want "one pipe/one port" or is
>it okay to have multiple software objects of the same kind for those
>objects.
>
>To put it differently - do want a port object for each port of the ASIC
>or do we want a port object for each netdev..

Perhaps "port" name of the object is misleading. From the beginning, I
ment to have it for both switch ports and host ports. I admit that "host
port" is a bit misleading, as it is not really a port of eswitch, but
the counter part. But if we introduce another object for that purpose in
devlink (like "partititon"), it would be a lot of duplication I think.

Question is, do we need the "host port"? Can't we just put a relation to
host netdev in the eswitch port.

So as you suggest, we would have
devlink_port -+-- switch netdev/ibdev
|
+-- host netdev/ibdev

So the "weights" of both switch/host netdev/ibdev to devlink_port
relations would be equivalent.

Then, the devlink_port would represent the whole "pipe" with both ends.

More I think about it, the more it makes sense to me...