我想知道最近收到的Router Advertisement的m标志和o标志的值。从内核源代码中我了解到m标志和o标志是存储的。
/*
* 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文件系统或任何其他方法。谁能指指方向?
我终于找到了路。感谢谷歌,感谢雪莉·马。请从我的博客http://kumaran127.blogspot.jp/2013/05/get-m-and-o-flag-of-most-recently.html获得代码
我很确定你不会在procfs中找到这个,但是你可以用radvdump分析这些数据包:参见http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/hints-daemons-radvd.html和它是如何实现的参考:http://svn.dd-wrt.com/browser/src/router/radvd/radvdump.c?rev=11491 ..下面是他们如何在原始套接字http://svn.dd-wrt.com/browser/src/router/radvd/socket.c?rev=11491上创建icmp6过滤器,然后用于监听。
欢呼