http3: make quic/quiche core code (#15720)

Part of https://github.com/envoyproxy/envoy/issues/12829. The transport
extension will stay a built-in extension since it fits well. UDP
listener and UDP writer extension points have been removed. GSO is
still only enabled for QUIC because it currently depends on QUICHE, has
some obvious perf issues, and is failing non-QUIC integration tests.
Futher work is needed to remove codec extension factories.

Part of https://github.com/envoyproxy/envoy/issues/12829

Signed-off-by: Matt Klein <mklein@lyft.com>

Mirrored from https://github.com/envoyproxy/envoy @ 8e8a21d20ef0e90ef31ea16f5b5c85ac08d922ae
pull/624/head
data-plane-api(Azure Pipelines) 4 years ago
parent 16009d2087
commit dbb8cfe447
  1. 17
      envoy/config/listener/v3/udp_default_writer_config.proto
  2. 19
      envoy/config/listener/v3/udp_gso_batch_writer_config.proto
  3. 24
      envoy/config/listener/v3/udp_listener_config.proto
  4. 20
      envoy/config/listener/v4alpha/udp_default_writer_config.proto
  5. 22
      envoy/config/listener/v4alpha/udp_gso_batch_writer_config.proto
  6. 24
      envoy/config/listener/v4alpha/udp_listener_config.proto

@ -1,17 +0,0 @@
syntax = "proto3";
package envoy.config.listener.v3;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.config.listener.v3";
option java_outer_classname = "UdpDefaultWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Udp Default Writer Config]
// [#not-implemented-hide:]
// Configuration specific to the Udp Default Writer.
message UdpDefaultWriterOptions {
}

@ -1,19 +0,0 @@
syntax = "proto3";
package envoy.config.listener.v3;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.config.listener.v3";
option java_outer_classname = "UdpGsoBatchWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: UDP GSO Batch Writer]
// [#comment:#extension: envoy.udp_packet_writers.udp_gso_batch_writer]
// Configuration specific to the UDP GSO Batch Writer.
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
message UdpGsoBatchWriterOptions {
}

@ -2,8 +2,8 @@ syntax = "proto3";
package envoy.config.listener.v3;
import "envoy/config/core/v3/extension.proto";
import "envoy/config/core/v3/udp_socket_config.proto";
import "envoy/config/listener/v3/quic_config.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
@ -16,36 +16,26 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: UDP listener config]
// Listener :ref:`configuration overview <config_listeners>`
// [#next-free-field: 7]
// [#next-free-field: 8]
message UdpListenerConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.listener.UdpListenerConfig";
reserved 1, 2, 3;
reserved 1, 2, 3, 4, 6;
reserved "config";
// Used to create a specific UDP listener factory. If not specified the default UDP listener is
// used.
// [#comment:#extension-category: envoy.udp_listeners]
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
core.v3.TypedExtensionConfig listener_config = 4;
// UDP socket configuration for the listener. The default for
// :ref:`prefer_gro <envoy_v3_api_field_config.core.v3.UdpSocketConfig.prefer_gro>` is false for
// listener sockets. If receiving a large amount of datagrams from a small number of sources, it
// may be worthwhile to enable this option after performance testing.
core.v3.UdpSocketConfig downstream_socket_config = 5;
// If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies the
// actual UDP writer to create. If not specified the default UDP writer is used.
// [#comment:#extension-category: envoy.udp_packet_writers]
// Configuration for QUIC protocol. If empty, QUIC will not be enabled on this listener. Set
// to the default object to enable QUIC without modifying any additional options.
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
core.v3.TypedExtensionConfig writer_config = 6;
// [#comment:Unhide when QUIC alpha is announced with other docs.]
QuicProtocolOptions quic_options = 7;
}
message ActiveRawUdpListenerConfig {

@ -1,20 +0,0 @@
syntax = "proto3";
package envoy.config.listener.v4alpha;
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
option java_package = "io.envoyproxy.envoy.config.listener.v4alpha";
option java_outer_classname = "UdpDefaultWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
// [#protodoc-title: Udp Default Writer Config]
// [#not-implemented-hide:]
// Configuration specific to the Udp Default Writer.
message UdpDefaultWriterOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.listener.v3.UdpDefaultWriterOptions";
}

@ -1,22 +0,0 @@
syntax = "proto3";
package envoy.config.listener.v4alpha;
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
option java_package = "io.envoyproxy.envoy.config.listener.v4alpha";
option java_outer_classname = "UdpGsoBatchWriterConfigProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
// [#protodoc-title: UDP GSO Batch Writer]
// [#comment:#extension: envoy.udp_packet_writers.udp_gso_batch_writer]
// Configuration specific to the UDP GSO Batch Writer.
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
message UdpGsoBatchWriterOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.listener.v3.UdpGsoBatchWriterOptions";
}

@ -2,8 +2,8 @@ syntax = "proto3";
package envoy.config.listener.v4alpha;
import "envoy/config/core/v4alpha/extension.proto";
import "envoy/config/core/v4alpha/udp_socket_config.proto";
import "envoy/config/listener/v4alpha/quic_config.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
@ -16,36 +16,26 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: UDP listener config]
// Listener :ref:`configuration overview <config_listeners>`
// [#next-free-field: 7]
// [#next-free-field: 8]
message UdpListenerConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.listener.v3.UdpListenerConfig";
reserved 1, 2, 3;
reserved 1, 2, 3, 4, 6;
reserved "config";
// Used to create a specific UDP listener factory. If not specified the default UDP listener is
// used.
// [#comment:#extension-category: envoy.udp_listeners]
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
core.v4alpha.TypedExtensionConfig listener_config = 4;
// UDP socket configuration for the listener. The default for
// :ref:`prefer_gro <envoy_v3_api_field_config.core.v3.UdpSocketConfig.prefer_gro>` is false for
// listener sockets. If receiving a large amount of datagrams from a small number of sources, it
// may be worthwhile to enable this option after performance testing.
core.v4alpha.UdpSocketConfig downstream_socket_config = 5;
// If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v4alpha.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v4alpha.SocketAddress.Protocol.UDP>`, this field specifies the
// actual UDP writer to create. If not specified the default UDP writer is used.
// [#comment:#extension-category: envoy.udp_packet_writers]
// Configuration for QUIC protocol. If empty, QUIC will not be enabled on this listener. Set
// to the default object to enable QUIC without modifying any additional options.
// [#not-implemented-hide:]
// [#comment:TODO(#12829): Remove this as an extension point.]
core.v4alpha.TypedExtensionConfig writer_config = 6;
// [#comment:Unhide when QUIC alpha is announced with other docs.]
QuicProtocolOptions quic_options = 7;
}
message ActiveRawUdpListenerConfig {

Loading…
Cancel
Save