private PortMapping.Protocol toJupnpProtocol(final NetworkProtocol protocol) {
    switch (protocol) {
      case UDP:
        return PortMapping.Protocol.UDP;
      case TCP:
        return PortMapping.Protocol.TCP;
    }
    return null;
  }
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