Thread (42 messages) 42 messages, 6 authors, 2025-03-04

Re: [PATCH net-next v5 06/12] net: pse-pd: Add support for budget evaluation strategies

flat view

From: Oleksij Rempel <o.rempel@pengutronix.de>
Date: 2025-02-26 06:07:19
Also in: linux-devicetree, linux-doc, lkml

On Wed, Feb 26, 2025 at 06:59:45AM +0100, Oleksij Rempel wrote:
On Tue, Feb 25, 2025 at 05:47:52PM -0800, Jakub Kicinski wrote:
quoted
On Tue, 25 Feb 2025 10:25:58 +0100 Kory Maincent wrote:
quoted
On Mon, 24 Feb 2025 13:45:22 -0800
Jakub Kicinski [off-list ref] wrote:
quoted
quoted
No they can't for now. Even different PSE power domains within the same PSE
controller. I will make it explicit.    
Sounds like the property is placed at the wrong level of the hierarchy,
then.  
When a PSE controller appears to be able to support mixed budget strategy and
could switch between them it will be better to have it set at the PSE power
domain level. As the budget is per PSE power domain, its strategy should also
be per PSE power domain.
For now, it is simply not configurable and can't be mixed. It is hard-coded by
the PSE driver.
Yes, but uAPI is forever. We will have to live with those domain
attributes duplicated on each port. Presumably these port attributes
will never support a SET operation, since the set should be towards 
the domain? The uAPI does not inspire confidence. If we need more
drivers to define a common API maybe a local sysfs API in the driver
will do?
I tend to disagree here. The evaluation/allocation methods should be
per port.  

At this step, we support only "hardware"(firmware)-based methods:  
1. Static – Plain hardware classification-based power allocation per
port.  
2. Dynamic – Hardware classification with constant measurement for
optimization.  

For some devices, the dynamic method may not work reliably enough,
so we will need to switch to a fixed allocation method, which is
currently not implemented but will be set via user space. This
should be configurable per port.  

At some point, we will need to introduce LLDP-based allocation from
user space. This will be managed by a daemon.

For testing, here’s an example of how LLDP-based power negotiation can
be analyzed:
https://telecomtest.com.au/wp-content/uploads/2016/12/PDA-LLDP-Powered-Device-LLDP-Analyzer.pdf
Here is one example how it is done by HP switches:
https://arubanetworking.hpe.com/techdocs/AOS-CX/10.08/HTML/monitoring_6200/Content/Chp_PoE/PoE_cmds/pow-ove-eth-all-by.htm

switch(config)# interface 1/1/1    <---- per interface
switch(config-if)# power-over-ethernet allocate-by usage
switch(config-if)# power-over-ethernet allocate-by class

Cisco example:
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/93x/power-over-ethernet/configuration/configuring-power-over-ethernet/m-configuring-power-over-ethernet.html

switch(config)# interface ethernet1/1   <---- per interface
switch(config-if)# power inline auto

-- 
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 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help