7

我想知道最近收到的路由器广告的 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 文件系统或任何其他方法检索这些值。任何人都可以请指出。

4

2 回答 2

3

我终于找到了路。感谢 Google,感谢 Shirley Ma。请从我的博客http://kumaran127.blogspot.jp/2013/05/get-m-and-o-flag-of-most-recently.html获取代码

于 2013-05-31T14:44:14.657 回答
1

我很确定您不会在 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 ..这是他们如何在原始套接字上创建icmp6过滤器http:/ /svn.dd-wrt.com/browser/src/router/radvd/socket.c?rev=11491然后用于监听。

干杯

于 2013-05-28T13:04:56.023 回答