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}