从 /proc/net/if_inet6 计算大于 0xFF 的 ifa 标志

从 /proc/net/if_inet6 计算大于 0xFF 的 ifa 标志

我一直在尝试写一些代码供 puppetlabs Factor 程序解析IFA旗帜/proc/net/if_inet6。目前该代码可以很好地检测值的标志< FF但与那些 > FF 斗争。据我所知,所有标志都应该编码在第五栏/proc/net/if_inet6。但是,当我检查已设置(我相信)的服务器时,IFA_F_MANAGETEMPADDR例如:

4: private: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:0:860:103:4ed9:8fff:fe6d:a085/64 scope global mngtmpaddr dynamic 
       valid_lft 2591992sec preferred_lft 604792sec
    inet6 fe80::4ed9:8fff:fe6d:a085/64 scope link 

标志(第 5 列)以及范围(第 4 列)/proc/net/if_inet6均设置为0x00

20010000086001034ed98ffffe6da085 04 40 00 00  private

有谁能够指出我的方向,以便能够mngtmpaddr通过阅读或 procfs 中的其他内容来计算是否设置了类似的标志/proc/net/if_inet6(我宁愿不解析ip -r -o addr

答案1

回答我自己的问题。尽管 ida_flags 是 u32,但该值是投射到 u8当打印到/proc/net/if_inet6.发生这种情况是因为某些程序有问题读取新值

我没有在 ruby​​ 或 procfs 中发现任何暴露 u32 标志的内容。

相关内容