summaryrefslogtreecommitdiffstats
path: root/nest/neighbor.c
diff options
context:
space:
mode:
Diffstat (limited to 'nest/neighbor.c')
-rw-r--r--nest/neighbor.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/nest/neighbor.c b/nest/neighbor.c
index 7e7cc49..785b1d4 100644
--- a/nest/neighbor.c
+++ b/nest/neighbor.c
@@ -278,6 +278,28 @@ neigh_if_down(struct iface *i)
}
}
+/**
+ * neigh_if_link - notify neighbor cache about interface link change
+ * @i: the interface in question
+ *
+ * Notify the neighbor cache that an interface changed link state.
+ * All owners of neighbor entries connected to this interface are
+ * notified.
+ */
+
+void
+neigh_if_link(struct iface *i)
+{
+ node *x, *y;
+
+ WALK_LIST_DELSAFE(x, y, i->neighbors)
+ {
+ neighbor *n = SKIP_BACK(neighbor, if_n, x);
+ if (n->proto->neigh_notify && n->proto->core_state != FS_FLUSHING)
+ n->proto->neigh_notify(n);
+ }
+}
+
static inline void
neigh_prune_one(neighbor *n)
{