summaryrefslogtreecommitdiffstats
path: root/proto/ospf
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-12-15 00:32:13 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2009-12-15 00:32:13 +0100
commit0225ea4eddb44bd9dd4f112e512325cbf80134d3 (patch)
tree3c9eebfd8217b178ed09f356b1e6bbd7aba89c64 /proto/ospf
parent43c1ceccb9caf8c4f63f191346c2f33889b4ad22 (diff)
parentf2d7da742bd683b8eaecb1be8e3b04618171c796 (diff)
downloadbird-0225ea4eddb44bd9dd4f112e512325cbf80134d3.tar
bird-0225ea4eddb44bd9dd4f112e512325cbf80134d3.zip
Merge branch 'ospf3' into new
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/topology.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c
index 4665681..3ca5e77 100644
--- a/proto/ospf/topology.c
+++ b/proto/ospf/topology.c
@@ -899,12 +899,11 @@ originate_ext_lsa_body(net *n, rte *e, u16 *length, struct proto_ospf *po,
int size = sizeof(struct ospf_lsa_ext);
u32 *buf;
- if (!ipa_equal(e->attrs->gw, IPA_NONE))
- {
- /* FIXME: check for link-local in OSPFv3 ? */
- if (ospf_iface_find((struct proto_ospf *) p, e->attrs->iface) != NULL)
- gw = 1;
- }
+ if ((e->attrs->dest == RTD_ROUTER) &&
+ !ipa_equal(e->attrs->gw, IPA_NONE) &&
+ !ipa_has_link_scope(e->attrs->gw) &&
+ (ospf_iface_find((struct proto_ospf *) p, e->attrs->iface) != NULL))
+ gw = 1;
#ifdef OSPFv3
size += IPV6_PREFIX_SPACE(n->n.pxlen);