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

linux - クライアントとしてのカーネル、netlink を使用したサーバーとしてのユーザー アプリケーション

カーネルをクライアントとして、カーネル モジュールとユーザー アプリケーション間の接続を確立したいと考えています。つまり、カーネルはユーザー アプリにメッセージを送信し、応答を待ち、応答を受信して​​から実行を続けます。

たとえば、カーネル内でメッセージを送信してから返信を待ちます。

ユーザーの中にいる間、

ただし、netlink プロトコルが行うことは、ユーザーがメッセージを送信するたびにコールバック関数を呼び出すことです。私が望むのは、カーネルがユーザーからの応答を待ってから、実行を継続することです。コールバック関数内で更新されるグローバル変数のビジー ループで待機していますか? 私は試しましたが、それはあまり良い解決策ではないと思います。

「返事が来るまで寝る」みたいなことはできますか?カーネルをスリープ状態にすることはできますか?

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

linux - NETLINK_FIREWALL と NETLINK_NETFILTER の違いは何ですか?

Linux ファイアウォールの操作には、Netlink プロトコル NETLINK_FIREWALL (および NETLINK_IP6_FW) と NETLINK_NETFILTER の両方が使用されます。

それで、違いはありますか?はいの場合、どの Netlink プロトコルがどの目的に役立ちますか?

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

c - Linux の /bin/ss ツールのソース コードを取得する

ssツールは に類似していnetstatます。ss は、ドキュメント化された NETLINK ライブラリを使用しており、非常に悪い ( man 7 netlink)。NETLINK_INET_DIAG 機能を適切に使用する方法をオンラインで見つけることができませんでした。ss ツールのソース コードが役立ちますが、それも見つかりません。アドバイスをいただければ幸いです。

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

c# - NETLink経由でMathematicaから.Netにnull可能な10進数を渡す方法

次のように、小数パラメーターを使用してメソッドを呼び出すのに問題はありません。

ただし、次のように MyMethod の署名を変更する必要があります。

変更された MyMethod に Null を渡すと機能しますが、10 進数を渡すと失敗します。

私は何が欠けていますか?

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

network-programming - libnl ライブラリを使用して nl80211 コマンドをトリガーする方法は?

libnl を使用して nl80211 を使用する方法の簡単な例を教えてください。iw ソース コードを確認しようとしましたが、非常にわかりにくいです。libnlを使用してNL80211_CMD_GET_WIPHYなどのnl80211コマンドをトリガーする方法について、簡単なプログラムを提供できますか。

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

c - netlink API を使用してワイヤレス チャネルを設定する

Ubuntu Linux 12.04 環境で WiFi ツールを開発しており、異なるチャネル間で WiFi インターフェイスを切り替える必要があります。

現在、ws80211_set_freqという関数のWiresharkソースコードws80211_utils.cで解決策を見つけましたが、それをソースコードに実装する方法、含めるライブラリ、およびテストできるようにコンパイルする方法がわかりません。

問題は、使用しなければならない引数とフラグが多すぎることです。また、netlink wifi ツールを開発するのはこれが初めてです。

どこから始めて、WiFi の netlink 呼び出しをどのように使用するかについての適切なマニュアルがある場合は、そのリンクを提供してください。

どうもありがとうございます!

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

sockets - nl80211 インターフェイスにコマンドを追加する方法

nl80211 インターフェイスに新しいコマンドを追加したいと考えています。閲覧しましたが、詳細な情報は得られませんでした。私の知る限り、コマンドを追加するには、/usr/include/linux/nl80211.h ファイルの 515 行目にある enum nl80211_commands にコマンドを追加する必要がありコールバックを追加することによって実行されるそのコマンドのコールバック関数を登録する必要があります。 const struct の関数 wpa_driver_ops wpa_driver_nl80211_opsは *src/drivers/driver_nl80211.c* にあります。カーネル側にコマンドを送信する方法をすべて実行した後、その部分を取得できません。誰かが知っている場合は助けてください。

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

linux - Genetlink を使用してデータをカーネルに送信する

これまでは、Genetlinkユーザーがパラメーターを必要とせずにモジュールにいくつかの基本的なコマンドを送信できるようにしてきました。時代が変わり、ユーザーがメッセージにデータを追加できるようにする必要があります。char具体的には、 、intおよび値の配列を送信できるようにする必要がありenumます。

メッセージに必要なデータをどこに追加できますか?

これまでに見た例 (この例など)はより単純で、役に立ちませんでした。

GENL オペレーションではコールバックが次のように定義されていることがわかります。

しかし、sk_buff を使用する例は見つかりませんでした。genl_info のみです。これは私が探しているものでしょうか?

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

linux - このマクロ _IOR(MY_MACIG, 0, int) の意味は何ですか?

カーネル空間との通信方法を確認するために、ioctl サンプル プログラムを調べていました。プログラムでは WRITE_IOCTL がコマンドとして使用されます

が何であるか理解できません_IOW(MY_MACIG, 1, int)。これは、プログラムをダウンロードした場所からのリンクです。私を助けてください。 http://people.ee.ethz.ch/~arkeller/linux/multi/kernel_user_space_howto-4.html

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

c - PF_NETLINK ソケットをリッスンするときに、すべてのリンクおよびアドレス情報を取得します

関連する (私にとって) ネットワーク情報が変更されるたびに通知する平和なコードを作成しました (主に RTM_NEWADDR、RTM_DELADDR、RTM_NEWLINK、および RTM_DELLINK をリッスンします)。唯一の問題は、コードを初めて起動したときに、現在のステータス全体 (RTM_GETLINK と RTM_GETADDR) を取得したいことです。

RTM_GETLINK または RTM_GETADDR のいずれかをリクエストできます。

しかし、両方を同時にリクエストした場合:

IP情報しか取得できません。

リクエスト用とリッスン用に 2 つの異なるソケットを使用することになっていますか、それとも同じソケットですべてを行うことは可能ですか?

リクエストごとに送信を実行しようとしましたが、seq を使用して (2 番目のリクエストではそれを増やしています)、2 番目の応答の長さが 40 バイトしかないことがわかりました:(

もう少し分析すると、NLMSG_ERROR メッセージ タイプが表示されるようです。エラー コード -16 は、「デバイスまたはリソースがビジー状態」を意味します。

送信するたびにソケットを読み取れば、問題は発生しません。しかし、私はすべてのリクエストを実行してから、すべての返信を収集できるようにしたいと考えています...