[問題] 網路卡輸出佇列一問

看板LinuxDev作者 (真冷...)時間16年前 (2009/03/30 14:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好,最近小弟在做一個實驗 遇到了一點瓶頸 想來這邊求救一下 問題如下 目前我需要知道每一個介面卡 輸出佇列的長度 仔細看了 Linux 網路部分的程式碼 發現 ip 層處理完後 會將 skb 交由 dev_queue_xmit 函式處理 dev_queue_xmit 會從接收到的 skb 結構中的 dev 元素了解到輸出裝置 dev 中有一個 Qdisc 裡面就是描寫裝置的Queue 我用了兩塊網卡 一張是有線(eth0) 一張是無線(ath0) 在核心打印出處理封包時 每一個外出裝置佇列的長度 =====[程式碼如下]======================= struct net_device *dev_ = skb->dev; struct Qdisc *qdisc; struct sk_buff_head *list; qdisc = rcu_dereference(dev_->qdisc); list = qdisc_priv(qdisc);.........參考enququq程式碼找到的片段 len = (unsigned)list->qlen ==================================== (用dev_->name 可以成功取得 輸出裝置名稱) 發現在有線的部分 長度一直都是0 這個滿合理的 因為我還沒找到一個夠快的封包產生器 只能用ping 下-f 還有下-l 8000 [雖然說 Linux 核心有一個pktgen可以使用 不過目前還沒成功 掛上去後 一直無法用 顯示pg檔找不到 >"<] 另外在無線的部分 不管怎麼做 輸出佇列總是有封包在排隊 似乎不合理 不知道是什麼原因 還請大家多多指教 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.110.178
文章代碼(AID): #19qDHETZ (LinuxDev)
文章代碼(AID): #19qDHETZ (LinuxDev)