code: def _recv_loop(self):
          
          required_len = BGP_MIN_MSG_LEN
          conn_lost_reason = "Connection lost as protocol is no longer active"
          try:
              while True:
                  next_bytes = self._socket.recv(required_len)
                  if len(next_bytes) == 0:
                      conn_lost_reason = 'Peer closed connection'
                      break
                  self.data_received(next_bytes)
          except socket.error as err:
              conn_lost_reason = 'Connection to peer lost: %s.' % err
          except bgp.BgpExc as ex:
              conn_lost_reason = 'Connection to peer lost, reason: %s.' % ex
          except Exception as e:
              LOG.debug(traceback.format_exc())
              conn_lost_reason = str(e)
          finally:
              self.connection_lost(conn_lost_reason)
docs: Sits in tight loop collecting data received from peer and
          processing it.