Skip to content

Commit 815727d

Browse files
[protobuf] Update protobuf definitions to v1.32.2 (#433)
Signed-off-by: envoy-bot <[email protected]> Co-authored-by: envoy-bot <[email protected]>
1 parent 2afd543 commit 815727d

File tree

58 files changed

+1391
-264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1391
-264
lines changed

api/src/main/proto/cel/expr/conformance/proto2/test_all_types.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ message TestAllTypes {
9696
repeated NestedEnum repeated_nested_enum = 52;
9797
repeated string repeated_string_piece = 53 [ctype = STRING_PIECE];
9898
repeated string repeated_cord = 54 [ctype = CORD];
99-
repeated NestedMessage repeated_lazy_message = 55 [lazy = true];
99+
repeated NestedMessage repeated_lazy_message = 55;
100100

101101
// Repeated wellknown.
102102
repeated google.protobuf.Any repeated_any = 120;

api/src/main/proto/cel/expr/conformance/proto3/test_all_types.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ message TestAllTypes {
9696
repeated NestedEnum repeated_nested_enum = 52;
9797
repeated string repeated_string_piece = 53 [ctype = STRING_PIECE];
9898
repeated string repeated_cord = 54 [ctype = CORD];
99-
repeated NestedMessage repeated_lazy_message = 55 [lazy = true];
99+
repeated NestedMessage repeated_lazy_message = 55;
100100

101101
// Repeated wellknown.
102102
repeated google.protobuf.Any repeated_any = 120;

api/src/main/proto/cel/expr/syntax.proto

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ message Expr {
185185
// macro tests whether the property is set to its default. For map and struct
186186
// types, the macro tests whether the property `x` is defined on `m`.
187187
//
188-
// Comprehension evaluation can be best visualized as the following
189-
// pseudocode:
188+
// Comprehensions for the standard environment macros evaluation can be best
189+
// visualized as the following pseudocode:
190190
//
191191
// ```
192192
// let `accu_var` = `accu_init`
@@ -198,11 +198,35 @@ message Expr {
198198
// }
199199
// return `result`
200200
// ```
201+
//
202+
// Comprehensions for the optional V2 macros which support map-to-map
203+
// translation differ slightly from the standard environment macros in that
204+
// they expose both the key or index in addition to the value for each list
205+
// or map entry:
206+
//
207+
// ```
208+
// let `accu_var` = `accu_init`
209+
// for (let `iter_var`, `iter_var2` in `iter_range`) {
210+
// if (!`loop_condition`) {
211+
// break
212+
// }
213+
// `accu_var` = `loop_step`
214+
// }
215+
// return `result`
216+
// ```
201217
message Comprehension {
202-
// The name of the iteration variable.
218+
// The name of the first iteration variable.
219+
// When the iter_range is a list, this variable is the list element.
220+
// When the iter_range is a map, this variable is the map entry key.
203221
string iter_var = 1;
204222

205-
// The range over which var iterates.
223+
// The name of the second iteration variable, empty if not set.
224+
// When the iter_range is a list, this variable is the integer index.
225+
// When the iter_range is a map, this variable is the map entry value.
226+
// This field is only set for comprehension v2 macros.
227+
string iter_var2 = 8;
228+
229+
// The range over which the comprehension iterates.
206230
Expr iter_range = 2;
207231

208232
// The name of the variable used for accumulation of the result.
@@ -211,13 +235,13 @@ message Expr {
211235
// The initial value of the accumulator.
212236
Expr accu_init = 4;
213237

214-
// An expression which can contain iter_var and accu_var.
238+
// An expression which can contain iter_var, iter_var2, and accu_var.
215239
//
216240
// Returns false when the result has been computed and may be used as
217241
// a hint to short-circuit the remainder of the comprehension.
218242
Expr loop_condition = 5;
219243

220-
// An expression which can contain iter_var and accu_var.
244+
// An expression which can contain iter_var, iter_var2, and accu_var.
221245
//
222246
// Computes the next value of accu_var.
223247
Expr loop_step = 6;

api/src/main/proto/envoy/config/cluster/v3/cluster.proto

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ message ClusterCollection {
4545
}
4646

4747
// Configuration for a single upstream cluster.
48-
// [#next-free-field: 58]
48+
// [#next-free-field: 59]
4949
message Cluster {
5050
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Cluster";
5151

@@ -956,6 +956,17 @@ message Cluster {
956956
google.protobuf.Duration dns_refresh_rate = 16
957957
[(validate.rules).duration = {gt {nanos: 1000000}}];
958958

959+
// DNS jitter can be optionally specified if the cluster type is either
960+
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
961+
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
962+
// DNS jitter causes the cluster to refresh DNS entries later by a random amount of time to avoid a
963+
// stampede of DNS requests. This value sets the upper bound (exclusive) for the random amount.
964+
// There will be no jitter if this value is omitted. For cluster types other than
965+
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
966+
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
967+
// this setting is ignored.
968+
google.protobuf.Duration dns_jitter = 58 [(validate.rules).duration = {gte {}}];
969+
959970
// If the DNS failure refresh rate is specified and the cluster type is either
960971
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
961972
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
@@ -1151,12 +1162,13 @@ message Cluster {
11511162
// from the LRS stream here.]
11521163
core.v3.ConfigSource lrs_server = 42;
11531164

1154-
// [#not-implemented-hide:]
1155-
// A list of metric names from ORCA load reports to propagate to LRS.
1165+
// A list of metric names from :ref:`ORCA load reports <envoy_v3_api_msg_.xds.data.orca.v3.OrcaLoadReport>` to propagate to LRS.
1166+
//
1167+
// If not specified, then ORCA load reports will not be propagated to LRS.
11561168
//
11571169
// For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``.
11581170
// For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA
1159-
// ``named_metrics`` field.
1171+
// :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
11601172
//
11611173
// The special map key ``*`` means to report all entries in the map (e.g., ``named_metrics.*`` means to
11621174
// report all entries in the ORCA named_metrics field). Note that this should be used only with trusted

api/src/main/proto/envoy/config/core/v3/protocol.proto

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ message QuicKeepAliveSettings {
5656
}
5757

5858
// QUIC protocol options which apply to both downstream and upstream connections.
59-
// [#next-free-field: 9]
59+
// [#next-free-field: 10]
6060
message QuicProtocolOptions {
6161
// Maximum number of streams that the client can negotiate per connection. 100
6262
// if not specified.
@@ -111,6 +111,10 @@ message QuicProtocolOptions {
111111
lte {seconds: 600}
112112
gte {seconds: 1}
113113
}];
114+
115+
// Maximum packet length for QUIC connections. It refers to the largest size of a QUIC packet that can be transmitted over the connection.
116+
// If not specified, one of the `default values in QUICHE <https://github.com/google/quiche/blob/main/quiche/quic/core/quic_constants.h>`_ is used.
117+
google.protobuf.UInt64Value max_packet_length = 9;
114118
}
115119

116120
message UpstreamHttpProtocolOptions {
@@ -205,7 +209,7 @@ message AlternateProtocolsCacheOptions {
205209
repeated string canonical_suffixes = 5;
206210
}
207211

208-
// [#next-free-field: 7]
212+
// [#next-free-field: 8]
209213
message HttpProtocolOptions {
210214
option (udpa.annotations.versioning).previous_message_type =
211215
"envoy.api.v2.core.HttpProtocolOptions";
@@ -255,11 +259,31 @@ message HttpProtocolOptions {
255259
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
256260
google.protobuf.Duration max_connection_duration = 3;
257261

258-
// The maximum number of headers. If unconfigured, the default
259-
// maximum number of request headers allowed is 100. Requests that exceed this limit will receive
260-
// a 431 response for HTTP/1.x and cause a stream reset for HTTP/2.
262+
// The maximum number of headers (request headers if configured on HttpConnectionManager,
263+
// response headers when configured on a cluster).
264+
// If unconfigured, the default maximum number of headers allowed is 100.
265+
// The default value for requests can be overridden by setting runtime key ``envoy.reloadable_features.max_request_headers_count``.
266+
// The default value for responses can be overridden by setting runtime key ``envoy.reloadable_features.max_response_headers_count``.
267+
// Downstream requests that exceed this limit will receive a 431 response for HTTP/1.x and cause a stream
268+
// reset for HTTP/2.
269+
// Upstream responses that exceed this limit will result in a 503 response.
261270
google.protobuf.UInt32Value max_headers_count = 2 [(validate.rules).uint32 = {gte: 1}];
262271

272+
// The maximum size of response headers.
273+
// If unconfigured, the default is 60 KiB, except for HTTP/1 response headers which have a default
274+
// of 80KiB.
275+
// The default value can be overridden by setting runtime key ``envoy.reloadable_features.max_response_headers_size_kb``.
276+
// Responses that exceed this limit will result in a 503 response.
277+
// In Envoy, this setting is only valid when configured on an upstream cluster, not on the
278+
// :ref:`HTTP Connection Manager
279+
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`.
280+
//
281+
// Note: currently some protocol codecs impose limits on the maximum size of a single header:
282+
// HTTP/2 (when using nghttp2) limits a single header to around 100kb.
283+
// HTTP/3 limits a single header to around 1024kb.
284+
google.protobuf.UInt32Value max_response_headers_kb = 7
285+
[(validate.rules).uint32 = {lte: 8192 gt: 0}];
286+
263287
// Total duration to keep alive an HTTP request/response stream. If the time limit is reached the stream will be
264288
// reset independent of any other timeouts. If not specified, this value is not set.
265289
google.protobuf.Duration max_stream_duration = 4;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
syntax = "proto3";
2+
3+
package envoy.config.core.v3;
4+
5+
import "google/protobuf/wrappers.proto";
6+
7+
import "udpa/annotations/status.proto";
8+
9+
option java_package = "io.envoyproxy.envoy.config.core.v3";
10+
option java_outer_classname = "SocketCmsgHeadersProto";
11+
option java_multiple_files = true;
12+
option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3";
13+
option (udpa.annotations.file_status).package_version_status = ACTIVE;
14+
15+
// [#protodoc-title: Socket CMSG headers]
16+
17+
// Configuration for socket cmsg headers.
18+
// See `:ref:CMSG <https://man7.org/linux/man-pages/man3/cmsg.3.html>`_ for further information.
19+
message SocketCmsgHeaders {
20+
// cmsg level. Default is unset.
21+
google.protobuf.UInt32Value level = 1;
22+
23+
// cmsg type. Default is unset.
24+
google.protobuf.UInt32Value type = 2;
25+
26+
// Expected size of cmsg value. Default is zero.
27+
uint32 expected_size = 3;
28+
}

api/src/main/proto/envoy/config/core/v3/socket_option.proto

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
3636
// :ref:`admin's <envoy_v3_api_field_config.bootstrap.v3.Admin.socket_options>` socket_options etc.
3737
//
3838
// It should be noted that the name or level may have different values on different platforms.
39-
// [#next-free-field: 7]
39+
// [#next-free-field: 8]
4040
message SocketOption {
4141
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.SocketOption";
4242

@@ -51,6 +51,29 @@ message SocketOption {
5151
STATE_LISTENING = 2;
5252
}
5353

54+
// The `socket type <https://linux.die.net/man/2/socket>`_ to apply the socket option to.
55+
// Only one field should be set. If multiple fields are set, the precedence order will determine
56+
// the selected one. If none of the fields is set, the socket option will be applied to all socket types.
57+
//
58+
// For example:
59+
// If :ref:`stream <envoy_v3_api_field_config.core.v3.SocketOption.SocketType.stream>` is set,
60+
// it takes precedence over :ref:`datagram <envoy_v3_api_field_config.core.v3.SocketOption.SocketType.datagram>`.
61+
message SocketType {
62+
// The stream socket type.
63+
message Stream {
64+
}
65+
66+
// The datagram socket type.
67+
message Datagram {
68+
}
69+
70+
// Apply the socket option to the stream socket type.
71+
Stream stream = 1;
72+
73+
// Apply the socket option to the datagram socket type.
74+
Datagram datagram = 2;
75+
}
76+
5477
// An optional name to give this socket option for debugging, etc.
5578
// Uniqueness is not required and no special meaning is assumed.
5679
string description = 1;
@@ -74,6 +97,10 @@ message SocketOption {
7497
// The state in which the option will be applied. When used in BindConfig
7598
// STATE_PREBIND is currently the only valid value.
7699
SocketState state = 6 [(validate.rules).enum = {defined_only: true}];
100+
101+
// Apply the socket option to the specified `socket type <https://linux.die.net/man/2/socket>`_.
102+
// If not specified, the socket option will be applied to all socket types.
103+
SocketType type = 7;
77104
}
78105

79106
message SocketOptionsOverride {

api/src/main/proto/envoy/config/listener/v3/quic_config.proto

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package envoy.config.listener.v3;
55
import "envoy/config/core/v3/base.proto";
66
import "envoy/config/core/v3/extension.proto";
77
import "envoy/config/core/v3/protocol.proto";
8+
import "envoy/config/core/v3/socket_cmsg_headers.proto";
89

910
import "google/protobuf/duration.proto";
1011
import "google/protobuf/wrappers.proto";
@@ -24,7 +25,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2425
// [#protodoc-title: QUIC listener config]
2526

2627
// Configuration specific to the UDP QUIC listener.
27-
// [#next-free-field: 12]
28+
// [#next-free-field: 14]
2829
message QuicProtocolOptions {
2930
option (udpa.annotations.versioning).previous_message_type =
3031
"envoy.api.v2.listener.QuicProtocolOptions";
@@ -86,4 +87,16 @@ message QuicProtocolOptions {
8687
// If not specified, no debug visitor will be attached to connections.
8788
// [#extension-category: envoy.quic.connection_debug_visitor]
8889
core.v3.TypedExtensionConfig connection_debug_visitor_config = 11;
90+
91+
// Configure a type of UDP cmsg to pass to listener filters via QuicReceivedPacket.
92+
// Both level and type must be specified for cmsg to be saved.
93+
// Cmsg may be truncated or omitted if expected size is not set.
94+
// If not specified, no cmsg will be saved to QuicReceivedPacket.
95+
repeated core.v3.SocketCmsgHeaders save_cmsg_config = 12
96+
[(validate.rules).repeated = {max_items: 1}];
97+
98+
// If true, the listener will reject connection-establishing packets at the
99+
// QUIC layer by replying with an empty version negotiation packet to the
100+
// client.
101+
bool reject_new_connections = 13;
89102
}

api/src/main/proto/envoy/config/trace/v3/dynamic_ot.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2020

2121
// [#protodoc-title: Dynamically loadable OpenTracing tracer]
2222

23-
// DynamicOtConfig is used to dynamically load a tracer from a shared library
23+
// DynamicOtConfig was used to dynamically load a tracer from a shared library
2424
// that implements the `OpenTracing dynamic loading API
2525
// <https://github.com/opentracing/opentracing-cpp>`_.
26-
// [#extension: envoy.tracers.dynamic_ot]
26+
// [#not-implemented-hide:]
2727
message DynamicOtConfig {
2828
option (udpa.annotations.versioning).previous_message_type =
2929
"envoy.config.trace.v2.DynamicOtConfig";

api/src/main/proto/envoy/config/trace/v3/xray.proto

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,65 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
2121

2222
// [#protodoc-title: AWS X-Ray Tracer Configuration]
2323
// Configuration for AWS X-Ray tracer
24+
//
25+
// The X-Ray tracer will automatically attach :ref:`custom_tags <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags>` as annotations to the span. (See: `Annotations <https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-annotations>`_.)
26+
//
27+
// AWS X-Ray trace annotations are also created by the tracing subsystem automatically based on metadata provided during creation of a span.
28+
//
29+
// An example X-Ray trace span that is generated by the envoy trace subsystem is as follows:
30+
//
31+
// .. code-block:: json
32+
//
33+
// {
34+
// "Id": "1-6698980d-e829ae270ab34b69b488b098",
35+
// "Duration": 0.016,
36+
// "LimitExceeded": false,
37+
// "Segments":
38+
// [
39+
// {
40+
// "Id": "15d65e5ced8dfe76",
41+
// "Document":
42+
// {
43+
// "id": "15d65e5ced8dfe76",
44+
// "name": "envoy-example",
45+
// "start_time": 1721276429.410355,
46+
// "trace_id": "1-6698980d-e829ae270ab34b69b488b098",
47+
// "end_time": 1721276429.426068,
48+
// "fault": true,
49+
// "http":
50+
// {
51+
// "request":
52+
// {
53+
// "url": "http://example/path",
54+
// "method": "GET",
55+
// "user_agent": "curl/8.5.0",
56+
// "client_ip": "127.0.0.1",
57+
// "x_forwarded_for": false
58+
// },
59+
// "response":
60+
// {
61+
// "status": 503,
62+
// "content_length": 216
63+
// }
64+
// },
65+
// "aws": {},
66+
// "annotations":
67+
// {
68+
// "response_flags": "UF",
69+
// "component": "proxy",
70+
// "upstream_cluster": "upstream_cluster",
71+
// "annotation_from_custom_tag": "example",
72+
// "http.protocol": "HTTP/1.1",
73+
// "request_size": "0",
74+
// "downstream_cluster": "-",
75+
// "direction": "ingress",
76+
// "upstream_cluster.name": "upstream_cluster"
77+
// }
78+
// }
79+
// }
80+
// ]
81+
// }
82+
//
2483

2584
// [#extension: envoy.tracers.xray]
2685
message XRayConfig {

0 commit comments

Comments
 (0)