envoy_types/generated/envoy.extensions.filters.udp.udp_proxy.session.dynamic_forward_proxy.v3.rs
1// This file is @generated by prost-build.
2///
3/// Configuration for the filter state based dynamic forward proxy filter. See the
4/// : ref:`architecture overview <arch_overview_http_dynamic_forward_proxy>` for
5/// more information. Note this filter must be used in conjunction to another filter that
6/// sets the 'envoy.upstream.dynamic_host' and the 'envoy.upstream.dynamic_port' filter
7/// state keys for the required upstream UDP session.
8/// \[\#extension: envoy.filters.udp.session.dynamic_forward_proxy\]
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct FilterConfig {
11 /// The prefix to use when emitting :ref:`statistics <config_udp_session_filters_dynamic_forward_proxy_stats>`.
12 #[prost(string, tag = "1")]
13 pub stat_prefix: ::prost::alloc::string::String,
14 /// If configured, the filter will buffer datagrams in case that it is waiting for a DNS response.
15 /// If this field is not configured, there will be no buffering and downstream datagrams that arrive
16 /// while the DNS resolution is in progress will be dropped. In case this field is set but the options
17 /// are not configured, the default values will be applied as described in the `BufferOptions`.
18 #[prost(message, optional, tag = "3")]
19 pub buffer_options: ::core::option::Option<filter_config::BufferOptions>,
20 #[prost(oneof = "filter_config::ImplementationSpecifier", tags = "2")]
21 pub implementation_specifier: ::core::option::Option<
22 filter_config::ImplementationSpecifier,
23 >,
24}
25/// Nested message and enum types in `FilterConfig`.
26pub mod filter_config {
27 /// Configuration for UDP datagrams buffering.
28 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
29 pub struct BufferOptions {
30 /// If set, the filter will only buffer datagrams up to the requested limit, and will drop
31 /// new UDP datagrams if the buffer contains the max_buffered_datagrams value at the time
32 /// of a new datagram arrival. If not set, the default value is 1024 datagrams.
33 #[prost(message, optional, tag = "1")]
34 pub max_buffered_datagrams: ::core::option::Option<
35 super::super::super::super::super::super::super::super::super::google::protobuf::UInt32Value,
36 >,
37 /// If set, the filter will only buffer datagrams up to the requested total buffered bytes limit,
38 /// and will drop new UDP datagrams if the buffer contains the max_buffered_datagrams value
39 /// at the time of a new datagram arrival. If not set, the default value is 16,384 (16KB).
40 #[prost(message, optional, tag = "2")]
41 pub max_buffered_bytes: ::core::option::Option<
42 super::super::super::super::super::super::super::super::super::google::protobuf::UInt64Value,
43 >,
44 }
45 #[derive(Clone, PartialEq, ::prost::Oneof)]
46 pub enum ImplementationSpecifier {
47 /// The DNS cache configuration that the filter will attach to. Note this
48 /// configuration must match that of associated :ref:`dynamic forward proxy cluster configuration <envoy_v3_api_field_extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.dns_cache_config>`.
49 #[prost(message, tag = "2")]
50 DnsCacheConfig(
51 super::super::super::super::super::super::super::common::dynamic_forward_proxy::v3::DnsCacheConfig,
52 ),
53 }
54}