summaryrefslogtreecommitdiffstats
path: root/proto/ospf/iface.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-08-25 16:42:14 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2009-08-25 16:42:14 +0200
commitb49e6f5a65d437cb7e7bdefe8397e0f550496012 (patch)
tree21e0f77023119de17ea8ab6ab7871b1026db92e6 /proto/ospf/iface.c
parentc3226991a061415fa83b757cbff678111c586e58 (diff)
downloadbird-b49e6f5a65d437cb7e7bdefe8397e0f550496012.tar
bird-b49e6f5a65d437cb7e7bdefe8397e0f550496012.zip
Temporary OSPFv3 development commit
Diffstat (limited to 'proto/ospf/iface.c')
-rw-r--r--proto/ospf/iface.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c
index ea3baa2..cae36ad 100644
--- a/proto/ospf/iface.c
+++ b/proto/ospf/iface.c
@@ -420,6 +420,23 @@ ospf_iface_new(struct proto_ospf *po, struct iface *iface,
#ifdef OSPFv3
ifa->instance_id = ip->instance_id;
+
+ ifa->lladdr = IPA_NONE;
+
+ /* Find link-local address */
+ if (ifa->type != OSPF_IT_VLINK)
+ {
+ struct ifa *a;
+ WALK_LIST(a, iface->addrs)
+ if (a->scope == SCOPE_LINK)
+ {
+ ifa->lladdr = a->ip;
+ break;
+ }
+
+ if (! ipa_nonzero(ifa->lladdr))
+ log(L_WARN "%s: Missing link local address on interface %s", p->name, iface->name);
+ }
#endif
ifa->rxbuf = ip->rxbuf;