lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ