Libpcapが新しいIntel NICでパケットをドロップする


1

パケットスニッフィングプロジェクトをDell PowerEdge R410(デュアルBroadcom 1Gb統合NIC)からDell PowerEdge R620(クアッドIntel 1521 i350シリーズ1GbドーターボードNIC)に移行しています。私は両方のシステムで同じOS(Debian Squeeze)でまったく同じコードを実行しています。libpcapがIntel NICからすべてのパケットを取得できるR620で問題が発生していますが、ソフトウェアはlibpcapコールバックからそれらを十分に迅速に取得できず、ドロップされます。R410は、この同じシナリオでドロップされたパケットを報告しません。Intel NICでこのような動作を引き起こす可能性のあるNICドライバー設定またはフラグがある可能性はありますか?他の誰かがこの種の問題を経験し、それを修正する方法についての洞察を持っていますか?

また、健全性チェックテストとして、Tim Carstenのサンプルsniffex.cプログラム(http://www.tcpdump.org/pcap.html)をダウンロードして使用し、両方のマシンで実行しました。R410はパケットを損失しませんでしたが、R620は損失しました。


2
処理するのに十分な小さなチャンクでパケットが供給されていないため、この問題を引き起こす可能性のあるインテル用の割り込み合体コードがたくさんあります。InterruptThrottleRate、RXIntDelay、RXAbsIntDelayを設定してみてください(ポートごとの設定です)
Petesh

@Peteshの答えは説得力があります。それはまったくあなたを助けますか?
-allquixotic

Intelドライバー(バージョン4.1.2)をもう一度見てみると、InterruptThrottleRateが見つかりました。RXIntDelayおよびRXAbsIntDelayパラメーターが見つかりませんでした。InterruptThrottleRateを上下に調整し、オフにすることもできましたが、まだパケットを失っています。
bbs_chad

InterruptThrottleRateは= 0,0,0,0が(に基づいて使用する同調可能であるintel.com/support/network/adapter/pro100/sb/CS-032498.htm)。tcpdumpはパケットを見逃していますか?i350ドライバーの割り込み割り当てを確認しましたか?
Petesh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.