[IPV4]: Fix "Proxy ARP seems broken"
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 3 Oct 2005 21:18:10 +0000 (14:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Oct 2005 21:18:10 +0000 (14:18 -0700)
commit444fc8fc3a1f926fa224655b8950bd853368c1a3
treef6359721fc50ac3802b30d705e2c7c06b983c5f8
parent496a22b08fa326bf17c11eb900e0505aa9da3506
[IPV4]: Fix "Proxy ARP seems broken"

Meelis Roos <mroos@linux.ee> wrote:
> RK> My firewall setup relies on proxyarp working.  However, with 2.6.14-rc3,
> RK> it appears to be completely broken.  The firewall is 212.18.232.186,
>
> Same here with some kernel between 14-rc2 and 14-rc3 - no reposnse to
> ARP on a proxyarp gateway. Sorry, no exact revison and no more debugging
> yet since it'a a production gateway.

The breakage is caused by the change to use the CB area for flagging
whether a packet has been queued due to proxy_delay.  This area gets
cleared every time arp_rcv gets called.  Unfortunately packets delayed
due to proxy_delay also go through arp_rcv when they are reprocessed.

In fact, I can't think of a reason why delayed proxy packets should go
through netfilter again at all.  So the easiest solution is to bypass
that and go straight to arp_process.

This is essentially what would've happened before netfilter support
was added to ARP.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/arp.c