From: Donald Hunter <donald.hunter@gmail.com>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
Oleksij Rempel <o.rempel@pengutronix.de>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
Dent Project <dentproject@linuxfoundation.org>,
kernel@pengutronix.de
Subject: Re: [PATCH 2/8] net: ethtool: pse-pd: Expand C33 PSE status with class, power and status message
Date: Thu, 30 May 2024 11:32:23 +0100 [thread overview]
Message-ID: <m2jzjbd1zc.fsf@gmail.com> (raw)
In-Reply-To: <20240529-feature_poe_power_cap-v1-2-0c4b1d5953b8@bootlin.com> (Kory Maincent's message of "Wed, 29 May 2024 16:09:29 +0200")
Kory Maincent <kory.maincent@bootlin.com> writes:
> From: "Kory Maincent (Dent Project)" <kory.maincent@bootlin.com>
>
> This update expands the status information provided by ethtool for PSE c33.
> It includes details such as the detected class, current power delivered,
> and a detailed status message.
>
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
> include/linux/pse-pd/pse.h | 8 ++++++++
> include/uapi/linux/ethtool_netlink.h | 3 +++
> net/ethtool/pse-pd.c | 22 ++++++++++++++++++++++
> 3 files changed, 33 insertions(+)
>
> diff --git a/include/linux/pse-pd/pse.h b/include/linux/pse-pd/pse.h
> index 6eec24ffa866..04219ca20d60 100644
> --- a/include/linux/pse-pd/pse.h
> +++ b/include/linux/pse-pd/pse.h
> @@ -36,12 +36,20 @@ struct pse_control_config {
> * functions. IEEE 802.3-2022 30.9.1.1.2 aPSEAdminState
> * @c33_pw_status: power detection status of the PSE.
> * IEEE 802.3-2022 30.9.1.1.5 aPSEPowerDetectionStatus:
> + * @c33_pw_class: detected class of a powered PD
> + * IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification
> + * @c33_actual_pw: power currently delivered by the PSE in mW
> + * IEEE 802.3-2022 30.9.1.1.23 aPSEActualPower
> + * @c33_pw_status_msg: detailed power detection status of the PSE
> */
> struct pse_control_status {
> enum ethtool_podl_pse_admin_state podl_admin_state;
> enum ethtool_podl_pse_pw_d_status podl_pw_status;
> enum ethtool_c33_pse_admin_state c33_admin_state;
> enum ethtool_c33_pse_pw_d_status c33_pw_status;
> + u32 c33_pw_class;
> + u32 c33_actual_pw;
> + const char *c33_pw_status_msg;
> };
>
> /**
> diff --git a/include/uapi/linux/ethtool_netlink.h b/include/uapi/linux/ethtool_netlink.h
> index b49b804b9495..c3f288b737e6 100644
> --- a/include/uapi/linux/ethtool_netlink.h
> +++ b/include/uapi/linux/ethtool_netlink.h
> @@ -915,6 +915,9 @@ 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_STATUS_MSG, /* binary */
It looks like the type is 'string' ?
> + ETHTOOL_A_C33_PSE_PW_CLASS, /* u32 */
> + ETHTOOL_A_C33_PSE_ACTUAL_PW, /* u32 */
>
> /* 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..faddc14efbea 100644
> --- a/net/ethtool/pse-pd.c
> +++ b/net/ethtool/pse-pd.c
> @@ -86,6 +86,13 @@ 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_pw_status_msg)
> + /* _C33_PSE_PW_STATUS_MSG */
> + len += nla_total_size(strlen(st->c33_pw_status_msg) + 1);
>
> return len;
> }
> @@ -117,6 +124,21 @@ static int pse_fill_reply(struct sk_buff *skb,
> st->c33_pw_status))
> return -EMSGSIZE;
>
> + if (st->c33_pw_class > 0 &&
> + nla_put_u32(skb, ETHTOOL_A_C33_PSE_PW_CLASS,
> + st->c33_pw_class))
> + return -EMSGSIZE;
> +
> + if (st->c33_actual_pw > 0 &&
> + nla_put_u32(skb, ETHTOOL_A_C33_PSE_ACTUAL_PW,
> + st->c33_actual_pw))
> + return -EMSGSIZE;
> +
> + if (st->c33_pw_status_msg &&
> + nla_put_string(skb, ETHTOOL_A_C33_PSE_PW_STATUS_MSG,
> + st->c33_pw_status_msg))
> + return -EMSGSIZE;
> +
> return 0;
> }
next prev parent reply other threads:[~2024-05-30 12:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 14:09 [PATCH 0/8] net: pse-pd: Add new PSE c33 features Kory Maincent
2024-05-29 14:09 ` [PATCH 1/8] net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP Kory Maincent
2024-05-29 23:02 ` Andrew Lunn
2024-05-29 14:09 ` [PATCH 2/8] net: ethtool: pse-pd: Expand C33 PSE status with class, power and status message Kory Maincent
2024-05-30 10:32 ` Donald Hunter [this message]
2024-05-30 12:58 ` Kory Maincent
2024-05-29 14:09 ` [PATCH 3/8] netlink: specs: Expand the PSE netlink command with C33 new features Kory Maincent
2024-05-30 10:31 ` Donald Hunter
2024-05-29 14:09 ` [PATCH 4/8] net: pse-pd: pd692x0: Expand ethtool status message Kory Maincent
2024-05-29 23:13 ` Andrew Lunn
2024-05-30 9:33 ` Kory Maincent
2024-05-30 10:13 ` Oleksij Rempel
2024-05-29 14:09 ` [PATCH 5/8] net: pse-pd: Add new power limit get and set c33 features Kory Maincent
2024-05-29 14:09 ` [PATCH 6/8] net: ethtool: Add new power limit get and set features Kory Maincent
2024-05-29 14:09 ` [PATCH 7/8] netlink: specs: Expand the PSE netlink command with C33 pw-limit attributes Kory Maincent
2024-05-29 14:09 ` [PATCH 8/8] net: pse-pd: pd692x0: Enhance with new current limit and voltage read callbacks Kory Maincent
2024-05-29 14:13 ` [PATCH 0/8] net: pse-pd: Add new PSE c33 features 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=m2jzjbd1zc.fsf@gmail.com \
--to=donald.hunter@gmail.com \
--cc=davem@davemloft.net \
--cc=dentproject@linuxfoundation.org \
--cc=edumazet@google.com \
--cc=kernel@pengutronix.de \
--cc=kory.maincent@bootlin.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.