17.9. 連接狀態(tài)的改變

2018-02-24 15:50 更新

17.9.?連接狀態(tài)的改變

網(wǎng)絡(luò)連接, 根據(jù)定義, 打交道本地系統(tǒng)之外的世界. 因此, 它們常常受外界事件的影響, 并且它們可能是短暫的東西. 網(wǎng)絡(luò)子系統(tǒng)需要知道網(wǎng)絡(luò)連接的上或下, 它提供了幾個驅(qū)動可用來傳達這種信息的函數(shù).

大部分涉及實際的物理連接的網(wǎng)絡(luò)技術(shù)提供有一個載波狀態(tài); 載波存在說明硬件存在并準備好. 以太網(wǎng)適配器, 例如, 在電線上感知載波信號; 當一個用戶絆倒一根電纜, 載波消失, 連接斷開. 缺省地, 網(wǎng)絡(luò)設(shè)備假設(shè)有載波信號存在. 驅(qū)動可以明確改變這個狀態(tài), 但是, 使用這些函數(shù):


void netif_carrier_off(struct net_device *dev);
void netif_carrier_on(struct net_device *dev);

如果你的驅(qū)動檢測到它的一個設(shè)備載波丟失, 它應(yīng)當調(diào)用 netif_carrier_off 來通知內(nèi)核這個改變. 當載波回來時, 應(yīng)當調(diào)用 netif_carrier_on. 一些驅(qū)動也調(diào)用 netif_carrier_off 當進行大的配置改變時(例如媒介類型); 一旦適配器已經(jīng)完成復(fù)位它自身, 新載波被檢測并且恢復(fù)流量.

一個整數(shù)函數(shù)也存在:


int netif_carrier_ok(struct net_device *dev); 

它可用于測試當前載波狀態(tài)( 如同設(shè)備結(jié)構(gòu)中所反映的 );

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號