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