code: def connection_lost(self, reason):
          
          LOG.info(
              'Connection to peer %s lost, reason: %s Resetting '
              'retry connect loop: %s' %
              (self._neigh_conf.ip_address, reason,
               self._connect_retry_event.is_set()),
              extra={
                  'resource_name': self._neigh_conf.name,
                  'resource_id': self._neigh_conf.id
              }
          )
          self.state.bgp_state = const.BGP_FSM_IDLE
          if self._protocol:
              self._protocol.stop()
              self._protocol = None
              # Create new collection for initial RT NLRIs
              self._init_rtc_nlri_path = []
              self._sent_init_non_rtc_update = False
              # Clear sink.
              self.clear_outgoing_msg_list()
              # Un-schedule timers
              self._unschedule_sending_init_updates()
  
              # Increment the version number of this source.
              self.version_num += 1
              self._peer_manager.on_peer_down(self)
  
              # Check configuration if neighbor is still enabled, we try
              # reconnecting.
              if self._neigh_conf.enabled:
                  if not self._connect_retry_event.is_set():
                      self._connect_retry_event.set()
docs: Protocols connection lost handler.