Skip to content

Commit

Permalink
Allow specified UDP cmsg to be saved to QuicReceivedPacket (#35382)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
update-envoy[bot] committed Aug 26, 2024
1 parent f87ac78 commit 21ad0c1
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
28 changes: 28 additions & 0 deletions envoy/config/core/v3/socket_cmsg_headers.proto
Original file line number Diff line number Diff line change
@@ -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;
}
10 changes: 9 additions & 1 deletion envoy/config/listener/v3/quic_config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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";
Expand Down Expand Up @@ -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}];
}

0 comments on commit 21ad0c1

Please sign in to comment.