diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2020-05-11 04:29:36 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2020-05-11 04:29:36 +0200 |
commit | b8bbbbaf569799ab8faff0ee185528b6a2129154 (patch) | |
tree | 300e4b88c161b5d430735a736053bce408b8ef8a /nest/iface.h | |
parent | f7c34aa227693194e53ca0435dba52c2a839bae8 (diff) |
Nest: Fix neighbor handling for colliding ranges
Resolve neighbors using longest prefix match. Although interface ranges
should not generally collide, it may happen for unnumbered links.
Thanks to Kenth Eriksson for the bugreport.
Diffstat (limited to 'nest/iface.h')
-rw-r--r-- | nest/iface.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/nest/iface.h b/nest/iface.h index b9796283..1189cdd4 100644 --- a/nest/iface.h +++ b/nest/iface.h @@ -123,7 +123,7 @@ void if_recalc_all_preferred_addresses(void); /* The Neighbor Cache */ typedef struct neighbor { - node n; /* Node in global neighbor list */ + node n; /* Node in neighbor hash table chain */ node if_n; /* Node in per-interface neighbor list */ ip_addr addr; /* Address of the neighbor */ struct ifa *ifa; /* Ifa on related iface */ @@ -150,7 +150,8 @@ void neigh_prune(void); void neigh_if_up(struct iface *); void neigh_if_down(struct iface *); void neigh_if_link(struct iface *); -void neigh_ifa_update(struct ifa *); +void neigh_ifa_up(struct ifa *a); +void neigh_ifa_down(struct ifa *a); void neigh_init(struct pool *); /* |