net: do only network stack cleanup for ip address change
authorEunBong Song <eunb.song@samsung.com>
Thu, 23 Mar 2017 23:41:18 +0000 (08:41 +0900)
committerHeesub Shin <heesub.shin@samsung.com>
Mon, 17 Apr 2017 10:58:12 +0000 (19:58 +0900)
For IP address change, we only need network stack clean up and do not
need network interface link up/down. This patch changes policy for ip
address change command so that just cleans up network stack regarding
network interface.

Change-Id: Ie5c907e5746c252391f03cc2a0d0027ffcd631e0
Signed-off-by: EunBong Song <eunb.song@samsung.com>
os/net/netdev/netdev_ioctl.c

index a43b990..cade514 100644 (file)
@@ -394,9 +394,13 @@ static int netdev_ifrioctl(FAR struct socket *sock, int cmd, FAR struct ifreq *r
        case SIOCSIFADDR: {                     /* Set IP address */
                dev = netdev_ifrdev(req);
                if (dev) {
-                       netdev_ifdown(dev);
+#ifdef CONFIG_NET_LWIP
+                       netif_set_down(dev);
+#endif
                        ioctl_setipv4addr(&dev->ip_addr.addr, &req->ifr_addr);
-                       netdev_ifup(dev);
+#ifdef CONFIG_NET_LWIP
+                       netif_set_up(dev);
+#endif
                        ret = OK;
                }
        }
@@ -611,7 +615,9 @@ static int netdev_ifrioctl(FAR struct socket *sock, int cmd, FAR struct ifreq *r
        case SIOCDIFADDR: {                     /* Delete IP address */
                dev = netdev_ifrdev(req);
                if (dev) {
-                       netdev_ifdown(dev);
+#ifdef CONFIG_NET_LWIP
+                       netif_set_down(dev);
+#endif
 #ifdef CONFIG_NET_IPv4
                        dev->d_ipaddr = 0;
 #endif