请参阅此 netfilter 标头: http: //lxr.free-electrons.com/source/include/uapi/linux/netfilter.h 我们有:
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
在这里我找到了这一段:
NF_DROP 返回码意味着这个数据包应该被完全丢弃并且分配给它的所有资源应该被释放。NF_ACCEPT 告诉 Netfilter 到目前为止数据包仍然是可接受的,它应该移动到网络堆栈的下一个阶段。NF_STOLEN 是一个有趣的方法,因为它告诉 Netfilter “忘记”这个数据包。这告诉 Netfilter 钩子函数将从这里开始处理这个数据包,并且 Netfilter 应该放弃对它的所有处理。然而,这并不意味着数据包的资源被释放。数据包及其各自的 sk_buff 结构仍然有效,只是钩子函数已将数据包的所有权从 Netfilter 手中夺走。NF_REPEAT 请求 Netfilter 再次调用钩子函数。
discarding
但我不知道和之间的forgetting
数据包与NF_DROP
和有什么区别NF_STOLE
?