問題タブ [xdp-bpf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
37 参照

c - BPF テール コールが呼び出されない

次のコードでは、BPF プログラムtail_progは末尾から呼び出されませんmain_prog

プリントインのみが印刷されていることmain_progがわかります。

Cilium の eBPF Go パッケージを使用して BPF プログラムをロードしています。プログラムとマップをロードするコードは次のとおりです。

thisによると、ジャンプテーブルはユーザー空間から初期化されています。これは、上記の最後の行が行うことになっていると思います。ただし、その行があるかどうかに違いはありません。

0 投票する
1 に答える
42 参照

go - xdpoffload のアタッチに失敗しました: 引数が無効です

XDP オフロード モードで BPF プログラムをアタッチしようとすると、Invalid argument. コードまたは を使用してアタッチすると、同じエラーが発生しますbpftoolnetlinkを使用してアタッチする方法は次のとおりです。

そして使用からbpftool

4に渡されるドライバーモードでプログラムをロードしても問題はありませんLinkSetXdpFdWithFlags

私の NIC、Mellanox MT28800 ファミリ [ConnectX-5 Ex] は、ハードウェア オフロードをサポートする必要があります。

メインの XDP プログラムは、2 つの異なるテール プログラムを呼び出します。私は使用しますBPF_MAP_TYPE_RINGBUF, BPF_MAP_TYPE_PROG_ARRAY, and BPF_MAP_TYPE_ARRAY

0 投票する
0 に答える
15 参照

linux - libxdp-devel をインストールできません

CentOS-8 に libxdp-devel パッケージをインストールしようとしていますが、「エラー: 一致が見つかりません: libxdp-devel」というエラー メッセージが引き続き表示されます。

また、/etc/yum.repos/CentOS-Linux-Devel.repo および /etc/yum.repos/CentOS-Linux-PowerTools.repo のファイルを変更して baseurl を許可し、また、enabled 変数を enabled= から変更しました。 0 ~有効 = 1。

それでも libxdp-devel をインストールできません。誰でも助けてください!

0 投票する
0 に答える
63 参照

c - リング バッファーからの読み取り時に削除された BPF テール プログラム

テール プログラムでリング バッファーに書き込み、ユーザー空間からリング バッファーを読み取ると、テール プログラムが最終的に削除されることがわかりました。tail プログラムは に表示されなくなりましたbpftool progbpftool map dump name jump_tableそれを言うFound 0 elements; 元々、tail プログラムという 1 つの要素がありました。

この BPF プログラムはmain_prog、テール プログラムの呼び出しで構成されます。tail プログラムは0、リング バッファーに書き込みます。

この Go プログラムは、プログラムとマップをロードし、リング バッファーから読み取ります。

インターフェイスにトラフィックを送信すると、問題が発生します。reader.Read()は決してエラーを返さず、返されたRecordオブジェクトには0. ジャンプ テーブルが空であるため、テール コールが失敗bpf_printkし、カーネル ログに出力が表示されます。

以下のコードをコメントアウトしてA、 のような無限待機に置き換えれば、select {}問題は発生しません。

参考までに、同等の C プログラムは問題なく動作します。私は libbpf 0.7 を使用しています: