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 > Reviewed-by: Florian Fainelli Reviewed-by: Michal Kubecek > --- > 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 >