diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2009-12-15 00:32:13 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2009-12-15 00:32:13 +0100 |
commit | 0225ea4eddb44bd9dd4f112e512325cbf80134d3 (patch) | |
tree | 3c9eebfd8217b178ed09f356b1e6bbd7aba89c64 /proto/ospf/topology.c | |
parent | 43c1ceccb9caf8c4f63f191346c2f33889b4ad22 (diff) | |
parent | f2d7da742bd683b8eaecb1be8e3b04618171c796 (diff) |
Merge branch 'ospf3' into new
Diffstat (limited to 'proto/ospf/topology.c')
-rw-r--r-- | proto/ospf/topology.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index 46656811..3ca5e774 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); |