Re: [PATCH 07/13]: [NETFILTER]: Fix xfrm lookup in ip_route_me_harder/ip6_route_me_harder
From: Patrick McHardy <hidden>
Date: 2005-11-29 07:02:34
Also in:
netfilter-devel
From: Patrick McHardy <hidden>
Date: 2005-11-29 07:02:34
Also in:
netfilter-devel
Herbert Xu wrote:
On Sun, Nov 20, 2005 at 04:31:37PM +0000, Patrick McHardy wrote:quoted
diff --git a/include/net/ip.h b/include/net/ip.h index 9f09882..377036b 100644 --- a/include/net/ip.h +++ b/include/net/ip.h@@ -45,6 +45,7 @@ struct inet_skb_parm#define IPSKB_TRANSLATED 2 #define IPSKB_FORWARDED 4 #define IPSKB_XFRM_TUNNEL_SIZE 8 +#define IPSKB_XFRM_TRANSFORMED 16 };My only question about this patch is where should we clear these flags? For instance, when ipip/gre transmits a packet, should this flag (and perhaps other flags here) be cleared?
Good point. This specific flags should be cleared when a packet (re-)enters the IP stack, I guess by definition of the cb, this holds for the other flags as well. Looking at the other flags: - IPSKB_MASQUERADED is unused - IPSKB_TRANSLATED is unused - IPSKB_FORWARDED is used by ipmr in a way that looks broken, it expects the flags on the input path to be the same it set on the output path. - IPSKB_XFRM_TUNNEL_SIZE should be cleared when a packet enters the IP stack It seems in most places where only IPCB(skb)->opt is cleared the entire CB should be cleared. A couple of spots also look completely unnecessary, for example all places clearing the CB before passing the packet to netif_rx. I would expect the next user beeing responsible for clearing the space he needs if neccessary.