All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2-next v2 0/6] netshaper: Extend netshaper support
@ 2026-05-09  2:23 Mohsin Bashir
  2026-05-09  2:23 ` [PATCH iproute2-next v2 1/6] netshaper: Extract parse_scope() and parse_rate() helpers Mohsin Bashir
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Mohsin Bashir @ 2026-05-09  2:23 UTC (permalink / raw)
  To: netdev; +Cc: dsahern, stephen, pabeni, kuba, ernis, mohsin.bashr

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-05-09 16:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-09  2:23 [PATCH iproute2-next v2 0/6] netshaper: Extend netshaper support Mohsin Bashir
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

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.