One more attempt. Attaching the diff file as well. Signed off by: Pradeep Vincent <[email protected]> --- old/net/core/neighbour.c Wed Nov 9 16:48:10 2005 +++ new/net/core/neighbour.c Tue Feb 7 17:38:26 2006 @@ -14,6 +14,7 @@ * Vitaly E. Lavrov releasing NULL neighbor in neigh_add. * Harald Welte Add neighbour cache statistics like rtstat * Harald Welte port neighbour cache rework from 2.6.9-rcX + * Pradeep Vincent fix neighbour cache state machine */ #include <linux/config.h> @@ -705,6 +706,13 @@ neigh_release(n); continue; } + /* Move to NUD_STALE state */ + if (n->nud_state&NUD_REACHABLE && + now - n->confirmed > n->parms->reachable_time) { + n->nud_state = NUD_STALE; + neigh_suspect(n); + } + write_unlock(&n->lock); next_elt: Thanks, Pradeep On 2/7/06, Willy Tarreau <[email protected]> wrote: > Hi, > > On Tue, Feb 07, 2006 at 12:57:43AM -0700, Pradeep Vincent wrote: > > In 2.4.21, arp code uses gc_timer to check for stale arp cache > > entries. In 2.6, each entry has its own timer to check for stale arp > > cache. 2.4.29 to 2.4.32 kernels (atleast) use neither of these timers. > > This causes problems in environments where IPs or MACs are reassigned > > - saw this problem on load balancing router based networks that use > > VMACs. Tested this code on load balancing router based networks as > > well as peer-linux systems. > > > > > > Thanks, > > > > > > Signed off by: Pradeep Vincent <[email protected]> > > > > diff -Naur old/net/core/neighbour.c new/net/core/neighbour.c > > --- old/net/core/neighbour.c Wed Nov 23 17:15:30 2005 > > +++ new/net/core/neighbour.c Wed Nov 23 17:26:01 2005 > > @@ -14,6 +14,7 @@ > > * Vitaly E. Lavrov releasing NULL neighbor in neigh_add. > > * Harald Welte Add neighbour cache statistics like rtstat > > * Harald Welte port neighbour cache rework from 2.6.9-rcX > > + * Pradeep Vincent Move neighbour cache entry to stale state > > */ > > As you can see above, your mailer is still broken. Leading spaces get > removed and it seems like tabs are replaced with spaces. This makes it > really annoying to fix by hand because we all have to do your work again. > You should try to fix your mailer options, possibly by sending a few > mails to yourself or someone else (if you send *a few* mails to me, I > can confirm which one looks OK). If your mailer is definitely broken, > then you may send it as plain text first (for review), with a text > attachment for people to apply it without trouble. > > Thanks, > Willy > >
Attachment:
linux-2.4.29-arp-fix.patch
Description: Binary data
- Follow-Ups:
- Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- From: Grant Coady <[email protected]>
- Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- References:
- Fwd: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- From: Pradeep Vincent <[email protected]>
- Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- From: "David S. Miller" <[email protected]>
- Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- From: Pradeep Vincent <[email protected]>
- Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- From: Willy Tarreau <[email protected]>
- Fwd: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- Prev by Date: RE: [2.6 patch] let IA64_GENERIC select more stuff
- Next by Date: Re: [2.6 patch] let IA64_GENERIC select more stuff
- Previous by thread: Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- Next by thread: Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed
- Index(es):