DPDKスイッチ表現testpmdフローコマンドが機能しない
私の質問は、以前に尋ねた質問に関連しています。SR-IOV仮想機能(VF)NIC間でパケットを転送する基本的に私がやりたいのは、Intel 82599ESの4つのSR-IOV機能を使用し、必要に応じてVF間でトラフィックを転送することです。セットアップは次のようなものです(X710を気にしないでください。現在82599ESを使用しています)

テストを簡単にするために、warp17を実行しているVMを1つだけ使用してトラフィックを生成し、VF1を介して送信し、VF3から受信します。新しいdpdkバージョンには、https://doc.dpdk.org/guides-18.11/prog_guide/switch_representation.html?highlight=switch、「testpmd」を使用してスイッチングを構成しようとしています。しかし、テストpmdは、入力したフローコマンドでは機能しないようです。私が得るのは「悪い議論」だけです。たとえば、このコマンドでは機能しません。
flow create 1 ingress pattern / end actions port_id id 3 / end
私の手順はこんな感じです
PF(82599ES)をigb_uioドライバーでバインドします
次のコマンドを使用して4つのVFを作成します。
エコー「4」| sudo tee /sys/bus/pci/devices/0000:65:00.0 / max_vfs
を使用して2つのVFをvfio_pciドライバーにバインドします。
エコー「808610ed」| sudo tee / sys / bus / pci / drivers / vfio-pci / new_id sudo ./usertools/dpdk-devbind.py -b vfio-pci 0000:65:10.0 0000:65:10.2
PCIパススルーを使用してVFをVMにバインドし、VMを起動します
sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -hda WARP17-disk1.qcow2 -m 6144 \
-display vnc =:0 -redir tcp:2222 :: 22
-net nic、model = e1000 -net user、name = mynet0
-device pci-assign、romfile =、host = 0000:65:10.0
-device pci-assign、 romfile =、host = 0000:65:10.2PFおよびVFの2つのポート表現子を使用してtestpmdを実行します
sudo ./testpmd --lcores 1,2 -n 4 -w 65:00.0、representor = 0-1 --socket-mem 1024 --socket-mem 1024--proc-type auto --file-prefix testpmd-pf --- i --port-topology = chained
私は何か間違ったことをしていますか、それともこれはtestpmdの性質ですか?私のdpdkバージョンは18.11.9です
回答
82599ESはPMDを使用しixgbe
、X710はi40e
PMDを使用することに注意してください。どちらも異なり、プロパティも異なります。ixgbe PMDを比較するドキュメントによると(http://doc.dpdk.org/guides/nics/ixgbe.html)およびi40e PMD(http://doc.dpdk.org/guides/nics/i40e.html)入力パケット(外部ポートからASICに受信されたパケット)用のフローダイレクタ機能。この機能Floating VEB
は、使用する必要のある機能です。しかし、これはにのみ存在しX710
、には存在しません82599ES
。
VEBを有効にするには-w 84:00.0,enable_floating_veb=1
、X710で使用する必要があります。ただし、これにより、物理ポートで送受信できない機能が制限されます。
最良のオプションは、を使用することです2 * 10Gbps
。ここで、dpdk-0が使用されwrap7/pktgen/trex
、dpdk-1がによって使用されvm-1/vm-2/vm-3
ます。最も簡単なパラメータは、VFに一致するDSTMACアドレスを制御することです。
セットアップ:
- ポート0とポート1に必要なvfを作成します
- VFを関連するVMと共有します。
- dpdkvfポートをigb_uioにバインドします。
- VFの関連するMACアドレスのトラフィックジェネレータポート0から。
[PS]これはSkypeで話し合った情報です。