]> git.proxmox.com Git - mirror_frr.git/blobdiff - ldpd/notification.c
Merge pull request #2932 from donaldsharp/ferr_fix
[mirror_frr.git] / ldpd / notification.c
index f10faa4a54b3bcf06b602388a86cabed616f09b5..4a5f3c8fa4bbc9ad2081c184b6c42d413d6837ef 100644 (file)
@@ -237,6 +237,16 @@ recv_notification(struct nbr *nbr, char *buf, uint16_t len)
                if (nbr->state == NBR_STA_OPENSENT)
                        nbr_start_idtimer(nbr);
 
+               /*
+                * RFC 5036 - Section 3.5.1.1:
+                * "When an LSR receives a Shutdown message during session
+                * initialization, it SHOULD transmit a Shutdown message and
+                * then close the transport connection".
+                */
+               if (nbr->state != NBR_STA_OPER && nm.status_code == S_SHUTDOWN)
+                       send_notification(nbr->tcp, S_SHUTDOWN,
+                           msg.id, msg.type);
+
                nbr_fsm(nbr, NBR_EVT_CLOSE_SESSION);
                return (-1);
        }