Re: [PATCH net-next v6 06/12] net: pse-pd: Add support for budget evaluation strategies
From: Kory Maincent
Date: Mon Mar 24 2025 - 12:39:24 EST
Hello Kyle, Oleksij,
On Thu, 20 Mar 2025 17:35:35 +0100
Kory Maincent <kory.maincent@xxxxxxxxxxx> wrote:
> On Mon, 17 Mar 2025 13:40:45 +0100
> Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote:
>
> > On Tue, Mar 04, 2025 at 11:18:55AM +0100, Kory Maincent wrote:
> > > From: Kory Maincent (Dent Project) <kory.maincent@xxxxxxxxxxx>
> > > +int pse_ethtool_set_prio(struct pse_control *psec,
> > > + struct netlink_ext_ack *extack,
> > > + unsigned int prio)
> > > +{
> > > + struct pse_controller_dev *pcdev = psec->pcdev;
> > > + const struct pse_controller_ops *ops;
> > > + int ret = 0;
> > > +
> > > + if (!pcdev->pi[psec->id].pw_d) {
> > > + NL_SET_ERR_MSG(extack, "no power domain attached");
> > > + return -EOPNOTSUPP;
> > > + }
> > > +
> > > + /* We don't want priority change in the middle of an
> > > + * enable/disable call or a priority mode change
> > > + */
> > > + mutex_lock(&pcdev->lock);
> > > + switch (pcdev->pi[psec->id].pw_d->budget_eval_strategy) {
> > > + case ETHTOOL_PSE_BUDGET_EVAL_STRAT_STATIC:
> > > + if (prio > pcdev->nr_lines) {
> > > + NL_SET_ERR_MSG_FMT(extack,
> > > + "priority %d exceed priority
> > > max %d",
> > > + prio, pcdev->nr_lines);
> > > + ret = -ERANGE;
> > > + goto out;
> > > + }
> > > +
> > > + pcdev->pi[psec->id].prio = prio;
> >
> > In case we already out of the budget, we will need to re-evaluate the
> > prios. New configuration may affect state of ports.
> >
> > Potentially we may need a bulk interface to assign prios, to speed-up
> > reconfiguration. But it is not needed right now.
>
> Oh indeed, I missed that. /o\
> I will try to add something but lets keep it not too complex! ^^ Don't add me
> more work!! ;)
Small question on PSE core behavior for PoE users.
If we want to enable a port but we can't due to over budget.
Should we :
- Report an error (or not) and save the enable action from userspace. On that
case, if enough budget is available later due to priority change or port
disconnected the PSE core will try automatically to re enable the PoE port.
The port will then be enabled without any action from the user.
- Report an error but do nothing. The user will need to rerun the enable
command later to try to enable the port again.
How is it currently managed in PoE poprietary userspace tools?
Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com