code: def on_update_enabled(self, conf_evt):
          
          enabled = conf_evt.value
          # If we do not have any protocol bound and configuration asks us to
          # enable this peer, we try to establish connection again.
          if enabled:
              LOG.info('%s enabled', self)
              if self._protocol and self._protocol.started:
                  LOG.error('Tried to enable neighbor that is already enabled')
              else:
                  self.state.bgp_state = const.BGP_FSM_CONNECT
                  # Restart connect loop if not already running.
                  if not self._connect_retry_event.is_set():
                      self._connect_retry_event.set()
                      LOG.debug('Starting connect loop as neighbor is enabled.')
          else:
              LOG.info('%s disabled', self)
              if self._protocol:
                  # Stopping protocol will eventually trigger connection_lost
                  # handler which will do some clean-up.
                  # But the greenlet that is in charge of the socket may be kill
                  # when we stop the protocol, hence we call connection_lost
                  # here as we triggered socket to close.
                  self._protocol.send_notification(
                      BGP_ERROR_CEASE,
                      BGP_ERROR_SUB_ADMINISTRATIVE_SHUTDOWN
                  )
                  self._protocol.stop()
                  self._protocol = None
                  self.state.bgp_state = const.BGP_FSM_IDLE
              # If this peer is not enabled any-more we stop trying to make any
              # connection.
              LOG.debug('Disabling connect-retry as neighbor was disabled')
              self._connect_retry_event.clear()
docs: Implements neighbor configuration change listener.