Commit 9123de2c authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller

[NETFILTER]: ip6table_mangle: reroute when nfmark changes in NF_IP6_LOCAL_OUT

Now that IPv6 supports policy routing we need to reroute in NF_IP6_LOCAL_OUT
when the mark value changes.
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 57dab5d0
...@@ -73,6 +73,7 @@ enum nf_ip6_hook_priorities { ...@@ -73,6 +73,7 @@ enum nf_ip6_hook_priorities {
}; };
#ifdef CONFIG_NETFILTER #ifdef CONFIG_NETFILTER
extern int ip6_route_me_harder(struct sk_buff *skb);
extern unsigned int nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, extern unsigned int nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
unsigned int dataoff, u_int8_t protocol); unsigned int dataoff, u_int8_t protocol);
......
...@@ -57,8 +57,6 @@ extern void ip6_route_input(struct sk_buff *skb); ...@@ -57,8 +57,6 @@ extern void ip6_route_input(struct sk_buff *skb);
extern struct dst_entry * ip6_route_output(struct sock *sk, extern struct dst_entry * ip6_route_output(struct sock *sk,
struct flowi *fl); struct flowi *fl);
extern int ip6_route_me_harder(struct sk_buff *skb);
extern void ip6_route_init(void); extern void ip6_route_init(void);
extern void ip6_route_cleanup(void); extern void ip6_route_cleanup(void);
......
...@@ -180,12 +180,8 @@ ip6t_local_hook(unsigned int hook, ...@@ -180,12 +180,8 @@ ip6t_local_hook(unsigned int hook,
&& (memcmp(&(*pskb)->nh.ipv6h->saddr, &saddr, sizeof(saddr)) && (memcmp(&(*pskb)->nh.ipv6h->saddr, &saddr, sizeof(saddr))
|| memcmp(&(*pskb)->nh.ipv6h->daddr, &daddr, sizeof(daddr)) || memcmp(&(*pskb)->nh.ipv6h->daddr, &daddr, sizeof(daddr))
|| (*pskb)->nfmark != nfmark || (*pskb)->nfmark != nfmark
|| (*pskb)->nh.ipv6h->hop_limit != hop_limit)) { || (*pskb)->nh.ipv6h->hop_limit != hop_limit))
return ip6_route_me_harder(*pskb) == 0 ? ret : NF_DROP;
/* something which could affect routing has changed */
DEBUGP("ip6table_mangle: we'd need to re-route a packet\n");
}
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment