Allow specified UDP cmsg to be saved to QuicReceivedPacket (#35382)

Commit Message: Allow specified UDP cmsg to be saved to
QuicReceivedPacket
Additional Description: This can be accessed via
QuicListenerFilter::onFirstPacketReceived.
Risk Level: Low
Testing: Integration test
Docs Changes: N/A
Release Notes: added

---------

Signed-off-by: Paul Sohn <paulsohn@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ bd5bec9abb537b3d462ed4e74bb5ea4bf1844655
main
update-envoy[bot] 6 months ago
parent f87ac78aef
commit 21ad0c113a
  1. 28
      envoy/config/core/v3/socket_cmsg_headers.proto
  2. 10
      envoy/config/listener/v3/quic_config.proto

@ -0,0 +1,28 @@
syntax = "proto3";
package envoy.config.core.v3;
import "google/protobuf/wrappers.proto";
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.config.core.v3";
option java_outer_classname = "SocketCmsgHeadersProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Socket CMSG headers]
// Configuration for socket cmsg headers.
// See `:ref:CMSG <https://man7.org/linux/man-pages/man3/cmsg.3.html>`_ for further information.
message SocketCmsgHeaders {
// cmsg level. Default is unset.
google.protobuf.UInt32Value level = 1;
// cmsg type. Default is unset.
google.protobuf.UInt32Value type = 2;
// Expected size of cmsg value. Default is zero.
uint32 expected_size = 3;
}

@ -5,6 +5,7 @@ package envoy.config.listener.v3;
import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/extension.proto";
import "envoy/config/core/v3/protocol.proto";
import "envoy/config/core/v3/socket_cmsg_headers.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";
@ -24,7 +25,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: 12]
// [#next-free-field: 13]
message QuicProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.listener.QuicProtocolOptions";
@ -86,4 +87,11 @@ message QuicProtocolOptions {
// 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;
// Configure a type of UDP cmsg to pass to listener filters via QuicReceivedPacket.
// Both level and type must be specified for cmsg to be saved.
// Cmsg may be truncated or omitted if expected size is not set.
// If not specified, no cmsg will be saved to QuicReceivedPacket.
repeated core.v3.SocketCmsgHeaders save_cmsg_config = 12
[(validate.rules).repeated = {max_items: 1}];
}

Loading…
Cancel
Save