Subject: Re: [PATCH v6 net-next 02/15] netlink: spec: add shaper YAML spec

From: Jakub Kicinski <[email-masked]>
Date: Thu, 5 Sep 2024 08:05:02 -0700

On Thu, 5 Sep 2024 16:51:00 +0200 Paolo Abeni wrote:
> On 9/5/24 03:03, Jakub Kicinski wrote:
> > On Wed,  4 Sep 2024 15:53:34 +0200 Paolo Abeni wrote:  
> >> +      -
> >> +        name: node
> >> +        type: nest
> >> +        nested-attributes: node-info
> >> +        doc: |
> >> +           Describes the node shaper for a @group operation.
> >> +           Differently from @leaves and @shaper allow specifying
> >> +           the shaper parent handle, too.  
> > 
> > Parent handle is inside node scope? Why are leaves outside and parent
> > inside? Both should be at the same scope, preferably main scope.  
> 
> The group() op receives as arguments, in the main scope:
> 
> ifindex
> node
> leaves
> 
> 'parent' is a nested attribute for 'node', exactly as 'handle'. We need 
> to specify both to identify the 'node' itself (via the 'handle') and to 
> specify where in the hierarchy the 'node' will be located (via the 
> 'parent'). Do I read correctly that you would prefer:
> 
> ifindex
> node_handle
> node_parent
> leaves

I don't see example uses in the cover letter or the test so there's 
a good chance I'm missing something, but... why node_parent?
The only thing you need to know about the parent is its handle,
so just "parent", right?

Also why node_handle? Just "handle", and other attrs of the node can
live in the main scope.

Unless you have a strong reason to do this to simplify the code -
"from netlink perspective" it looks like unnecessary nesting.
The operation arguments describe the node, there's no need to nest
things in another layer.