問題タブ [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.
c - たとえば、netlink のソース コードはどこにありますか?
netlink の API の定義を読みたいのですが、sys/socket.h、linux/netlink.h などのヘッダー ファイルしか見つかりません。.c ファイルはどこにありますか?
c - netlink ライブラリを使用してコマンドをネットワーク インターフェイスに送信する方法
私はwifi関連のプロジェクトを開始しており、Linux ioctl呼び出しで完了しました。ioctl が非推奨になったため、libnl を使用して同じことを行う必要があります。コア ドキュメントはすべて読みましたが、特定のインターフェイスでコマンドを送信する方法をまだ理解していません。コマンドをネットワーク インターフェイスに送信するにはどうすればよいですか? NL80211_CMD_TRIGGER_SCAN を送信したいのですが、どうすればよいですか? それが私の旅の始まりになるので、サンプルコードは大歓迎です。今のところ理解しているように、次のような libnl ソケットを作成する必要があります。
次に、コマンドで nl_msg メッセージを作成して送信しますが、どのようにですか?
PSはnl_send()を想定していますが、このライブラリがどのように機能するかという考えを理解していない点で立ち往生していることを理解していただければ幸いです
network-programming - スキャンがいつ終了したかを知る方法
次のコードでスキャンをトリガーします
では、スキャンがいつ終了したかを知るにはどうすればよいですか?また、どうすれば取得できますか? これまで検索してきたすべての場所に、「"スキャン" マルチキャスト グループで NL80211_CMD_NEW_SCANS 通知を受け取ります」とありますが、どのように購読すればよいですか? コールバックを登録してみました
その後、 while でメッセージをリッスンします
しかし、何も起こらなかったので、ここまで読むのに十分な忍耐力があれば、2 つの質問に答えてください。
1) スキャンがいつ終了したかを知るにはどうすればよいですか (この通知を購読する方法、またはそれらを読む方法など)
2)通知を受け取った後にメッセージを読むにはどうすればよいですか(以下で理解している方法)
スキャンされたデータを読み取るには、スキャンをトリガーするメッセージと同様のメッセージを送信する必要がありますが、メッセージ NL80211_CMD_GET_SCAN を送信すると、その後、データは nl_socket のペイロードに格納されます。よろしいですか?
c - NetLink 経由で送信されるデータのサイズ
NetLink (Linux カーネル) 経由で送信されたデータのチャンクのサイズを取得しようとしています。で試しましsize = nlh->nlmsg_len - NLMSG_HDRLENたが、正しいサイズが返されません。メッセージのデータ サイズを取得する正しい方法は何ですか?