* Harald Welte Add neighbour cache statistics like rtstat
*/
+#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <net/neighbour.h>
#include <net/dst.h>
#include <net/sock.h>
-#include <net/netevent.h>
#include <linux/rtnetlink.h>
#include <linux/random.h>
#include <linux/string.h>
neigh->nud_state = NUD_STALE;
neigh->updated = jiffies;
neigh_suspect(neigh);
- notify = 1;
}
} else if (state & NUD_DELAY) {
if (time_before_eq(now,
neigh->nud_state = NUD_REACHABLE;
neigh->updated = jiffies;
neigh_connect(neigh);
- notify = 1;
next = neigh->confirmed + neigh->parms->reachable_time;
} else {
NEIGH_PRINTK2("neigh %p is probed.\n", neigh);
out:
write_unlock(&neigh->lock);
}
- if (notify)
- call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
#ifdef CONFIG_ARPD
if (notify && neigh->parms->app_probes)
{
u8 old;
int err;
+#ifdef CONFIG_ARPD
int notify = 0;
+#endif
struct net_device *dev;
int update_isrouter = 0;
neigh_suspect(neigh);
neigh->nud_state = new;
err = 0;
+#ifdef CONFIG_ARPD
notify = old & NUD_VALID;
+#endif
goto out;
}
if (!(new & NUD_CONNECTED))
neigh->confirmed = jiffies -
(neigh->parms->base_reachable_time << 1);
+#ifdef CONFIG_ARPD
notify = 1;
+#endif
}
if (new == old)
goto out;
(neigh->flags & ~NTF_ROUTER);
}
write_unlock_bh(&neigh->lock);
-
- if (notify)
- call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
#ifdef CONFIG_ARPD
if (notify && neigh->parms->app_probes)
neigh_app_notify(neigh);
kfree(tbl->phash_buckets);
tbl->phash_buckets = NULL;
- free_percpu(tbl->stats);
- tbl->stats = NULL;
-
return 0;
}