quic: add listener config option to attach connection debug visitors (#34036)

Commit Message: Add a way to configure a quic connection debug visitor factory that will be used to attach a debug visitor to all quic connections on the listener. Adds an interface for this new type of factory.
Additional Description:
Risk Level: Low
Testing: Added new tests and modified existing tests in /test/common/quic. Also performed manual testing on a real machine and sent traffic to it using quic_client.
Docs Changes: Update envoy.config.listener.v3.quic_config.proto inline.
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Will Lampert <wlampert@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 0c28205942066b2b5b2ef2a344c9357f27f642c7
main
update-envoy[bot] 6 months ago
parent 64decba1d9
commit 2e377fdd57
  1. 1
      BUILD
  2. 7
      envoy/config/listener/v3/quic_config.proto
  3. 9
      envoy/extensions/quic/connection_debug_visitor/v3/BUILD
  4. 18
      envoy/extensions/quic/connection_debug_visitor/v3/connection_debug_visitor_basic.proto
  5. 1
      versioning/BUILD

@ -300,6 +300,7 @@ proto_library(
"//envoy/extensions/outlier_detection_monitors/consecutive_errors/v3:pkg",
"//envoy/extensions/path/match/uri_template/v3:pkg",
"//envoy/extensions/path/rewrite/uri_template/v3:pkg",
"//envoy/extensions/quic/connection_debug_visitor/v3:pkg",
"//envoy/extensions/quic/connection_id_generator/v3:pkg",
"//envoy/extensions/quic/crypto_stream/v3:pkg",
"//envoy/extensions/quic/proof_source/v3:pkg",

@ -24,7 +24,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: 11]
// [#next-free-field: 12]
message QuicProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.listener.QuicProtocolOptions";
@ -81,4 +81,9 @@ message QuicProtocolOptions {
// Configure the server to send transport parameter `disable_active_migration <https://www.rfc-editor.org/rfc/rfc9000#section-18.2-4.30.1>`_.
// Defaults to false (do not send this transport parameter).
google.protobuf.BoolValue send_disable_active_migration = 10;
// Configure which implementation of ``quic::QuicConnectionDebugVisitor`` to be used for this listener.
// If not specified, no debug visitor will be attached to connections.
// [#extension-category: envoy.quic.connection_debug_visitor]
core.v3.TypedExtensionConfig connection_debug_visitor_config = 11;
}

@ -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_xds//udpa/annotations:pkg"],
)

@ -0,0 +1,18 @@
syntax = "proto3";
package envoy.extensions.quic.connection_debug_visitor.v3;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.extensions.quic.connection_debug_visitor.v3";
option java_outer_classname = "ConnectionDebugVisitorBasicProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/quic/connection_debug_visitor/v3;connection_debug_visitorv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: QUIC connection debug visitor basic config]
// [#extension: envoy.quic.connection_debug_visitor.basic]
// Configuration for a basic QUIC connection debug visitor.
message BasicConfig {
}

@ -239,6 +239,7 @@ proto_library(
"//envoy/extensions/outlier_detection_monitors/consecutive_errors/v3:pkg",
"//envoy/extensions/path/match/uri_template/v3:pkg",
"//envoy/extensions/path/rewrite/uri_template/v3:pkg",
"//envoy/extensions/quic/connection_debug_visitor/v3:pkg",
"//envoy/extensions/quic/connection_id_generator/v3:pkg",
"//envoy/extensions/quic/crypto_stream/v3:pkg",
"//envoy/extensions/quic/proof_source/v3:pkg",

Loading…
Cancel
Save