看到这个netfilter的标题:http://lxr.free-electrons.com/source/include/uapi/linux/netfilter.h 我们:Netfilter钩子中的NF_DROP和NF_STOLEN有什么区别?
9 /* Responses from hook functions. */
10 #define NF_DROP 0
11 #define NF_ACCEPT 1
12 #define NF_STOLEN 2
13 #define NF_QUEUE 3
14 #define NF_REPEAT 4
15 #define NF_STOP 5
16 #define NF_MAX_VERDICT NF_STOP
here我发现这一段:
的NF_DROP返回代码意味着这个包应该完全消失了,它应该分配的任何资源被发布。 NF_ACCEPT告诉Netfilter到目前为止数据包仍然可以接受,并且它应该移动到网络堆栈的下一个阶段。 NF_STOLEN很有趣,因为它告诉Netfilter“忘记”数据包。 这告诉Netfilter,钩子函数将从这里处理这个数据包,并且Netfilter应该放弃它的所有处理。然而,这并不意味着数据包的资源被释放。数据包和它的相应sk_buff结构仍然有效,只是钩子函数已经从Netfilter中取走了数据包的所有权。 NF_REPEAT请求Netfilter再次调用挂钩函数。
但我不知道什么是关于向NF_DROP
和NF_STOLE
discarding
和forgetting
包之间的区别吗?
那么“NF_DROP”和“NF_STOLEN + kfree_skb”之间的区别是什么? – ernest