envoy_types/generated/
envoy.extensions.quic.server_preferred_address.v3.rs

1// This file is @generated by prost-build.
2/// Configuration for DataSourceServerPreferredAddressConfig.
3#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct DataSourceServerPreferredAddressConfig {
5    /// The IPv4 address to advertise to clients for Server Preferred Address.
6    #[prost(message, optional, tag = "1")]
7    pub ipv4_config: ::core::option::Option<
8        data_source_server_preferred_address_config::AddressFamilyConfig,
9    >,
10    /// The IPv6 address to advertise to clients for Server Preferred Address.
11    #[prost(message, optional, tag = "2")]
12    pub ipv6_config: ::core::option::Option<
13        data_source_server_preferred_address_config::AddressFamilyConfig,
14    >,
15}
16/// Nested message and enum types in `DataSourceServerPreferredAddressConfig`.
17pub mod data_source_server_preferred_address_config {
18    /// Addresses for server preferred address for a single address family (IPv4 or IPv6).
19    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
20    pub struct AddressFamilyConfig {
21        /// The server preferred address sent to clients. The data must contain an IP address string.
22        #[prost(message, optional, tag = "1")]
23        pub address: ::core::option::Option<
24            super::super::super::super::super::config::core::v3::DataSource,
25        >,
26        /// The server preferred address port sent to clients. The data must contain a integer port value.
27        ///
28        /// If this is not specified, the listener's port is used.
29        ///
30        ///
31        /// Note: Envoy currently must receive all packets for a QUIC connection on the same port, so unless
32        /// : ref:`dnat_address <envoy_v3_api_field_extensions.quic.server_preferred_address.v3.DataSourceServerPreferredAddressConfig.AddressFamilyConfig.dnat_address>`
33        ///   is configured, this must be left unset.
34        #[prost(message, optional, tag = "2")]
35        pub port: ::core::option::Option<
36            super::super::super::super::super::config::core::v3::DataSource,
37        >,
38        /// If there is a DNAT between the client and Envoy, the address that Envoy will observe
39        /// server preferred address packets being sent to. If this is not specified, it is assumed
40        /// there is no DNAT and the server preferred address packets will be sent to the address advertised
41        /// to clients for server preferred address.
42        #[prost(message, optional, tag = "3")]
43        pub dnat_address: ::core::option::Option<
44            super::super::super::super::super::config::core::v3::DataSource,
45        >,
46    }
47    impl ::prost::Name for AddressFamilyConfig {
48        const NAME: &'static str = "AddressFamilyConfig";
49        const PACKAGE: &'static str = "envoy.extensions.quic.server_preferred_address.v3";
50        fn full_name() -> ::prost::alloc::string::String {
51            "envoy.extensions.quic.server_preferred_address.v3.DataSourceServerPreferredAddressConfig.AddressFamilyConfig"
52                .into()
53        }
54        fn type_url() -> ::prost::alloc::string::String {
55            "type.googleapis.com/envoy.extensions.quic.server_preferred_address.v3.DataSourceServerPreferredAddressConfig.AddressFamilyConfig"
56                .into()
57        }
58    }
59}
60impl ::prost::Name for DataSourceServerPreferredAddressConfig {
61    const NAME: &'static str = "DataSourceServerPreferredAddressConfig";
62    const PACKAGE: &'static str = "envoy.extensions.quic.server_preferred_address.v3";
63    fn full_name() -> ::prost::alloc::string::String {
64        "envoy.extensions.quic.server_preferred_address.v3.DataSourceServerPreferredAddressConfig"
65            .into()
66    }
67    fn type_url() -> ::prost::alloc::string::String {
68        "type.googleapis.com/envoy.extensions.quic.server_preferred_address.v3.DataSourceServerPreferredAddressConfig"
69            .into()
70    }
71}
72/// Configuration for FixedServerPreferredAddressConfig.
73#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
74pub struct FixedServerPreferredAddressConfig {
75    /// String representation of IPv4 address, i.e. "127.0.0.2".
76    /// If not specified, none will be configured.
77    #[prost(string, tag = "1")]
78    pub ipv4_address: ::prost::alloc::string::String,
79    ///
80    /// The IPv4 address to advertise to clients for Server Preferred Address.
81    /// This field takes precedence over
82    /// : ref:`ipv4_address <envoy_v3_api_field_extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig.ipv4_address>`.
83    #[prost(message, optional, tag = "3")]
84    pub ipv4_config: ::core::option::Option<
85        fixed_server_preferred_address_config::AddressFamilyConfig,
86    >,
87    /// String representation of IPv6 address, i.e. "::1".
88    /// If not specified, none will be configured.
89    #[prost(string, tag = "2")]
90    pub ipv6_address: ::prost::alloc::string::String,
91    ///
92    /// The IPv6 address to advertise to clients for Server Preferred Address.
93    /// This field takes precedence over
94    /// : ref:`ipv6_address <envoy_v3_api_field_extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig.ipv6_address>`.
95    #[prost(message, optional, tag = "4")]
96    pub ipv6_config: ::core::option::Option<
97        fixed_server_preferred_address_config::AddressFamilyConfig,
98    >,
99}
100/// Nested message and enum types in `FixedServerPreferredAddressConfig`.
101pub mod fixed_server_preferred_address_config {
102    /// Addresses for server preferred address for a single address family (IPv4 or IPv6).
103    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
104    pub struct AddressFamilyConfig {
105        /// The server preferred address sent to clients.
106        ///
107        /// .. note::
108        ///
109        ///
110        /// Envoy currently requires all packets for a QUIC connection to arrive on the same port. Therefore, unless a
111        /// : ref:`dnat_address <envoy_v3_api_field_extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig.AddressFamilyConfig.dnat_address>`
112        ///   is explicitly configured, the port specified here must be set to zero. In such cases, Envoy will automatically
113        ///   use the listener's port.
114        #[prost(message, optional, tag = "1")]
115        pub address: ::core::option::Option<
116            super::super::super::super::super::config::core::v3::SocketAddress,
117        >,
118        /// If a DNAT exists between the client and Envoy, this is the address where Envoy will observe incoming server
119        /// preferred address packets. If unspecified, Envoy assumes there is no DNAT, and packets will be sent directly
120        /// to the address advertised to clients as the server preferred address.
121        ///
122        /// .. note::
123        ///
124        /// Envoy currently requires all packets for a QUIC connection to arrive on the same port. Consequently, the
125        /// port for this address must be set to zero, with Envoy defaulting to the listener's port instead.
126        #[prost(message, optional, tag = "2")]
127        pub dnat_address: ::core::option::Option<
128            super::super::super::super::super::config::core::v3::SocketAddress,
129        >,
130    }
131    impl ::prost::Name for AddressFamilyConfig {
132        const NAME: &'static str = "AddressFamilyConfig";
133        const PACKAGE: &'static str = "envoy.extensions.quic.server_preferred_address.v3";
134        fn full_name() -> ::prost::alloc::string::String {
135            "envoy.extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig.AddressFamilyConfig"
136                .into()
137        }
138        fn type_url() -> ::prost::alloc::string::String {
139            "type.googleapis.com/envoy.extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig.AddressFamilyConfig"
140                .into()
141        }
142    }
143}
144impl ::prost::Name for FixedServerPreferredAddressConfig {
145    const NAME: &'static str = "FixedServerPreferredAddressConfig";
146    const PACKAGE: &'static str = "envoy.extensions.quic.server_preferred_address.v3";
147    fn full_name() -> ::prost::alloc::string::String {
148        "envoy.extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig"
149            .into()
150    }
151    fn type_url() -> ::prost::alloc::string::String {
152        "type.googleapis.com/envoy.extensions.quic.server_preferred_address.v3.FixedServerPreferredAddressConfig"
153            .into()
154    }
155}