summaryrefslogtreecommitdiffstats
path: root/nest/iface.c
diff options
context:
space:
mode:
Diffstat (limited to 'nest/iface.c')
-rw-r--r--nest/iface.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/nest/iface.c b/nest/iface.c
index 2ff2611..2c61680 100644
--- a/nest/iface.c
+++ b/nest/iface.c
@@ -157,8 +157,14 @@ ifa_notify_change(unsigned c, struct ifa *a)
struct proto *p;
DBG("IFA change notification (%x) for %s:%I\n", c, a->iface->name, a->ip);
+ if (c & IF_CHANGE_UP)
+ neigh_ifa_update(a);
+
WALK_LIST(p, active_proto_list)
ifa_send_notify(p, c, a);
+
+ if (c & IF_CHANGE_DOWN)
+ neigh_ifa_update(a);
}
static inline void
@@ -195,8 +201,6 @@ if_notify_change(unsigned c, struct iface *i)
if_dump(i);
#endif
- if (c & IF_CHANGE_UP)
- neigh_if_up(i);
if (c & IF_CHANGE_DOWN)
WALK_LIST(a, i->addrs)
{
@@ -216,9 +220,6 @@ if_notify_change(unsigned c, struct iface *i)
if ((c & (IF_CHANGE_UP | IF_CHANGE_DOWN | IF_CHANGE_LINK)) == IF_CHANGE_LINK)
neigh_if_link(i);
-
- if (c & IF_CHANGE_DOWN)
- neigh_if_down(i);
}
static unsigned