mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 16:48:43 +00:00
OSPF: Minor fix in graceful restart
Most LSA origination is blocked in ospf_update_topology(), this fix blocks LSA origination from ospf_rt_spf().
This commit is contained in:
parent
e840cb9cd5
commit
deb84d7989
@ -281,11 +281,15 @@ ospf_do_originate_lsa(struct ospf_proto *p, struct top_hash_entry *en, void *lsa
|
|||||||
struct top_hash_entry *
|
struct top_hash_entry *
|
||||||
ospf_originate_lsa(struct ospf_proto *p, struct ospf_new_lsa *lsa)
|
ospf_originate_lsa(struct ospf_proto *p, struct ospf_new_lsa *lsa)
|
||||||
{
|
{
|
||||||
struct top_hash_entry *en;
|
struct top_hash_entry *en = NULL;
|
||||||
void *lsa_body = p->lsab;
|
void *lsa_body = p->lsab;
|
||||||
u16 lsa_blen = p->lsab_used;
|
u16 lsa_blen = p->lsab_used;
|
||||||
u16 lsa_length = sizeof(struct ospf_lsa_header) + lsa_blen;
|
u16 lsa_length = sizeof(struct ospf_lsa_header) + lsa_blen;
|
||||||
|
|
||||||
|
/* RFC 3623 2 (1) - do not originate topology LSAs during graceful restart */
|
||||||
|
if (p->gr_recovery && (LSA_FUNCTION(lsa->type) <= LSA_FUNCTION(LSA_T_NSSA)))
|
||||||
|
goto drop;
|
||||||
|
|
||||||
/* For OSPFv2 Opaque LSAs, LS ID consists of Opaque Type and Opaque ID */
|
/* For OSPFv2 Opaque LSAs, LS ID consists of Opaque Type and Opaque ID */
|
||||||
if (ospf_is_v2(p) && lsa_is_opaque(lsa->type))
|
if (ospf_is_v2(p) && lsa_is_opaque(lsa->type))
|
||||||
lsa->id |= (u32) lsa_get_opaque_type(lsa->type) << 24;
|
lsa->id |= (u32) lsa_get_opaque_type(lsa->type) << 24;
|
||||||
|
Loading…
Reference in New Issue
Block a user