Merge branch 'ospf3' into new

This commit is contained in:
Ondrej Zajicek 2009-12-15 00:32:13 +01:00
commit 0225ea4edd
2 changed files with 9 additions and 8 deletions

View file

@ -864,10 +864,12 @@ bgp_create_attrs(struct bgp_proto *p, rte *e, ea_list **attrs, struct linpool *p
z = bgp_set_attr_wa(ea->attrs+2, pool, BA_NEXT_HOP, NEXT_HOP_LENGTH); z = bgp_set_attr_wa(ea->attrs+2, pool, BA_NEXT_HOP, NEXT_HOP_LENGTH);
if (p->cf->next_hop_self || if (p->cf->next_hop_self ||
rta->dest != RTD_ROUTER || rta->dest != RTD_ROUTER ||
(!p->is_internal && (e->attrs->iface != p->neigh->iface))) ipa_equal(e->attrs->gw, IPA_NONE) ||
ipa_has_link_scope(rta->gw) ||
(!p->is_internal && (rta->iface != p->neigh->iface)))
set_next_hop(z, p->source_addr); set_next_hop(z, p->source_addr);
else else
set_next_hop(z, e->attrs->gw); set_next_hop(z, rta->gw);
bgp_set_attr(ea->attrs+3, BA_LOCAL_PREF, 0); bgp_set_attr(ea->attrs+3, BA_LOCAL_PREF, 0);

View file

@ -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); int size = sizeof(struct ospf_lsa_ext);
u32 *buf; u32 *buf;
if (!ipa_equal(e->attrs->gw, IPA_NONE)) if ((e->attrs->dest == RTD_ROUTER) &&
{ !ipa_equal(e->attrs->gw, IPA_NONE) &&
/* FIXME: check for link-local in OSPFv3 ? */ !ipa_has_link_scope(e->attrs->gw) &&
if (ospf_iface_find((struct proto_ospf *) p, e->attrs->iface) != NULL) (ospf_iface_find((struct proto_ospf *) p, e->attrs->iface) != NULL))
gw = 1; gw = 1;
}
#ifdef OSPFv3 #ifdef OSPFv3
size += IPV6_PREFIX_SPACE(n->n.pxlen); size += IPV6_PREFIX_SPACE(n->n.pxlen);