listener

package
v1.36.11-2026011520535... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const Filter_ConfigType_not_set_case case_Filter_ConfigType = 0
View Source
const Filter_Config_case case_Filter_ConfigType = 2
View Source
const Filter_TypedConfig_case case_Filter_ConfigType = 4
View Source
const ListenerFilterChainMatchPredicate_AndMatch_case case_ListenerFilterChainMatchPredicate_Rule = 2
View Source
const ListenerFilterChainMatchPredicate_AnyMatch_case case_ListenerFilterChainMatchPredicate_Rule = 4
View Source
const ListenerFilterChainMatchPredicate_DestinationPortRange_case case_ListenerFilterChainMatchPredicate_Rule = 5
View Source
const ListenerFilterChainMatchPredicate_NotMatch_case case_ListenerFilterChainMatchPredicate_Rule = 3
View Source
const ListenerFilterChainMatchPredicate_OrMatch_case case_ListenerFilterChainMatchPredicate_Rule = 1
View Source
const ListenerFilterChainMatchPredicate_Rule_not_set_case case_ListenerFilterChainMatchPredicate_Rule = 0
View Source
const ListenerFilter_ConfigType_not_set_case case_ListenerFilter_ConfigType = 0
View Source
const ListenerFilter_Config_case case_ListenerFilter_ConfigType = 2
View Source
const ListenerFilter_TypedConfig_case case_ListenerFilter_ConfigType = 3
View Source
const UdpListenerConfig_ConfigType_not_set_case case_UdpListenerConfig_ConfigType = 0
View Source
const UdpListenerConfig_Config_case case_UdpListenerConfig_ConfigType = 2
View Source
const UdpListenerConfig_TypedConfig_case case_UdpListenerConfig_ConfigType = 3

Variables

View Source
var (
	FilterChainMatch_ConnectionSourceType_name = map[int32]string{
		0: "ANY",
		1: "LOCAL",
		2: "EXTERNAL",
	}
	FilterChainMatch_ConnectionSourceType_value = map[string]int32{
		"ANY":      0,
		"LOCAL":    1,
		"EXTERNAL": 2,
	}
)

Enum value maps for FilterChainMatch_ConnectionSourceType.

View Source
var File_envoy_api_v2_listener_listener_components_proto protoreflect.FileDescriptor
View Source
var File_envoy_api_v2_listener_listener_proto protoreflect.FileDescriptor
View Source
var File_envoy_api_v2_listener_quic_config_proto protoreflect.FileDescriptor
View Source
var File_envoy_api_v2_listener_udp_listener_config_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type ActiveRawUdpListenerConfig

type ActiveRawUdpListenerConfig struct {
	// contains filtered or unexported fields
}

func (*ActiveRawUdpListenerConfig) ProtoMessage

func (*ActiveRawUdpListenerConfig) ProtoMessage()

func (*ActiveRawUdpListenerConfig) ProtoReflect

func (*ActiveRawUdpListenerConfig) Reset

func (x *ActiveRawUdpListenerConfig) Reset()

func (*ActiveRawUdpListenerConfig) String

func (x *ActiveRawUdpListenerConfig) String() string

type ActiveRawUdpListenerConfig_builder

type ActiveRawUdpListenerConfig_builder struct {
	// contains filtered or unexported fields
}

func (ActiveRawUdpListenerConfig_builder) Build

type Filter

type Filter struct {

	// The name of the filter to instantiate. The name must match a
	// :ref:`supported filter <config_network_filters>`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Filter specific configuration which depends on the filter being
	// instantiated. See the supported filters for further documentation.
	//
	// Types that are valid to be assigned to ConfigType:
	//
	//	*Filter_Config
	//	*Filter_TypedConfig
	ConfigType isFilter_ConfigType `protobuf_oneof:"config_type"`
	// contains filtered or unexported fields
}

func (*Filter) ClearConfig deprecated

func (x *Filter) ClearConfig()

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*Filter) ClearConfigType

func (x *Filter) ClearConfigType()

func (*Filter) ClearTypedConfig

func (x *Filter) ClearTypedConfig()

func (*Filter) GetConfig deprecated

func (x *Filter) GetConfig() *structpb.Struct

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*Filter) GetConfigType

func (x *Filter) GetConfigType() isFilter_ConfigType

func (*Filter) GetName

func (x *Filter) GetName() string

func (*Filter) GetTypedConfig

func (x *Filter) GetTypedConfig() *anypb.Any

func (*Filter) HasConfig deprecated

func (x *Filter) HasConfig() bool

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*Filter) HasConfigType

func (x *Filter) HasConfigType() bool

func (*Filter) HasTypedConfig

func (x *Filter) HasTypedConfig() bool

func (*Filter) ProtoMessage

func (*Filter) ProtoMessage()

func (*Filter) ProtoReflect

func (x *Filter) ProtoReflect() protoreflect.Message

func (*Filter) Reset

func (x *Filter) Reset()

func (*Filter) SetConfig deprecated

func (x *Filter) SetConfig(v *structpb.Struct)

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*Filter) SetName

func (x *Filter) SetName(v string)

func (*Filter) SetTypedConfig

func (x *Filter) SetTypedConfig(v *anypb.Any)

func (*Filter) String

func (x *Filter) String() string

func (*Filter) WhichConfigType

func (x *Filter) WhichConfigType() case_Filter_ConfigType

type FilterChain

type FilterChain struct {

	// The criteria to use when matching a connection to this filter chain.
	FilterChainMatch *FilterChainMatch `protobuf:"bytes,1,opt,name=filter_chain_match,json=filterChainMatch,proto3" json:"filter_chain_match,omitempty"`
	// The TLS context for this filter chain.
	//
	// .. attention::
	//
	//	**This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
	//	set, `transport_socket` takes priority.
	//
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	TlsContext *auth.DownstreamTlsContext `protobuf:"bytes,2,opt,name=tls_context,json=tlsContext,proto3" json:"tls_context,omitempty"`
	// A list of individual network filters that make up the filter chain for
	// connections established with the listener. Order matters as the filters are
	// processed sequentially as connection events happen. Note: If the filter
	// list is empty, the connection will close by default.
	Filters []*Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
	// Whether the listener should expect a PROXY protocol V1 header on new
	// connections. If this option is enabled, the listener will assume that that
	// remote address of the connection is the one specified in the header. Some
	// load balancers including the AWS ELB support this option. If the option is
	// absent or set to false, Envoy will use the physical peer address of the
	// connection as the remote address.
	UseProxyProto *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=use_proxy_proto,json=useProxyProto,proto3" json:"use_proxy_proto,omitempty"`
	// [#not-implemented-hide:] filter chain metadata.
	Metadata *core.Metadata `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Optional custom transport socket implementation to use for downstream connections.
	// To setup TLS, set a transport socket with name `tls` and
	// :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
	// If no transport socket configuration is specified, new connections
	// will be set up with plaintext.
	TransportSocket *core.TransportSocket `protobuf:"bytes,6,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"`
	// [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
	// name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
	// chain is to be dynamically updated or removed via FCDS a unique name must be provided.
	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and various other parameters. [#next-free-field: 8]

func (*FilterChain) ClearFilterChainMatch

func (x *FilterChain) ClearFilterChainMatch()

func (*FilterChain) ClearMetadata

func (x *FilterChain) ClearMetadata()

func (*FilterChain) ClearTlsContext deprecated

func (x *FilterChain) ClearTlsContext()

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*FilterChain) ClearTransportSocket

func (x *FilterChain) ClearTransportSocket()

func (*FilterChain) ClearUseProxyProto

func (x *FilterChain) ClearUseProxyProto()

func (*FilterChain) GetFilterChainMatch

func (x *FilterChain) GetFilterChainMatch() *FilterChainMatch

func (*FilterChain) GetFilters

func (x *FilterChain) GetFilters() []*Filter

func (*FilterChain) GetMetadata

func (x *FilterChain) GetMetadata() *core.Metadata

func (*FilterChain) GetName

func (x *FilterChain) GetName() string

func (*FilterChain) GetTlsContext deprecated

func (x *FilterChain) GetTlsContext() *auth.DownstreamTlsContext

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*FilterChain) GetTransportSocket

func (x *FilterChain) GetTransportSocket() *core.TransportSocket

func (*FilterChain) GetUseProxyProto

func (x *FilterChain) GetUseProxyProto() *wrapperspb.BoolValue

func (*FilterChain) HasFilterChainMatch

func (x *FilterChain) HasFilterChainMatch() bool

func (*FilterChain) HasMetadata

func (x *FilterChain) HasMetadata() bool

func (*FilterChain) HasTlsContext deprecated

func (x *FilterChain) HasTlsContext() bool

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*FilterChain) HasTransportSocket

func (x *FilterChain) HasTransportSocket() bool

func (*FilterChain) HasUseProxyProto

func (x *FilterChain) HasUseProxyProto() bool

func (*FilterChain) ProtoMessage

func (*FilterChain) ProtoMessage()

func (*FilterChain) ProtoReflect

func (x *FilterChain) ProtoReflect() protoreflect.Message

func (*FilterChain) Reset

func (x *FilterChain) Reset()

func (*FilterChain) SetFilterChainMatch

func (x *FilterChain) SetFilterChainMatch(v *FilterChainMatch)

func (*FilterChain) SetFilters

func (x *FilterChain) SetFilters(v []*Filter)

func (*FilterChain) SetMetadata

func (x *FilterChain) SetMetadata(v *core.Metadata)

func (*FilterChain) SetName

func (x *FilterChain) SetName(v string)

func (*FilterChain) SetTlsContext deprecated

func (x *FilterChain) SetTlsContext(v *auth.DownstreamTlsContext)

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*FilterChain) SetTransportSocket

func (x *FilterChain) SetTransportSocket(v *core.TransportSocket)

func (*FilterChain) SetUseProxyProto

func (x *FilterChain) SetUseProxyProto(v *wrapperspb.BoolValue)

func (*FilterChain) String

func (x *FilterChain) String() string

type FilterChainMatch

type FilterChainMatch struct {

	// Optional destination port to consider when use_original_dst is set on the
	// listener in determining a filter chain match.
	DestinationPort *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
	// If non-empty, an IP address and prefix length to match addresses when the
	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
	PrefixRanges []*core.CidrRange `protobuf:"bytes,3,rep,name=prefix_ranges,json=prefixRanges,proto3" json:"prefix_ranges,omitempty"`
	// If non-empty, an IP address and suffix length to match addresses when the
	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
	// [#not-implemented-hide:]
	AddressSuffix string `protobuf:"bytes,4,opt,name=address_suffix,json=addressSuffix,proto3" json:"address_suffix,omitempty"`
	// [#not-implemented-hide:]
	SuffixLen *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=suffix_len,json=suffixLen,proto3" json:"suffix_len,omitempty"`
	// Specifies the connection source IP match type. Can be any, local or external network.
	SourceType FilterChainMatch_ConnectionSourceType `` /* 158-byte string literal not displayed */
	// The criteria is satisfied if the source IP address of the downstream
	// connection is contained in at least one of the specified subnets. If the
	// parameter is not specified or the list is empty, the source IP address is
	// ignored.
	SourcePrefixRanges []*core.CidrRange `protobuf:"bytes,6,rep,name=source_prefix_ranges,json=sourcePrefixRanges,proto3" json:"source_prefix_ranges,omitempty"`
	// The criteria is satisfied if the source port of the downstream connection
	// is contained in at least one of the specified ports. If the parameter is
	// not specified, the source port is ignored.
	SourcePorts []uint32 `protobuf:"varint,7,rep,packed,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"`
	// If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
	// a filter chain match. Those values will be compared against the server names of a new
	// connection, when detected by one of the listener filters.
	//
	// The server name will be matched against all wildcard domains, i.e. “www.example.com“
	// will be first matched against “www.example.com“, then “*.example.com“, then “*.com“.
	//
	// Note that partial wildcards are not supported, and values like “*w.example.com“ are invalid.
	//
	// .. attention::
	//
	//	See the :ref:`FAQ entry <faq_how_to_setup_sni>` on how to configure SNI for more
	//	information.
	ServerNames []string `protobuf:"bytes,11,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"`
	// If non-empty, a transport protocol to consider when determining a filter chain match.
	// This value will be compared against the transport protocol of a new connection, when
	// it's detected by one of the listener filters.
	//
	// Suggested values include:
	//
	//   - “raw_buffer“ - default, used when no transport protocol is detected,
	//   - “tls“ - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
	//     when TLS protocol is detected.
	TransportProtocol string `protobuf:"bytes,9,opt,name=transport_protocol,json=transportProtocol,proto3" json:"transport_protocol,omitempty"`
	// If non-empty, a list of application protocols (e.g. ALPN for TLS protocol) to consider when
	// determining a filter chain match. Those values will be compared against the application
	// protocols of a new connection, when detected by one of the listener filters.
	//
	// Suggested values include:
	//
	//   - “http/1.1“ - set by :ref:`envoy.filters.listener.tls_inspector
	//     <config_listener_filters_tls_inspector>`,
	//   - “h2“ - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
	//
	// .. attention::
	//
	//	Currently, only :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides
	//	application protocol detection based on the requested
	//	`ALPN <https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation>`_ values.
	//
	//	However, the use of ALPN is pretty much limited to the HTTP/2 traffic on the Internet,
	//	and matching on values other than “h2“ is going to lead to a lot of false negatives,
	//	unless all connecting clients are known to use ALPN.
	ApplicationProtocols []string `protobuf:"bytes,10,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
	// contains filtered or unexported fields
}

Specifies the match criteria for selecting a specific filter chain for a listener.

In order for a filter chain to be selected, *ALL* of its criteria must be fulfilled by the incoming connection, properties of which are set by the networking stack and/or listener filters.

The following order applies:

1. Destination port. 2. Destination IP address. 3. Server name (e.g. SNI for TLS protocol), 4. Transport protocol. 5. Application protocols (e.g. ALPN for TLS protocol). 6. Source type (e.g. any, local or external network). 7. Source IP address. 8. Source port.

For criteria that allow ranges or wildcards, the most specific value in any of the configured filter chains that matches the incoming connection is going to be used (e.g. for SNI “www.example.com“ the most specific match would be “www.example.com“, then “*.example.com“, then “*.com“, then any filter chain without “server_names“ requirements).

[#comment: Implemented rules are kept in the preference order, with deprecated fields listed at the end, because that's how we want to list them in the docs.

[#comment:TODO(PiotrSikora): Add support for configurable precedence of the rules] [#next-free-field: 13]

func (*FilterChainMatch) ClearDestinationPort

func (x *FilterChainMatch) ClearDestinationPort()

func (*FilterChainMatch) ClearSuffixLen

func (x *FilterChainMatch) ClearSuffixLen()

func (*FilterChainMatch) GetAddressSuffix

func (x *FilterChainMatch) GetAddressSuffix() string

func (*FilterChainMatch) GetApplicationProtocols

func (x *FilterChainMatch) GetApplicationProtocols() []string

func (*FilterChainMatch) GetDestinationPort

func (x *FilterChainMatch) GetDestinationPort() *wrapperspb.UInt32Value

func (*FilterChainMatch) GetPrefixRanges

func (x *FilterChainMatch) GetPrefixRanges() []*core.CidrRange

func (*FilterChainMatch) GetServerNames

func (x *FilterChainMatch) GetServerNames() []string

func (*FilterChainMatch) GetSourcePorts

func (x *FilterChainMatch) GetSourcePorts() []uint32

func (*FilterChainMatch) GetSourcePrefixRanges

func (x *FilterChainMatch) GetSourcePrefixRanges() []*core.CidrRange

func (*FilterChainMatch) GetSourceType

func (*FilterChainMatch) GetSuffixLen

func (x *FilterChainMatch) GetSuffixLen() *wrapperspb.UInt32Value

func (*FilterChainMatch) GetTransportProtocol

func (x *FilterChainMatch) GetTransportProtocol() string

func (*FilterChainMatch) HasDestinationPort

func (x *FilterChainMatch) HasDestinationPort() bool

func (*FilterChainMatch) HasSuffixLen

func (x *FilterChainMatch) HasSuffixLen() bool

func (*FilterChainMatch) ProtoMessage

func (*FilterChainMatch) ProtoMessage()

func (*FilterChainMatch) ProtoReflect

func (x *FilterChainMatch) ProtoReflect() protoreflect.Message

func (*FilterChainMatch) Reset

func (x *FilterChainMatch) Reset()

func (*FilterChainMatch) SetAddressSuffix

func (x *FilterChainMatch) SetAddressSuffix(v string)

func (*FilterChainMatch) SetApplicationProtocols

func (x *FilterChainMatch) SetApplicationProtocols(v []string)

func (*FilterChainMatch) SetDestinationPort

func (x *FilterChainMatch) SetDestinationPort(v *wrapperspb.UInt32Value)

func (*FilterChainMatch) SetPrefixRanges

func (x *FilterChainMatch) SetPrefixRanges(v []*core.CidrRange)

func (*FilterChainMatch) SetServerNames

func (x *FilterChainMatch) SetServerNames(v []string)

func (*FilterChainMatch) SetSourcePorts

func (x *FilterChainMatch) SetSourcePorts(v []uint32)

func (*FilterChainMatch) SetSourcePrefixRanges

func (x *FilterChainMatch) SetSourcePrefixRanges(v []*core.CidrRange)

func (*FilterChainMatch) SetSourceType

func (*FilterChainMatch) SetSuffixLen

func (x *FilterChainMatch) SetSuffixLen(v *wrapperspb.UInt32Value)

func (*FilterChainMatch) SetTransportProtocol

func (x *FilterChainMatch) SetTransportProtocol(v string)

func (*FilterChainMatch) String

func (x *FilterChainMatch) String() string

type FilterChainMatch_ConnectionSourceType

type FilterChainMatch_ConnectionSourceType int32
const (
	// Any connection source matches.
	FilterChainMatch_ANY FilterChainMatch_ConnectionSourceType = 0
	// Match a connection originating from the same host.
	FilterChainMatch_LOCAL FilterChainMatch_ConnectionSourceType = 1
	// Match a connection originating from a different host.
	FilterChainMatch_EXTERNAL FilterChainMatch_ConnectionSourceType = 2
)

func (FilterChainMatch_ConnectionSourceType) Descriptor

func (FilterChainMatch_ConnectionSourceType) Enum

func (FilterChainMatch_ConnectionSourceType) Number

func (FilterChainMatch_ConnectionSourceType) String

func (FilterChainMatch_ConnectionSourceType) Type

type FilterChainMatch_builder

type FilterChainMatch_builder struct {

	// Optional destination port to consider when use_original_dst is set on the
	// listener in determining a filter chain match.
	DestinationPort *wrapperspb.UInt32Value
	// If non-empty, an IP address and prefix length to match addresses when the
	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
	PrefixRanges []*core.CidrRange
	// If non-empty, an IP address and suffix length to match addresses when the
	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
	// [#not-implemented-hide:]
	AddressSuffix string
	// [#not-implemented-hide:]
	SuffixLen *wrapperspb.UInt32Value
	// Specifies the connection source IP match type. Can be any, local or external network.
	SourceType FilterChainMatch_ConnectionSourceType
	// The criteria is satisfied if the source IP address of the downstream
	// connection is contained in at least one of the specified subnets. If the
	// parameter is not specified or the list is empty, the source IP address is
	// ignored.
	SourcePrefixRanges []*core.CidrRange
	// The criteria is satisfied if the source port of the downstream connection
	// is contained in at least one of the specified ports. If the parameter is
	// not specified, the source port is ignored.
	SourcePorts []uint32
	// If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
	// a filter chain match. Those values will be compared against the server names of a new
	// connection, when detected by one of the listener filters.
	//
	// The server name will be matched against all wildcard domains, i.e. “www.example.com“
	// will be first matched against “www.example.com“, then “*.example.com“, then “*.com“.
	//
	// Note that partial wildcards are not supported, and values like “*w.example.com“ are invalid.
	//
	// .. attention::
	//
	//	See the :ref:`FAQ entry <faq_how_to_setup_sni>` on how to configure SNI for more
	//	information.
	ServerNames []string
	// If non-empty, a transport protocol to consider when determining a filter chain match.
	// This value will be compared against the transport protocol of a new connection, when
	// it's detected by one of the listener filters.
	//
	// Suggested values include:
	//
	//   - “raw_buffer“ - default, used when no transport protocol is detected,
	//   - “tls“ - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
	//     when TLS protocol is detected.
	TransportProtocol string
	// If non-empty, a list of application protocols (e.g. ALPN for TLS protocol) to consider when
	// determining a filter chain match. Those values will be compared against the application
	// protocols of a new connection, when detected by one of the listener filters.
	//
	// Suggested values include:
	//
	//   - “http/1.1“ - set by :ref:`envoy.filters.listener.tls_inspector
	//     <config_listener_filters_tls_inspector>`,
	//   - “h2“ - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
	//
	// .. attention::
	//
	//	Currently, only :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides
	//	application protocol detection based on the requested
	//	`ALPN <https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation>`_ values.
	//
	//	However, the use of ALPN is pretty much limited to the HTTP/2 traffic on the Internet,
	//	and matching on values other than “h2“ is going to lead to a lot of false negatives,
	//	unless all connecting clients are known to use ALPN.
	ApplicationProtocols []string
	// contains filtered or unexported fields
}

func (FilterChainMatch_builder) Build

type FilterChain_builder

type FilterChain_builder struct {

	// The criteria to use when matching a connection to this filter chain.
	FilterChainMatch *FilterChainMatch
	// The TLS context for this filter chain.
	//
	// .. attention::
	//
	//	**This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
	//	set, `transport_socket` takes priority.
	//
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	TlsContext *auth.DownstreamTlsContext
	// A list of individual network filters that make up the filter chain for
	// connections established with the listener. Order matters as the filters are
	// processed sequentially as connection events happen. Note: If the filter
	// list is empty, the connection will close by default.
	Filters []*Filter
	// Whether the listener should expect a PROXY protocol V1 header on new
	// connections. If this option is enabled, the listener will assume that that
	// remote address of the connection is the one specified in the header. Some
	// load balancers including the AWS ELB support this option. If the option is
	// absent or set to false, Envoy will use the physical peer address of the
	// connection as the remote address.
	UseProxyProto *wrapperspb.BoolValue
	// [#not-implemented-hide:] filter chain metadata.
	Metadata *core.Metadata
	// Optional custom transport socket implementation to use for downstream connections.
	// To setup TLS, set a transport socket with name `tls` and
	// :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
	// If no transport socket configuration is specified, new connections
	// will be set up with plaintext.
	TransportSocket *core.TransportSocket
	// [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
	// name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
	// chain is to be dynamically updated or removed via FCDS a unique name must be provided.
	Name string
	// contains filtered or unexported fields
}

func (FilterChain_builder) Build

func (b0 FilterChain_builder) Build() *FilterChain

type Filter_Config

type Filter_Config struct {
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	Config *structpb.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
}

type Filter_TypedConfig

type Filter_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

type Filter_builder

type Filter_builder struct {

	// The name of the filter to instantiate. The name must match a
	// :ref:`supported filter <config_network_filters>`.
	Name string

	// Fields of oneof ConfigType:
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	Config      *structpb.Struct
	TypedConfig *anypb.Any
	// contains filtered or unexported fields
}

func (Filter_builder) Build

func (b0 Filter_builder) Build() *Filter

type ListenerFilter

type ListenerFilter struct {

	// The name of the filter to instantiate. The name must match a
	// :ref:`supported filter <config_listener_filters>`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Filter specific configuration which depends on the filter being instantiated.
	// See the supported filters for further documentation.
	//
	// Types that are valid to be assigned to ConfigType:
	//
	//	*ListenerFilter_Config
	//	*ListenerFilter_TypedConfig
	ConfigType isListenerFilter_ConfigType `protobuf_oneof:"config_type"`
	// Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
	// See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_listener.ListenerFilterChainMatchPredicate>`
	// for further examples.
	FilterDisabled *ListenerFilterChainMatchPredicate `protobuf:"bytes,4,opt,name=filter_disabled,json=filterDisabled,proto3" json:"filter_disabled,omitempty"`
	// contains filtered or unexported fields
}

func (*ListenerFilter) ClearConfig deprecated

func (x *ListenerFilter) ClearConfig()

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*ListenerFilter) ClearConfigType

func (x *ListenerFilter) ClearConfigType()

func (*ListenerFilter) ClearFilterDisabled

func (x *ListenerFilter) ClearFilterDisabled()

func (*ListenerFilter) ClearTypedConfig

func (x *ListenerFilter) ClearTypedConfig()

func (*ListenerFilter) GetConfig deprecated

func (x *ListenerFilter) GetConfig() *structpb.Struct

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*ListenerFilter) GetConfigType

func (x *ListenerFilter) GetConfigType() isListenerFilter_ConfigType

func (*ListenerFilter) GetFilterDisabled

func (x *ListenerFilter) GetFilterDisabled() *ListenerFilterChainMatchPredicate

func (*ListenerFilter) GetName

func (x *ListenerFilter) GetName() string

func (*ListenerFilter) GetTypedConfig

func (x *ListenerFilter) GetTypedConfig() *anypb.Any

func (*ListenerFilter) HasConfig deprecated

func (x *ListenerFilter) HasConfig() bool

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*ListenerFilter) HasConfigType

func (x *ListenerFilter) HasConfigType() bool

func (*ListenerFilter) HasFilterDisabled

func (x *ListenerFilter) HasFilterDisabled() bool

func (*ListenerFilter) HasTypedConfig

func (x *ListenerFilter) HasTypedConfig() bool

func (*ListenerFilter) ProtoMessage

func (*ListenerFilter) ProtoMessage()

func (*ListenerFilter) ProtoReflect

func (x *ListenerFilter) ProtoReflect() protoreflect.Message

func (*ListenerFilter) Reset

func (x *ListenerFilter) Reset()

func (*ListenerFilter) SetConfig deprecated

func (x *ListenerFilter) SetConfig(v *structpb.Struct)

Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.

func (*ListenerFilter) SetFilterDisabled

func (x *ListenerFilter) SetFilterDisabled(v *ListenerFilterChainMatchPredicate)

func (*ListenerFilter) SetName

func (x *ListenerFilter) SetName(v string)

func (*ListenerFilter) SetTypedConfig

func (x *ListenerFilter) SetTypedConfig(v *anypb.Any)

func (*ListenerFilter) String

func (x *ListenerFilter) String() string

func (*ListenerFilter) WhichConfigType

func (x *ListenerFilter) WhichConfigType() case_ListenerFilter_ConfigType

type ListenerFilterChainMatchPredicate

type ListenerFilterChainMatchPredicate struct {

	// Types that are valid to be assigned to Rule:
	//
	//	*ListenerFilterChainMatchPredicate_OrMatch
	//	*ListenerFilterChainMatchPredicate_AndMatch
	//	*ListenerFilterChainMatchPredicate_NotMatch
	//	*ListenerFilterChainMatchPredicate_AnyMatch
	//	*ListenerFilterChainMatchPredicate_DestinationPortRange
	Rule isListenerFilterChainMatchPredicate_Rule `protobuf_oneof:"rule"`
	// contains filtered or unexported fields
}

Listener filter chain match configuration. This is a recursive structure which allows complex nested match configurations to be built using various logical operators.

Examples:

* Matches if the destination port is 3306.

.. code-block:: yaml

destination_port_range:
 start: 3306
 end: 3307

* Matches if the destination port is 3306 or 15000.

.. code-block:: yaml

or_match:
  rules:
    - destination_port_range:
        start: 3306
        end: 3307
    - destination_port_range:
        start: 15000
        end: 15001

[#next-free-field: 6]

func (*ListenerFilterChainMatchPredicate) ClearAndMatch

func (x *ListenerFilterChainMatchPredicate) ClearAndMatch()

func (*ListenerFilterChainMatchPredicate) ClearAnyMatch

func (x *ListenerFilterChainMatchPredicate) ClearAnyMatch()

func (*ListenerFilterChainMatchPredicate) ClearDestinationPortRange

func (x *ListenerFilterChainMatchPredicate) ClearDestinationPortRange()

func (*ListenerFilterChainMatchPredicate) ClearNotMatch

func (x *ListenerFilterChainMatchPredicate) ClearNotMatch()

func (*ListenerFilterChainMatchPredicate) ClearOrMatch

func (x *ListenerFilterChainMatchPredicate) ClearOrMatch()

func (*ListenerFilterChainMatchPredicate) ClearRule

func (x *ListenerFilterChainMatchPredicate) ClearRule()

func (*ListenerFilterChainMatchPredicate) GetAndMatch

func (*ListenerFilterChainMatchPredicate) GetAnyMatch

func (x *ListenerFilterChainMatchPredicate) GetAnyMatch() bool

func (*ListenerFilterChainMatchPredicate) GetDestinationPortRange

func (x *ListenerFilterChainMatchPredicate) GetDestinationPortRange() *_type.Int32Range

func (*ListenerFilterChainMatchPredicate) GetNotMatch

func (*ListenerFilterChainMatchPredicate) GetOrMatch

func (*ListenerFilterChainMatchPredicate) GetRule

func (x *ListenerFilterChainMatchPredicate) GetRule() isListenerFilterChainMatchPredicate_Rule

func (*ListenerFilterChainMatchPredicate) HasAndMatch

func (x *ListenerFilterChainMatchPredicate) HasAndMatch() bool

func (*ListenerFilterChainMatchPredicate) HasAnyMatch

func (x *ListenerFilterChainMatchPredicate) HasAnyMatch() bool

func (*ListenerFilterChainMatchPredicate) HasDestinationPortRange

func (x *ListenerFilterChainMatchPredicate) HasDestinationPortRange() bool

func (*ListenerFilterChainMatchPredicate) HasNotMatch

func (x *ListenerFilterChainMatchPredicate) HasNotMatch() bool

func (*ListenerFilterChainMatchPredicate) HasOrMatch

func (x *ListenerFilterChainMatchPredicate) HasOrMatch() bool

func (*ListenerFilterChainMatchPredicate) HasRule

func (*ListenerFilterChainMatchPredicate) ProtoMessage

func (*ListenerFilterChainMatchPredicate) ProtoMessage()

func (*ListenerFilterChainMatchPredicate) ProtoReflect

func (*ListenerFilterChainMatchPredicate) Reset

func (*ListenerFilterChainMatchPredicate) SetAndMatch

func (*ListenerFilterChainMatchPredicate) SetAnyMatch

func (x *ListenerFilterChainMatchPredicate) SetAnyMatch(v bool)

func (*ListenerFilterChainMatchPredicate) SetDestinationPortRange

func (x *ListenerFilterChainMatchPredicate) SetDestinationPortRange(v *_type.Int32Range)

func (*ListenerFilterChainMatchPredicate) SetNotMatch

func (*ListenerFilterChainMatchPredicate) SetOrMatch

func (*ListenerFilterChainMatchPredicate) String

func (*ListenerFilterChainMatchPredicate) WhichRule

func (x *ListenerFilterChainMatchPredicate) WhichRule() case_ListenerFilterChainMatchPredicate_Rule

type ListenerFilterChainMatchPredicate_AndMatch

type ListenerFilterChainMatchPredicate_AndMatch struct {
	// A set that describes a logical AND. If all members of the set match, the match configuration
	// matches.
	AndMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,2,opt,name=and_match,json=andMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_AnyMatch

type ListenerFilterChainMatchPredicate_AnyMatch struct {
	// The match configuration will always match.
	AnyMatch bool `protobuf:"varint,4,opt,name=any_match,json=anyMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_DestinationPortRange

type ListenerFilterChainMatchPredicate_DestinationPortRange struct {
	// Match destination port. Particularly, the match evaluation must use the recovered local port if
	// the owning listener filter is after :ref:`an original_dst listener filter <config_listener_filters_original_dst>`.
	DestinationPortRange *_type.Int32Range `protobuf:"bytes,5,opt,name=destination_port_range,json=destinationPortRange,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_MatchSet

type ListenerFilterChainMatchPredicate_MatchSet struct {

	// The list of rules that make up the set.
	Rules []*ListenerFilterChainMatchPredicate `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
	// contains filtered or unexported fields
}

A set of match configurations used for logical operations.

func (*ListenerFilterChainMatchPredicate_MatchSet) GetRules

func (*ListenerFilterChainMatchPredicate_MatchSet) ProtoMessage

func (*ListenerFilterChainMatchPredicate_MatchSet) ProtoReflect

func (*ListenerFilterChainMatchPredicate_MatchSet) Reset

func (*ListenerFilterChainMatchPredicate_MatchSet) SetRules

func (*ListenerFilterChainMatchPredicate_MatchSet) String

type ListenerFilterChainMatchPredicate_MatchSet_builder

type ListenerFilterChainMatchPredicate_MatchSet_builder struct {

	// The list of rules that make up the set.
	Rules []*ListenerFilterChainMatchPredicate
	// contains filtered or unexported fields
}

func (ListenerFilterChainMatchPredicate_MatchSet_builder) Build

type ListenerFilterChainMatchPredicate_NotMatch

type ListenerFilterChainMatchPredicate_NotMatch struct {
	// A negation match. The match configuration will match if the negated match condition matches.
	NotMatch *ListenerFilterChainMatchPredicate `protobuf:"bytes,3,opt,name=not_match,json=notMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_OrMatch

type ListenerFilterChainMatchPredicate_OrMatch struct {
	// A set that describes a logical OR. If any member of the set matches, the match configuration
	// matches.
	OrMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,1,opt,name=or_match,json=orMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_builder

type ListenerFilterChainMatchPredicate_builder struct {

	// Fields of oneof Rule:
	// A set that describes a logical OR. If any member of the set matches, the match configuration
	// matches.
	OrMatch *ListenerFilterChainMatchPredicate_MatchSet
	// A set that describes a logical AND. If all members of the set match, the match configuration
	// matches.
	AndMatch *ListenerFilterChainMatchPredicate_MatchSet
	// A negation match. The match configuration will match if the negated match condition matches.
	NotMatch *ListenerFilterChainMatchPredicate
	// The match configuration will always match.
	AnyMatch *bool
	// Match destination port. Particularly, the match evaluation must use the recovered local port if
	// the owning listener filter is after :ref:`an original_dst listener filter <config_listener_filters_original_dst>`.
	DestinationPortRange *_type.Int32Range
	// contains filtered or unexported fields
}

func (ListenerFilterChainMatchPredicate_builder) Build

type ListenerFilter_Config

type ListenerFilter_Config struct {
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	Config *structpb.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
}

type ListenerFilter_TypedConfig

type ListenerFilter_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

type ListenerFilter_builder

type ListenerFilter_builder struct {

	// The name of the filter to instantiate. The name must match a
	// :ref:`supported filter <config_listener_filters>`.
	Name string

	// Fields of oneof ConfigType:
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/listener_components.proto.
	Config      *structpb.Struct
	TypedConfig *anypb.Any
	// -- end of ConfigType
	// Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
	// See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_listener.ListenerFilterChainMatchPredicate>`
	// for further examples.
	FilterDisabled *ListenerFilterChainMatchPredicate
	// contains filtered or unexported fields
}

func (ListenerFilter_builder) Build

type QuicProtocolOptions

type QuicProtocolOptions struct {

	// Maximum number of streams that the client can negotiate per connection. 100
	// if not specified.
	MaxConcurrentStreams *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"`
	// Maximum number of milliseconds that connection will be alive when there is
	// no network activity. 300000ms if not specified.
	IdleTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
	// Connection timeout in milliseconds before the crypto handshake is finished.
	// 20000ms if not specified.
	CryptoHandshakeTimeout *durationpb.Duration `` /* 129-byte string literal not displayed */
	// contains filtered or unexported fields
}

Configuration specific to the QUIC protocol. Next id: 4

func (*QuicProtocolOptions) ClearCryptoHandshakeTimeout

func (x *QuicProtocolOptions) ClearCryptoHandshakeTimeout()

func (*QuicProtocolOptions) ClearIdleTimeout

func (x *QuicProtocolOptions) ClearIdleTimeout()

func (*QuicProtocolOptions) ClearMaxConcurrentStreams

func (x *QuicProtocolOptions) ClearMaxConcurrentStreams()

func (*QuicProtocolOptions) GetCryptoHandshakeTimeout

func (x *QuicProtocolOptions) GetCryptoHandshakeTimeout() *durationpb.Duration

func (*QuicProtocolOptions) GetIdleTimeout

func (x *QuicProtocolOptions) GetIdleTimeout() *durationpb.Duration

func (*QuicProtocolOptions) GetMaxConcurrentStreams

func (x *QuicProtocolOptions) GetMaxConcurrentStreams() *wrapperspb.UInt32Value

func (*QuicProtocolOptions) HasCryptoHandshakeTimeout

func (x *QuicProtocolOptions) HasCryptoHandshakeTimeout() bool

func (*QuicProtocolOptions) HasIdleTimeout

func (x *QuicProtocolOptions) HasIdleTimeout() bool

func (*QuicProtocolOptions) HasMaxConcurrentStreams

func (x *QuicProtocolOptions) HasMaxConcurrentStreams() bool

func (*QuicProtocolOptions) ProtoMessage

func (*QuicProtocolOptions) ProtoMessage()

func (*QuicProtocolOptions) ProtoReflect

func (x *QuicProtocolOptions) ProtoReflect() protoreflect.Message

func (*QuicProtocolOptions) Reset

func (x *QuicProtocolOptions) Reset()

func (*QuicProtocolOptions) SetCryptoHandshakeTimeout

func (x *QuicProtocolOptions) SetCryptoHandshakeTimeout(v *durationpb.Duration)

func (*QuicProtocolOptions) SetIdleTimeout

func (x *QuicProtocolOptions) SetIdleTimeout(v *durationpb.Duration)

func (*QuicProtocolOptions) SetMaxConcurrentStreams

func (x *QuicProtocolOptions) SetMaxConcurrentStreams(v *wrapperspb.UInt32Value)

func (*QuicProtocolOptions) String

func (x *QuicProtocolOptions) String() string

type QuicProtocolOptions_builder

type QuicProtocolOptions_builder struct {

	// Maximum number of streams that the client can negotiate per connection. 100
	// if not specified.
	MaxConcurrentStreams *wrapperspb.UInt32Value
	// Maximum number of milliseconds that connection will be alive when there is
	// no network activity. 300000ms if not specified.
	IdleTimeout *durationpb.Duration
	// Connection timeout in milliseconds before the crypto handshake is finished.
	// 20000ms if not specified.
	CryptoHandshakeTimeout *durationpb.Duration
	// contains filtered or unexported fields
}

func (QuicProtocolOptions_builder) Build

type UdpListenerConfig

type UdpListenerConfig struct {

	// Used to look up UDP listener factory, matches "raw_udp_listener" or
	// "quic_listener" to create a specific udp listener.
	// If not specified, treat as "raw_udp_listener".
	UdpListenerName string `protobuf:"bytes,1,opt,name=udp_listener_name,json=udpListenerName,proto3" json:"udp_listener_name,omitempty"`
	// Used to create a specific listener factory. To some factory, e.g.
	// "raw_udp_listener", config is not needed.
	//
	// Types that are valid to be assigned to ConfigType:
	//
	//	*UdpListenerConfig_Config
	//	*UdpListenerConfig_TypedConfig
	ConfigType isUdpListenerConfig_ConfigType `protobuf_oneof:"config_type"`
	// contains filtered or unexported fields
}

func (*UdpListenerConfig) ClearConfig deprecated

func (x *UdpListenerConfig) ClearConfig()

Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.

func (*UdpListenerConfig) ClearConfigType

func (x *UdpListenerConfig) ClearConfigType()

func (*UdpListenerConfig) ClearTypedConfig

func (x *UdpListenerConfig) ClearTypedConfig()

func (*UdpListenerConfig) GetConfig deprecated

func (x *UdpListenerConfig) GetConfig() *structpb.Struct

Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.

func (*UdpListenerConfig) GetConfigType

func (x *UdpListenerConfig) GetConfigType() isUdpListenerConfig_ConfigType

func (*UdpListenerConfig) GetTypedConfig

func (x *UdpListenerConfig) GetTypedConfig() *anypb.Any

func (*UdpListenerConfig) GetUdpListenerName

func (x *UdpListenerConfig) GetUdpListenerName() string

func (*UdpListenerConfig) HasConfig deprecated

func (x *UdpListenerConfig) HasConfig() bool

Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.

func (*UdpListenerConfig) HasConfigType

func (x *UdpListenerConfig) HasConfigType() bool

func (*UdpListenerConfig) HasTypedConfig

func (x *UdpListenerConfig) HasTypedConfig() bool

func (*UdpListenerConfig) ProtoMessage

func (*UdpListenerConfig) ProtoMessage()

func (*UdpListenerConfig) ProtoReflect

func (x *UdpListenerConfig) ProtoReflect() protoreflect.Message

func (*UdpListenerConfig) Reset

func (x *UdpListenerConfig) Reset()

func (*UdpListenerConfig) SetConfig deprecated

func (x *UdpListenerConfig) SetConfig(v *structpb.Struct)

Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.

func (*UdpListenerConfig) SetTypedConfig

func (x *UdpListenerConfig) SetTypedConfig(v *anypb.Any)

func (*UdpListenerConfig) SetUdpListenerName

func (x *UdpListenerConfig) SetUdpListenerName(v string)

func (*UdpListenerConfig) String

func (x *UdpListenerConfig) String() string

func (*UdpListenerConfig) WhichConfigType

func (x *UdpListenerConfig) WhichConfigType() case_UdpListenerConfig_ConfigType

type UdpListenerConfig_Config

type UdpListenerConfig_Config struct {
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.
	Config *structpb.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
}

type UdpListenerConfig_TypedConfig

type UdpListenerConfig_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

type UdpListenerConfig_builder

type UdpListenerConfig_builder struct {

	// Used to look up UDP listener factory, matches "raw_udp_listener" or
	// "quic_listener" to create a specific udp listener.
	// If not specified, treat as "raw_udp_listener".
	UdpListenerName string

	// Fields of oneof ConfigType:
	// Deprecated: Marked as deprecated in envoy/api/v2/listener/udp_listener_config.proto.
	Config      *structpb.Struct
	TypedConfig *anypb.Any
	// contains filtered or unexported fields
}

func (UdpListenerConfig_builder) Build

Source Files

  • listener.pb.go
  • listener_components.pb.go
  • quic_config.pb.go
  • udp_listener_config.pb.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL