2008年2月1日 星期五

概觀 IFF_UP 與 IFF_RUNNING 的異同

Standard
對於如何在 Linux 底下取得網路介面的狀態,過去曾經於『取得網路裝置(NETDEVICE)的系統訊息』提過,基本上整個操作是很簡單明瞭的,應該不會有太大的問題。

有人曾來信問我,IFF_UP 和 IFF_RUNNING 的差別在哪?就實際功用而言,兩者都代表了網路裝置是否正常啟用,但是更仔細觀察可以發現拔除網路線時會造成 IFF_RUNNING 的改變,至於 IFF_UP 不會因插拔網路線而有任何變化。

事實上對 Linux 而言, IFF_UP 是核心主要操作的旗標,而 IFF_RUNNING 純粹只是為了與 BSD 相容而存在,若你是想要撰寫 Linux network device driver 的人,就比較需要對 IFF_UP 多點著墨。