mirror of
				https://gitlab.labs.nic.cz/labs/bird.git
				synced 2024-05-11 16:54:54 +00:00 
			
		
		
		
	OSPF: Support for graceful restart
Implement OSPFv2 (RFC 3623) and OSPFv3 (RFC 5187) graceful restart, for both restarting and helper sides. Graceful restart is initiated by 'graceful down' command.
This commit is contained in:
		@@ -215,7 +215,7 @@ ospf_send_dbdes(struct ospf_proto *p, struct ospf_neighbor *n)
 | 
			
		||||
 | 
			
		||||
  ASSERT((n->state == NEIGHBOR_EXSTART) || (n->state == NEIGHBOR_EXCHANGE));
 | 
			
		||||
 | 
			
		||||
  if (n->ifa->oa->rt == NULL)
 | 
			
		||||
  if (!n->ifa->oa->rt && !p->gr_recovery)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  ospf_prepare_dbdes(p, n);
 | 
			
		||||
@@ -279,6 +279,10 @@ ospf_process_dbdes(struct ospf_proto *p, struct ospf_packet *pkt, struct ospf_ne
 | 
			
		||||
    if (LSA_SCOPE(lsa_type) == LSA_SCOPE_RES)
 | 
			
		||||
      DROP1("LSA with invalid scope");
 | 
			
		||||
 | 
			
		||||
    /* RFC 3623 2.2 (2) special case - check for my router-LSA (GR recovery) */
 | 
			
		||||
    if ((lsa_type == LSA_T_RT) && (lsa.rt == p->router_id))
 | 
			
		||||
      n->got_my_rt_lsa = 1;
 | 
			
		||||
 | 
			
		||||
    en = ospf_hash_find(p->gr, lsa_domain, lsa.id, lsa.rt, lsa_type);
 | 
			
		||||
    if (!en || (lsa_comp(&lsa, &(en->lsa)) == CMP_NEWER))
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user