2013-05-17 15 views
7

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

/* 
    * Remember the managed/otherconf flags from most recently 
    * received RA message (RFC 2462) -- yoshfuji 
    */ 
    in6_dev->if_flags = (in6_dev->if_flags & ~(IF_RA_MANAGED | 
          IF_RA_OTHERCONF)) | 
          (ra_msg->icmph.icmp6_addrconf_managed ? 
            IF_RA_MANAGED : 0) | 
          (ra_msg->icmph.icmp6_addrconf_other ? 
            IF_RA_OTHERCONF : 0); 
    . 
    . 
    . 

その後、私はIOCTLまたはprocファイルシステムや他の方法を使用して、これらの値を取得することが可能でなければならないと考えています。誰もそのように指摘してもらえますか?

+0

あなたはどの言語で作業していますか? –

+0

もちろん私はCで働いています。 – theB

答えて

3

最後に私は方法を見つけました。 Googleのおかげで、Shirley Maに感謝します。私のブログからコードを取得してくださいhttp://kumaran127.blogspot.jp/2013/05/get-m-and-o-flag-of-most-recently.html

+0

あなたのブログにはIBMのライブラリコードがいくつか書かれています。あなたもそれにリンクすることができます、事前に感謝します。 – thuovila

+1

ここにそのコードへのリンク[リンク](http://dev.laptop.org/~mstone/sources/expanded_srpms/dhcpv6-0.10-44.fc7/dhcp-0.10/)(http://dev.laptop .org /〜msto​​ne/sources/expanded_srpms/dhcpv6-0.10-44.fc7/dhcp-0.10 /)。 netlink.cファイルのコードを使用しました。 – theB

1

私はあなたがのprocfsでこれを見つけることができませんが、あなたはradvdumpでこれらのパケットを分析することができますかなり確信している:ここで彼らは生のICMP6フィルタを作成する方法..ですhttp://svn.dd-wrt.com/browser/src/router/radvd/radvdump.c?rev=11491http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/hints-daemons-radvd.htmlを参照し、それが実現していますかの参考のためにソケットhttp://svn.dd-wrt.com/browser/src/router/radvd/socket.c?rev=11491これは、次にリッスンするために使用されます。

乾杯

+0

procファイルシステムがこの情報を持っていないことをどうお確かめください。私が共有したコードを見てください。最新のRAのフラグは、将来の参照のために保存されていることが明確です(RFCが指定するように)。だから、それを検索する方法があるはずです。 – theB

+1

ここに、すべての 'procfs' [/proc/sys/net/ipv6/](http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/proc-sys-net-ipv6のエントリ)のリストがあります。 .html)。残念なことに、RAのフラグのエントリはリストされていません。 –

+1

あなたが見ているソースコードはおそらく、カーネル内の*使用のためのフラグを格納しています。ユーザー空間からこれらのフラグにアクセスしたい場合は、** radvd **のようなデーモンに依存するか、**/procへのフラグを出力するために独自のカーネルモジュールを動かす必要があります/ **。 –

関連する問題