[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aJyEMob8kFAvD-HU@pengutronix.de>
Date: Wed, 13 Aug 2025 14:25:22 +0200
From: Oleksij Rempel <o.rempel@...gutronix.de>
To: Kory Maincent <kory.maincent@...tlin.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Andrew Lunn <andrew@...n.ch>, Michal Kubecek <mkubecek@...e.cz>,
Dent Project <dentproject@...uxfoundation.org>,
Kyle Swenson <kyle.swenson@....tech>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH ethtool v2 2/3] ethtool: pse-pd: Add PSE priority support
Hi Kory,
Thank you for your work! Here are some review comments...
On Wed, Aug 13, 2025 at 10:57:51AM +0200, Kory Maincent wrote:
> From: Kory Maincent (Dent Project) <kory.maincent@...tlin.com>
>
> Add support for PSE (Power Sourcing Equipment) priority management:
> - Add priority configuration parameter (prio) for port priority management
> - Display power domain index, maximum priority, and current priority
>
> Signed-off-by: Kory Maincent <kory.maincent@...tlin.com>
> ---
> ethtool.8.in | 13 +++++++++++++
> ethtool.c | 1 +
> netlink/pse-pd.c | 29 +++++++++++++++++++++++++++++
> 3 files changed, 43 insertions(+)
>
> diff --git a/ethtool.8.in b/ethtool.8.in
> index 29b8a8c..163b2b0 100644
> --- a/ethtool.8.in
> +++ b/ethtool.8.in
> @@ -561,6 +561,7 @@ ethtool \- query or control network driver and hardware settings
> .RB [ c33\-pse\-admin\-control
> .BR enable | disable ]
> .BN c33\-pse\-avail\-pw\-limit N
> +.BN prio N
> .HP
> .B ethtool \-\-flash\-module\-firmware
> .I devname
> @@ -1911,6 +1912,15 @@ This attribute specifies the allowed power limit ranges in mW for
> configuring the c33-pse-avail-pw-limit parameter. It defines the valid
> power levels that can be assigned to the c33 PSE in compliance with the
> c33 standard.
> +.TP
> +.B power-domain-index
> +This attribute defines the index of the PSE Power Domain.
May be:
Reports the index of the PSE power domain the port belongs to. Every
port belongs to exactly one power domain. Port priorities are defined
within that power domain.
Each power domain may have its own maximum budget (e.g., 100 W per
domain) in addition to a system-wide budget (e.g., 200 W overall).
Domain limits are enforced first: if a single domain reaches its budget,
only ports in that domain are affected. The system-wide budget is
enforced across all domains; only when it is exceeded do cross-domain
priorities apply.
> +.TP
> +.B priority-max
> +This attribute defines the maximum priority available for the PSE.
Reports the maximum configurable port priority value within the reported
power domain. The valid range for prio is 0 to priority-max (inclusive).
> +.TP
> +.B priority
> +This attribute defines the currently configured priority for the PSE.
Reports the currently configured port priority within the reported power
domain. Lower numeric values indicate higher priority: 0 is the highest
priority.
> .RE
> .TP
> @@ -1930,6 +1940,9 @@ This parameter manages c33 PSE Admin operations in accordance with the IEEE
> This parameter manages c33 PSE Available Power Limit in mW, in accordance
> with the IEEE 802.3-2022 33.2.4.4 Variables (pse_available_power)
> specification.
> +.TP
> +.B prio \ N
> +This parameter manages port priority.
Set the port priority, scoped to the port's power domain
as reported by power-domain-index. Lower values indicate higher
priority; 0 is the highest. The valid range is 0 to the
priority-max reported by --show-pse.
When a single domain exceeds its budget, ports in that domain are
powered up/down by priority (highest first for power-up; lowest shed
first). When the system-wide budget is exceeded, priority ordering is
applied across domains.
> .RE
> .TP
> diff --git a/ethtool.c b/ethtool.c
> index 215f566..948d551 100644
> --- a/ethtool.c
> +++ b/ethtool.c
> @@ -6339,6 +6339,7 @@ static const struct option args[] = {
> .xhelp = " [ podl-pse-admin-control enable|disable ]\n"
> " [ c33-pse-admin-control enable|disable ]\n"
> " [ c33-pse-avail-pw-limit N ]\n"
> + " [ prio N ]\n"
> },
> {
> .opts = "--flash-module-firmware",
> diff --git a/netlink/pse-pd.c b/netlink/pse-pd.c
> index fd1fc4d..5bde176 100644
> --- a/netlink/pse-pd.c
> +++ b/netlink/pse-pd.c
> @@ -420,6 +420,29 @@ int pse_reply_cb(const struct nlmsghdr *nlhdr, void *data)
> }
> }
>
> + if (tb[ETHTOOL_A_PSE_PW_D_ID]) {
> + u32 val;
> +
> + val = mnl_attr_get_u32(tb[ETHTOOL_A_PSE_PW_D_ID]);
> + print_uint(PRINT_ANY, "power-domain-index",
> + "Power domain index: %u\n", val);
> + }
> +
> + if (tb[ETHTOOL_A_PSE_PRIO_MAX]) {
> + u32 val;
> +
> + val = mnl_attr_get_u32(tb[ETHTOOL_A_PSE_PRIO_MAX]);
> + print_uint(PRINT_ANY, "priority-max",
> + "Max allowed priority: %u\n", val);
> + }
> +
> + if (tb[ETHTOOL_A_PSE_PRIO]) {
> + u32 val;
> +
> + val = mnl_attr_get_u32(tb[ETHTOOL_A_PSE_PRIO]);
> + print_uint(PRINT_ANY, "priority", "Priority %u\n", val);
missing colon
print_uint(PRINT_ANY, "priority", "Priority: %u\n", val);
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Powered by blists - more mailing lists