From 8388961f5ffae7cb5f2904b606d797d76c678257 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 21 Jan 2014 10:21:45 -0600 Subject: Networking: Improved status reporting and new carrier management interfaces. From Max Holtzberg --- apps/nshlib/nsh_netcmds.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'apps/nshlib/nsh_netcmds.c') diff --git a/apps/nshlib/nsh_netcmds.c b/apps/nshlib/nsh_netcmds.c index 5c76aca0e..024fb248e 100644 --- a/apps/nshlib/nsh_netcmds.c +++ b/apps/nshlib/nsh_netcmds.c @@ -54,6 +54,7 @@ #include #include +#include #include #include @@ -225,9 +226,9 @@ static inline void uip_statistics(FAR struct nsh_vtbl_s *vtbl) nsh_output(vtbl, "\n"); #ifdef CONFIG_NET_TCP - nsh_output(vtbl, " TCP ACK: %04x SYN: %04x\n", + nsh_output(vtbl, " TCP ACK: %04x SYN: %04x\n", uip_stat.tcp.ackerr, uip_stat.tcp.syndrop); - nsh_output(vtbl, " RST: %04x %04x\n", + nsh_output(vtbl, " RST: %04x %04x\n", uip_stat.tcp.rst, uip_stat.tcp.synrst); #endif @@ -282,18 +283,32 @@ int ifconfig_callback(FAR struct uip_driver_s *dev, void *arg) { struct nsh_vtbl_s *vtbl = (struct nsh_vtbl_s*)arg; struct in_addr addr; - bool is_running = false; + uint8_t iff; + const char *status; int ret; - ret = uip_getifstatus(dev->d_ifname,&is_running); + ret = uip_getifstatus(dev->d_ifname, &iff); if (ret != OK) { nsh_output(vtbl, "\tGet %s interface flags error: %d\n", dev->d_ifname, ret); } + if (iff & IFF_RUNNING) + { + status = "RUNNING"; + } + else if (iff & IFF_UP) + { + status = "UP"; + } + else + { + status = "DOWN"; + } + nsh_output(vtbl, "%s\tHWaddr %s at %s\n", - dev->d_ifname, ether_ntoa(&dev->d_mac), (is_running)?"UP":"DOWN"); + dev->d_ifname, ether_ntoa(&dev->d_mac), status); addr.s_addr = dev->d_ipaddr; nsh_output(vtbl, "\tIPaddr:%s ", inet_ntoa(addr)); -- cgit v1.2.3