IFF_UP和IFF_RUNNING有什么区别?

时间:2012-07-26 23:31:23

标签: c linux network-programming

这两个标志通常设置在一起。他们之间有什么区别?

2 个答案:

答案 0 :(得分:18)

来自Linux Device Drivers 3

  

IFF_UP        该标志对于驱动程序是只读的。当接口处于活动状态并准备传输数据包时,内核会将其打开。

     

...

     

IFF_RUNNING

     

此标志表示接口已启动并正在运行。这主要是   目前为BSD兼容;内核很少使用它。最   网络驱动程序不必担心IFF_RUNNING。

深入挖掘,似乎的一个显着差异:

IFF_RUNNING应该反映网络接口上的操作状态,而不是其管理状态。举一个例子,管理员可以为UP提供以太网接口(例如ifconfig eth0 up),但如果电缆是有效的话,它将不会被认为是可操作的(即根据RFC2863 RUNNING)。没插电。

答案 1 :(得分:4)

检查以太网电缆是否真正连接到网络您应该检查IFF_RUNNIG。 IFF_UP表示系统为接口分配了资源。

请查看“ip link show”和“ethtool eth0”检查链接的详细代码here