syntax = "proto3"; package envoy.extensions.matching.common_inputs.network.v3; import "udpa/annotations/status.proto"; option java_package = "io.envoyproxy.envoy.extensions.matching.common_inputs.network.v3"; option java_outer_classname = "NetworkInputsProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/matching/common_inputs/network/v3;networkv3"; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Common network matching inputs] // Specifies that matching should be performed by the destination IP address. // [#extension: envoy.matching.inputs.destination_ip] message DestinationIPInput { } // Specifies that matching should be performed by the destination port. // [#extension: envoy.matching.inputs.destination_port] message DestinationPortInput { } // Specifies that matching should be performed by the source IP address. // [#extension: envoy.matching.inputs.source_ip] message SourceIPInput { } // Specifies that matching should be performed by the source port. // [#extension: envoy.matching.inputs.source_port] message SourcePortInput { } // Input that matches by the directly connected source IP address (this // will only be different from the source IP address when using a listener // filter that overrides the source address, such as the :ref:`Proxy Protocol // listener filter `). // [#extension: envoy.matching.inputs.direct_source_ip] message DirectSourceIPInput { } // Input that matches by the source IP type. // Specifies the source IP match type. The values include: // // * ``local`` - matches a connection originating from the same host, // [#extension: envoy.matching.inputs.source_type] message SourceTypeInput { } // Input that matches by the requested server name (e.g. SNI in TLS). // // :ref:`TLS Inspector ` provides the requested server name based on SNI, // when TLS protocol is detected. // [#extension: envoy.matching.inputs.server_name] message ServerNameInput { } // Input that matches by the transport protocol. // // Suggested values include: // // * ``raw_buffer`` - default, used when no transport protocol is detected, // * ``tls`` - set by :ref:`envoy.filters.listener.tls_inspector ` // when TLS protocol is detected. // [#extension: envoy.matching.inputs.transport_protocol] message TransportProtocolInput { } // List of quoted and comma-separated requested application protocols. The list consists of a // single negotiated application protocol once the network stream is established. // // Examples: // // * ``'h2','http/1.1'`` // * ``'h2c'`` // // Suggested values in the list include: // // * ``http/1.1`` - set by :ref:`envoy.filters.listener.tls_inspector // ` and :ref:`envoy.filters.listener.http_inspector // `, // * ``h2`` - set by :ref:`envoy.filters.listener.tls_inspector ` // * ``h2c`` - set by :ref:`envoy.filters.listener.http_inspector ` // // .. attention:: // // Currently, :ref:`TLS Inspector ` provides // application protocol detection based on the requested // `ALPN `_ 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. // [#extension: envoy.matching.inputs.application_protocol] message ApplicationProtocolInput { }