我们在做什么: 我们正在使用 netfilter 库。我们的模块(比如“X-engine”)读取并缓存 if_index。
真正的问题: 如果内核出于某种原因决定更改 if_index,X 引擎缓存的 if_index 不会更新并开始丢弃数据包,因为 if_index 缓存在 module-X 中的内容与实际存在的内容不匹配核心。
我们正在寻找什么: 现在有没有一种方法/API 可以通知 module-X 这个更改事件,以便 module-X 更新它的缓存 if_index 适当?
我们在做什么: 我们正在使用 netfilter 库。我们的模块(比如“X-engine”)读取并缓存 if_index。
真正的问题: 如果内核出于某种原因决定更改 if_index,X 引擎缓存的 if_index 不会更新并开始丢弃数据包,因为 if_index 缓存在 module-X 中的内容与实际存在的内容不匹配核心。
我们正在寻找什么: 现在有没有一种方法/API 可以通知 module-X 这个更改事件,以便 module-X 更新它的缓存 if_index 适当?
也许您需要使用 rtnetlink 套接字来监视和处理 RTM_NEWLINK 和 RTM_DELLINK 消息(提供有关创建或删除特定网络接口的信息)。更多信息请访问http://man7.org/linux/man-pages/man7/rtnetlink.7.html