package caresv3
import "github.com/envoyproxy/go-control-plane/envoy/extensions/network/dns_resolver/cares/v3"
Index ¶
- Variables
- type CaresDnsResolverConfig
- func (*CaresDnsResolverConfig) Descriptor() ([]byte, []int)
- func (x *CaresDnsResolverConfig) GetDnsResolverOptions() *v3.DnsResolverOptions
- func (x *CaresDnsResolverConfig) GetEdns0MaxPayloadSize() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetFilterUnroutableFamilies() bool
- func (x *CaresDnsResolverConfig) GetMaxUdpChannelDuration() *durationpb.Duration
- func (x *CaresDnsResolverConfig) GetQueryTimeoutSeconds() *wrapperspb.UInt64Value
- func (x *CaresDnsResolverConfig) GetQueryTries() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetReinitChannelOnTimeout() bool
- func (x *CaresDnsResolverConfig) GetResolvers() []*v3.Address
- func (x *CaresDnsResolverConfig) GetRotateNameservers() bool
- func (x *CaresDnsResolverConfig) GetUdpMaxQueries() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetUseResolversAsFallback() bool
- func (*CaresDnsResolverConfig) ProtoMessage()
- func (x *CaresDnsResolverConfig) ProtoReflect() protoreflect.Message
- func (x *CaresDnsResolverConfig) Reset()
- func (x *CaresDnsResolverConfig) String() string
- func (m *CaresDnsResolverConfig) Validate() error
- func (m *CaresDnsResolverConfig) ValidateAll() error
- type CaresDnsResolverConfigMultiError
- func (m CaresDnsResolverConfigMultiError) AllErrors() []error
- func (m CaresDnsResolverConfigMultiError) Error() string
- type CaresDnsResolverConfigValidationError
- func (e CaresDnsResolverConfigValidationError) Cause() error
- func (e CaresDnsResolverConfigValidationError) Error() string
- func (e CaresDnsResolverConfigValidationError) ErrorName() string
- func (e CaresDnsResolverConfigValidationError) Field() string
- func (e CaresDnsResolverConfigValidationError) Key() bool
- func (e CaresDnsResolverConfigValidationError) Reason() string
Variables ¶
var File_envoy_extensions_network_dns_resolver_cares_v3_cares_dns_resolver_proto protoreflect.FileDescriptor
Types ¶
type CaresDnsResolverConfig ¶
type CaresDnsResolverConfig struct {
// A list of DNS resolver addresses.
// :ref:`use_resolvers_as_fallback <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.use_resolvers_as_fallback>`
// below dictates if the DNS client should override system defaults or only use the provided
// resolvers if the system defaults are not available, i.e., as a fallback.
Resolvers []*v3.Address `protobuf:"bytes,1,rep,name=resolvers,proto3" json:"resolvers,omitempty"`
// If true use the resolvers listed in the
// :ref:`resolvers <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.resolvers>`
// field only if c-ares is unable to obtain a
// nameserver from the system (e.g., “/etc/resolv.conf“).
// Otherwise, the resolvers listed in the resolvers list will override the default system
// resolvers. Defaults to false.
UseResolversAsFallback bool `protobuf:"varint,3,opt,name=use_resolvers_as_fallback,json=useResolversAsFallback,proto3" json:"use_resolvers_as_fallback,omitempty"`
// The resolver will query available network interfaces and determine if there are no available
// interfaces for a given IP family. It will then filter these addresses from the results it
// presents. e.g., if there are no available IPv4 network interfaces, the resolver will not
// provide IPv4 addresses.
FilterUnroutableFamilies bool `protobuf:"varint,4,opt,name=filter_unroutable_families,json=filterUnroutableFamilies,proto3" json:"filter_unroutable_families,omitempty"`
// Configuration of DNS resolver option flags which control the behavior of the DNS resolver.
DnsResolverOptions *v3.DnsResolverOptions `protobuf:"bytes,2,opt,name=dns_resolver_options,json=dnsResolverOptions,proto3" json:"dns_resolver_options,omitempty"`
// This option allows the number of UDP based DNS queries to be capped.
//
// .. note::
//
// This is only applicable to c-ares DNS resolver currently.
UdpMaxQueries *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=udp_max_queries,json=udpMaxQueries,proto3" json:"udp_max_queries,omitempty"`
// The number of seconds each name server is given to respond to a query on the first try of any given server.
//
// .. note::
//
// While the c-ares library defaults to 2 seconds, Envoy's default (if this field is unset) is 5 seconds.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTimeoutSeconds *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=query_timeout_seconds,json=queryTimeoutSeconds,proto3" json:"query_timeout_seconds,omitempty"`
// The maximum number of query attempts the resolver will make before giving up.
// Each attempt may use a different name server.
//
// .. note::
//
// While the c-ares library defaults to 3 attempts, Envoy's default (if this field is unset) is 4 attempts.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTries *wrapperspb.UInt32Value `protobuf:"bytes,7,opt,name=query_tries,json=queryTries,proto3" json:"query_tries,omitempty"`
// Enable round-robin selection of name servers for DNS resolution. When enabled, the resolver will cycle through the
// list of name servers for each resolution request. This can help distribute the query load across multiple name
// servers. If disabled (default), the resolver will try name servers in the order they are configured.
//
// .. note::
//
// This setting overrides any system configuration for name server rotation.
RotateNameservers bool `protobuf:"varint,8,opt,name=rotate_nameservers,json=rotateNameservers,proto3" json:"rotate_nameservers,omitempty"`
// Maximum EDNS0 UDP payload size in bytes.
// If set, c-ares will include EDNS0 in DNS queries and use this value as the maximum UDP response size.
//
// Recommended values:
//
// * **1232**: Safe default (avoids fragmentation).
// * **4096**: Maximum allowed.
//
// If unset, c-ares uses its internal default (usually 1232).
Edns0MaxPayloadSize *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=edns0_max_payload_size,json=edns0MaxPayloadSize,proto3" json:"edns0_max_payload_size,omitempty"`
// The maximum duration for which a UDP channel will be kept alive before being refreshed.
//
// If set, the DNS resolver will periodically reinitialize its c-ares channel after the
// specified duration. This can help with avoiding stale socket states, and providing
// better load distribution across UDP ports.
//
// If not specified, no periodic refresh will be performed.
MaxUdpChannelDuration *durationpb.Duration `protobuf:"bytes,10,opt,name=max_udp_channel_duration,json=maxUdpChannelDuration,proto3" json:"max_udp_channel_duration,omitempty"`
// If true, reinitialize the c-ares channel when a DNS query fails with “ARES_ETIMEOUT“.
//
// This can help recover from rare cases where the UDP sockets held by the c-ares
// channel become unusable after timeouts, causing subsequent queries to fail or
// Envoy to keep serving stale DNS results. When enabled, a timeout-triggered
// reinitialization attempts to restore healthy state quickly. In environments
// where timeouts are caused by intermittent network issues, enabling this may
// increase channel churn; consider using
// :ref:`max_udp_channel_duration <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.max_udp_channel_duration>`
// for periodic refresh instead.
//
// Default is false.
ReinitChannelOnTimeout bool `protobuf:"varint,11,opt,name=reinit_channel_on_timeout,json=reinitChannelOnTimeout,proto3" json:"reinit_channel_on_timeout,omitempty"`
// contains filtered or unexported fields
}
Configuration for c-ares DNS resolver. [#next-free-field: 12]
func (*CaresDnsResolverConfig) Descriptor ¶
func (*CaresDnsResolverConfig) Descriptor() ([]byte, []int)
Deprecated: Use CaresDnsResolverConfig.ProtoReflect.Descriptor instead.
func (*CaresDnsResolverConfig) GetDnsResolverOptions ¶
func (x *CaresDnsResolverConfig) GetDnsResolverOptions() *v3.DnsResolverOptions
func (*CaresDnsResolverConfig) GetEdns0MaxPayloadSize ¶
func (x *CaresDnsResolverConfig) GetEdns0MaxPayloadSize() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetFilterUnroutableFamilies ¶
func (x *CaresDnsResolverConfig) GetFilterUnroutableFamilies() bool
func (*CaresDnsResolverConfig) GetMaxUdpChannelDuration ¶
func (x *CaresDnsResolverConfig) GetMaxUdpChannelDuration() *durationpb.Duration
func (*CaresDnsResolverConfig) GetQueryTimeoutSeconds ¶
func (x *CaresDnsResolverConfig) GetQueryTimeoutSeconds() *wrapperspb.UInt64Value
func (*CaresDnsResolverConfig) GetQueryTries ¶
func (x *CaresDnsResolverConfig) GetQueryTries() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetReinitChannelOnTimeout ¶
func (x *CaresDnsResolverConfig) GetReinitChannelOnTimeout() bool
func (*CaresDnsResolverConfig) GetResolvers ¶
func (x *CaresDnsResolverConfig) GetResolvers() []*v3.Address
func (*CaresDnsResolverConfig) GetRotateNameservers ¶
func (x *CaresDnsResolverConfig) GetRotateNameservers() bool
func (*CaresDnsResolverConfig) GetUdpMaxQueries ¶
func (x *CaresDnsResolverConfig) GetUdpMaxQueries() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetUseResolversAsFallback ¶
func (x *CaresDnsResolverConfig) GetUseResolversAsFallback() bool
func (*CaresDnsResolverConfig) ProtoMessage ¶
func (*CaresDnsResolverConfig) ProtoMessage()
func (*CaresDnsResolverConfig) ProtoReflect ¶
func (x *CaresDnsResolverConfig) ProtoReflect() protoreflect.Message
func (*CaresDnsResolverConfig) Reset ¶
func (x *CaresDnsResolverConfig) Reset()
func (*CaresDnsResolverConfig) String ¶
func (x *CaresDnsResolverConfig) String() string
func (*CaresDnsResolverConfig) Validate ¶
func (m *CaresDnsResolverConfig) Validate() error
Validate checks the field values on CaresDnsResolverConfig with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.
func (*CaresDnsResolverConfig) ValidateAll ¶
func (m *CaresDnsResolverConfig) ValidateAll() error
ValidateAll checks the field values on CaresDnsResolverConfig with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in CaresDnsResolverConfigMultiError, or nil if none found.
type CaresDnsResolverConfigMultiError ¶
type CaresDnsResolverConfigMultiError []error
CaresDnsResolverConfigMultiError is an error wrapping multiple validation errors returned by CaresDnsResolverConfig.ValidateAll() if the designated constraints aren't met.
func (CaresDnsResolverConfigMultiError) AllErrors ¶
func (m CaresDnsResolverConfigMultiError) AllErrors() []error
AllErrors returns a list of validation violation errors.
func (CaresDnsResolverConfigMultiError) Error ¶
func (m CaresDnsResolverConfigMultiError) Error() string
Error returns a concatenation of all the error messages it wraps.
type CaresDnsResolverConfigValidationError ¶
type CaresDnsResolverConfigValidationError struct {
// contains filtered or unexported fields
}
CaresDnsResolverConfigValidationError is the validation error returned by CaresDnsResolverConfig.Validate if the designated constraints aren't met.
func (CaresDnsResolverConfigValidationError) Cause ¶
func (e CaresDnsResolverConfigValidationError) Cause() error
Cause function returns cause value.
func (CaresDnsResolverConfigValidationError) Error ¶
func (e CaresDnsResolverConfigValidationError) Error() string
Error satisfies the builtin error interface
func (CaresDnsResolverConfigValidationError) ErrorName ¶
func (e CaresDnsResolverConfigValidationError) ErrorName() string
ErrorName returns error name.
func (CaresDnsResolverConfigValidationError) Field ¶
func (e CaresDnsResolverConfigValidationError) Field() string
Field function returns field value.
func (CaresDnsResolverConfigValidationError) Key ¶
func (e CaresDnsResolverConfigValidationError) Key() bool
Key function returns key value.
func (CaresDnsResolverConfigValidationError) Reason ¶
func (e CaresDnsResolverConfigValidationError) Reason() string
Reason function returns reason value.
Source Files ¶
cares_dns_resolver.pb.go cares_dns_resolver.pb.validate.go
- Version
- v1.37.0 (latest)
- Published
- Jan 13, 2026
- Platform
- linux/amd64
- Imports
- 22 packages
- Last checked
- 1 hour ago –
Tools for package owners.