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