其中m标志和o标志将在Linux中存储



我想知道最近收到的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过滤器,然后用于监听。

欢呼

最新更新