問題タブ [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 投票する
0 に答える
62 参照

c - BPF プログラムの異なるバイト順

でIPアドレスを出力している2つの異なるタイプのBPFプログラムがありますbpf_printk("%pI4", &ipv4.s_addr);。xdp プログラムはループバック dev にロードされ、もう 1 つは bpf ソケット フィルターです。UDPパケットを送信するサーバーとクライアントプログラムがあります。以下のプログラムは IP アドレスを出力しますが、各プログラムは (/sys/kernel/debug/tracing/trace_pipe に) アドレスを異なる順序で出力します。1 つは (xdp プログラムで) 127.0.0.1 として出力され、もう 1 つは 1.0.0.127 として出力されます。ソケット フィルターはカーネルの skb_buff のミラーにアクセスでき、xdp プログラムは「以前の時点」でアタッチされているため、このデータにアクセスできないことを理解しています。私の質問: skb_buff データ フィールドのデータは、CPU エンディアンに「変更」されますか? この異なる動作の原因は何でしょうか?

前もって感謝します。

私の環境: