当使用ifconfig命令向接口分配地址时, 要执行两个任务。
首先,它通过 ioctl(SIOCSIFADDR)设置地址,然后通过通过 ioctl(SIOCSIFFLAGS)设置dev->flag 的 IFF_UP 位来打开接口。
对设备驱动而言,无需对ioctl(SIOCSIFADDR) 做任何工作,内核不会调用任何驱动程序函数,而后一个命令 ioctl(SIOCSIFFLAGS)会调用设备的open函数。
类似地,在接口关闭时,ifconfig使用ioctl(SIOCSIFFLAGS)来清除IFF_UP标志,然后调用stop函数。
ifconfig进程会创建一个socket,上面的两个ioctl调用所用的fd就是此socket。