class PacketHeaderConstraints {

  @Nullable
  public Set<IpProtocol> resolveIpProtocols() {
    return resolveIpProtocols(
        getIpProtocols(),
        getSrcPorts(),
        getDstPorts(),
        getApplications(),
        getTcpFlags(),
        getIcmpTypes(),
        getIcmpCodes());
  }

  private  PacketHeaderConstraints(
      @Nullable IntegerSpace dscps,
      @Nullable IntegerSpace ecns,
      @Nullable IntegerSpace packetLengths,
      @Nullable IntegerSpace fragmentOffsets,
      @Nullable Set<IpProtocol> ipProtocols,
      @Nullable String srcIp,
      @Nullable String dstIp,
      @Nullable IntegerSpace icmpCode,
      @Nullable IntegerSpace icmpType,
      @Nullable IntegerSpace srcPorts,
      @Nullable IntegerSpace dstPorts,
      @Nullable String applications,
      @Nullable Set<TcpFlagsMatchConditions> tcpFlags);

}