nf_reset()这个函数做什么?

时间:2013-12-07 16:47:38

标签: c linux-kernel network-programming linux-device-driver

在尝试为我的项目编写Linux内核模块时,我遇到了这些功能。任何人都能告诉我他们在被召唤时做了什么吗?如果你可以引用我可以使用的一些资源,那么我可以减少你们的麻烦。我搜索了这些方法,但只找到了头文件。功能如下:

nf_reset()
skb_set_queue_mapping(skb, 0);
skb_dst_drop(skb);
skb_reset_network_header(skb);
skb_dst_drop(skb);

1 个答案:

答案 0 :(得分:1)

正如预期的那样,

nf_reset会重置NF状态:

2579 static inline void nf_reset(struct sk_buff *skb)
2580 {
2581 #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
2582         nf_conntrack_put(skb->nfct);
2583         skb->nfct = NULL;
2584 #endif
2585 #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
2586         nf_conntrack_put_reasm(skb->nfct_reasm);
2587         skb->nfct_reasm = NULL;
2588 #endif
2589 #ifdef CONFIG_BRIDGE_NETFILTER
2590         nf_bridge_put(skb->nf_bridge);
2591         skb->nf_bridge = NULL;
2592 #endif
2593 }