W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
驅(qū)動需要的最后一個方法是 get_stats. 這個方法返回一個指向給設(shè)備的統(tǒng)計的指針. 它的實現(xiàn)非常簡單; 展示過的這個即便在幾個接口由同一個驅(qū)動管理時都好用, 因為統(tǒng)計量駐留于設(shè)備數(shù)據(jù)結(jié)構(gòu)內(nèi)部.
struct net_device_stats *snull_stats(struct net_device *dev)
{
struct snull_priv *priv = netdev_priv(dev);
return &priv->stats;
}
需要返回有意義統(tǒng)計的真正工作是分布在整個驅(qū)動中的, 有各種成員量被更新. 下列列表展示了最有趣的結(jié)構(gòu) net_device_stats 中的成員:
unsigned long rx_packets;unsigned long tx_packets;
接口成功傳送的進(jìn)入和出去報文的總和.
unsigned long rx_bytes;unsigned long tx_bytes;
接口接收和發(fā)送的字節(jié)數(shù).
unsigned long rx_errors;unsigned long tx_errors;
接收和發(fā)送的錯誤數(shù). 報文發(fā)送可能出錯的事情是沒有結(jié)束的, net_device_stats 結(jié)構(gòu)包括 6 個計數(shù)器給特定的接收錯誤以及有 5 個給發(fā)送錯誤. 完整列表看 <<linux/netdevice.h>. 如果可能, 你的驅(qū)動調(diào)用維護(hù)詳細(xì)的錯誤統(tǒng)計, 因為它們是對系統(tǒng)管理員試圖追蹤問題的最大幫助.
unsigned long rx_dropped;unsigned long tx_dropped;
在接收和發(fā)送中丟失的報文數(shù)目. 當(dāng)沒有可用內(nèi)存給報文數(shù)據(jù)時丟棄報文. tx_dropped 極少使用.
unsigned long collisions;
由于介質(zhì)擁塞引起的沖突數(shù)目.
unsigned long multicast;
收到的多播報文數(shù)目.
值得重復(fù)一下, get_stats 方法可以在任何時候調(diào)用 -- 即便在接口關(guān)閉時 -- 因此只要 net_device 結(jié)構(gòu)存在驅(qū)動必須保持統(tǒng)計信息.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: