sendIP(port, packet) {
    const ip = IP.isIP(packet) ? packet : new IP('data', packet);
    if ((this.scope !== null) && (ip.scope === null)) { ip.scope = this.scope; }

    if (!this.nodeInstance.outPorts.ports[port]) {
      throw new Error(`Node ${this.nodeInstance.nodeId} does not have outport ${port}`);
    }

    // eslint-disable-next-line max-len
    const portImpl = /** @type {import("./OutPort").default} */ (this.nodeInstance.outPorts.ports[port]);

    if (portImpl.isAddressable() && (ip.index === null)) {
      throw new Error(`Sending packets to addressable port ${this.nodeInstance.nodeId} ${port} requires specifying index`);
    }

    if (this.nodeInstance.isOrdered()) {
      this.nodeInstance.addToResult(this.result, port, ip);
      return;
    }
    if (!portImpl.options.scoped) {
      ip.scope = null;
    }
    portImpl.sendIP(ip);
  }
@param {string} port - Port to send to
@param {IP|any} packet - IP or data to send
@returns {void}