Re: [Patch] 2.4.32 - Neighbour Cache (ARP) State machine bug Fixed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux