我需要在我的NetFilter挂钩中窃取一些SKB,并保留它们一段时间。
内核中是否有限制我一次可以使用多少个SKB? 在我的内核模块中保留了大约100,000个甚至更多的SKB会带来什么后果? 如果我可以拥有许多SKB,我可以避免两次复制我的数据包。
此致 Denes
答案 0 :(得分:1)
如果你的记忆没有问题。限制是32位x86机器上的内核数据空间通常限制为1G(参见http://kerneltrap.org/node/2450)。意识到每个skb都使用skb数据结构以及它引用的内存。您还可以使用ipqueue在用户空间中进行处理(可用更多内存)。
以上链接已死,上次已知版本已缓存here