system-linux: add autoneg and link-partner output
authorJoe Holden <jwh@zorins.co.uk>
Wed, 27 Jun 2018 21:14:33 +0000 (22:14 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Thu, 28 Jun 2018 09:22:25 +0000 (11:22 +0200)
This adds an array that contains the link modes advertised by the other device and also
indicates whether auto negotiation is true or false.

link-partner may or may not be populated depending on hardware, driver and/or settings.

Signed-off-by: Joe Holden <jwh@zorins.co.uk>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
system-linux.c

index 0127b01..1f7c29b 100644 (file)
@@ -1728,6 +1728,10 @@ system_if_dump_info(struct device *dev, struct blob_buf *b)
                system_add_link_modes(b, ecmd.advertising);
                blobmsg_close_array(b, c);
 
+               c = blobmsg_open_array(b, "link-partner-advertising");
+               system_add_link_modes(b, ecmd.lp_advertising);
+               blobmsg_close_array(b, c);
+
                c = blobmsg_open_array(b, "link-supported");
                system_add_link_modes(b, ecmd.supported);
                blobmsg_close_array(b, c);
@@ -1736,6 +1740,8 @@ system_if_dump_info(struct device *dev, struct blob_buf *b)
                snprintf(s, 8, "%d%c", ethtool_cmd_speed(&ecmd),
                        ecmd.duplex == DUPLEX_HALF ? 'H' : 'F');
                blobmsg_add_string_buffer(b);
+
+               blobmsg_add_u8(b, "autoneg", !!ecmd.autoneg);
        }
 
        return 0;