Re: [PATCH v2 3/3] netlink: add LINKSTATE SQI support
From: Michal Kubecek
Date: Sun Jun 07 2020 - 16:25:00 EST
On Thu, May 28, 2020 at 01:54:14PM +0200, Oleksij Rempel wrote:
> Some PHYs provide Signal Quality Index (SQI) if the link is in active
> state. This information can help to diagnose cable and system design
> related issues.
>
> Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
> Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Reviewed-by: Michal Kubecek <mkubecek@xxxxxxx>
> ---
> netlink/desc-ethtool.c | 2 ++
> netlink/settings.c | 16 ++++++++++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/netlink/desc-ethtool.c b/netlink/desc-ethtool.c
> index b0a793c..8f4c36b 100644
> --- a/netlink/desc-ethtool.c
> +++ b/netlink/desc-ethtool.c
> @@ -93,6 +93,8 @@ static const struct pretty_nla_desc __linkstate_desc[] = {
> NLATTR_DESC_INVALID(ETHTOOL_A_LINKSTATE_UNSPEC),
> NLATTR_DESC_NESTED(ETHTOOL_A_LINKSTATE_HEADER, header),
> NLATTR_DESC_BOOL(ETHTOOL_A_LINKSTATE_LINK),
> + NLATTR_DESC_U32(ETHTOOL_A_LINKSTATE_SQI),
> + NLATTR_DESC_U32(ETHTOOL_A_LINKSTATE_SQI_MAX),
> };
>
> static const struct pretty_nla_desc __debug_desc[] = {
> diff --git a/netlink/settings.c b/netlink/settings.c
> index 851de15..cd4b9a7 100644
> --- a/netlink/settings.c
> +++ b/netlink/settings.c
> @@ -638,6 +638,22 @@ int linkstate_reply_cb(const struct nlmsghdr *nlhdr, void *data)
> printf("\tLink detected: %s\n", val ? "yes" : "no");
> }
>
> + if (tb[ETHTOOL_A_LINKSTATE_SQI]) {
> + uint32_t val = mnl_attr_get_u32(tb[ETHTOOL_A_LINKSTATE_SQI]);
> +
> + print_banner(nlctx);
> + printf("\tSQI: %u", val);
> +
> + if (tb[ETHTOOL_A_LINKSTATE_SQI_MAX]) {
> + uint32_t max;
> +
> + max = mnl_attr_get_u32(tb[ETHTOOL_A_LINKSTATE_SQI_MAX]);
> + printf("/%u\n", max);
> + } else {
> + printf("\n");
> + }
> + }
> +
> return MNL_CB_OK;
> }
>
> --
> 2.26.2
>
Attachment:
signature.asc
Description: PGP signature