From: Tariq Toukan <tariqt@nvidia.com>
To: "David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Eric Dumazet <edumazet@google.com>,
"Andrew Lunn" <andrew+netdev@lunn.ch>
Cc: <netdev@vger.kernel.org>, Saeed Mahameed <saeedm@nvidia.com>,
Gal Pressman <gal@nvidia.com>,
Leon Romanovsky <leonro@nvidia.com>,
Jiri Pirko <jiri@resnulli.us>, Tariq Toukan <tariqt@nvidia.com>
Subject: [PATCH net-next V2 0/8] net/mlx5: ConnectX-8 SW Steering + Rate management on traffic classes
Date: Fri, 15 Nov 2024 00:09:29 +0200 [thread overview]
Message-ID: <20241114220937.719507-1-tariqt@nvidia.com> (raw)
Hi,
This patchset consists of two features:
1. In patches 1-2, Itamar adds SW Steering support for ConnectX-8.
2. Followed by patches by Carolina that add rate management support on
traffic classes in devlink and mlx5, more details below [1].
Series generated against:
commit ef04d290c013 ("net: page_pool: do not count normal frag allocation in stats")
Regards,
Tariq
V2:
- Included <linux/dcbnl.h> in devlink.h to resolve missing
IEEE_8021QAZ_MAX_TCS definition.
- Refactored the rate-tc-bw attribute structure to use a separate
rate-tc-index.
- Updated patch 2/6 title.
[1]
This patch series extends the devlink-rate API to support traffic class
(TC) bandwidth management, enabling more granular control over traffic
shaping and rate limiting across multiple TCs. The API now allows users
to specify bandwidth proportions for different traffic classes in a
single command. This is particularly useful for managing Enhanced
Transmission Selection (ETS) for groups of Virtual Functions (VFs),
allowing precise bandwidth allocation across traffic classes.
Additionally the series refines the QoS handling in net/mlx5 to support
TC arbitration and bandwidth management on vports and rate nodes.
Extend devlink-rate API to support rate management on TCs:
- devlink: Extend the devlink rate API to support traffic class
bandwidth management
Introduce a no-op implementation:
- net/mlx5: Add no-op implementation for setting tc-bw on rate objects
Introduce new fields to support new scheduling elements:
- net/mlx5: Add support for new scheduling elements
Add support for enabling and disabling TC QoS on vports and nodes:
- net/mlx5: Add support for setting tc-bw on nodes
- net/mlx5: Add traffic class scheduling support for vport QoS
Support for setting tc-bw on rate objects:
- net/mlx5: Manage TC arbiter nodes and implement full support for
tc-bw
Carolina Jubran (6):
devlink: Extend devlink rate API with traffic classes bandwidth
management
net/mlx5: Add no-op implementation for setting tc-bw on rate objects
net/mlx5: Add support for new scheduling elements
net/mlx5: Add support for setting tc-bw on nodes
net/mlx5: Add traffic class scheduling support for vport QoS
net/mlx5: Manage TC arbiter nodes and implement full support for tc-bw
Itamar Gozlan (2):
net/mlx5: DR, expand SWS STE callbacks and consolidate common structs
net/mlx5: DR, add support for ConnectX-8 steering
Documentation/netlink/specs/devlink.yaml | 22 +
.../net/ethernet/mellanox/mlx5/core/Makefile | 1 +
.../net/ethernet/mellanox/mlx5/core/devlink.c | 2 +
.../net/ethernet/mellanox/mlx5/core/esw/qos.c | 795 +++++++++++++++++-
.../net/ethernet/mellanox/mlx5/core/esw/qos.h | 4 +
.../net/ethernet/mellanox/mlx5/core/eswitch.h | 13 +-
drivers/net/ethernet/mellanox/mlx5/core/rl.c | 4 +
.../mlx5/core/steering/sws/dr_domain.c | 2 +-
.../mellanox/mlx5/core/steering/sws/dr_ste.c | 6 +-
.../mellanox/mlx5/core/steering/sws/dr_ste.h | 19 +-
.../mlx5/core/steering/sws/dr_ste_v0.c | 6 +-
.../mlx5/core/steering/sws/dr_ste_v1.c | 207 +----
.../mlx5/core/steering/sws/dr_ste_v1.h | 147 +++-
.../mlx5/core/steering/sws/dr_ste_v2.c | 169 +---
.../mlx5/core/steering/sws/dr_ste_v2.h | 168 ++++
.../mlx5/core/steering/sws/dr_ste_v3.c | 221 +++++
.../mlx5/core/steering/sws/mlx5_ifc_dr.h | 40 +
.../mellanox/mlx5/core/steering/sws/mlx5dr.h | 2 +-
include/linux/mlx5/mlx5_ifc.h | 15 +-
include/net/devlink.h | 7 +
include/uapi/linux/devlink.h | 4 +
net/devlink/netlink_gen.c | 15 +-
net/devlink/netlink_gen.h | 1 +
net/devlink/rate.c | 71 +-
24 files changed, 1559 insertions(+), 382 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c
--
2.44.0
next reply other threads:[~2024-11-14 22:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 22:09 Tariq Toukan [this message]
2024-11-14 22:09 ` [PATCH net-next V2 1/8] net/mlx5: DR, expand SWS STE callbacks and consolidate common structs Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 2/8] net/mlx5: DR, add support for ConnectX-8 steering Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 3/8] devlink: Extend devlink rate API with traffic classes bandwidth management Tariq Toukan
2024-11-15 7:51 ` Jiri Pirko
2024-11-17 14:33 ` Carolina Jubran
2024-11-17 14:57 ` Jiri Pirko
2024-11-15 10:15 ` Paolo Abeni
2024-11-17 14:34 ` Carolina Jubran
2024-11-14 22:09 ` [PATCH net-next V2 4/8] net/mlx5: Add no-op implementation for setting tc-bw on rate objects Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 5/8] net/mlx5: Add support for new scheduling elements Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 6/8] net/mlx5: Add support for setting tc-bw on nodes Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 7/8] net/mlx5: Add traffic class scheduling support for vport QoS Tariq Toukan
2024-11-14 22:09 ` [PATCH net-next V2 8/8] net/mlx5: Manage TC arbiter nodes and implement full support for tc-bw Tariq Toukan
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=20241114220937.719507-1-tariqt@nvidia.com \
--to=tariqt@nvidia.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gal@nvidia.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=leonro@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox