All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mohsin Bashir <mohsin.bashr@gmail.com>
To: netdev@vger.kernel.org
Cc: dsahern@kernel.org, stephen@networkplumber.org,
	pabeni@redhat.com, kuba@kernel.org, ernis@linux.microsoft.com,
	mohsin.bashr@gmail.com
Subject: [PATCH iproute2-next v2 0/6] netshaper: Extend netshaper support
Date: Fri,  8 May 2026 19:23:47 -0700	[thread overview]
Message-ID: <20260509022353.3470738-1-mohsin.bashr@gmail.com> (raw)

From: Mohsin Bashir <hmohsin@meta.com>

This series extends the netshaper CLI with missing parameter support
and adds the group command for building scheduling hierarchies.

The existing netshaper tool only supports setting bw-max on individual
shapers. This series adds the remaining shaper attributes (bw-min,
weight) needed for TX scheduling, and introduces the group command
which ties leaf shapers to a parent node in a single operation.

Changelog:

  Patch 1:
  - parse_scope(): use loop over net_shaper_scope_names[]
    instead of hardcoded string comparisons
  - parse_rate(): replace magic number 8 with BITS_PER_BYTE

  Patch 2:
  - Add has_bw_min/has_bw_max/has_weight booleans so zero-valued
    attrs are correctly sent
  - Add has_handle_id; only send handle id when explicitly provided
  - Keep node id required in do_cmd(); only netdev scope has
    optional id
  - Only emit rate/weight attrs for set command, not show/delete
  - Validate ll_name_to_index() return, error on unknown device

  Patch 3:
  - Use print_rate() for bandwidth display instead of truncating
    to integer Mbps

  Patch 4 (new):
  - Extract struct shaper_args and parse_shaper_arg() helper to
    share argument parsing between do_cmd() and do_group()

  Patch 5 (was v1 patch 5, v1 patch 4 dropped):
  - Reuse parse_shaper_arg() for common argument parsing
  - Validate group handle and parent scopes are node or netdev
  - Require parent id when parent scope is node
  - Fold optional node handle id into do_group() only
  - Define NET_SHAPER_MAX_LEAVES (256) for leaves array size

  Patch 6:
  - Document node id as required for set/show/delete, optional
    only for group
  - Add author to man page

V1: https://lore.kernel.org/netdev/20260501011611.3533573-1-mohsin.bashr@gmail.com/

Mohsin Bashir (6):
  netshaper: Extract parse_scope() and parse_rate() helpers
  netshaper: Add bw-min and weight parameter support
  netshaper: Extend show output with parent, bw-min and weight
  netshaper: Extract struct shaper_args and parse_shaper_arg() helper
  netshaper: Add group command for creating scheduling hierarchies
  netshaper: Update man page for new parameters and group command

 include/utils.h       |   1 +
 man/man8/netshaper.8  | 140 ++++++++++--
 netshaper/netshaper.c | 485 ++++++++++++++++++++++++++++++++++--------
 3 files changed, 522 insertions(+), 104 deletions(-)

-- 
2.53.0-Meta


             reply	other threads:[~2026-05-09  2:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-09  2:23 Mohsin Bashir [this message]
2026-05-09  2:23 ` [PATCH iproute2-next v2 1/6] netshaper: Extract parse_scope() and parse_rate() helpers Mohsin Bashir
2026-05-09  2:23 ` [PATCH iproute2-next v2 2/6] netshaper: Add bw-min and weight parameter support Mohsin Bashir
2026-05-09  2:23 ` [PATCH iproute2-next v2 3/6] netshaper: Extend show output with parent, bw-min and weight Mohsin Bashir
2026-05-09  2:23 ` [PATCH iproute2-next v2 4/6] netshaper: Extract struct shaper_args and parse_shaper_arg() helper Mohsin Bashir
2026-05-09  2:23 ` [PATCH iproute2-next v2 5/6] netshaper: Add group command for creating scheduling hierarchies Mohsin Bashir
2026-05-09  2:23 ` [PATCH iproute2-next v2 6/6] netshaper: Update man page for new parameters and group command Mohsin Bashir
2026-05-09 16:16 ` [PATCH iproute2-next v2 0/6] netshaper: Extend netshaper support Stephen Hemminger

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=20260509022353.3470738-1-mohsin.bashr@gmail.com \
    --to=mohsin.bashr@gmail.com \
    --cc=dsahern@kernel.org \
    --cc=ernis@linux.microsoft.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=stephen@networkplumber.org \
    /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.