Berkeleyパケット・フィルタ(BPF)の拡張機能
Berkeleyパケット・フィルタ(BPF)のUEK 8では、次のようないくつかの重要な更新を使用できます:
-
専用のBPFメモリー・アロケータを導入して、BPFプログラム内で行われた割り当ての信頼性を向上させ、さまざまなコンテキストで実行できます。
-
非同期メッセージ渡しのための新しいユーザー・リング・バッファBPFマップ・タイプの追加と、BPFプログラムとユーザー・スペース間のデータ転送の高速化。
-
BPFプログラムは、ロード可能なモジュールからカーネル関数を呼び出すことができ、task_structオブジェクトにアクセスして格納でき、絶対時間値を使用できます。
-
bpf_trace_vprintk
などのフレンドリ・ヘルパー関数と、crash_kexec
などの破壊的ヘルパーも含まれています。 -
BPFプログラムは、フィルタ関数をkfuncsに添付できます。 フィルタは、kfuncを呼び出すことができるコンテキストを制限できます。
-
ツリー外モジュールがUEKリリースの存続期間中に動作するBTFを定義できるように、モジュールのレジリエントBPFタイプ・フォーマット(BTF)情報が含まれています。
- BPFトランポリンがaarch64プラットフォームで使用可能になり、FentryおよびFexitプログラムを使用してBPFトレース・プログラムの実行が高速化されました。
-
BPFのホック:
-
完全なパケットを表示およびフィルタします。
-
新しいソケットのリクエストされたプロトコルを変更するには、主にTCP接続をリクエストするプログラムが代わりにマルチパスTCPを使用するように透過的に設定します。
-