udp: add router for UDP proxy (#18791)

Signed-off-by: Xie Zhihao <zhihao.xie@intel.com>

Mirrored from https://github.com/envoyproxy/envoy @ 90a1d4b76a221d347b8b534ec7c84971e3a48422
pull/626/head
data-plane-api(Azure Pipelines) 3 years ago
parent 5bf3cf964c
commit 4d66fafcf2
  1. 3
      envoy/extensions/filters/udp/udp_proxy/v3/BUILD
  2. 20
      envoy/extensions/filters/udp/udp_proxy/v3/route.proto
  3. 19
      envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto

@ -6,8 +6,11 @@ licenses(["notice"]) # Apache 2
api_proto_package( api_proto_package(
deps = [ deps = [
"//envoy/annotations:pkg",
"//envoy/config/accesslog/v3:pkg", "//envoy/config/accesslog/v3:pkg",
"//envoy/config/core/v3:pkg", "//envoy/config/core/v3:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg", "@com_github_cncf_udpa//udpa/annotations:pkg",
"@com_github_cncf_udpa//xds/annotations/v3:pkg",
"@com_github_cncf_udpa//xds/type/matcher/v3:pkg",
], ],
) )

@ -0,0 +1,20 @@
syntax = "proto3";
package envoy.extensions.filters.udp.udp_proxy.v3;
import "udpa/annotations/status.proto";
import "validate/validate.proto";
option java_package = "io.envoyproxy.envoy.extensions.filters.udp.udp_proxy.v3";
option java_outer_classname = "RouteProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/udp/udp_proxy/v3;udp_proxyv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: UDP proxy route configuration]
// UDP proxy :ref:`configuration overview <config_udp_listener_filters_udp_proxy>`.
message Route {
// Indicates the upstream cluster to which the request should be routed.
string cluster = 1 [(validate.rules).string = {min_len: 1}];
}

@ -7,6 +7,10 @@ import "envoy/config/core/v3/udp_socket_config.proto";
import "google/protobuf/duration.proto"; import "google/protobuf/duration.proto";
import "xds/annotations/v3/status.proto";
import "xds/type/matcher/v3/matcher.proto";
import "envoy/annotations/deprecation.proto";
import "udpa/annotations/status.proto"; import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto"; import "udpa/annotations/versioning.proto";
import "validate/validate.proto"; import "validate/validate.proto";
@ -22,7 +26,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#extension: envoy.filters.udp_listener.udp_proxy] // [#extension: envoy.filters.udp_listener.udp_proxy]
// Configuration for the UDP proxy filter. // Configuration for the UDP proxy filter.
// [#next-free-field: 9] // [#next-free-field: 10]
message UdpProxyConfig { message UdpProxyConfig {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.udp.udp_proxy.v2alpha.UdpProxyConfig"; "envoy.config.filter.udp.udp_proxy.v2alpha.UdpProxyConfig";
@ -52,7 +56,18 @@ message UdpProxyConfig {
option (validate.required) = true; option (validate.required) = true;
// The upstream cluster to connect to. // The upstream cluster to connect to.
string cluster = 2 [(validate.rules).string = {min_len: 1}]; // This field is deprecated in favor of
// :ref:`matcher <envoy_v3_api_field_extensions.filters.udp.udp_proxy.v3.UdpProxyConfig.matcher>`.
string cluster = 2 [
deprecated = true,
(validate.rules).string = {min_len: 1},
(envoy.annotations.deprecated_at_minor_version) = "3.0"
];
// The match tree to use when resolving route actions for incoming requests.
// See :ref:`Routing <config_udp_listener_filters_udp_proxy_routing>` for more information.
xds.type.matcher.v3.Matcher matcher = 9
[(xds.annotations.v3.field_status).work_in_progress = true];
} }
// The idle timeout for sessions. Idle is defined as no datagrams between received or sent by // The idle timeout for sessions. Idle is defined as no datagrams between received or sent by

Loading…
Cancel
Save