mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 21:10:28 +00:00
ospf6d: don't suppress empty router LSA
Currently in OSPFv3 implementation, if all the interfaces are down/loopback or are without any full adjacencies, the router LSA is suppressed. So for a router with only stub networks, no router LSA is generated. However, intra-prefix LSAs are generated for the stub networks and these intra-prefix LSAs will reference the router LSA. So the router LSA really should not be suppressed. It needs to be generated to be the starting vertex for SPF w.r.t the stub networks. Signed-off-by: James Li <jli at cumulusnetworks.com> Reviewed-by: Dinesh G Dutt <ddutt at cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
e39d05384d
commit
17d003da96
@ -272,35 +272,26 @@ ospf6_router_lsa_originate (struct thread *thread)
|
||||
/* xxx */
|
||||
}
|
||||
|
||||
if ((caddr_t) lsdesc != (caddr_t) router_lsa +
|
||||
sizeof (struct ospf6_router_lsa))
|
||||
{
|
||||
/* Fill LSA Header */
|
||||
lsa_header->age = 0;
|
||||
lsa_header->type = htons (OSPF6_LSTYPE_ROUTER);
|
||||
lsa_header->id = htonl (link_state_id);
|
||||
lsa_header->adv_router = oa->ospf6->router_id;
|
||||
lsa_header->seqnum =
|
||||
ospf6_new_ls_seqnum (lsa_header->type, lsa_header->id,
|
||||
lsa_header->adv_router, oa->lsdb);
|
||||
lsa_header->length = htons ((caddr_t) lsdesc - (caddr_t) buffer);
|
||||
/* Fill LSA Header */
|
||||
lsa_header->age = 0;
|
||||
lsa_header->type = htons (OSPF6_LSTYPE_ROUTER);
|
||||
lsa_header->id = htonl (link_state_id);
|
||||
lsa_header->adv_router = oa->ospf6->router_id;
|
||||
lsa_header->seqnum =
|
||||
ospf6_new_ls_seqnum (lsa_header->type, lsa_header->id,
|
||||
lsa_header->adv_router, oa->lsdb);
|
||||
lsa_header->length = htons ((caddr_t) lsdesc - (caddr_t) buffer);
|
||||
|
||||
/* LSA checksum */
|
||||
ospf6_lsa_checksum (lsa_header);
|
||||
/* LSA checksum */
|
||||
ospf6_lsa_checksum (lsa_header);
|
||||
|
||||
/* create LSA */
|
||||
lsa = ospf6_lsa_create (lsa_header);
|
||||
/* create LSA */
|
||||
lsa = ospf6_lsa_create (lsa_header);
|
||||
|
||||
/* Originate */
|
||||
ospf6_lsa_originate_area (lsa, oa);
|
||||
/* Originate */
|
||||
ospf6_lsa_originate_area (lsa, oa);
|
||||
|
||||
link_state_id ++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IS_OSPF6_DEBUG_ORIGINATE (ROUTER))
|
||||
zlog_debug ("Nothing to describe in Router-LSA, suppress");
|
||||
}
|
||||
link_state_id ++;
|
||||
|
||||
/* Do premature-aging of rest, undesired Router-LSAs */
|
||||
type = ntohs (OSPF6_LSTYPE_ROUTER);
|
||||
|
Loading…
Reference in New Issue
Block a user