public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Kory Maincent <kory.maincent@bootlin.com>
To: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Donald Hunter <donald.hunter@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Dent Project <dentproject@linuxfoundation.org>,
	kernel@pengutronix.de
Subject: Re: [PATCH net-next v2 2/8] net: ethtool: pse-pd: Expand C33 PSE status with class, power and extended state
Date: Mon, 10 Jun 2024 11:25:59 +0200	[thread overview]
Message-ID: <20240610112559.57806b8c@kmaincent-XPS-13-7390> (raw)
In-Reply-To: <ZmaMGWMOvILHy8Iu@pengutronix.de>

Hello Oleksij,

On Mon, 10 Jun 2024 07:16:09 +0200
Oleksij Rempel <o.rempel@pengutronix.de> wrote:

> Hi Köry,
> 
> Thank you for your work.
> 
> On Fri, Jun 07, 2024 at 09:30:19AM +0200, Kory Maincent wrote:
> > From: "Kory Maincent (Dent Project)" <kory.maincent@bootlin.com>  
> 
> ...
> 
> >  /**
> > diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
> > index 8733a3117902..ef65ad4612d2 100644
> > --- a/include/uapi/linux/ethtool.h
> > +++ b/include/uapi/linux/ethtool.h
> > @@ -752,6 +752,47 @@ enum ethtool_module_power_mode {
> >  	ETHTOOL_MODULE_POWER_MODE_HIGH,
> >  };
> >  
> > +/* C33 PSE extended state */
> > +enum ethtool_c33_pse_ext_state {
> > +	ETHTOOL_C33_PSE_EXT_STATE_UNKNOWN = 1,  
> 
> I assume, In case the state is unknown, better to set it to 0 and not
> report it to the user space in the first place. Do we really need it?

The pd692x0 report this for the unknown state: "Port is not mapped to physical
port, port is in unknown state, or PD692x0 fails to communicate with PD69208
device allocated for this port."
Also it has a status for open port (not connected) state.
(ETHTOOL_C33_PSE_EXT_SUBSTATE_V_OPEN)
Do you prefer to use the same error for both state?
 
> > +	ETHTOOL_C33_PSE_EXT_STATE_DETECTION,
> > +	ETHTOOL_C33_PSE_EXT_STATE_CLASSIFICATION_FAILURE,
> > +	ETHTOOL_C33_PSE_EXT_STATE_HARDWARE_ISSUE,
> > +	ETHTOOL_C33_PSE_EXT_STATE_VOLTAGE_ISSUE,
> > +	ETHTOOL_C33_PSE_EXT_STATE_CURRENT_ISSUE,
> > +	ETHTOOL_C33_PSE_EXT_STATE_POWER_BUDGET_EXCEEDED,  
> 
> What is the difference between POWER_BUDGET_EXCEEDED and
> STATE_CURRENT_ISSUE->CRT_OVERLOAD? If there is some difference, it
> should be commented.

Current overload seems to be describing the "Overload current detection range
(Icut)" As described in the IEEE standard.
Not sure If budget exceeded should use the same error.

> Please provide comments describing how all of this states and substates
> should be used.

The enum errors I wrote is a bit subjective and are taken from the PD692x0
port status list. Go ahead to purpose any change, I have tried to make
categories that make sense but I might have made wrong choice.

> >  /**
> >   * enum ethtool_pse_types - Types of PSE controller.
> >   * @ETHTOOL_PSE_UNKNOWN: Type of PSE controller is unknown
> > diff --git a/include/uapi/linux/ethtool_netlink.h
> > b/include/uapi/linux/ethtool_netlink.h index b49b804b9495..ccbe8294dfd5
> > 100644 --- a/include/uapi/linux/ethtool_netlink.h
> > +++ b/include/uapi/linux/ethtool_netlink.h
> > @@ -915,6 +915,10 @@ enum {
> >  	ETHTOOL_A_C33_PSE_ADMIN_STATE,		/* u32 */
> >  	ETHTOOL_A_C33_PSE_ADMIN_CONTROL,	/* u32 */
> >  	ETHTOOL_A_C33_PSE_PW_D_STATUS,		/* u32 */
> > +	ETHTOOL_A_C33_PSE_PW_CLASS,		/* u32 */
> > +	ETHTOOL_A_C33_PSE_ACTUAL_PW,		/* u32 */
> > +	ETHTOOL_A_C33_PSE_EXT_STATE,		/* u8 */
> > +	ETHTOOL_A_C33_PSE_EXT_SUBSTATE,		/* u8 */  
> 
> Please, increase the size to u32 for state and substate.

Ack,

> >  	/* add new constants above here */
> >  	__ETHTOOL_A_PSE_CNT,
> > diff --git a/net/ethtool/pse-pd.c b/net/ethtool/pse-pd.c
> > index 2c981d443f27..3d74cfe7765b 100644
> > --- a/net/ethtool/pse-pd.c
> > +++ b/net/ethtool/pse-pd.c
> > @@ -86,7 +86,14 @@ static int pse_reply_size(const struct ethnl_req_info
> > *req_base, len += nla_total_size(sizeof(u32)); /* _C33_PSE_ADMIN_STATE */
> >  	if (st->c33_pw_status > 0)
> >  		len += nla_total_size(sizeof(u32)); /*
> > _C33_PSE_PW_D_STATUS */ -
> > +	if (st->c33_pw_class > 0)
> > +		len += nla_total_size(sizeof(u32)); /* _C33_PSE_PW_CLASS */
> > +	if (st->c33_actual_pw > 0)
> > +		len += nla_total_size(sizeof(u32)); /* _C33_PSE_ACTUAL_PW
> > */
> > +	if (st->c33_ext_state_info.c33_pse_ext_state)
> > +		len += nla_total_size(sizeof(u8)); /* _C33_PSE_EXT_STATE */
> > +	if (st->c33_ext_state_info.__c33_pse_ext_substate)
> > +		len += nla_total_size(sizeof(u8)); /*
> > _C33_PSE_EXT_SUBSTATE */  
> 
> Substate can be properly decoded only if state is not zero.

Indeed, thanks for spotting that mistake.
 
> Please update Documentation/networking/ethtool-netlink.rst

Oh right, indeed. Forgot to add the netlink docs. 

Regards,
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

  reply	other threads:[~2024-06-10  9:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-07  7:30 [PATCH net-next v2 0/8] net: pse-pd: Add new PSE c33 features Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 1/8] net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP Kory Maincent
2024-06-10  5:18   ` Oleksij Rempel
2024-06-10  8:26     ` Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 2/8] net: ethtool: pse-pd: Expand C33 PSE status with class, power and extended state Kory Maincent
2024-06-10  5:16   ` Oleksij Rempel
2024-06-10  9:25     ` Kory Maincent [this message]
2024-06-11  8:05       ` Oleksij Rempel
2024-06-11 12:01         ` Kory Maincent
2024-06-12  9:08         ` Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 3/8] netlink: specs: Expand the PSE netlink command with C33 new features Kory Maincent
2024-06-07 10:09   ` Donald Hunter
2024-06-10  9:39     ` Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 4/8] net: pse-pd: pd692x0: Expand ethtool status message Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 5/8] net: pse-pd: Add new power limit get and set c33 features Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 6/8] net: ethtool: Add new power limit get and set features Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 7/8] netlink: specs: Expand the PSE netlink command with C33 pw-limit attributes Kory Maincent
2024-06-07  7:30 ` [PATCH net-next v2 8/8] net: pse-pd: pd692x0: Enhance with new current limit and voltage read callbacks Kory Maincent

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240610112559.57806b8c@kmaincent-XPS-13-7390 \
    --to=kory.maincent@bootlin.com \
    --cc=davem@davemloft.net \
    --cc=dentproject@linuxfoundation.org \
    --cc=donald.hunter@gmail.com \
    --cc=edumazet@google.com \
    --cc=kernel@pengutronix.de \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox