matchers: add input types for network streams (#19493)
Introduce data inputs for connection matching as part of #18871 Signed-off-by: Kuat Yessenov <kuat@google.com> Mirrored from https://github.com/envoyproxy/envoy @ a1181348a4f6df6011843a141814e28840d23eb5pull/626/head
parent
4587c3ce48
commit
9b646712a8
4 changed files with 99 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||||||
|
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py. |
||||||
|
|
||||||
|
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||||
|
|
||||||
|
licenses(["notice"]) # Apache 2 |
||||||
|
|
||||||
|
api_proto_package( |
||||||
|
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"], |
||||||
|
) |
@ -0,0 +1,88 @@ |
|||||||
|
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. |
||||||
|
message DestinationIPInput { |
||||||
|
} |
||||||
|
|
||||||
|
// Specifies that matching should be performed by the destination port. |
||||||
|
message DestinationPortInput { |
||||||
|
} |
||||||
|
|
||||||
|
// Specifies that matching should be performed by the source IP address. |
||||||
|
message SourceIPInput { |
||||||
|
} |
||||||
|
|
||||||
|
// Specifies that matching should be performed by the 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 <config_listener_filters_proxy_protocol>`). |
||||||
|
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, |
||||||
|
message SourceTypeInput { |
||||||
|
} |
||||||
|
|
||||||
|
// Input that matches by the requested server name (e.g. SNI in TLS). |
||||||
|
// |
||||||
|
// :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides the requested server name based on SNI, |
||||||
|
// when TLS protocol is detected. |
||||||
|
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 <config_listener_filters_tls_inspector>` |
||||||
|
// when TLS protocol is detected. |
||||||
|
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 |
||||||
|
// <config_listener_filters_tls_inspector>` and :ref:`envoy.filters.listener.http_inspector |
||||||
|
// <config_listener_filters_http_inspector>`, |
||||||
|
// * ``h2`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>` |
||||||
|
// * ``h2c`` - set by :ref:`envoy.filters.listener.http_inspector <config_listener_filters_http_inspector>` |
||||||
|
// |
||||||
|
// .. attention:: |
||||||
|
// |
||||||
|
// Currently, :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. |
||||||
|
message ApplicationProtocolInput { |
||||||
|
} |
Loading…
Reference in new issue