syntax = "proto3";

package envoy.api.v2.listener;

import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";

import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";

option java_package = "io.envoyproxy.envoy.api.v2.listener";
option java_outer_classname = "QuicConfigProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/api/v2/listener";
option csharp_namespace = "Envoy.Api.V2.ListenerNS";
option ruby_package = "Envoy::Api::V2::ListenerNS";
option (udpa.annotations.file_migrate).move_to_package = "envoy.config.listener.v3";
option (udpa.annotations.file_status).package_version_status = FROZEN;

// [#protodoc-title: QUIC listener Config]

// Configuration specific to the QUIC protocol.
// Next id: 4
message QuicProtocolOptions {
  // Maximum number of streams that the client can negotiate per connection. 100
  // if not specified.
  google.protobuf.UInt32Value max_concurrent_streams = 1;

  // Maximum number of milliseconds that connection will be alive when there is
  // no network activity. 300000ms if not specified.
  google.protobuf.Duration idle_timeout = 2;

  // Connection timeout in milliseconds before the crypto handshake is finished.
  // 20000ms if not specified.
  google.protobuf.Duration crypto_handshake_timeout = 3;
}
