問題タブ [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 に答える
125 参照

linux-kernel - bpf_prog_test_run() が予期しないパケット データを引き起こす


XDP BPF プログラムのテストを実行しようとしています。BPF プログラムはbpf_xdp_adjust_meta()ヘルパーを使用して、メタデータを調整します。

私は試した:

  1. 走るbpf_prog_test_run()
  2. 走るbpf_prog_test_run_xattr()

1.bpf_prog_test_run()
(bpf プログラムのデバッグ メッセージを初めて試したとき、data_meta フィールドの調整に失敗したことがわかりました。)現在、data_meta を調整できますが、iph.ihlフィールドは明らかに 5 に設定されていません。

2.bpf_prog_test_xattr()
これは常に -1 を返すので、何かが失敗しました。

コード

パケット:

テスト属性:

テストの実行:
bpf_prog_test_run(main_prog_fd, 1, &pkt_v4, sizeof(pkt_v4), &data_out, &size, &retval, &duration) ->iph.ihlフィールドは 0 です。

bpf_prog_test_run_xattr(&test_attr)-> -1 を返します。

ノート

プログラムは、実際のネットワーク インターフェイスのフック ポイントに正常に接続され、意図したとおりに実行されました。テスト用に、プログラムをフック ポイントに接続するコードを上記のコードに置き換えただけです。

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

c - eBPF: `bpf_map_update_elem` を使用してカーネル空間からデータを送信する方法は?

次の BPF プログラムを実行して、データ (IP アドレス) をカーネル空間からユーザー空間に送信しようとしています。

メイクファイル:

ただし、次のエラーが発生し続けます。

このエラーを理解するのを手伝ってくれる人はいますか? また、bpf_printkメッセージはどこで見ることができますか?

make によって生成されたファイルにはマップが含まれていないと思われますEVENTS..しかし、それを修正する方法がわかりません-SEC("maps")マップの上に追加すると、カーネル検証ツールはセクションをまったく見つけることができません..