From 20e5b2c4bb1f52221b8234176a46e90f50bb4cec Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Tue, 9 Jan 2024 15:38:55 -0800 Subject: [PATCH] [xDS] read connection idle timeout from CDS resource (#35395) Part of the work needed for in-progress gRFC A75 (https://github.com/grpc/proposal/pull/405). Closes #35395 PiperOrigin-RevId: 597064473 --- BUILD | 10 + CMakeLists.txt | 13 + Makefile | 4 + Package.swift | 5 + build_autogenerated.yaml | 7 + config.m4 | 4 + config.w32 | 8 + gRPC-C++.podspec | 6 + gRPC-Core.podspec | 8 + grpc.gemspec | 5 + grpc.gyp | 2 + package.xml | 5 + src/core/BUILD | 12 + .../http/v3/http_protocol_options.upb.h | 712 ++++++++++++++++++ .../v3/http_protocol_options.upb_minitable.c | 151 ++++ .../v3/http_protocol_options.upb_minitable.h | 33 + .../http/v3/http_protocol_options.upbdefs.c | 133 ++++ .../http/v3/http_protocol_options.upbdefs.h | 50 ++ src/core/ext/xds/xds_cluster.cc | 58 ++ src/core/ext/xds/xds_cluster.h | 6 + src/proto/grpc/testing/xds/v3/BUILD | 10 + src/proto/grpc/testing/xds/v3/cluster.proto | 2 + .../xds/v3/http_protocol_options.proto | 26 + src/proto/grpc/testing/xds/v3/protocol.proto | 5 +- src/python/grpcio/grpc_core_dependencies.py | 2 + test/core/xds/BUILD | 1 + .../xds/xds_cluster_resource_type_test.cc | 204 +++++ tools/doxygen/Doxyfile.c++.internal | 5 + tools/doxygen/Doxyfile.core.internal | 5 + 29 files changed, 1491 insertions(+), 1 deletion(-) create mode 100644 src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h create mode 100644 src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c create mode 100644 src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h create mode 100644 src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c create mode 100644 src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h create mode 100644 src/proto/grpc/testing/xds/v3/http_protocol_options.proto 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 \