Skip to content
42 changes: 24 additions & 18 deletions api/cds.proto
Original file line number Diff line number Diff line change
Expand Up @@ -161,24 +161,20 @@ message Cluster {
// verification.
UpstreamTlsContext tls_context = 11;

oneof protocol_options {
// [#not-implemented-hide:]
TcpProtocolOptions tcp_protocol_options = 12;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wora @htuch for locked protos, when we delete a field, should we do something like:
// deleted = 12;
or something? Just curious what the norm is here. I think something like that would help me.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added these comments for both 12 and 15.


// Additional options when handling HTTP1 requests.
Http1ProtocolOptions http_protocol_options = 13;

// Even if default HTTP2 protocol options are desired, this field must be
// set so that Envoy will assume that the upstream supports HTTP/2 when
// making new HTTP connection pool connections. Currently, Envoy only
// supports prior knowledge for upstream connections. Even if TLS is used
// with ALPN, `http2_protocol_options` must be specified. As an aside this allows HTTP/2
// connections to happen over plain text.
Http2ProtocolOptions http2_protocol_options = 14;

// [#not-implemented-hide:]
GrpcProtocolOptions grpc_protocol_options = 15;
}
reserved 12;

// Additional options when handling HTTP1 requests.
Http1ProtocolOptions http_protocol_options = 13;

// Even if default HTTP2 protocol options are desired, this field must be
// set so that Envoy will assume that the upstream supports HTTP/2 when
// making new HTTP connection pool connections. Currently, Envoy only
// supports prior knowledge for upstream connections. Even if TLS is used
// with ALPN, `http2_protocol_options` must be specified. As an aside this allows HTTP/2
// connections to happen over plain text.
Http2ProtocolOptions http2_protocol_options = 14;

reserved 15;

// If the DNS refresh rate is specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_Cluster.DiscoveryType.STRICT_DNS>`,
Expand Down Expand Up @@ -417,6 +413,16 @@ message Cluster {
// For instance, if the metadata is intended for the Router filter, the filter
// name should be specified as *envoy.router*.
Metadata metadata = 25;

enum ClusterProtocolSelection {
// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
// If :ref:`http2_protocol_options <envoy_api_field_Cluster.http2_protocol_options>` are
// present, HTTP2 will be used, otherwise HTTP1.1 will be used.
USE_CONFIGURED_PROTOCOL = 0;
// Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
USE_DOWNSTREAM_PROTOCOL = 1;
}
ClusterProtocolSelection protocol_selection = 26;
}

// An extensible structure containing the address Envoy should bind to when
Expand Down