Interface DnsCacheConfigOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
DnsCacheConfig, DnsCacheConfig.Builder

public interface DnsCacheConfigOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    If the DNS failure refresh rate is specified, this is used as the cache's DNS refresh rate when DNS requests are failing.
    If the DNS failure refresh rate is specified, this is used as the cache's DNS refresh rate when DNS requests are failing.
    The DNS lookup family to use during resolution.
    int
    The DNS lookup family to use during resolution.
    com.google.protobuf.Duration
    The DNS refresh rate for currently cached DNS hosts.
    com.google.protobuf.DurationOrBuilder
    The DNS refresh rate for currently cached DNS hosts.
    com.google.protobuf.Duration
    The TTL for hosts that are unused.
    com.google.protobuf.DurationOrBuilder
    The TTL for hosts that are unused.
    com.google.protobuf.UInt32Value
    The maximum number of hosts that the cache will hold.
    com.google.protobuf.UInt32ValueOrBuilder
    The maximum number of hosts that the cache will hold.
    The name of the cache.
    com.google.protobuf.ByteString
    The name of the cache.
    boolean
    If the DNS failure refresh rate is specified, this is used as the cache's DNS refresh rate when DNS requests are failing.
    boolean
    The DNS refresh rate for currently cached DNS hosts.
    boolean
    The TTL for hosts that are unused.
    boolean
    The maximum number of hosts that the cache will hold.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • getName

      String getName()
       The name of the cache. Multiple named caches allow independent dynamic forward proxy
       configurations to operate within a single Envoy process using different configurations. All
       configurations with the same name *must* otherwise have the same settings when referenced
       from different configuration components. Configuration will fail to load if this is not
       the case.
       
      string name = 1 [(.validate.rules) = { ... }
      Returns:
      The name.
    • getNameBytes

      com.google.protobuf.ByteString getNameBytes()
       The name of the cache. Multiple named caches allow independent dynamic forward proxy
       configurations to operate within a single Envoy process using different configurations. All
       configurations with the same name *must* otherwise have the same settings when referenced
       from different configuration components. Configuration will fail to load if this is not
       the case.
       
      string name = 1 [(.validate.rules) = { ... }
      Returns:
      The bytes for name.
    • getDnsLookupFamilyValue

      int getDnsLookupFamilyValue()
       The DNS lookup family to use during resolution.
      
       [#comment:TODO(mattklein123): Figure out how to support IPv4/IPv6 "happy eyeballs" mode. The
       way this might work is a new lookup family which returns both IPv4 and IPv6 addresses, and
       then configures a host to have a primary and fall back address. With this, we could very
       likely build a "happy eyeballs" connection pool which would race the primary / fall back
       address and return the one that wins. This same method could potentially also be used for
       QUIC to TCP fall back.]
       
      .envoy.api.v2.Cluster.DnsLookupFamily dns_lookup_family = 2 [(.validate.rules) = { ... }
      Returns:
      The enum numeric value on the wire for dnsLookupFamily.
    • getDnsLookupFamily

      Cluster.DnsLookupFamily getDnsLookupFamily()
       The DNS lookup family to use during resolution.
      
       [#comment:TODO(mattklein123): Figure out how to support IPv4/IPv6 "happy eyeballs" mode. The
       way this might work is a new lookup family which returns both IPv4 and IPv6 addresses, and
       then configures a host to have a primary and fall back address. With this, we could very
       likely build a "happy eyeballs" connection pool which would race the primary / fall back
       address and return the one that wins. This same method could potentially also be used for
       QUIC to TCP fall back.]
       
      .envoy.api.v2.Cluster.DnsLookupFamily dns_lookup_family = 2 [(.validate.rules) = { ... }
      Returns:
      The dnsLookupFamily.
    • hasDnsRefreshRate

      boolean hasDnsRefreshRate()
       The DNS refresh rate for currently cached DNS hosts. If not specified defaults to 60s.
      
       .. note:
      
        The returned DNS TTL is not currently used to alter the refresh rate. This feature will be
        added in a future change.
      
       .. note:
      
       The refresh rate is rounded to the closest millisecond, and must be at least 1ms.
       
      .google.protobuf.Duration dns_refresh_rate = 3 [(.validate.rules) = { ... }
      Returns:
      Whether the dnsRefreshRate field is set.
    • getDnsRefreshRate

      com.google.protobuf.Duration getDnsRefreshRate()
       The DNS refresh rate for currently cached DNS hosts. If not specified defaults to 60s.
      
       .. note:
      
        The returned DNS TTL is not currently used to alter the refresh rate. This feature will be
        added in a future change.
      
       .. note:
      
       The refresh rate is rounded to the closest millisecond, and must be at least 1ms.
       
      .google.protobuf.Duration dns_refresh_rate = 3 [(.validate.rules) = { ... }
      Returns:
      The dnsRefreshRate.
    • getDnsRefreshRateOrBuilder

      com.google.protobuf.DurationOrBuilder getDnsRefreshRateOrBuilder()
       The DNS refresh rate for currently cached DNS hosts. If not specified defaults to 60s.
      
       .. note:
      
        The returned DNS TTL is not currently used to alter the refresh rate. This feature will be
        added in a future change.
      
       .. note:
      
       The refresh rate is rounded to the closest millisecond, and must be at least 1ms.
       
      .google.protobuf.Duration dns_refresh_rate = 3 [(.validate.rules) = { ... }
    • hasHostTtl

      boolean hasHostTtl()
       The TTL for hosts that are unused. Hosts that have not been used in the configured time
       interval will be purged. If not specified defaults to 5m.
      
       .. note:
      
         The TTL is only checked at the time of DNS refresh, as specified by *dns_refresh_rate*. This
         means that if the configured TTL is shorter than the refresh rate the host may not be removed
         immediately.
      
        .. note:
      
         The TTL has no relation to DNS TTL and is only used to control Envoy's resource usage.
       
      .google.protobuf.Duration host_ttl = 4 [(.validate.rules) = { ... }
      Returns:
      Whether the hostTtl field is set.
    • getHostTtl

      com.google.protobuf.Duration getHostTtl()
       The TTL for hosts that are unused. Hosts that have not been used in the configured time
       interval will be purged. If not specified defaults to 5m.
      
       .. note:
      
         The TTL is only checked at the time of DNS refresh, as specified by *dns_refresh_rate*. This
         means that if the configured TTL is shorter than the refresh rate the host may not be removed
         immediately.
      
        .. note:
      
         The TTL has no relation to DNS TTL and is only used to control Envoy's resource usage.
       
      .google.protobuf.Duration host_ttl = 4 [(.validate.rules) = { ... }
      Returns:
      The hostTtl.
    • getHostTtlOrBuilder

      com.google.protobuf.DurationOrBuilder getHostTtlOrBuilder()
       The TTL for hosts that are unused. Hosts that have not been used in the configured time
       interval will be purged. If not specified defaults to 5m.
      
       .. note:
      
         The TTL is only checked at the time of DNS refresh, as specified by *dns_refresh_rate*. This
         means that if the configured TTL is shorter than the refresh rate the host may not be removed
         immediately.
      
        .. note:
      
         The TTL has no relation to DNS TTL and is only used to control Envoy's resource usage.
       
      .google.protobuf.Duration host_ttl = 4 [(.validate.rules) = { ... }
    • hasMaxHosts

      boolean hasMaxHosts()
       The maximum number of hosts that the cache will hold. If not specified defaults to 1024.
      
       .. note:
      
         The implementation is approximate and enforced independently on each worker thread, thus
         it is possible for the maximum hosts in the cache to go slightly above the configured
         value depending on timing. This is similar to how other circuit breakers work.
       
      .google.protobuf.UInt32Value max_hosts = 5 [(.validate.rules) = { ... }
      Returns:
      Whether the maxHosts field is set.
    • getMaxHosts

      com.google.protobuf.UInt32Value getMaxHosts()
       The maximum number of hosts that the cache will hold. If not specified defaults to 1024.
      
       .. note:
      
         The implementation is approximate and enforced independently on each worker thread, thus
         it is possible for the maximum hosts in the cache to go slightly above the configured
         value depending on timing. This is similar to how other circuit breakers work.
       
      .google.protobuf.UInt32Value max_hosts = 5 [(.validate.rules) = { ... }
      Returns:
      The maxHosts.
    • getMaxHostsOrBuilder

      com.google.protobuf.UInt32ValueOrBuilder getMaxHostsOrBuilder()
       The maximum number of hosts that the cache will hold. If not specified defaults to 1024.
      
       .. note:
      
         The implementation is approximate and enforced independently on each worker thread, thus
         it is possible for the maximum hosts in the cache to go slightly above the configured
         value depending on timing. This is similar to how other circuit breakers work.
       
      .google.protobuf.UInt32Value max_hosts = 5 [(.validate.rules) = { ... }
    • hasDnsFailureRefreshRate

      boolean hasDnsFailureRefreshRate()
       If the DNS failure refresh rate is specified,
       this is used as the cache's DNS refresh rate when DNS requests are failing. If this setting is
       not specified, the failure refresh rate defaults to the dns_refresh_rate.
       
      .envoy.api.v2.Cluster.RefreshRate dns_failure_refresh_rate = 6;
      Returns:
      Whether the dnsFailureRefreshRate field is set.
    • getDnsFailureRefreshRate

      Cluster.RefreshRate getDnsFailureRefreshRate()
       If the DNS failure refresh rate is specified,
       this is used as the cache's DNS refresh rate when DNS requests are failing. If this setting is
       not specified, the failure refresh rate defaults to the dns_refresh_rate.
       
      .envoy.api.v2.Cluster.RefreshRate dns_failure_refresh_rate = 6;
      Returns:
      The dnsFailureRefreshRate.
    • getDnsFailureRefreshRateOrBuilder

      Cluster.RefreshRateOrBuilder getDnsFailureRefreshRateOrBuilder()
       If the DNS failure refresh rate is specified,
       this is used as the cache's DNS refresh rate when DNS requests are failing. If this setting is
       not specified, the failure refresh rate defaults to the dns_refresh_rate.
       
      .envoy.api.v2.Cluster.RefreshRate dns_failure_refresh_rate = 6;