Commit deb84d79 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

OSPF: Minor fix in graceful restart

Most LSA origination is blocked in ospf_update_topology(), this fix
blocks LSA origination from ospf_rt_spf().
parent e840cb9c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -281,11 +281,15 @@ ospf_do_originate_lsa(struct ospf_proto *p, struct top_hash_entry *en, void *lsa
struct top_hash_entry *
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;
  u16 lsa_blen = p->lsab_used;
  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 */
  if (ospf_is_v2(p) && lsa_is_opaque(lsa->type))
    lsa->id |= (u32) lsa_get_opaque_type(lsa->type) << 24;