quic: extends QUIC connection ID generator (#23449)

make QUIC connection ID generation an extension point with currently in-use EnvoyDeterministicConnectionIdGenerator as the default implementation.

Additional Description: fix some previously unused QUICHE build targets.
Risk Level: low, control plane change
Testing: added new unit tests
Docs Changes: docs/root/api-v3/config/quic/quic_extensions.rst
Release Notes: N/A
API Considerations: interface naming and documentation

Signed-off-by: Dan Zhang <danzh@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 02ebc03205cfae5b26ce890050b9d1b6e0c2d1f5
pull/626/head
data-plane-api(Azure Pipelines) 2 years ago
parent dcf87698a8
commit 4b0fb00205
  1. 1
      BUILD
  2. 7
      envoy/config/listener/v3/quic_config.proto
  3. 9
      envoy/extensions/quic/connection_id_generator/v3/BUILD
  4. 18
      envoy/extensions/quic/connection_id_generator/v3/envoy_deterministic_connection_id_generator.proto
  5. 1
      versioning/BUILD

@ -247,6 +247,7 @@ proto_library(
"//envoy/extensions/network/socket_interface/v3:pkg",
"//envoy/extensions/path/match/uri_template/v3:pkg",
"//envoy/extensions/path/rewrite/uri_template/v3:pkg",
"//envoy/extensions/quic/connection_id_generator/v3:pkg",
"//envoy/extensions/quic/crypto_stream/v3:pkg",
"//envoy/extensions/quic/proof_source/v3:pkg",
"//envoy/extensions/rate_limit_descriptors/expr/v3:pkg",

@ -22,7 +22,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: QUIC listener config]
// Configuration specific to the UDP QUIC listener.
// [#next-free-field: 8]
// [#next-free-field: 9]
message QuicProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.listener.QuicProtocolOptions";
@ -63,4 +63,9 @@ message QuicProtocolOptions {
// If not specified the :ref:`default one configured by <envoy_v3_api_msg_extensions.quic.proof_source.v3.ProofSourceConfig>` will be used.
// [#extension-category: envoy.quic.proof_source]
core.v3.TypedExtensionConfig proof_source_config = 7;
// Config which implementation of ``quic::ConnectionIdGeneratorInterface`` to be used for this listener.
// If not specified the :ref:`default one configured by <envoy_v3_api_msg_extensions.quic.connection_id_generator.v3.DeterministicConnectionIdGeneratorConfig>` will be used.
// [#extension-category: envoy.quic.connection_id_generator]
core.v3.TypedExtensionConfig connection_id_generator_config = 8;
}

@ -0,0 +1,9 @@
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py.
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")
licenses(["notice"]) # Apache 2
api_proto_package(
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"],
)

@ -0,0 +1,18 @@
syntax = "proto3";
package envoy.extensions.quic.connection_id_generator.v3;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.extensions.quic.connection_id_generator.v3";
option java_outer_classname = "EnvoyDeterministicConnectionIdGeneratorProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/quic/connection_id_generator/v3;connection_id_generatorv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: QUIC connection ID generator config]
// [#extension: envoy.quic.deterministic_connection_id_generator]
// Configuration for a connection ID generator implementation which issues predictable CIDs with stable first 4 bytes.
message DeterministicConnectionIdGeneratorConfig {
}

@ -193,6 +193,7 @@ proto_library(
"//envoy/extensions/network/socket_interface/v3:pkg",
"//envoy/extensions/path/match/uri_template/v3:pkg",
"//envoy/extensions/path/rewrite/uri_template/v3:pkg",
"//envoy/extensions/quic/connection_id_generator/v3:pkg",
"//envoy/extensions/quic/crypto_stream/v3:pkg",
"//envoy/extensions/quic/proof_source/v3:pkg",
"//envoy/extensions/rate_limit_descriptors/expr/v3:pkg",

Loading…
Cancel
Save