问题描述:
在一个IPSEC包进入到网络层调用IP——RCV()函数然后通过第一个钩子NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, 。。。.ip_rcv_finish),接着.到路由被判定是本地包.调用ip_local_deliver,.经过第二个钩子NF_HOOK(PF_INET, NF_IP_LOCAL_IN, 。。。。),这时进入IPSEC处理模块,当数据被解密以后掉.用了netif_rx函数,文档描述说这个操作是把解密以后的包从新放回I.P层 也就是从新执行IP——RCV函数的开始过程。(重复上面过程) 电脑
但是我不明白的地方是.当这个包被解密以后调用netif_rx函数返回后为什么该.包马上被处理?不应该.是放到一个队列中等别的包处理完了轮到它才能处理它吗。 举个例子我向一个机器发送2个包一个是IPESC包一个是明文包,当IPS.EC包进行上面处理后被neti.f_rx返回,这时候应该执行明文包处理,然后在执行被IPSEC处理后的明文包了,可是测试时候是把IPSEC的明文包执行完后在执行 开始的明文包。也就是IPSEC的明文包具有有限权,那个高手可以给我解释一下谢谢。.健康