diff --git a/BUILD b/BUILD
index e244afae282..feb7d315176 100644
--- a/BUILD
+++ b/BUILD
@@ -4304,6 +4304,16 @@ grpc_upb_proto_reflection_library(
deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
)
+grpc_upb_proto_library(
+ name = "envoy_extensions_upstreams_http_upb",
+ deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
+)
+
+grpc_upb_proto_reflection_library(
+ name = "envoy_extensions_upstreams_http_upbdefs",
+ deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
+)
+
grpc_upb_proto_library(
name = "envoy_service_discovery_upb",
deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bd67b71673e..4455b799b10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -738,6 +738,9 @@ protobuf_generate_grpc_cpp_with_import_path_correction(
protobuf_generate_grpc_cpp_with_import_path_correction(
src/proto/grpc/testing/xds/v3/http_filter_rbac.proto src/proto/grpc/testing/xds/v3/http_filter_rbac.proto
)
+protobuf_generate_grpc_cpp_with_import_path_correction(
+ src/proto/grpc/testing/xds/v3/http_protocol_options.proto src/proto/grpc/testing/xds/v3/http_protocol_options.proto
+)
protobuf_generate_grpc_cpp_with_import_path_correction(
src/proto/grpc/testing/xds/v3/listener.proto src/proto/grpc/testing/xds/v3/listener.proto
)
@@ -1951,6 +1954,7 @@ add_library(grpc
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c
+ src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c
src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c
src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c
@@ -2109,6 +2113,7 @@ add_library(grpc
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c
+ src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c
src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c
@@ -27107,6 +27112,10 @@ add_executable(xds_cluster_resource_type_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/health_check.grpc.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_protocol_options.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_protocol_options.grpc.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_protocol_options.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/http_protocol_options.grpc.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/outlier_detection.pb.h
@@ -27115,6 +27124,10 @@ add_executable(xds_cluster_resource_type_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/protocol.grpc.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/regex.pb.h
diff --git a/Makefile b/Makefile
index 6b741178ac3..1d547978b3d 100644
--- a/Makefile
+++ b/Makefile
@@ -1155,6 +1155,7 @@ LIBGRPC_SRC = \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c \
+ src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c \
@@ -1313,6 +1314,7 @@ LIBGRPC_SRC = \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c \
+ src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c \
@@ -3471,6 +3473,7 @@ src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minita
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c: $(OPENSSL_DEP)
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c: $(OPENSSL_DEP)
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c: $(OPENSSL_DEP)
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c: $(OPENSSL_DEP)
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c: $(OPENSSL_DEP)
src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c: $(OPENSSL_DEP)
src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c: $(OPENSSL_DEP)
@@ -3610,6 +3613,7 @@ src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdef
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c: $(OPENSSL_DEP)
diff --git a/Package.swift b/Package.swift
index 45407ba6dbc..909c493af11 100644
--- a/Package.swift
+++ b/Package.swift
@@ -586,6 +586,9 @@ let package = Package(
"src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h",
"src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c",
"src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h",
+ "src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h",
+ "src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c",
+ "src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h",
"src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h",
"src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c",
"src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h",
@@ -983,6 +986,8 @@ let package = Package(
"src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h",
"src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c",
"src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h",
+ "src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c",
+ "src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h",
"src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c",
"src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h",
"src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c",
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index f3ca12108f4..bc7c267efdd 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -488,6 +488,8 @@ libs:
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h
+ - src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h
+ - src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h
- src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h
- src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h
- src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h
@@ -727,6 +729,7 @@ libs:
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h
+ - src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h
- src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h
- src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h
- src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h
@@ -1415,6 +1418,7 @@ libs:
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c
- src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c
+ - src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c
- src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c
- src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c
- src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c
@@ -1573,6 +1577,7 @@ libs:
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
- src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c
+ - src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c
- src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c
- src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c
- src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c
@@ -18073,8 +18078,10 @@ targets:
- src/proto/grpc/testing/xds/v3/endpoint.proto
- src/proto/grpc/testing/xds/v3/extension.proto
- src/proto/grpc/testing/xds/v3/health_check.proto
+ - src/proto/grpc/testing/xds/v3/http_protocol_options.proto
- src/proto/grpc/testing/xds/v3/outlier_detection.proto
- src/proto/grpc/testing/xds/v3/percent.proto
+ - src/proto/grpc/testing/xds/v3/protocol.proto
- src/proto/grpc/testing/xds/v3/regex.proto
- src/proto/grpc/testing/xds/v3/round_robin.proto
- src/proto/grpc/testing/xds/v3/string.proto
diff --git a/config.m4 b/config.m4
index a0d3549d7f0..eaafbe168f0 100644
--- a/config.m4
+++ b/config.m4
@@ -241,6 +241,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c \
+ src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c \
@@ -399,6 +400,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c \
+ src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c \
@@ -1425,6 +1427,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/service/discovery/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/service/load_stats/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-gen/envoy/service/status/v3)
@@ -1475,6 +1478,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/service/discovery/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/envoy/service/status/v3)
diff --git a/config.w32 b/config.w32
index ea2a72452f0..787f9184edd 100644
--- a/config.w32
+++ b/config.w32
@@ -206,6 +206,7 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\secret.upb_minitable.c " +
"src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\tls.upb_minitable.c " +
"src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\tls_spiffe_validator_config.upb_minitable.c " +
+ "src\\core\\ext\\upb-gen\\envoy\\extensions\\upstreams\\http\\v3\\http_protocol_options.upb_minitable.c " +
"src\\core\\ext\\upb-gen\\envoy\\service\\discovery\\v3\\ads.upb_minitable.c " +
"src\\core\\ext\\upb-gen\\envoy\\service\\discovery\\v3\\discovery.upb_minitable.c " +
"src\\core\\ext\\upb-gen\\envoy\\service\\load_stats\\v3\\lrs.upb_minitable.c " +
@@ -364,6 +365,7 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\secret.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\tls.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets\\tls\\v3\\tls_spiffe_validator_config.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\upstreams\\http\\v3\\http_protocol_options.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\envoy\\service\\discovery\\v3\\ads.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\envoy\\service\\discovery\\v3\\discovery.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\envoy\\service\\load_stats\\v3\\lrs.upbdefs.c " +
@@ -1465,6 +1467,9 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets\\tls");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\transport_sockets\\tls\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\upstreams");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\upstreams\\http");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\extensions\\upstreams\\http\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\service");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\service\\discovery");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-gen\\envoy\\service\\discovery\\v3");
@@ -1583,6 +1588,9 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets\\tls");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\transport_sockets\\tls\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\upstreams");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\upstreams\\http");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\extensions\\upstreams\\http\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\service");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\service\\discovery");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\envoy\\service\\discovery\\v3");
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index a3592151f05..3cae944ab45 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -557,6 +557,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h',
@@ -796,6 +798,7 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h',
@@ -1799,6 +1802,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h',
@@ -2038,6 +2043,7 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 259a7473601..64a9a422c20 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -689,6 +689,9 @@ Pod::Spec.new do |s|
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h',
@@ -1086,6 +1089,8 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c',
@@ -2567,6 +2572,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h',
'src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h',
@@ -2806,6 +2813,7 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h',
'src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index 18146192284..7c770a8a534 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -592,6 +592,9 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h )
s.files += %w( src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c )
s.files += %w( src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h )
+ s.files += %w( src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h )
+ s.files += %w( src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c )
+ s.files += %w( src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h )
s.files += %w( src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h )
s.files += %w( src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c )
s.files += %w( src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h )
@@ -989,6 +992,8 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c )
diff --git a/grpc.gyp b/grpc.gyp
index e87ec7dcba8..37f7bb50dd0 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -474,6 +474,7 @@
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c',
@@ -632,6 +633,7 @@
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c',
diff --git a/package.xml b/package.xml
index 436443d9097..9df45c5f2ea 100644
--- a/package.xml
+++ b/package.xml
@@ -574,6 +574,9 @@
+
+
+
@@ -971,6 +974,8 @@
+
+
diff --git a/src/core/BUILD b/src/core/BUILD
index d76984d9a33..f19a5b60cac 100644
--- a/src/core/BUILD
+++ b/src/core/BUILD
@@ -4521,6 +4521,8 @@ grpc_cc_library(
"envoy_extensions_load_balancing_policies_wrr_locality_upb",
"envoy_extensions_transport_sockets_tls_upb",
"envoy_extensions_transport_sockets_tls_upbdefs",
+ "envoy_extensions_upstreams_http_upb",
+ "envoy_extensions_upstreams_http_upbdefs",
"envoy_service_discovery_upb",
"envoy_service_discovery_upbdefs",
"envoy_service_load_stats_upb",
@@ -6691,6 +6693,16 @@ grpc_upb_proto_reflection_library(
deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
)
+grpc_upb_proto_library(
+ name = "envoy_extensions_upstreams_http_upb",
+ deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
+)
+
+grpc_upb_proto_reflection_library(
+ name = "envoy_extensions_upstreams_http_upbdefs",
+ deps = ["@envoy_api//envoy/extensions/upstreams/http/v3:pkg"],
+)
+
grpc_upb_proto_library(
name = "envoy_service_discovery_upb",
deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
diff --git a/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h
new file mode 100644
index 00000000000..7f4e66d53f3
--- /dev/null
+++ b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h
@@ -0,0 +1,712 @@
+/* This file was generated by upb_generator from the input file:
+ *
+ * envoy/extensions/upstreams/http/v3/http_protocol_options.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_H_
+#define ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_H_
+
+#include "upb/generated_code_support.h"
+
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h"
+
+#include "envoy/config/core/v3/extension.upb_minitable.h"
+#include "envoy/config/core/v3/protocol.upb_minitable.h"
+#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h"
+#include "udpa/annotations/status.upb_minitable.h"
+#include "validate/validate.upb_minitable.h"
+
+// Must be last.
+#include "upb/port/def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions envoy_extensions_upstreams_http_v3_HttpProtocolOptions;
+typedef struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig;
+typedef struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig;
+typedef struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig;
+struct envoy_config_core_v3_AlternateProtocolsCacheOptions;
+struct envoy_config_core_v3_Http1ProtocolOptions;
+struct envoy_config_core_v3_Http2ProtocolOptions;
+struct envoy_config_core_v3_Http3ProtocolOptions;
+struct envoy_config_core_v3_HttpProtocolOptions;
+struct envoy_config_core_v3_TypedExtensionConfig;
+struct envoy_config_core_v3_UpstreamHttpProtocolOptions;
+struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter;
+
+
+
+/* envoy.extensions.upstreams.http.v3.HttpProtocolOptions */
+
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_new(upb_Arena* arena) {
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init, arena);
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_parse_ex(const char* buf, size_t size,
+ const upb_ExtensionRegistry* extreg,
+ int options, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init, extreg, options, arena) !=
+ kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_serialize(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init, 0, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_serialize_ex(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, int options,
+ upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init, options, arena, &ptr, len);
+ return ptr;
+}
+typedef enum {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_explicit_http_config = 3,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_use_downstream_protocol_config = 4,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_auto_config = 5,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_NOT_SET = 0
+} envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_oneofcases;
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_oneofcases envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_case(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_protocol_options_oneofcases)upb_Message_WhichOneofFieldNumber(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_common_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_HttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_common_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const struct envoy_config_core_v3_HttpProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_HttpProtocolOptions* ret;
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_common_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_upstream_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_UpstreamHttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const struct envoy_config_core_v3_UpstreamHttpProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_UpstreamHttpProtocolOptions* ret;
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_upstream_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_explicit_http_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_explicit_http_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* default_val = NULL;
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* ret;
+ const upb_MiniTableField field = {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_explicit_http_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_use_downstream_protocol_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {4, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_use_downstream_protocol_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* default_val = NULL;
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* ret;
+ const upb_MiniTableField field = {4, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_use_downstream_protocol_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {4, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_auto_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {5, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_auto_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* default_val = NULL;
+ const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* ret;
+ const upb_MiniTableField field = {5, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_auto_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {5, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_http_filters(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter* const* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_http_filters(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, size_t* size) {
+ const upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ const upb_Array* arr = upb_Message_GetArray(msg, &field);
+ if (arr) {
+ if (size) *size = arr->size;
+ return (const struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter* const*)_upb_array_constptr(arr);
+ } else {
+ if (size) *size = 0;
+ return NULL;
+ }
+}
+UPB_INLINE const upb_Array* _envoy_extensions_upstreams_http_v3_HttpProtocolOptions_http_filters_upb_array(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, size_t* size) {
+ const upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ const upb_Array* arr = upb_Message_GetArray(msg, &field);
+ if (size) {
+ *size = arr ? arr->size : 0;
+ }
+ return arr;
+}
+UPB_INLINE upb_Array* _envoy_extensions_upstreams_http_v3_HttpProtocolOptions_http_filters_mutable_upb_array(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, size_t* size, upb_Arena* arena) {
+ const upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ upb_Array* arr = upb_Message_GetOrCreateMutableArray(
+ (upb_Message*)msg, &field, arena);
+ if (size) {
+ *size = arr ? arr->size : 0;
+ }
+ return arr;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_http_filters(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ size_t size;
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_http_filters(msg, &size);
+ return size != 0;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_clear_header_validation_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {7, UPB_SIZE(20, 32), 3, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_TypedExtensionConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_header_validation_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const struct envoy_config_core_v3_TypedExtensionConfig* default_val = NULL;
+ const struct envoy_config_core_v3_TypedExtensionConfig* ret;
+ const upb_MiniTableField field = {7, UPB_SIZE(20, 32), 3, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_has_header_validation_config(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg) {
+ const upb_MiniTableField field = {7, UPB_SIZE(20, 32), 3, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_common_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, struct envoy_config_core_v3_HttpProtocolOptions* value) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_HttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_common_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_HttpProtocolOptions* sub = (struct envoy_config_core_v3_HttpProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_common_http_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_HttpProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__HttpProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_common_http_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_upstream_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, struct envoy_config_core_v3_UpstreamHttpProtocolOptions* value) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_UpstreamHttpProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_upstream_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_UpstreamHttpProtocolOptions* sub = (struct envoy_config_core_v3_UpstreamHttpProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_upstream_http_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_UpstreamHttpProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__UpstreamHttpProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_upstream_http_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_explicit_http_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* value) {
+ const upb_MiniTableField field = {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_explicit_http_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_explicit_http_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_explicit_http_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_use_downstream_protocol_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* value) {
+ const upb_MiniTableField field = {4, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_use_downstream_protocol_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_use_downstream_protocol_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_use_downstream_protocol_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_auto_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* value) {
+ const upb_MiniTableField field = {5, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_auto_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_auto_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_auto_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter** envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_http_filters(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, size_t* size) {
+ upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
+ if (arr) {
+ if (size) *size = arr->size;
+ return (struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter**)_upb_array_ptr(arr);
+ } else {
+ if (size) *size = 0;
+ return NULL;
+ }
+}
+UPB_INLINE struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter** envoy_extensions_upstreams_http_v3_HttpProtocolOptions_resize_http_filters(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, size_t size, upb_Arena* arena) {
+ upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return (struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
+}
+UPB_INLINE struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_add_http_filters(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ upb_MiniTableField field = {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
+ if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
+ return NULL;
+ }
+ struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter* sub = (struct envoy_extensions_filters_network_http_connection_manager_v3_HttpFilter*)_upb_Message_New(&envoy__extensions__filters__network__http_0connection_0manager__v3__HttpFilter_msg_init, arena);
+ if (!arr || !sub) return NULL;
+ _upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_header_validation_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions *msg, struct envoy_config_core_v3_TypedExtensionConfig* value) {
+ const upb_MiniTableField field = {7, UPB_SIZE(20, 32), 3, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_mutable_header_validation_config(envoy_extensions_upstreams_http_v3_HttpProtocolOptions* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_TypedExtensionConfig* sub = (struct envoy_config_core_v3_TypedExtensionConfig*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_header_validation_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_TypedExtensionConfig*)_upb_Message_New(&envoy__config__core__v3__TypedExtensionConfig_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_set_header_validation_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig */
+
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_new(upb_Arena* arena) {
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, arena);
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_parse(const char* buf, size_t size, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_parse_ex(const char* buf, size_t size,
+ const upb_ExtensionRegistry* extreg,
+ int options, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, extreg, options, arena) !=
+ kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_serialize(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg, upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, 0, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_serialize_ex(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg, int options,
+ upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init, options, arena, &ptr, len);
+ return ptr;
+}
+typedef enum {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_http_protocol_options = 1,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_http2_protocol_options = 2,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_http3_protocol_options = 3,
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_NOT_SET = 0
+} envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_oneofcases;
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_oneofcases envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_case(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_protocol_config_oneofcases)upb_Message_WhichOneofFieldNumber(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_clear_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http1ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http1ProtocolOptions* ret;
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_has_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_clear_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 8), -1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http2ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http2ProtocolOptions* ret;
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 8), -1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_has_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 8), -1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_clear_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(4, 8), -1, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http3ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http3ProtocolOptions* ret;
+ const upb_MiniTableField field = {3, UPB_SIZE(4, 8), -1, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_has_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(4, 8), -1, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig *msg, struct envoy_config_core_v3_Http1ProtocolOptions* value) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_mutable_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http1ProtocolOptions* sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http1ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig *msg, struct envoy_config_core_v3_Http2ProtocolOptions* value) {
+ const upb_MiniTableField field = {2, UPB_SIZE(4, 8), -1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_mutable_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http2ProtocolOptions* sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http2_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http2ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http2_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig *msg, struct envoy_config_core_v3_Http3ProtocolOptions* value) {
+ const upb_MiniTableField field = {3, UPB_SIZE(4, 8), -1, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_mutable_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http3ProtocolOptions* sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_http3_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http3ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_set_http3_protocol_options(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig */
+
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_new(upb_Arena* arena) {
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, arena);
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_parse(const char* buf, size_t size, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_parse_ex(const char* buf, size_t size,
+ const upb_ExtensionRegistry* extreg,
+ int options, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, extreg, options, arena) !=
+ kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_serialize(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg, upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, 0, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_serialize_ex(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg, int options,
+ upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init, options, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_clear_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http1ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http1ProtocolOptions* ret;
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_has_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_clear_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http2ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http2ProtocolOptions* ret;
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_has_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_clear_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http3ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http3ProtocolOptions* ret;
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_has_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig *msg, struct envoy_config_core_v3_Http1ProtocolOptions* value) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_mutable_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http1ProtocolOptions* sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http1ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig *msg, struct envoy_config_core_v3_Http2ProtocolOptions* value) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_mutable_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http2ProtocolOptions* sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http2_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http2ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http2_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig *msg, struct envoy_config_core_v3_Http3ProtocolOptions* value) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_mutable_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http3ProtocolOptions* sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_http3_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http3ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_set_http3_protocol_options(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig */
+
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_new(upb_Arena* arena) {
+ return (envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig*)_upb_Message_New(&envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, arena);
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_parse(const char* buf, size_t size, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_parse_ex(const char* buf, size_t size,
+ const upb_ExtensionRegistry* extreg,
+ int options, upb_Arena* arena) {
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* ret = envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_new(arena);
+ if (!ret) return NULL;
+ if (upb_Decode(buf, size, ret, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, extreg, options, arena) !=
+ kUpb_DecodeStatus_Ok) {
+ return NULL;
+ }
+ return ret;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_serialize(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, 0, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE char* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_serialize_ex(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, int options,
+ upb_Arena* arena, size_t* len) {
+ char* ptr;
+ (void)upb_Encode(msg, &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init, options, arena, &ptr, len);
+ return ptr;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_clear_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http1ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http1ProtocolOptions* ret;
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_has_http_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_clear_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http2ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http2ProtocolOptions* ret;
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_has_http2_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_clear_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const struct envoy_config_core_v3_Http3ProtocolOptions* default_val = NULL;
+ const struct envoy_config_core_v3_Http3ProtocolOptions* ret;
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_has_http3_protocol_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_clear_alternate_protocols_cache_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 4, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_ClearNonExtensionField(msg, &field);
+}
+UPB_INLINE const struct envoy_config_core_v3_AlternateProtocolsCacheOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_alternate_protocols_cache_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const struct envoy_config_core_v3_AlternateProtocolsCacheOptions* default_val = NULL;
+ const struct envoy_config_core_v3_AlternateProtocolsCacheOptions* ret;
+ const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 4, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_GetNonExtensionField(msg, &field, &default_val, &ret);
+ return ret;
+}
+UPB_INLINE bool envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_has_alternate_protocols_cache_options(const envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg) {
+ const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 4, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ return _upb_Message_HasNonExtensionField(msg, &field);
+}
+
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig *msg, struct envoy_config_core_v3_Http1ProtocolOptions* value) {
+ const upb_MiniTableField field = {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http1ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_mutable_http_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http1ProtocolOptions* sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http1ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http1ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig *msg, struct envoy_config_core_v3_Http2ProtocolOptions* value) {
+ const upb_MiniTableField field = {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http2ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_mutable_http2_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http2ProtocolOptions* sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http2_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http2ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http2ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http2_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig *msg, struct envoy_config_core_v3_Http3ProtocolOptions* value) {
+ const upb_MiniTableField field = {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_Http3ProtocolOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_mutable_http3_protocol_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_Http3ProtocolOptions* sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_http3_protocol_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Http3ProtocolOptions*)_upb_Message_New(&envoy__config__core__v3__Http3ProtocolOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_http3_protocol_options(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_alternate_protocols_cache_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig *msg, struct envoy_config_core_v3_AlternateProtocolsCacheOptions* value) {
+ const upb_MiniTableField field = {4, UPB_SIZE(16, 32), 4, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
+ _upb_Message_SetNonExtensionField(msg, &field, &value);
+}
+UPB_INLINE struct envoy_config_core_v3_AlternateProtocolsCacheOptions* envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_mutable_alternate_protocols_cache_options(envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig* msg, upb_Arena* arena) {
+ struct envoy_config_core_v3_AlternateProtocolsCacheOptions* sub = (struct envoy_config_core_v3_AlternateProtocolsCacheOptions*)envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_alternate_protocols_cache_options(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_AlternateProtocolsCacheOptions*)_upb_Message_New(&envoy__config__core__v3__AlternateProtocolsCacheOptions_msg_init, arena);
+ if (sub) envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_set_alternate_protocols_cache_options(msg, sub);
+ }
+ return sub;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port/undef.inc"
+
+#endif /* ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c
new file mode 100644
index 00000000000..e4909a1cf95
--- /dev/null
+++ b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c
@@ -0,0 +1,151 @@
+/* This file was generated by upb_generator from the input file:
+ *
+ * envoy/extensions/upstreams/http/v3/http_protocol_options.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/generated_code_support.h"
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h"
+#include "envoy/config/core/v3/extension.upb_minitable.h"
+#include "envoy/config/core/v3/protocol.upb_minitable.h"
+#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h"
+#include "udpa/annotations/status.upb_minitable.h"
+#include "validate/validate.upb_minitable.h"
+
+// Must be last.
+#include "upb/port/def.inc"
+
+static const upb_MiniTableSub envoy_extensions_upstreams_http_v3_HttpProtocolOptions_submsgs[7] = {
+ {.submsg = &envoy__config__core__v3__HttpProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__UpstreamHttpProtocolOptions_msg_init},
+ {.submsg = &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init},
+ {.submsg = &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init},
+ {.submsg = &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init},
+ {.submsg = &envoy__extensions__filters__network__http_0connection_0manager__v3__HttpFilter_msg_init},
+ {.submsg = &envoy__config__core__v3__TypedExtensionConfig_msg_init},
+};
+
+static const upb_MiniTableField envoy_extensions_upstreams_http_v3_HttpProtocolOptions__fields[7] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {3, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {4, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {5, UPB_SIZE(24, 40), UPB_SIZE(-13, -5), 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {6, UPB_SIZE(16, 24), 0, 5, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {7, UPB_SIZE(20, 32), 3, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+};
+
+const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init = {
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_submsgs[0],
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions__fields[0],
+ UPB_SIZE(32, 48), 7, kUpb_ExtMode_NonExtendable, 7, UPB_FASTTABLE_MASK(56), 0,
+ UPB_FASTTABLE_INIT({
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x000800000100000a, &upb_psm_1bt_maxmaxb},
+ {0x0010000002010012, &upb_psm_1bt_maxmaxb},
+ {0x002800040302001a, &upb_pom_1bt_max64b},
+ {0x0028000404030022, &upb_pom_1bt_max64b},
+ {0x002800040504002a, &upb_pom_1bt_max64b},
+ {0x001800003f050032, &upb_prm_1bt_maxmaxb},
+ {0x002000000306003a, &upb_psm_1bt_maxmaxb},
+ })
+};
+
+static const upb_MiniTableSub envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_submsgs[3] = {
+ {.submsg = &envoy__config__core__v3__Http1ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http2ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http3ProtocolOptions_msg_init},
+};
+
+static const upb_MiniTableField envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig__fields[3] = {
+ {1, UPB_SIZE(4, 8), -1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {2, UPB_SIZE(4, 8), -1, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {3, UPB_SIZE(4, 8), -1, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+};
+
+const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init = {
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_submsgs[0],
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig__fields[0],
+ UPB_SIZE(8, 16), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0,
+ UPB_FASTTABLE_INIT({
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x000800000100000a, &upb_pom_1bt_maxmaxb},
+ {0x0008000002010012, &upb_pom_1bt_maxmaxb},
+ {0x000800000302001a, &upb_pom_1bt_maxmaxb},
+ })
+};
+
+static const upb_MiniTableSub envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_submsgs[3] = {
+ {.submsg = &envoy__config__core__v3__Http1ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http2ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http3ProtocolOptions_msg_init},
+};
+
+static const upb_MiniTableField envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig__fields[3] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+};
+
+const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init = {
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_submsgs[0],
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig__fields[0],
+ UPB_SIZE(16, 32), 3, kUpb_ExtMode_NonExtendable, 3, UPB_FASTTABLE_MASK(24), 0,
+ UPB_FASTTABLE_INIT({
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x000800000100000a, &upb_psm_1bt_maxmaxb},
+ {0x0010000002010012, &upb_psm_1bt_maxmaxb},
+ {0x001800000302001a, &upb_psm_1bt_maxmaxb},
+ })
+};
+
+static const upb_MiniTableSub envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_submsgs[4] = {
+ {.submsg = &envoy__config__core__v3__Http1ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http2ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__Http3ProtocolOptions_msg_init},
+ {.submsg = &envoy__config__core__v3__AlternateProtocolsCacheOptions_msg_init},
+};
+
+static const upb_MiniTableField envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig__fields[4] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {3, UPB_SIZE(12, 24), 3, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+ {4, UPB_SIZE(16, 32), 4, 3, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
+};
+
+const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init = {
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_submsgs[0],
+ &envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig__fields[0],
+ UPB_SIZE(24, 40), 4, kUpb_ExtMode_NonExtendable, 4, UPB_FASTTABLE_MASK(56), 0,
+ UPB_FASTTABLE_INIT({
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x000800000100000a, &upb_psm_1bt_maxmaxb},
+ {0x0010000002010012, &upb_psm_1bt_maxmaxb},
+ {0x001800000302001a, &upb_psm_1bt_maxmaxb},
+ {0x0020000004030022, &upb_psm_1bt_maxmaxb},
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
+ })
+};
+
+static const upb_MiniTable *messages_layout[4] = {
+ &envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init,
+ &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init,
+ &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init,
+ &envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init,
+};
+
+const upb_MiniTableFile envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upb_file_layout = {
+ messages_layout,
+ NULL,
+ NULL,
+ 4,
+ 0,
+ 0,
+};
+
+#include "upb/port/undef.inc"
+
diff --git a/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h
new file mode 100644
index 00000000000..c4bd8317c35
--- /dev/null
+++ b/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h
@@ -0,0 +1,33 @@
+/* This file was generated by upb_generator from the input file:
+ *
+ * envoy/extensions/upstreams/http/v3/http_protocol_options.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_MINITABLE_H_
+#define ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_MINITABLE_H_
+
+#include "upb/generated_code_support.h"
+
+// Must be last.
+#include "upb/port/def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions_msg_init;
+extern const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__ExplicitHttpConfig_msg_init;
+extern const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__UseDownstreamHttpConfig_msg_init;
+extern const upb_MiniTable envoy__extensions__upstreams__http__v3__HttpProtocolOptions__AutoHttpConfig_msg_init;
+
+extern const upb_MiniTableFile envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upb_file_layout;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port/undef.inc"
+
+#endif /* ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPB_MINITABLE_H_ */
diff --git a/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c b/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c
new file mode 100644
index 00000000000..1f40ce54ae4
--- /dev/null
+++ b/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c
@@ -0,0 +1,133 @@
+/* This file was generated by upb_generator from the input file:
+ *
+ * envoy/extensions/upstreams/http/v3/http_protocol_options.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/reflection/def.h"
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h"
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h"
+
+extern _upb_DefPool_Init envoy_config_core_v3_extension_proto_upbdefinit;
+extern _upb_DefPool_Init envoy_config_core_v3_protocol_proto_upbdefinit;
+extern _upb_DefPool_Init envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_upbdefinit;
+extern _upb_DefPool_Init udpa_annotations_status_proto_upbdefinit;
+extern _upb_DefPool_Init validate_validate_proto_upbdefinit;
+static const char descriptor[2490] = {'\n', '>', 'e', 'n', 'v', 'o', 'y', '/', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '/', 'u', 'p', 's', 't', 'r', 'e',
+'a', 'm', 's', '/', 'h', 't', 't', 'p', '/', 'v', '3', '/', 'h', 't', 't', 'p', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l',
+'_', 'o', 'p', 't', 'i', 'o', 'n', 's', '.', 'p', 'r', 'o', 't', 'o', '\022', '\"', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x', 't',
+'e', 'n', 's', 'i', 'o', 'n', 's', '.', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', 's', '.', 'h', 't', 't', 'p', '.', 'v', '3',
+'\032', '$', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'x',
+'t', 'e', 'n', 's', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't', 'o', '\032', '#', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f',
+'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '.', 'p', 'r', 'o', 't', 'o',
+'\032', 'Y', 'e', 'n', 'v', 'o', 'y', '/', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '/', 'f', 'i', 'l', 't', 'e', 'r',
+'s', '/', 'n', 'e', 't', 'w', 'o', 'r', 'k', '/', 'h', 't', 't', 'p', '_', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n',
+'_', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '/', 'v', '3', '/', 'h', 't', 't', 'p', '_', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'i',
+'o', 'n', '_', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'p', 'r', 'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n',
+'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v',
+'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\302', '\017',
+'\n', '\023', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', 'j', '\n', '\034',
+'c', 'o', 'm', 'm', 'o', 'n', '_', 'h', 't', 't', 'p', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i',
+'o', 'n', 's', '\030', '\001', ' ', '\001', '(', '\013', '2', ')', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o',
+'n', 's', 'R', '\031', 'c', 'o', 'm', 'm', 'o', 'n', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't',
+'i', 'o', 'n', 's', '\022', 'v', '\n', '\036', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', '_', 'h', 't', 't', 'p', '_', 'p', 'r', 'o',
+'t', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\002', ' ', '\001', '(', '\013', '2', '1', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'U', 'p', 's', 't', 'r', 'e', 'a',
+'m', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'R', '\033', 'u', 'p', 's',
+'t', 'r', 'e', 'a', 'm', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022',
+'~', '\n', '\024', 'e', 'x', 'p', 'l', 'i', 'c', 'i', 't', '_', 'h', 't', 't', 'p', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003',
+' ', '\001', '(', '\013', '2', 'J', '.', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '.', 'u',
+'p', 's', 't', 'r', 'e', 'a', 'm', 's', '.', 'h', 't', 't', 'p', '.', 'v', '3', '.', 'H', 't', 't', 'p', 'P', 'r', 'o', 't',
+'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '.', 'E', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'H', 't', 't', 'p', 'C',
+'o', 'n', 'f', 'i', 'g', 'H', '\000', 'R', '\022', 'e', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'H', 't', 't', 'p', 'C', 'o', 'n', 'f',
+'i', 'g', '\022', '\226', '\001', '\n', '\036', 'u', 's', 'e', '_', 'd', 'o', 'w', 'n', 's', 't', 'r', 'e', 'a', 'm', '_', 'p', 'r', 'o',
+'t', 'o', 'c', 'o', 'l', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\004', ' ', '\001', '(', '\013', '2', 'O', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '.', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', 's', '.', 'h', 't',
+'t', 'p', '.', 'v', '3', '.', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's',
+'.', 'U', 's', 'e', 'D', 'o', 'w', 'n', 's', 't', 'r', 'e', 'a', 'm', 'H', 't', 't', 'p', 'C', 'o', 'n', 'f', 'i', 'g', 'H',
+'\000', 'R', '\033', 'u', 's', 'e', 'D', 'o', 'w', 'n', 's', 't', 'r', 'e', 'a', 'm', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'C',
+'o', 'n', 'f', 'i', 'g', '\022', 'i', '\n', '\013', 'a', 'u', 't', 'o', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\005', ' ', '\001', '(',
+'\013', '2', 'F', '.', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '.', 'u', 'p', 's', 't',
+'r', 'e', 'a', 'm', 's', '.', 'h', 't', 't', 'p', '.', 'v', '3', '.', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o',
+'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '.', 'A', 'u', 't', 'o', 'H', 't', 't', 'p', 'C', 'o', 'n', 'f', 'i', 'g', 'H', '\000',
+'R', '\n', 'a', 'u', 't', 'o', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'j', '\n', '\014', 'h', 't', 't', 'p', '_', 'f', 'i', 'l', 't',
+'e', 'r', 's', '\030', '\006', ' ', '\003', '(', '\013', '2', 'G', '.', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x', 't', 'e', 'n', 's', 'i',
+'o', 'n', 's', '.', 'f', 'i', 'l', 't', 'e', 'r', 's', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'h', 't', 't', 'p', '_',
+'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', '_', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'v', '3', '.', 'H', 't', 't',
+'p', 'F', 'i', 'l', 't', 'e', 'r', 'R', '\013', 'h', 't', 't', 'p', 'F', 'i', 'l', 't', 'e', 'r', 's', '\022', 'd', '\n', '\030', 'h',
+'e', 'a', 'd', 'e', 'r', '_', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'i', 'o', 'n', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\007',
+' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.',
+'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\026',
+'h', 'e', 'a', 'd', 'e', 'r', 'V', 'a', 'l', 'i', 'd', 'a', 't', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', '\032', '\326', '\002',
+'\n', '\022', 'E', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'H', 't', 't', 'p', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '`', '\n', '\025', 'h',
+'t', 't', 'p', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\001', ' ', '\001', '(',
+'\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.',
+'H', 't', 't', 'p', '1', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'H', '\000', 'R', '\023', 'h',
+'t', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', 'b', '\n', '\026', 'h', 't', 't',
+'p', '2', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\002', ' ', '\001', '(', '\013',
+'2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H',
+'t', 't', 'p', '2', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'H', '\000', 'R', '\024', 'h', 't',
+'t', 'p', '2', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', 'b', '\n', '\026', 'h', 't', 't',
+'p', '3', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\003', ' ', '\001', '(', '\013',
+'2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H',
+'t', 't', 'p', '3', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'H', '\000', 'R', '\024', 'h', 't',
+'t', 'p', '3', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'B', '\026', '\n', '\017', 'p', 'r', 'o',
+'t', 'o', 'c', 'o', 'l', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\022', '\003', '\370', 'B', '\001', '\032', '\275', '\002', '\n', '\027', 'U', 's', 'e',
+'D', 'o', 'w', 'n', 's', 't', 'r', 'e', 'a', 'm', 'H', 't', 't', 'p', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '^', '\n', '\025', 'h',
+'t', 't', 'p', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\001', ' ', '\001', '(',
+'\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.',
+'H', 't', 't', 'p', '1', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'R', '\023', 'h', 't', 't',
+'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', '`', '\n', '\026', 'h', 't', 't', 'p', '2',
+'_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\002', ' ', '\001', '(', '\013', '2', '*',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H', 't', 't',
+'p', '2', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'R', '\024', 'h', 't', 't', 'p', '2', 'P',
+'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', '`', '\n', '\026', 'h', 't', 't', 'p', '3', '_', 'p',
+'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\003', ' ', '\001', '(', '\013', '2', '*', '.', 'e',
+'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H', 't', 't', 'p', '3',
+'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'R', '\024', 'h', 't', 't', 'p', '3', 'P', 'r', 'o',
+'t', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\032', '\265', '\003', '\n', '\016', 'A', 'u', 't', 'o', 'H', 't', 't', 'p',
+'C', 'o', 'n', 'f', 'i', 'g', '\022', '^', '\n', '\025', 'h', 't', 't', 'p', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o',
+'p', 't', 'i', 'o', 'n', 's', '\030', '\001', ' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f',
+'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H', 't', 't', 'p', '1', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O',
+'p', 't', 'i', 'o', 'n', 's', 'R', '\023', 'h', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o',
+'n', 's', '\022', '`', '\n', '\026', 'h', 't', 't', 'p', '2', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i',
+'o', 'n', 's', '\030', '\002', ' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'H', 't', 't', 'p', '2', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i',
+'o', 'n', 's', 'R', '\024', 'h', 't', 't', 'p', '2', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's',
+'\022', '`', '\n', '\026', 'h', 't', 't', 'p', '3', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o', 'p', 't', 'i', 'o', 'n',
+'s', '\030', '\003', ' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o',
+'r', 'e', '.', 'v', '3', '.', 'H', 't', 't', 'p', '3', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n',
+'s', 'R', '\024', 'h', 't', 't', 'p', '3', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', '\022', '\177',
+'\n', '!', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'e', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', 's', '_', 'c', 'a', 'c',
+'h', 'e', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\004', ' ', '\001', '(', '\013', '2', '4', '.', 'e', 'n', 'v', 'o', 'y', '.',
+'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'A', 'l', 't', 'e', 'r', 'n', 'a', 't', 'e', 'P',
+'r', 'o', 't', 'o', 'c', 'o', 'l', 's', 'C', 'a', 'c', 'h', 'e', 'O', 'p', 't', 'i', 'o', 'n', 's', 'R', '\036', 'a', 'l', 't',
+'e', 'r', 'n', 'a', 't', 'e', 'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', 's', 'C', 'a', 'c', 'h', 'e', 'O', 'p', 't', 'i', 'o',
+'n', 's', 'B', ' ', '\n', '\031', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', '_', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l', '_', 'o',
+'p', 't', 'i', 'o', 'n', 's', '\022', '\003', '\370', 'B', '\001', 'B', '\250', '\001', '\n', '0', 'i', 'o', '.', 'e', 'n', 'v', 'o', 'y', 'p',
+'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '.', 'u', 'p', 's',
+'t', 'r', 'e', 'a', 'm', 's', '.', 'h', 't', 't', 'p', '.', 'v', '3', 'B', '\030', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o',
+'c', 'o', 'l', 'O', 'p', 't', 'i', 'o', 'n', 's', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', 'P', 'g', 'i', 't', 'h', 'u', 'b',
+'.', 'c', 'o', 'm', '/', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '/', 'g', 'o', '-', 'c', 'o', 'n', 't', 'r', 'o',
+'l', '-', 'p', 'l', 'a', 'n', 'e', '/', 'e', 'n', 'v', 'o', 'y', '/', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '/',
+'u', 'p', 's', 't', 'r', 'e', 'a', 'm', 's', '/', 'h', 't', 't', 'p', '/', 'v', '3', ';', 'h', 't', 't', 'p', 'v', '3', '\272',
+'\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3',
+};
+
+static _upb_DefPool_Init *deps[6] = {
+ &envoy_config_core_v3_extension_proto_upbdefinit,
+ &envoy_config_core_v3_protocol_proto_upbdefinit,
+ &envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &validate_validate_proto_upbdefinit,
+ NULL
+};
+
+_upb_DefPool_Init envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit = {
+ deps,
+ &envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upb_file_layout,
+ "envoy/extensions/upstreams/http/v3/http_protocol_options.proto",
+ UPB_STRINGVIEW_INIT(descriptor, 2490)
+};
diff --git a/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h b/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h
new file mode 100644
index 00000000000..9f2805d7578
--- /dev/null
+++ b/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h
@@ -0,0 +1,50 @@
+/* This file was generated by upb_generator from the input file:
+ *
+ * envoy/extensions/upstreams/http/v3/http_protocol_options.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPBDEFS_H_
+#define ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPBDEFS_H_
+
+#include "upb/reflection/def.h"
+#include "upb/reflection/internal/def_pool.h"
+#include "upb/port/def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/reflection/def.h"
+
+#include "upb/port/def.inc"
+
+extern _upb_DefPool_Init envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit;
+
+UPB_INLINE const upb_MessageDef *envoy_extensions_upstreams_http_v3_HttpProtocolOptions_getmsgdef(upb_DefPool *s) {
+ _upb_DefPool_LoadDefInit(s, &envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit);
+ return upb_DefPool_FindMessageByName(s, "envoy.extensions.upstreams.http.v3.HttpProtocolOptions");
+}
+
+UPB_INLINE const upb_MessageDef *envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_getmsgdef(upb_DefPool *s) {
+ _upb_DefPool_LoadDefInit(s, &envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit);
+ return upb_DefPool_FindMessageByName(s, "envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig");
+}
+
+UPB_INLINE const upb_MessageDef *envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_getmsgdef(upb_DefPool *s) {
+ _upb_DefPool_LoadDefInit(s, &envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit);
+ return upb_DefPool_FindMessageByName(s, "envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig");
+}
+
+UPB_INLINE const upb_MessageDef *envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_getmsgdef(upb_DefPool *s) {
+ _upb_DefPool_LoadDefInit(s, &envoy_extensions_upstreams_http_v3_http_protocol_options_proto_upbdefinit);
+ return upb_DefPool_FindMessageByName(s, "envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port/undef.inc"
+
+#endif /* ENVOY_EXTENSIONS_UPSTREAMS_HTTP_V3_HTTP_PROTOCOL_OPTIONS_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/xds/xds_cluster.cc b/src/core/ext/xds/xds_cluster.cc
index 2386a43a521..7edd3e8be3c 100644
--- a/src/core/ext/xds/xds_cluster.cc
+++ b/src/core/ext/xds/xds_cluster.cc
@@ -38,11 +38,14 @@
#include "envoy/config/core/v3/address.upb.h"
#include "envoy/config/core/v3/base.upb.h"
#include "envoy/config/core/v3/config_source.upb.h"
+#include "envoy/config/core/v3/extension.upb.h"
#include "envoy/config/core/v3/health_check.upb.h"
+#include "envoy/config/core/v3/protocol.upb.h"
#include "envoy/config/endpoint/v3/endpoint.upb.h"
#include "envoy/config/endpoint/v3/endpoint_components.upb.h"
#include "envoy/extensions/clusters/aggregate/v3/cluster.upb.h"
#include "envoy/extensions/transport_sockets/tls/v3/tls.upb.h"
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h"
#include "google/protobuf/any.upb.h"
#include "google/protobuf/duration.upb.h"
#include "google/protobuf/wrappers.upb.h"
@@ -105,6 +108,10 @@ std::string XdsClusterResource::ToString() const {
contents.push_back(
absl::StrCat("common_tls_context=", common_tls_context.ToString()));
}
+ if (connection_idle_timeout != Duration::Zero()) {
+ contents.push_back(absl::StrCat("connection_idle_timeout=",
+ connection_idle_timeout.ToString()));
+ }
contents.push_back(
absl::StrCat("max_concurrent_requests=", max_concurrent_requests));
contents.push_back(absl::StrCat("override_host_statuses=",
@@ -400,6 +407,50 @@ void ParseLbPolicyConfig(const XdsResourceType::DecodeContext& context,
}
}
+void ParseUpstreamConfig(
+ const XdsResourceType::DecodeContext& context,
+ const envoy_config_core_v3_TypedExtensionConfig* upstream_config,
+ XdsClusterResource* cds_update, ValidationErrors* errors) {
+ ValidationErrors::ScopedField field(errors, ".typed_config");
+ const auto* typed_config =
+ envoy_config_core_v3_TypedExtensionConfig_typed_config(upstream_config);
+ auto extension = ExtractXdsExtension(context, typed_config, errors);
+ if (!extension.has_value()) return;
+ if (extension->type !=
+ "envoy.extensions.upstreams.http.v3.HttpProtocolOptions") {
+ ValidationErrors::ScopedField field(errors, ".type_url");
+ errors->AddError("unsupported upstream config type");
+ return;
+ }
+ absl::string_view* serialized_http_protocol_options =
+ absl::get_if(&extension->value);
+ if (serialized_http_protocol_options == nullptr) {
+ errors->AddError("can't decode HttpProtocolOptions");
+ return;
+ }
+ const auto* http_protocol_options =
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_parse(
+ serialized_http_protocol_options->data(),
+ serialized_http_protocol_options->size(), context.arena);
+ if (http_protocol_options == nullptr) {
+ errors->AddError("can't decode HttpProtocolOptions");
+ return;
+ }
+ ValidationErrors::ScopedField field2(errors, ".common_http_protocol_options");
+ const auto* common_http_protocol_options =
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_common_http_protocol_options(
+ http_protocol_options);
+ if (common_http_protocol_options != nullptr) {
+ const auto* idle_timeout =
+ envoy_config_core_v3_HttpProtocolOptions_idle_timeout(
+ common_http_protocol_options);
+ if (idle_timeout != nullptr) {
+ ValidationErrors::ScopedField field(errors, ".idle_timeout");
+ cds_update->connection_idle_timeout = ParseDuration(idle_timeout, errors);
+ }
+ }
+}
+
absl::StatusOr> CdsResourceParse(
const XdsResourceType::DecodeContext& context,
const envoy_config_cluster_v3_Cluster* cluster) {
@@ -467,6 +518,13 @@ absl::StatusOr> CdsResourceParse(
cds_update->lrs_load_reporting_server.emplace(
static_cast(context.server));
}
+ // Protocol options.
+ auto* upstream_config =
+ envoy_config_cluster_v3_Cluster_upstream_config(cluster);
+ if (upstream_config != nullptr) {
+ ValidationErrors::ScopedField field(&errors, ".upstream_config");
+ ParseUpstreamConfig(context, upstream_config, cds_update.get(), &errors);
+ }
// The Cluster resource encodes the circuit breaking parameters in a list of
// Thresholds messages, where each message specifies the parameters for a
// particular RoutingPriority. we will look only at the first entry in the
diff --git a/src/core/ext/xds/xds_cluster.h b/src/core/ext/xds/xds_cluster.h
index 4a4749b6bf3..f92cba623ee 100644
--- a/src/core/ext/xds/xds_cluster.h
+++ b/src/core/ext/xds/xds_cluster.h
@@ -31,6 +31,7 @@
#include "envoy/config/cluster/v3/cluster.upbdefs.h"
#include "envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h"
#include "envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h"
+#include "envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h"
#include "upb/reflection/def.h"
#include
@@ -89,6 +90,9 @@ struct XdsClusterResource : public XdsResourceType::ResourceData {
// Tls Context used by clients
CommonTlsContext common_tls_context;
+ // Connection idle timeout. Currently used only for SSA.
+ Duration connection_idle_timeout = Duration::Hours(1);
+
// Maximum number of outstanding requests can be made to the upstream
// cluster.
uint32_t max_concurrent_requests = 1024;
@@ -101,6 +105,7 @@ struct XdsClusterResource : public XdsResourceType::ResourceData {
return type == other.type && lb_policy_config == other.lb_policy_config &&
lrs_load_reporting_server == other.lrs_load_reporting_server &&
common_tls_context == other.common_tls_context &&
+ connection_idle_timeout == other.connection_idle_timeout &&
max_concurrent_requests == other.max_concurrent_requests &&
outlier_detection == other.outlier_detection &&
override_host_statuses == other.override_host_statuses;
@@ -126,6 +131,7 @@ class XdsClusterResourceType
envoy_extensions_clusters_aggregate_v3_ClusterConfig_getmsgdef(symtab);
envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_getmsgdef(
symtab);
+ envoy_extensions_upstreams_http_v3_HttpProtocolOptions_getmsgdef(symtab);
}
};
diff --git a/src/proto/grpc/testing/xds/v3/BUILD b/src/proto/grpc/testing/xds/v3/BUILD
index f72941136cc..ff3cfc4f7d7 100644
--- a/src/proto/grpc/testing/xds/v3/BUILD
+++ b/src/proto/grpc/testing/xds/v3/BUILD
@@ -211,6 +211,16 @@ grpc_proto_library(
well_known_protos = True,
)
+grpc_proto_library(
+ name = "http_protocol_options_proto",
+ srcs = [
+ "http_protocol_options.proto",
+ ],
+ deps = [
+ "protocol_proto",
+ ],
+)
+
grpc_proto_library(
name = "range_proto",
srcs = [
diff --git a/src/proto/grpc/testing/xds/v3/cluster.proto b/src/proto/grpc/testing/xds/v3/cluster.proto
index 531fbd7e0b8..75c01303d6a 100644
--- a/src/proto/grpc/testing/xds/v3/cluster.proto
+++ b/src/proto/grpc/testing/xds/v3/cluster.proto
@@ -251,6 +251,8 @@ message Cluster {
// maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
// from the LRS stream here.]
core.v3.ConfigSource lrs_server = 42;
+
+ core.v3.TypedExtensionConfig upstream_config = 48;
}
// Extensible load balancing policy configuration.
diff --git a/src/proto/grpc/testing/xds/v3/http_protocol_options.proto b/src/proto/grpc/testing/xds/v3/http_protocol_options.proto
new file mode 100644
index 00000000000..8dca945d32d
--- /dev/null
+++ b/src/proto/grpc/testing/xds/v3/http_protocol_options.proto
@@ -0,0 +1,26 @@
+// Copyright 2023 The gRPC Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Local copy of Envoy xDS proto file, used for testing only.
+
+syntax = "proto3";
+
+package envoy.extensions.upstreams.http.v3;
+
+import "src/proto/grpc/testing/xds/v3/protocol.proto";
+
+message HttpProtocolOptions {
+ // This contains options common across HTTP/1 and HTTP/2
+ config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
+}
diff --git a/src/proto/grpc/testing/xds/v3/protocol.proto b/src/proto/grpc/testing/xds/v3/protocol.proto
index 886cc11ddfb..3a75bdd85b7 100644
--- a/src/proto/grpc/testing/xds/v3/protocol.proto
+++ b/src/proto/grpc/testing/xds/v3/protocol.proto
@@ -22,6 +22,9 @@ import "google/protobuf/duration.proto";
// [#next-free-field: 5]
message HttpProtocolOptions {
- // The maximum duration of a connection.
+ // The connection idle timeout. Defaults to 1h.
+ google.protobuf.Duration idle_timeout = 1;
+
+ // The maximum duration of a stream.
google.protobuf.Duration max_stream_duration = 4;
}
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index c659b30d108..b6f72dccf97 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -215,6 +215,7 @@ CORE_SOURCE_FILES = [
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c',
'src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c',
+ 'src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c',
'src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c',
@@ -373,6 +374,7 @@ CORE_SOURCE_FILES = [
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c',
+ 'src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c',
'src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c',
diff --git a/test/core/xds/BUILD b/test/core/xds/BUILD
index 4dc271f1cf2..26030f839f5 100644
--- a/test/core/xds/BUILD
+++ b/test/core/xds/BUILD
@@ -306,6 +306,7 @@ grpc_cc_test(
"//src/core:grpc_xds_client",
"//src/proto/grpc/testing/xds/v3:aggregate_cluster_proto",
"//src/proto/grpc/testing/xds/v3:cluster_proto",
+ "//src/proto/grpc/testing/xds/v3:http_protocol_options_proto",
"//src/proto/grpc/testing/xds/v3:round_robin_proto",
"//src/proto/grpc/testing/xds/v3:tls_proto",
"//src/proto/grpc/testing/xds/v3:typed_struct_proto",
diff --git a/test/core/xds/xds_cluster_resource_type_test.cc b/test/core/xds/xds_cluster_resource_type_test.cc
index 27bb75935fb..2feb6199fc2 100644
--- a/test/core/xds/xds_cluster_resource_type_test.cc
+++ b/test/core/xds/xds_cluster_resource_type_test.cc
@@ -57,6 +57,7 @@
#include "src/proto/grpc/testing/xds/v3/endpoint.pb.h"
#include "src/proto/grpc/testing/xds/v3/extension.pb.h"
#include "src/proto/grpc/testing/xds/v3/health_check.pb.h"
+#include "src/proto/grpc/testing/xds/v3/http_protocol_options.pb.h"
#include "src/proto/grpc/testing/xds/v3/outlier_detection.pb.h"
#include "src/proto/grpc/testing/xds/v3/round_robin.pb.h"
#include "src/proto/grpc/testing/xds/v3/tls.pb.h"
@@ -69,6 +70,7 @@ using envoy::extensions::clusters::aggregate::v3::ClusterConfig;
using envoy::extensions::load_balancing_policies::round_robin::v3::RoundRobin;
using envoy::extensions::load_balancing_policies::wrr_locality::v3::WrrLocality;
using envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext;
+using envoy::extensions::upstreams::http::v3::HttpProtocolOptions;
using xds::type::v3::TypedStruct;
namespace grpc_core {
@@ -1127,6 +1129,208 @@ TEST_F(LrsTest, NotSelfConfigSource) {
<< decode_result.resource.status();
}
+//
+// upstream config tests
+//
+
+using UpstreamConfigTest = XdsClusterTest;
+
+TEST_F(UpstreamConfigTest, DefaultWithNoUpstreamConfig) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.resource.ok()) << decode_result.resource.status();
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ auto& resource =
+ static_cast(**decode_result.resource);
+ EXPECT_EQ(resource.connection_idle_timeout, Duration::Hours(1));
+}
+
+TEST_F(UpstreamConfigTest, DefaultWithNoCommonHttpProtocolOptions) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ HttpProtocolOptions http_protocol_options;
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ http_protocol_options);
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.resource.ok()) << decode_result.resource.status();
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ auto& resource =
+ static_cast(**decode_result.resource);
+ EXPECT_EQ(resource.connection_idle_timeout, Duration::Hours(1));
+}
+
+TEST_F(UpstreamConfigTest, DefaultWithFieldUnset) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ HttpProtocolOptions http_protocol_options;
+ http_protocol_options.mutable_common_http_protocol_options();
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ http_protocol_options);
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.resource.ok()) << decode_result.resource.status();
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ auto& resource =
+ static_cast(**decode_result.resource);
+ EXPECT_EQ(resource.connection_idle_timeout, Duration::Hours(1));
+}
+
+TEST_F(UpstreamConfigTest, ExplicitlySet) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ HttpProtocolOptions http_protocol_options;
+ http_protocol_options.mutable_common_http_protocol_options()
+ ->mutable_idle_timeout()
+ ->set_seconds(1);
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ http_protocol_options);
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.resource.ok()) << decode_result.resource.status();
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ auto& resource =
+ static_cast(**decode_result.resource);
+ EXPECT_EQ(resource.connection_idle_timeout, Duration::Seconds(1));
+}
+
+TEST_F(UpstreamConfigTest, UnknownUpstreamConfigType) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ Cluster());
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ EXPECT_EQ(decode_result.resource.status().code(),
+ absl::StatusCode::kInvalidArgument);
+ EXPECT_EQ(decode_result.resource.status().message(),
+ "errors validating Cluster resource: ["
+ "field:upstream_config.typed_config.value["
+ "envoy.config.cluster.v3.Cluster].type_url "
+ "error:unsupported upstream config type]")
+ << decode_result.resource.status();
+}
+
+TEST_F(UpstreamConfigTest, UnparseableHttpProtocolOptions) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ auto* typed_config =
+ cluster.mutable_upstream_config()->mutable_typed_config();
+ typed_config->PackFrom(HttpProtocolOptions());
+ typed_config->set_value(std::string("\0", 1));
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ EXPECT_EQ(decode_result.resource.status().code(),
+ absl::StatusCode::kInvalidArgument);
+ EXPECT_EQ(decode_result.resource.status().message(),
+ "errors validating Cluster resource: ["
+ "field:upstream_config.typed_config.value["
+ "envoy.extensions.upstreams.http.v3.HttpProtocolOptions] "
+ "error:can't decode HttpProtocolOptions]")
+ << decode_result.resource.status();
+}
+
+TEST_F(UpstreamConfigTest, HttpProtocolOptionsInTypedStruct) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ xds::type::v3::TypedStruct typed_struct;
+ typed_struct.set_type_url(
+ "types.googleapis.com/"
+ "envoy.extensions.upstreams.http.v3.HttpProtocolOptions");
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ typed_struct);
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ EXPECT_EQ(decode_result.resource.status().code(),
+ absl::StatusCode::kInvalidArgument);
+ EXPECT_EQ(decode_result.resource.status().message(),
+ "errors validating Cluster resource: ["
+ "field:upstream_config.typed_config.value["
+ "xds.type.v3.TypedStruct].value["
+ "envoy.extensions.upstreams.http.v3.HttpProtocolOptions] "
+ "error:can't decode HttpProtocolOptions]")
+ << decode_result.resource.status();
+}
+
+// This is just one example of where ParseDuration() will generate an error,
+// to show that we're propagating any such errors correctly. An exhaustive
+// set of tests for ParseDuration() is in xds_common_types_test.cc.
+TEST_F(UpstreamConfigTest, ErrorsParsingDurations) {
+ Cluster cluster;
+ cluster.set_name("foo");
+ cluster.set_type(cluster.EDS);
+ cluster.mutable_eds_cluster_config()->mutable_eds_config()->mutable_self();
+ HttpProtocolOptions http_protocol_options;
+ http_protocol_options.mutable_common_http_protocol_options()
+ ->mutable_idle_timeout()
+ ->set_seconds(-1);
+ cluster.mutable_upstream_config()->mutable_typed_config()->PackFrom(
+ http_protocol_options);
+ std::string serialized_resource;
+ ASSERT_TRUE(cluster.SerializeToString(&serialized_resource));
+ auto* resource_type = XdsClusterResourceType::Get();
+ auto decode_result =
+ resource_type->Decode(decode_context_, serialized_resource);
+ ASSERT_TRUE(decode_result.name.has_value());
+ EXPECT_EQ(*decode_result.name, "foo");
+ EXPECT_EQ(decode_result.resource.status().code(),
+ absl::StatusCode::kInvalidArgument);
+ EXPECT_EQ(decode_result.resource.status().message(),
+ "errors validating Cluster resource: ["
+ "field:upstream_config.typed_config.value["
+ "envoy.extensions.upstreams.http.v3.HttpProtocolOptions]"
+ ".common_http_protocol_options.idle_timeout.seconds "
+ "error:value must be in the range [0, 315576000000]]")
+ << decode_result.resource.status();
+}
+
//
// circuit breaker tests
//
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 5e27de762f9..8d399e8d873 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -1590,6 +1590,9 @@ src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h \
@@ -1987,6 +1990,8 @@ src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h \
+src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c \
+src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index c220a387917..095b92ed667 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1365,6 +1365,9 @@ src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c \
src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c \
+src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c \
src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h \
@@ -1762,6 +1765,8 @@ src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h \
+src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c \
+src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h \
src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c \