問題タブ [netlink]

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 に答える
298 参照

linux - netlinkソケット、kernelopps0002の問題

ユーザーモードからカーネルモジュールにデータを送信しようとしています。しかし、何かを送信すると、カーネルエラーが発生します。

バグ:カーネルページングリクエスト広告を処理できないffff88022f168bc0

IP:[<...>] build_skb + 0xf5 / 0x1c0

現在、この期間コードを使用しています。誰かがこの問題について意見を持っていますか?ありがとう〜

これが私がメッセージを受信するために使用するカーネルモジュールの関数です。

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

c - 3.X Linux カーネルを使用した C 言語の Netlink ソケット

こんにちは、私はNetlinkソケットを3.2 Linux カーネルで動作させることに取り組んでいますが、その方法がわかりません。Netlinkソケットの基本の例を探してみましたが、見つかった例はすべて2.6 カーネル用のようです。

私が見つけようとしているのは、Netlink ソケットを使用して、カーネル モジュールからユーザー モード アプリケーションに、またはその逆に情報を送信する方法です。

どんな助けでも大歓迎です。ありがとう!

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

linux-kernel - デーモンモードで netlink_unicast return errno -111 (接続が拒否されました)

ユーザー空間で実行されているデーモン プロセスと通信するために、Netlink を使用する Linux カーネル モジュールがあります。

開発段階では、デーモン実行可能ファイルを通常のプロセスのように (を呼び出さずにfork()) 常に実行しており、すべて正常に動作していました。

現在、主な動作の開発は終了しているので--daemon、メソッドを呼び出す引数を実装していますfork()(またsetsid()、リンクhttp://www.thegeekstuff.com/2012/02/c-daemon-process/で説明されているように) ) 通常のプロセスを続行する直前に。

次のステップは、Netlink ソケットを初期化した後のデーモンが Linux カーネル モジュールを呼び出し、これがメッセージをプッシュするためにデーモンの PID を保存することです。Linux カーネル デーモンは、デーモン プロセスからメッセージを正しく受信しますが、netlink_unicast()エラー番号 -111 (接続が拒否されました) を返すメッセージを使用してメッセージを送信できません。

Linux カーネル モジュールが受け取った PID を確認しましたが、フォークされた後のデーモンと同じで、正しいように見えます。

recvmsg()デーモン プロセスが fork されると、Linux Kernel Module から(メソッドを使用して) メッセージを受信できなくなる理由を知っていますか?

0 投票する
3 に答える
8158 参照

c - netlink_kernel_create が最新の Linux カーネルで動作しない

kernelnetlink 関数を使用している古いモジュールのコンパイル中にコンパイラ エラーが発生します。

以前は正常に動作していましたが、現在このエラーが発生しています。

OS情報

0 投票する
2 に答える
1834 参照

linux - Net Link Linux ユーザー コード バインド ソケット呼び出しは、マルチキャスト グループ ID (ゼロ以外の値) に対して常に失敗します。

こんにちは、ユニキャスト (src_addr.nl_groups = 0;) ですべて正常に動作するネット リンク ユーザー コードとカーネル コードを実装しようとしています。マルチキャストの場合、ゼロ以外の src_addr.nl_groups 値の場合、ユーザー コード バインド呼び出しは常に失敗します。マルチキャストにどのような価値を置き、さらにどのように進めるかは本当にわかりません。カーネル ソース ツリーで netlink_broadcast の使用状況を確認したので、同じグループ ID 値 (RTMGRP_LINK) をここに入れます。ユニキャストの場合、インターネットで多くのヘルプが見つかりましたが、マルチキャストの場合はそうではないと思います。だから私がさらに進むのを手伝ってください。

取得中のエラーは次のとおりです。

bind: そのようなファイルやディレクトリはありません

./a.out: ソケット (3) をバインドできません。エラー: -1: そのようなファイルまたはディレクトリはありません

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

linux - netlink ソケットを作成できません: プロトコルがサポートされていません

libipq ライブラリと一緒に netfilter を使用して IPv6 パケットをインターセプトする例を見つけました。

まず、ipq_handle 構造体を宣言して作成します。

対応する die() 関数は次のようになります

ただし、プログラムが正しく実行されず、次のメッセージが生成されます。

通行人: netlink ソケットを作成できません: プロトコルがサポートされていません

誰でも問題の考えられる原因を知っていますか?

0 投票する
2 に答える
1089 参照

linux - m フラグと o フラグが Linux に格納される場所

最近受信したRouter Advertisementのmフラグとoフラグの値を知りたいです。カーネルのソースコードからmフラグとoフラグが格納されていることがわかりました。

次に、ioctl や proc ファイルシステム、またはその他の方法を使用して、これらの値を取得できるはずです。どなたかその方向を教えてください。