code: def run(self):
          
          if self.program:
              self.program.start()
          while self.keep_listening:
              for interface in self.interfaces:
                  packet = interface.recv(self.mac_addr if not self.promiscuous else "00:00:00:00:00:00")
                  if packet:
                      self.recv(packet, interface)
                  time.sleep(0.01)
          self.log("Stopped listening.")
docs: runloop that gets triggered by node.start()
          reads new packets off the link and feeds them to recv()