All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, Jiri Pirko <jiri@resnulli.us>,
	Madhu Chittim <madhu.chittim@intel.com>,
	Sridhar Samudrala <sridhar.samudrala@intel.com>,
	Simon Horman <horms@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	Sunil Kovvuri Goutham <sgoutham@marvell.com>,
	Jamal Hadi Salim <jhs@mojatatu.com>,
	Donald Hunter <donald.hunter@gmail.com>
Subject: Re: [PATCH v4 net-next 03/12] net-shapers: implement NL get operation
Date: Mon, 26 Aug 2024 18:55:55 -0700	[thread overview]
Message-ID: <20240826185555.3f460af4@kernel.org> (raw)
In-Reply-To: <0e5c2178-22e2-409e-8cbd-9aaa66594fdc@redhat.com>

On Fri, 23 Aug 2024 10:52:04 +0200 Paolo Abeni wrote:
> >> + * comprising the shaper scope and a scope-specific id.
> >> + */
> >> +struct net_shaper_ops {
> >> +	/**
> >> +	 * @group: create the specified shapers scheduling group
> >> +	 *
> >> +	 * Nest the @leaves shapers identified by @leaves_handles under the
> >> +	 * @root shaper identified by @root_handle. All the shapers belong
> >> +	 * to the network device @dev. The @leaves and @leaves_handles shaper
> >> +	 * arrays size is specified by @leaves_count.
> >> +	 * Create either the @leaves and the @root shaper; or if they already
> >> +	 * exists, links them together in the desired way.
> >> +	 * @leaves scope must be NET_SHAPER_SCOPE_QUEUE.  
> > 
> > Or SCOPE_NODE, no?  
> 
> I had a few back-and-forth between the two options, enforcing only QUEUE 
> leaves or allowing even NODE.
> 
> I think the first option is general enough - can create arbitrary 
> topologies with the same amount of operations - and leads to slightly 
> simpler code, but no objections for allow both.

Ah, so we can only "grow the tree from the side of the leaves", 
so to speak? We can't create a group in the middle of the hierarchy?
I have no strong use for groups in between, maybe just mention in
a comment or cover letter.

> >> +static int net_shaper_fill_handle(struct sk_buff *msg,
> >> +				  const struct net_shaper_handle *handle,
> >> +				  u32 type, const struct genl_info *info)
> >> +{
> >> +	struct nlattr *handle_attr;
> >> +
> >> +	if (handle->scope == NET_SHAPER_SCOPE_UNSPEC)
> >> +		return 0;  
> > 
> > In what context can we try to fill handle with scope unspec?  
> 
> Uhmm... should happen only in buggy situation. What about adding adding 
> WARN_ON_ONCE() ?

That's better, at least it will express that it's not expected.

> >> +	handle_attr = nla_nest_start_noflag(msg, type);
> >> +	if (!handle_attr)
> >> +		return -EMSGSIZE;
> >> +
> >> +	if (nla_put_u32(msg, NET_SHAPER_A_SCOPE, handle->scope) ||
> >> +	    (handle->scope >= NET_SHAPER_SCOPE_QUEUE &&
> >> +	     nla_put_u32(msg, NET_SHAPER_A_ID, handle->id)))
> >> +		goto handle_nest_cancel;  
> > 
> > So netdev root has no id and no scope?  
> 
> I don't understand the question.
> 
> The root handle has scope NETDEV and id 0, the id will not printed out 
> as redundant: there is only a scope NETDEV shaper per struct net_device.

Misread, yes, no id but it does have scope. That's fine, sorry.

  reply	other threads:[~2024-08-27  1:55 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-20 15:12 [PATCH v4 net-next 00/12] net: introduce TX H/W shaping API Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 01/12] tools: ynl: lift an assumption about spec file name Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 02/12] netlink: spec: add shaper YAML spec Paolo Abeni
2024-08-23  1:48   ` Jakub Kicinski
2024-08-23  8:35     ` Paolo Abeni
2024-08-23  9:04       ` Paolo Abeni
2024-08-27  1:50       ` Jakub Kicinski
2024-08-27  7:41         ` Paolo Abeni
2024-08-23  1:56   ` Jakub Kicinski
2024-08-20 15:12 ` [PATCH v4 net-next 03/12] net-shapers: implement NL get operation Paolo Abeni
2024-08-23  2:10   ` Jakub Kicinski
2024-08-23  8:52     ` Paolo Abeni
2024-08-27  1:55       ` Jakub Kicinski [this message]
2024-08-27  7:36         ` Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 04/12] net-shapers: implement NL set and delete operations Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 05/12] net-shapers: implement NL group operation Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 06/12] net-shapers: implement delete support for NODE scope shaper Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 07/12] netlink: spec: add shaper introspection support Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 08/12] net: shaper: implement " Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 09/12] testing: net-drv: add basic shaper test Paolo Abeni
2024-08-21 16:52   ` kernel test robot
2024-08-22  7:53     ` Paolo Abeni
2024-08-27 14:14       ` Simon Horman
2024-08-20 15:12 ` [PATCH v4 net-next 10/12] virtchnl: support queue rate limit and quanta size configuration Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 11/12] ice: Support VF " Paolo Abeni
2024-08-20 15:12 ` [PATCH v4 net-next 12/12] iavf: Add net_shaper_ops support Paolo Abeni
2024-08-20 23:03   ` kernel test robot
2024-08-22  0:58 ` [PATCH v4 net-next 00/12] net: introduce TX H/W shaping API Jakub Kicinski
2024-08-22  1:10 ` patchwork-bot+netdevbpf
2024-08-23  0:43 ` Jakub Kicinski
2024-08-23  7:51   ` Paolo Abeni
2024-08-27  2:14     ` Jakub Kicinski
2024-08-27  7:54       ` Paolo Abeni
2024-08-27 13:53         ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240826185555.3f460af4@kernel.org \
    --to=kuba@kernel.org \
    --cc=donald.hunter@gmail.com \
    --cc=horms@kernel.org \
    --cc=jhs@mojatatu.com \
    --cc=jiri@resnulli.us \
    --cc=john.fastabend@gmail.com \
    --cc=madhu.chittim@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sgoutham@marvell.com \
    --cc=sridhar.samudrala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.