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