diff options
author | John Crispin <john@openwrt.org> | 2015-12-23 19:24:45 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2015-12-23 19:24:45 +0000 |
commit | 8536afae6f8ff3196aa8457cc0a53c5c0ea9fbac (patch) | |
tree | 195c640b32aa188a8e71f820b3847dcef121b138 /package/network/config/swconfig/src/cli.c | |
parent | 67e10d757f88d9f2e0a0be8c96c01d951a2fca6e (diff) | |
download | mtk-20170518-8536afae6f8ff3196aa8457cc0a53c5c0ea9fbac.zip mtk-20170518-8536afae6f8ff3196aa8457cc0a53c5c0ea9fbac.tar.gz mtk-20170518-8536afae6f8ff3196aa8457cc0a53c5c0ea9fbac.tar.bz2 |
swconfig: support receiving SWITCH_TYPE_LINK from kernel
When using cli, print link state the same way kernel used to do it.
This will allow kernel switching PORT_LINK from SWITCH_TYPE_STRING.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 47998
Diffstat (limited to 'package/network/config/swconfig/src/cli.c')
-rw-r--r-- | package/network/config/swconfig/src/cli.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/package/network/config/swconfig/src/cli.c b/package/network/config/swconfig/src/cli.c index d472086..9055414 100644 --- a/package/network/config/swconfig/src/cli.c +++ b/package/network/config/swconfig/src/cli.c @@ -84,9 +84,27 @@ list_attributes(struct switch_dev *dev) print_attrs(dev->port_ops); } +static const char * +speed_str(int speed) +{ + switch (speed) { + case 10: + return "10baseT"; + case 100: + return "100baseT"; + case 1000: + return "1000baseT"; + default: + break; + } + + return "unknown"; +} + static void print_attr_val(const struct switch_attr *attr, const struct switch_val *val) { + struct switch_port_link *link; int i; switch (attr->type) { @@ -104,6 +122,21 @@ print_attr_val(const struct switch_attr *attr, const struct switch_val *val) SWLIB_PORT_FLAG_TAGGED) ? "t" : ""); } break; + case SWITCH_TYPE_LINK: + link = val->value.link; + if (link->link) + printf("port:%d link:up speed:%s %s-duplex %s%s%s%s%s", + val->port_vlan, + speed_str(link->speed), + link->duplex ? "full" : "half", + link->tx_flow ? "txflow " : "", + link->rx_flow ? "rxflow " : "", + link->eee & SWLIB_LINK_FLAG_EEE_100BASET ? "eee100 " : "", + link->eee & SWLIB_LINK_FLAG_EEE_1000BASET ? "eee1000 " : "", + link->aneg ? "auto" : ""); + else + printf("port:%d link:down", val->port_vlan); + break; default: printf("?unknown-type?"); } |