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

Kory Maincent
2025-02-27T14:57:31Z

On Thu, 27 Feb 2025 08:40:25 +0100
Oleksij Rempel <o.rempel@pengutronix.de> wrote:

> On Wed, Feb 26, 2025 at 06:42:57PM -0800, Jakub Kicinski wrote:
> > On Wed, 26 Feb 2025 07:06:55 +0100 Oleksij Rempel wrote:
> > > 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
> >
> > I don't see any mention of a domain in these docs.
> > This patchset is creating a concept of "domain" but does
> > not expose it as an object.
>
> Ok, I see. @Köry, can you please provide regulator_summary with some
> inlined comments to regulators related to the PSE components and PSE
> related outputs of ethtool (or what ever tool you are using).
>
> I wont to use this examples to answer.

On my side, I am not close to using sysfs. As we do all configurations through
ethtool I have assumed we should continue with ethtool.
I think we should set the port priority through ethtool, but indeed the PSE
power domain method get and set could be moved to sysfs as it is not something
relative to the port but to a group of ports. Ethtool should still report the
PSE power domain ID of a port to know which domain the port is.

@Oleksij here it is:

# cat /sys/kernel/debug/regulator/regulator_summary
regulator use open bypass opmode voltage current min max
---------------------------------------------------------------------------------------
regulator-dummy 5 4 0 unknown 0mV 0mA 0mV 0mV
d00e0000.sata-target 1 0mA 0mV 0mV
d00e0000.sata-phy 1 0mA 0mV 0mV
d00e0000.sata-ahci 1 0mA 0mV 0mV
spi0.0-vcc 1 0mA 0mV 0mV
pse-reg 1 4 0 unknown 0mV 0mA 0mV 0mV
pse-0-0020_pi0 0 1 0 unknown 53816mV 2369mA 0mV 0mV
0-0020-pse-0-0020_pi0 0 0mA 0mV 0mV
pse-0-0020_pi2 0 1 0 unknown 53816mV 2369mA 0mV 0mV
0-0020-pse-0-0020_pi2 0 0mA 0mV 0mV
pse-0-0020_pi7 0 1 0 unknown 53816mV 2369mA 0mV 0mV
0-0020-pse-0-0020_pi7 0 0mA 0mV 0mV
pse-reg2 1 2 0 unknown 0mV 0mA 0mV 0mV
pse-0-0020_pi1 0 0 0 unknown 53816mV 4738mA 0mV 0mV
vcc_sd1 2 1 0 unknown 1800mV 0mA 1800mV 3300mV
d00d0000.mmc-vqmmc 1 0mA 1800mV 1950mV

# ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do pse-get --json
'{"header":{"dev-name":"wan"}}'
{'c33-pse-admin-state': 2,
'c33-pse-avail-pw-limit': 127500,
'c33-pse-pw-d-status': 2,
'c33-pse-pw-limit-ranges': [{'max': 99900, 'min': 2000}],
'header': {'dev-index': 4, 'dev-name': 'wan'},
'pse-budget-eval-strat': 2,
'pse-prio': 0,
'pse-prio-max': 8,
'pse-pw-d-id': 1}

# ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do pse-set --json
'{"header":{"dev-name":"wan"}, "pse-prio":1}'
None
# ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do pse-set --json
'{"header":{"dev-name":"wan"}, "c33-pse-avail-pw-limit":15000}'
None

Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering