こんにちは、
DPAA2 SolidRun LX2160A Clearfog CX上でDPDK RTE FLOWを作成しようとしていますが、うまくいきません。
動作しないのは普通のことですか?
うまくいくには何ができるでしょうか?
私はNXP DPAA2やNXP全般についてかなり初心者なので、技術的な言葉を教えてもらえますか?
ありがとうございます。
testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss queues 0 1 end types ip ipv4 end / end
DPAA2_NET: Add entry(0) to table(0) failed
DPAA2_NET: Create flow failed (-22)
port_flow_complain(): Caught PMD error type 1 (cause unspecified): cause: 0xfffff340a300, unknown: Operation not permitted DPDKポートの背後にあるDPNIがどのように作成されたかを確認してください。基板上のLinuxシェルから:
restool dprc show dprc.1 --resources # DPDKポートが使用するdpni.Xを見つけます
restool dpni info dpni.X # "options" 行と "num_queues" を確認してください
オプションに DPNI_OPT_NO_FS が表示される場合、または DPNI_OPT_HAS_KEY_MASKING が表示されない場合は、それが問題の原因です。
適切なオプションを使用してDPNIを再作成します。dynamic_dpl.sh を編集するか、(または読み取る環境 — NXP LSDK では通常 DPNI_OPTIONS 変数です)なので、Create コールは次のようになります:
restool dpni create \
--options=DPNI_OPT_HAS_KEY_MASKING \
--num-queues=2 \
--num-tcs=1 \
--container=dprc.2
要点:
次に、その DPNI を DPDK コンテナにアタッチし (restool dprc assign …)、testpmd を再実行します。
静的DPLファイルを使用する場合は、同じファイルをdpni@Xノードに追加してください。
dpni@1 {
オプション = "DPNI_OPT_HAS_KEY_MASKING";
num_queues = <2>;
...
};
そして、U-Bootでfsl_mc apply dpl …を使用してDPLを再フラッシュします。
まずはもっと簡単なルールで妥当性を確認してみましょう。RSSの前に、プレーンステアリングが正常に動作することを確認してください。
testpmd> flow create 0 ingress pattern eth / ipv4 src is 10.0.0.1 / end \
アクションキューインデックス 1 / 終了
これが成功してもRSSバリアントが失敗する場合は、残りの問題はDPNIオプションではなく、キュー数/配信構成です。
https://www.nxp.com/webapp/Download?colCode=DPAA2UM&location=null
DPAA2ユーザーマニュアルが役立つかもしれません
ちなみに。どのようなBSPやSDKが使われていますか?公式ウェブサイトからの情報源はありますか?