問題タブ [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.
linux - ルートテーブル(ネットリンクソケット経由で取得)のルートアイテムにネットマスク情報がないのはなぜですか?
指定したターゲットアドレスに接続するのに最適なネットワークインターフェイスを見つけるためのプログラムを作成しています。
現在、netlink
ソケットAPIを介してルートテーブルを取得できますが、ネットマスク情報が含まれていないようです。のマニュアルを読みましたがrtnetlink
、すべての項目で、rtattr
ネットマスク情報はなく、、、RTA_DST
...が定義されています。RTA_SRC
RTA_GATEWAY
では、ルートテーブルのネットマスク情報を確認するにはどうすればよいですか?route -n
出力で見ることができるように。
どうもありがとう。
matlab - 数学とMATLABのNetLinkとの相互作用とそれらの間のデータ交換
matlabを呼び出すために数学で次のコードを使用しました
matlabワークスペース変数"a"をmathematicaから取得し、それをmathematica行列に変換したいと思います。どうすればnetlinkでこれを行うことができますか?
c - Linuxキャリア検出通知
Linuxには、ネットワークインターフェイスキャリアの変更の通知を受け取るためのインターフェイスがありますか?SIOCETHTOOLとのインターフェイスをポーリングすることは可能ですが、キャリア検出の変更時に返される通知やブロッキング呼び出しを受け取る方法があるかどうか疑問に思っていましたか?
linux - Netlink ソケットと libnl - nl_recvmsgs_default が -16 (EBUSY) を返す
私はいくつかの基本的なカーネル モジュールをコーディングしようとしています - netlink ソケット (ユーザー側の libnl) を使用したユーザー空間プログラム通信。ユーザー空間プログラムはカーネルにメッセージを送信し、応答を期待します。残念ながら、応答の受信は戻り値 -16 (EBUSY) で失敗します。
興味深いことに、標準のシステム コールrecv
onを使用して netlink ソケットから直接データを受信するとnl_socket_get_fd(sock)
、すべて正常に動作します。
なぜこれが起こっているのか誰にも分かりますか?
ユーザー空間のコードは次のとおりです (parse_cb は呼び出されないコールバックです)。
これは、ユーザー空間プログラムによって送信されたメッセージのカーネル側コールバックです (これは適切に呼び出されます)。
そして、「send_to_daemon」関数は次のとおりです。
linux-kernel - Netlink: カーネルからユーザーへの送信 - EAGAIN および ENOBUFS
カーネル モジュールからユーザー空間デーモンに netlink メッセージを送信するのに多くの問題があります。それらはランダムに失敗します。カーネル側では、ユーザー側では(function from ) が失敗し、syscall が で失敗しgenlmsg_unicast
たことが原因で失敗します。EAGAIN
nl_recvmsgs_default
libnl
NLE_NOMEM
recvmsg
ENOBUFS
Netlink メッセージは小さく、最大ペイロード サイズは ~300B です。
カーネルからメッセージを送信するコードは次のとおりです。
なぜこれが起こっているのか、まったくわかりません。そのため、私のプロジェクトは機能しません。誰かがそれを手伝ってくれることを本当に願っています。
c++ - libnl nl_sockをどのように使用しますか?
上記のコードは常に次のエラーでコンパイルに失敗します:/home/micah/Documents/C++/Socket_fun/Socket_fun/src/main.cpp|5|error:'sock'はタイプを指定しません
私はこれをlibnlの例から取得しましたが、機能しないので、これを行う正しい方法は何でしょうか。
c++ - ネットリンクメッセージの頻度
inet_diagモジュールとlibpcapを使用して、libpcapを使用してキャプチャしたURLにアクセスしたユーザーのuidを取得しています。1秒あたりにキャプチャされるURLが多い可能性があるため、1秒あたりに送信するネットリンクメッセージの数に制限があるのか、URLがキャプチャされるたびにキャッシュして時々更新するのか、それとも簡単にメッセージを送信するのか、疑問に思いました。
python - Python LinuxNetlinkRecvバッファ
socket.recv()
利用可能なすべてのデータを受信しない場合にNETLINK_ROUTEソケットから試行を作成すると、受信されなかったデータが失われるようです。
例えば:
Isock.recv(100)
の場合、100バイトが返されますが、他の+2900バイトは失われます。別の操作を行うsock.recv()
と、次のnlmsghdr(マルチパートメッセージの場合)が返されるか、データの待機がブロックされます。
sock.recv(X, socket.MSG_PEEK)
データを失うことなくXバイトを読み取ることができます。しかし、そうするとき、もちろん、読み取られたデータはrecvバッファからポップされません。
読み取られなかったデータは、読み取られるまでバッファに残ると思いました。私は何が間違っているのですか?利用できるデータの量を「推測」するだけではありません...
linux - 新しい netlink ファミリーでソケット netlink を使用する方法
新しい netlink ファミリで netlink ソケットを使用すると、いくつかの問題があります...特にグループで。netlink_broadcast
カーネル空間でorメソッドを使用nlmsg_multicast
して、メッセージをユーザー空間に送信します。たとえば、定義を含むヘッダーがあります。
ソケットを開き、ネットリンク アドレスにバインドするプロセス:
明らかにカーネル空間で私は呼び出します:
プロセスがrecv_cb
ユーザー空間からメッセージを送信するときに呼び出されるコールバックです。
今、私はユーザー空間にメッセージを送信しようとしています:
が 1の場合にのみ、プロセス内のメッセージを正しく読み取ることができますNL_MYGRP
。問題がわかりません...すべての netlink ファミリが指定されてlinux/netlink.h
おり、番号 20 が存在しないため、私の指定に使用できると思います新しい家族。なにが問題ですか?皆さん、ありがとうございました。
matlab - Mathematica で .NETLink を使用して Matlab を呼び出す際のエラー
コードに従う前に、問題なくMATHEMATICAからMATLABを呼び出すために使用しました
しかし、今私はこのようなエラーがあります:
CreateCOMObject::netexcptn: ".NET 例外が発生しました: !(TraditionalForm`\"System.Runtime.InteropServices.COMException (0x800401F3): 無効なクラス文字列 (HRESULT からの例外: 0x800401F3 (CO_E_CLASSSTRING))\\n at System.RuntimeType. GetTypeFromProgIDImpl(String progID, String server, Boolean throwOnError)\\n at Wolfram.NETLink.Internal.COM.COMUtilities.createCOMObject(String clsIDOrProgID)\\n at Wolfram.NETLink.Internal.CallPacketHandler.createCOM(KernelLinkImpl ml)\") ."
Win 7 x64 に .net Framework 4 をインストールしました。.Net フレームワークのエラーですか?