単一の NIC を持つサーバーで DPDK を使用することは可能ですか?

単一の NIC を持つサーバーで DPDK を使用することは可能ですか?

4 つの PCI ポートを持つ単一の NIC を備えたサーバーがあります。 DPDK バインディングをすでに試したので、バインディングの前に「dpdk-devbind.py -s」を実行すると、次の結果が返されます。

Network devices using kernel driver
0000:01:00.0 'OneConnect NIC (Skyhawk) 0720' if=eth0 drv=be2net unused=vfio-pci *Active*
0000:01:00.1 'OneConnect NIC (Skyhawk) 0720' if=eth1 drv=be2net unused=vfio-pci
0000:01:00.2 'OneConnect NIC (Skyhawk) 0720' if=eth2 drv=be2net unused=vfio-pci
0000:01:00.3 'OneConnect NIC (Skyhawk) 0720' if=eth3 drv=be2net unused=vfio-pci

NICモデルは見つかりませんでしたがDPDK公式サポートハードウェアリストによると、プロバイダーは DPDk と互換性があると言っています。私の「ifconfig」は以下を返します:

eth0: **some stuffs*** <IP>
lo: **some stuff**

現在、公開されている IP が 1 つしかないので、DPDK をどのように使用すればよいでしょうか。DPDK をバインドするには、ifconfig から PCI ポートを停止する必要があり、SSH が失われます。他の未使用の 3 つの PCI ポートを確認しましたが、どのように使用すればよいでしょうか。DPDK 互換ドライバー リストにリストされている 01:00.1 PCI ポートに DPDK をバインドしましたが、その後はどうなりますか。カーネル/ifconfig からはアクセスできないため (IP/インターフェイスが割り当てられていない)、サーバーの外部からこれを使用するにはどうすればよいですか。または、単一の NIC でも可能ですか。可能であれば、どのようにすればよいですか。

答え1

DPDK は、カーネルまたは通常のソケット アプリケーションによってアクセスされるカーネル ネット リンク デバイスではなく、UIO ドライバーを使用してユーザー空間の NIC ポートにアクセスできるユーザー空間プロセスです。したがって、ソケットまたはカーネル ネット リンク デバイスを介してカーネル空間の UIO ドライバーにバインドされた DPDK ポートにアクセスすることは非現実的であり、不正確です。

サーバーの外部からこれを使用するにはどうすればよいですか、または単一の NIC でも可能ですか?

testpmd, l2fwd, l3fwdNIC を使用した DPDK の探索を開始するには、サンプル アプリケーションなどを活用してください。

ご参照ください

  1. テストpmd
  2. 転送
  3. 転送

関連情報