private PortMapping toJupnpPortMapping(final NatPortMapping natPortMapping) {
    return new PortMapping(
        true,
        new UnsignedIntegerFourBytes(0),
        null,
        new UnsignedIntegerTwoBytes(natPortMapping.getExternalPort()),
        new UnsignedIntegerTwoBytes(natPortMapping.getInternalPort()),
        null,
        toJupnpProtocol(natPortMapping.getProtocol()),
        natPortMapping.getNatServiceType().getValue());
  }
Recursively crawls the given device to look for specific services.

@param device is the device to inspect for desired services.
@param serviceTypes is a set of service types to look for.
nat/src/main/java/org/hyperledger/besu/nat/upnp/UpnpNatManager.java