--- 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:
