Hi Nithin,

<snip>...
> > You are missing the shaper_shared_(packet, byte)_mode supported for
> non-leaf and leaf nodes in struct rte_tm_level_capabilities.
> >
> > The description of this nodes should be aligned with the description of e.g.
> shaper_shared_n_max field: basically, we want to say that, when true, the
> flag signifies there is at least on non-leaf/leaf node on this level that can 
> be
> part of a shared shaper that works in packet/byte mode. Makes sense?
> 
> I intentionally didn't add shaper_shared_(packet, byte)_mode in node and
> level
> capabilities and added it in only global cap assuming existing semantics are
> enforcing that.
> 
> Currently, except for 'shaper_shared_n_max', all the other existing shared
> shaper capabilities like
> shaper_shared_dual_rate_n_max, shaper_shared_rate_min, etc are only
> provided in global cap.
> 
> I felt the semantics are as such because, shared shaper doesn't really belong
> to any node
> or level and any node from any level can attach to a particular shared shaper.
> Isn't it so
> ?

That's exactly why we need to formulate node/level capability from node's 
perspective, and not from the shared shaper's perspective, as a shared shaper 
is by definition related to a set of nodes, not just one node.

The fact that a given node can be part of a shared shaper that works in packet 
or byte mode, etc is a node capability in itself, right? So the node's 
capability called "shaper_shared_(packet, byte)_mode" being supported by the 
node means that this specific node can be part of a shared shaper that has 
those properties. To me, this is a valuable thing to capture in node/level 
capabilities.

We already have other node level capabilities for shared shaper, and we apply 
the same rationale there.

What do you think?

Regards,
Cristian

Reply via email to