docs: def recv_raw(self, x=MTU):
          """Receives a packet, then returns a tuple containing (cls, pkt_data, time)"""  # noqa: E501
          ll = self.ins.datalink()
          if ll in conf.l2types:
              cls = conf.l2types[ll]
          else:
              cls = conf.default_l2
              warning("Unable to guess datalink type (interface=%s linktype=%i). Using %s",  # noqa: E501
                      self.iface, ll, cls.name)
  
          pkt = None
          while pkt is None:
              pkt = self.ins.next()
              if pkt is not None:
                  ts, pkt = pkt
              if pkt is None and scapy.consts.WINDOWS:
                  raise TimeoutElapsed  # To understand this behavior, have a look at L2pcapListenSocket's note  # noqa: E501
              if pkt is None:
                  return None, None, None
          return cls, pkt, ts