【发布时间】:2015-12-27 19:57:01
【问题描述】:
如果内核出于某种原因决定更改接口索引,我们的用户空间代码缓存接口索引不会更新并开始丢弃数据包,因为它们在用户空间中缓存的接口索引与内核中实际存在的接口索引不匹配。
我使用 if_indextoname(index, interfaceName) 来解决这个问题。基本上内核知道哪个索引映射到正确的接口名称。
现在是我的要求:我需要测试我的代码。有没有一种方法可以模拟索引更改以便验证我的代码?我有一种直觉,因为索引是内核非常特殊的东西,因此它只能通过调用(if_nametoindex()/等)访问,但我们无法更改它。那么如何验证我的变更集呢?
【问题讨论】:
标签: linux linux-kernel network-programming driver network-interface