diff --git a/envoy/config/core/v3/protocol.proto b/envoy/config/core/v3/protocol.proto index 03c48d6f..8c7693c8 100644 --- a/envoy/config/core/v3/protocol.proto +++ b/envoy/config/core/v3/protocol.proto @@ -24,6 +24,13 @@ message TcpProtocolOptions { "envoy.api.v2.core.TcpProtocolOptions"; } +// QUIC protocol options which apply to both downstream and upstream connections. +message QuicProtocolOptions { + // Maximum number of streams that the client can negotiate per connection. 100 + // if not specified. + google.protobuf.UInt32Value max_concurrent_streams = 1; +} + message UpstreamHttpProtocolOptions { option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.UpstreamHttpProtocolOptions"; @@ -406,4 +413,5 @@ message GrpcProtocolOptions { // // Eventually this will include configuration for tuning HTTP/3. message Http3ProtocolOptions { + QuicProtocolOptions quic_protocol_options = 1; } diff --git a/envoy/config/core/v4alpha/protocol.proto b/envoy/config/core/v4alpha/protocol.proto index 1e380ad6..1f0af4d1 100644 --- a/envoy/config/core/v4alpha/protocol.proto +++ b/envoy/config/core/v4alpha/protocol.proto @@ -24,6 +24,16 @@ message TcpProtocolOptions { "envoy.config.core.v3.TcpProtocolOptions"; } +// QUIC protocol options which apply to both downstream and upstream connections. +message QuicProtocolOptions { + option (udpa.annotations.versioning).previous_message_type = + "envoy.config.core.v3.QuicProtocolOptions"; + + // Maximum number of streams that the client can negotiate per connection. 100 + // if not specified. + google.protobuf.UInt32Value max_concurrent_streams = 1; +} + message UpstreamHttpProtocolOptions { option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.UpstreamHttpProtocolOptions"; @@ -401,4 +411,6 @@ message GrpcProtocolOptions { message Http3ProtocolOptions { option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.Http3ProtocolOptions"; + + QuicProtocolOptions quic_protocol_options = 1; } diff --git a/envoy/config/listener/v3/quic_config.proto b/envoy/config/listener/v3/quic_config.proto index 658389ed..bbfbe71f 100644 --- a/envoy/config/listener/v3/quic_config.proto +++ b/envoy/config/listener/v3/quic_config.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package envoy.config.listener.v3; import "envoy/config/core/v3/base.proto"; +import "envoy/config/core/v3/protocol.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; @@ -24,9 +25,7 @@ message QuicProtocolOptions { option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.listener.QuicProtocolOptions"; - // Maximum number of streams that the client can negotiate per connection. 100 - // if not specified. - google.protobuf.UInt32Value max_concurrent_streams = 1; + core.v3.QuicProtocolOptions quic_protocol_options = 1; // Maximum number of milliseconds that connection will be alive when there is // no network activity. 300000ms if not specified. diff --git a/envoy/config/listener/v4alpha/quic_config.proto b/envoy/config/listener/v4alpha/quic_config.proto index f9c6d02b..10aaf1f1 100644 --- a/envoy/config/listener/v4alpha/quic_config.proto +++ b/envoy/config/listener/v4alpha/quic_config.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package envoy.config.listener.v4alpha; import "envoy/config/core/v4alpha/base.proto"; +import "envoy/config/core/v4alpha/protocol.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; @@ -24,9 +25,7 @@ message QuicProtocolOptions { option (udpa.annotations.versioning).previous_message_type = "envoy.config.listener.v3.QuicProtocolOptions"; - // Maximum number of streams that the client can negotiate per connection. 100 - // if not specified. - google.protobuf.UInt32Value max_concurrent_streams = 1; + core.v4alpha.QuicProtocolOptions quic_protocol_options = 1; // Maximum number of milliseconds that connection will be alive when there is // no network activity. 300000ms if not specified.