diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-01-21 10:21:45 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-01-21 10:21:45 -0600 |
commit | 8388961f5ffae7cb5f2904b606d797d76c678257 (patch) | |
tree | ff83896512fd4ef3ede6247e139f79c3052e8b51 /apps/nshlib | |
parent | 9fc3ffdbbe02c3f9bf128527aee96a52b5657fcb (diff) | |
download | nuttx-8388961f5ffae7cb5f2904b606d797d76c678257.tar.gz nuttx-8388961f5ffae7cb5f2904b606d797d76c678257.tar.bz2 nuttx-8388961f5ffae7cb5f2904b606d797d76c678257.zip |
Networking: Improved status reporting and new carrier management interfaces. From Max Holtzberg
Diffstat (limited to 'apps/nshlib')
-rw-r--r-- | apps/nshlib/nsh_netcmds.c | 25 |
1 files changed, 20 insertions, 5 deletions
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 <debug.h> #include <net/ethernet.h> +#include <net/if.h> #include <netinet/ether.h> #include <nuttx/net/net.h> @@ -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)); |