--- zzzz-none-000/linux-2.6.32.61/net/ipv4/ip_forward.c 2013-06-10 09:43:48.000000000 +0000 +++ ar9-7330-650/linux-2.6.32.61/net/ipv4/ip_forward.c 2011-07-20 07:23:51.000000000 +0000 @@ -38,6 +38,10 @@ #include #include +#ifdef CONFIG_LTQ_NETFILTER_PROCFS +int sysctl_netfilter_forward_enable = 1; +#endif + static int ip_forward_finish(struct sk_buff *skb) { struct ip_options * opt = &(IPCB(skb)->opt); @@ -47,6 +51,10 @@ if (unlikely(opt->optlen)) ip_forward_options(skb); +#ifdef CONFIG_AVM_PA + avm_pa_mark_routed(skb); +#endif + return dst_output(skb); } @@ -78,8 +86,10 @@ if (ip_hdr(skb)->ttl <= 1) goto too_many_hops; +#ifndef CONFIG_MAPPING if (!xfrm4_route_forward(skb)) goto drop; +#endif rt = skb_rtable(skb); @@ -111,6 +121,10 @@ skb->priority = rt_tos2priority(iph->tos); +#ifdef CONFIG_LTQ_NETFILTER_PROCFS + if (!sysctl_netfilter_forward_enable) + return ip_forward_finish(skb); +#endif return NF_HOOK(PF_INET, NF_INET_FORWARD, skb, skb->dev, rt->u.dst.dev, ip_forward_finish);