自己动手写了创建虚拟接口,删除虚拟接口程序,频繁调用创建删除时,有时将接口up起来时会报错:
Name not unique on network
利用ip link命令来查看接口(及其对应的索引)
可以查看到与其他接口不同的是有个标志为 NO-CARRIER,不知道是什么意思,查看ip的源代码(此处为 iproute2-3.15.0)
当打印接口信息时(函数print_link_flags中)有如下代码:
fprintf(fp, "<");
if (flags & IFF_UP && !(flags & IFF_RUNNING))
fprintf(fp, "NO-CARRIER%s", flags ? "," : "");
flags &= ~IFF_RUNNING;
可见是由于接口标志IFF_RUNNING导致。