code: def _packet_loop(self):
          
          while self._is_running:
              # Only wait if there are no more packets in the inbox
              if self.inbox.empty() \
                      and not self.new_packet.wait(self._packet_timeout):
                  continue
              ip, port, packet = self.inbox.get()
              if self.inbox.empty():
                  self.new_packet.clear()
              self.debug(u"{}".format(packet))
  
              if packet.header.message_type == MsgType.CONFIG:
                  self._do_config_packet(packet, ip, port)
              elif packet.header.message_type == MsgType.UPDATE:
                  self._do_update_packet(packet)
docs: Packet processing loop
  
          :rtype: None