diff --git a/BUILD b/BUILD
index 388996cda2269..4988a73ab194a 100644
--- a/BUILD
+++ b/BUILD
@@ -702,6 +702,7 @@ grpc_cc_library(
"absl/base",
"absl/base:core_headers",
"absl/memory",
+ "absl/random",
"absl/status",
"absl/strings",
"absl/strings:cord",
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000000000..2d558a8873941
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,1654 @@
+# GRPC Fuchsia GN build file
+
+# This file has been automatically generated from a template file.
+# Please look at the templates directory instead.
+# This file can be regenerated from the template by running
+# tools/buildgen/generate_projects.sh
+
+# Copyright 2019 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.
+
+config("grpc_config") {
+ include_dirs = [
+ ".",
+ "include/",
+ ]
+ defines = [
+ "GRPC_USE_PROTO_LITE",
+ "GPR_SUPPORT_CHANNELS_FROM_FD",
+ "PB_FIELD_16BIT",
+ ]
+}
+
+
+
+ source_set("address_sorting") {
+ sources = [
+ "third_party/address_sorting/address_sorting.c",
+ "third_party/address_sorting/address_sorting_internal.h",
+ "third_party/address_sorting/address_sorting_posix.c",
+ "third_party/address_sorting/address_sorting_windows.c",
+ "third_party/address_sorting/include/address_sorting/address_sorting.h",
+ ]
+ deps = [
+ ]
+
+ public_configs = [
+ ":grpc_config",
+ ]
+ include_dirs = [
+ "third_party/address_sorting/include",
+ ]
+ }
+
+
+
+ source_set("gpr") {
+ sources = [
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_windows.h",
+ "include/grpc/impl/codegen/byte_buffer.h",
+ "include/grpc/impl/codegen/byte_buffer_reader.h",
+ "include/grpc/impl/codegen/compression_types.h",
+ "include/grpc/impl/codegen/connectivity_state.h",
+ "include/grpc/impl/codegen/fork.h",
+ "include/grpc/impl/codegen/gpr_slice.h",
+ "include/grpc/impl/codegen/gpr_types.h",
+ "include/grpc/impl/codegen/grpc_types.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/propagation_bits.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/status.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_abseil.h",
+ "include/grpc/impl/codegen/sync_custom.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_windows.h",
+ "include/grpc/support/alloc.h",
+ "include/grpc/support/atm.h",
+ "include/grpc/support/atm_gcc_atomic.h",
+ "include/grpc/support/atm_gcc_sync.h",
+ "include/grpc/support/atm_windows.h",
+ "include/grpc/support/cpu.h",
+ "include/grpc/support/log.h",
+ "include/grpc/support/log_windows.h",
+ "include/grpc/support/port_platform.h",
+ "include/grpc/support/string_util.h",
+ "include/grpc/support/sync.h",
+ "include/grpc/support/sync_abseil.h",
+ "include/grpc/support/sync_custom.h",
+ "include/grpc/support/sync_generic.h",
+ "include/grpc/support/sync_posix.h",
+ "include/grpc/support/sync_windows.h",
+ "include/grpc/support/thd_id.h",
+ "include/grpc/support/time.h",
+ "src/core/ext/upb-generated/google/api/annotations.upb.c",
+ "src/core/ext/upb-generated/google/api/annotations.upb.h",
+ "src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c",
+ "src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h",
+ "src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c",
+ "src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h",
+ "src/core/ext/upb-generated/google/api/http.upb.c",
+ "src/core/ext/upb-generated/google/api/http.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/any.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/any.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/duration.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/duration.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/empty.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/empty.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/struct.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/struct.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
+ "src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
+ "src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
+ "src/core/ext/upb-generated/google/rpc/status.upb.c",
+ "src/core/ext/upb-generated/google/rpc/status.upb.h",
+ "src/core/lib/gpr/alloc.cc",
+ "src/core/lib/gpr/alloc.h",
+ "src/core/lib/gpr/arena.h",
+ "src/core/lib/gpr/atm.cc",
+ "src/core/lib/gpr/cpu_iphone.cc",
+ "src/core/lib/gpr/cpu_linux.cc",
+ "src/core/lib/gpr/cpu_posix.cc",
+ "src/core/lib/gpr/cpu_windows.cc",
+ "src/core/lib/gpr/env.h",
+ "src/core/lib/gpr/env_linux.cc",
+ "src/core/lib/gpr/env_posix.cc",
+ "src/core/lib/gpr/env_windows.cc",
+ "src/core/lib/gpr/log.cc",
+ "src/core/lib/gpr/log_android.cc",
+ "src/core/lib/gpr/log_linux.cc",
+ "src/core/lib/gpr/log_posix.cc",
+ "src/core/lib/gpr/log_windows.cc",
+ "src/core/lib/gpr/murmur_hash.cc",
+ "src/core/lib/gpr/murmur_hash.h",
+ "src/core/lib/gpr/spinlock.h",
+ "src/core/lib/gpr/string.cc",
+ "src/core/lib/gpr/string.h",
+ "src/core/lib/gpr/string_posix.cc",
+ "src/core/lib/gpr/string_util_windows.cc",
+ "src/core/lib/gpr/string_windows.cc",
+ "src/core/lib/gpr/string_windows.h",
+ "src/core/lib/gpr/sync.cc",
+ "src/core/lib/gpr/sync_abseil.cc",
+ "src/core/lib/gpr/sync_posix.cc",
+ "src/core/lib/gpr/sync_windows.cc",
+ "src/core/lib/gpr/time.cc",
+ "src/core/lib/gpr/time_posix.cc",
+ "src/core/lib/gpr/time_precise.cc",
+ "src/core/lib/gpr/time_precise.h",
+ "src/core/lib/gpr/time_windows.cc",
+ "src/core/lib/gpr/tls.h",
+ "src/core/lib/gpr/tls_gcc.h",
+ "src/core/lib/gpr/tls_msvc.h",
+ "src/core/lib/gpr/tls_pthread.cc",
+ "src/core/lib/gpr/tls_pthread.h",
+ "src/core/lib/gpr/tls_stdcpp.h",
+ "src/core/lib/gpr/tmpfile.h",
+ "src/core/lib/gpr/tmpfile_msys.cc",
+ "src/core/lib/gpr/tmpfile_posix.cc",
+ "src/core/lib/gpr/tmpfile_windows.cc",
+ "src/core/lib/gpr/useful.h",
+ "src/core/lib/gpr/wrap_memcpy.cc",
+ "src/core/lib/gprpp/arena.cc",
+ "src/core/lib/gprpp/arena.h",
+ "src/core/lib/gprpp/atomic.h",
+ "src/core/lib/gprpp/debug_location.h",
+ "src/core/lib/gprpp/examine_stack.cc",
+ "src/core/lib/gprpp/examine_stack.h",
+ "src/core/lib/gprpp/fork.cc",
+ "src/core/lib/gprpp/fork.h",
+ "src/core/lib/gprpp/global_config.h",
+ "src/core/lib/gprpp/global_config_custom.h",
+ "src/core/lib/gprpp/global_config_env.cc",
+ "src/core/lib/gprpp/global_config_env.h",
+ "src/core/lib/gprpp/global_config_generic.h",
+ "src/core/lib/gprpp/host_port.cc",
+ "src/core/lib/gprpp/host_port.h",
+ "src/core/lib/gprpp/manual_constructor.h",
+ "src/core/lib/gprpp/memory.h",
+ "src/core/lib/gprpp/mpscq.cc",
+ "src/core/lib/gprpp/mpscq.h",
+ "src/core/lib/gprpp/stat.h",
+ "src/core/lib/gprpp/stat_posix.cc",
+ "src/core/lib/gprpp/stat_windows.cc",
+ "src/core/lib/gprpp/status_helper.cc",
+ "src/core/lib/gprpp/status_helper.h",
+ "src/core/lib/gprpp/sync.h",
+ "src/core/lib/gprpp/thd.h",
+ "src/core/lib/gprpp/thd_posix.cc",
+ "src/core/lib/gprpp/thd_windows.cc",
+ "src/core/lib/gprpp/time_util.cc",
+ "src/core/lib/gprpp/time_util.h",
+ "src/core/lib/profiling/basic_timers.cc",
+ "src/core/lib/profiling/stap_timers.cc",
+ "src/core/lib/profiling/timers.h",
+ ]
+ deps = [
+ ":absl/base:base",
+ ":absl/memory:memory",
+ ":absl/random:random",
+ ":absl/status:status",
+ ":absl/strings:str_format",
+ ":absl/strings:strings",
+ ":absl/synchronization:synchronization",
+ ":absl/time:time",
+ ":absl/types:optional",
+ ":upb",
+ ]
+
+ public_configs = [
+ ":grpc_config",
+ ]
+ }
+
+
+
+ source_set("grpc") {
+ sources = [
+ "include/grpc/byte_buffer.h",
+ "include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
+ "include/grpc/compression.h",
+ "include/grpc/event_engine/endpoint_config.h",
+ "include/grpc/event_engine/event_engine.h",
+ "include/grpc/event_engine/port.h",
+ "include/grpc/event_engine/slice_allocator.h",
+ "include/grpc/fork.h",
+ "include/grpc/grpc.h",
+ "include/grpc/grpc_posix.h",
+ "include/grpc/grpc_security.h",
+ "include/grpc/grpc_security_constants.h",
+ "include/grpc/load_reporting.h",
+ "include/grpc/slice.h",
+ "include/grpc/slice_buffer.h",
+ "include/grpc/status.h",
+ "include/grpc/support/workaround_list.h",
+ "src/core/ext/filters/census/grpc_context.cc",
+ "src/core/ext/filters/client_channel/backend_metric.cc",
+ "src/core/ext/filters/client_channel/backend_metric.h",
+ "src/core/ext/filters/client_channel/backup_poller.cc",
+ "src/core/ext/filters/client_channel/backup_poller.h",
+ "src/core/ext/filters/client_channel/channel_connectivity.cc",
+ "src/core/ext/filters/client_channel/client_channel.cc",
+ "src/core/ext/filters/client_channel/client_channel.h",
+ "src/core/ext/filters/client_channel/client_channel_channelz.cc",
+ "src/core/ext/filters/client_channel/client_channel_channelz.h",
+ "src/core/ext/filters/client_channel/client_channel_factory.cc",
+ "src/core/ext/filters/client_channel/client_channel_factory.h",
+ "src/core/ext/filters/client_channel/client_channel_plugin.cc",
+ "src/core/ext/filters/client_channel/config_selector.cc",
+ "src/core/ext/filters/client_channel/config_selector.h",
+ "src/core/ext/filters/client_channel/connector.h",
+ "src/core/ext/filters/client_channel/dynamic_filters.cc",
+ "src/core/ext/filters/client_channel/dynamic_filters.h",
+ "src/core/ext/filters/client_channel/global_subchannel_pool.cc",
+ "src/core/ext/filters/client_channel/global_subchannel_pool.h",
+ "src/core/ext/filters/client_channel/health/health_check_client.cc",
+ "src/core/ext/filters/client_channel/health/health_check_client.h",
+ "src/core/ext/filters/client_channel/http_connect_handshaker.cc",
+ "src/core/ext/filters/client_channel/http_connect_handshaker.h",
+ "src/core/ext/filters/client_channel/http_proxy.cc",
+ "src/core/ext/filters/client_channel/http_proxy.h",
+ "src/core/ext/filters/client_channel/lb_policy.cc",
+ "src/core/ext/filters/client_channel/lb_policy.h",
+ "src/core/ext/filters/client_channel/lb_policy/address_filtering.cc",
+ "src/core/ext/filters/client_channel/lb_policy/address_filtering.h",
+ "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
+ "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
+ "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
+ "src/core/ext/filters/client_channel/lb_policy/priority/priority.cc",
+ "src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc",
+ "src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h",
+ "src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
+ "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
+ "src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc",
+ "src/core/ext/filters/client_channel/lb_policy/xds/cds.cc",
+ "src/core/ext/filters/client_channel/lb_policy/xds/xds.h",
+ "src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h",
+ "src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc",
+ "src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc",
+ "src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc",
+ "src/core/ext/filters/client_channel/lb_policy_factory.h",
+ "src/core/ext/filters/client_channel/lb_policy_registry.cc",
+ "src/core/ext/filters/client_channel/lb_policy_registry.h",
+ "src/core/ext/filters/client_channel/local_subchannel_pool.cc",
+ "src/core/ext/filters/client_channel/local_subchannel_pool.h",
+ "src/core/ext/filters/client_channel/proxy_mapper.h",
+ "src/core/ext/filters/client_channel/proxy_mapper_registry.cc",
+ "src/core/ext/filters/client_channel/proxy_mapper_registry.h",
+ "src/core/ext/filters/client_channel/resolver.cc",
+ "src/core/ext/filters/client_channel/resolver.h",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
+ "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
+ "src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
+ "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc",
+ "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h",
+ "src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc",
+ "src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
+ "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc",
+ "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h",
+ "src/core/ext/filters/client_channel/resolver_factory.h",
+ "src/core/ext/filters/client_channel/resolver_registry.cc",
+ "src/core/ext/filters/client_channel/resolver_registry.h",
+ "src/core/ext/filters/client_channel/resolver_result_parsing.cc",
+ "src/core/ext/filters/client_channel/resolver_result_parsing.h",
+ "src/core/ext/filters/client_channel/retry_filter.cc",
+ "src/core/ext/filters/client_channel/retry_filter.h",
+ "src/core/ext/filters/client_channel/retry_service_config.cc",
+ "src/core/ext/filters/client_channel/retry_service_config.h",
+ "src/core/ext/filters/client_channel/retry_throttle.cc",
+ "src/core/ext/filters/client_channel/retry_throttle.h",
+ "src/core/ext/filters/client_channel/server_address.cc",
+ "src/core/ext/filters/client_channel/server_address.h",
+ "src/core/ext/filters/client_channel/service_config.cc",
+ "src/core/ext/filters/client_channel/service_config.h",
+ "src/core/ext/filters/client_channel/service_config_call_data.h",
+ "src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc",
+ "src/core/ext/filters/client_channel/service_config_parser.cc",
+ "src/core/ext/filters/client_channel/service_config_parser.h",
+ "src/core/ext/filters/client_channel/subchannel.cc",
+ "src/core/ext/filters/client_channel/subchannel.h",
+ "src/core/ext/filters/client_channel/subchannel_interface.h",
+ "src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
+ "src/core/ext/filters/client_channel/subchannel_pool_interface.h",
+ "src/core/ext/filters/client_idle/client_idle_filter.cc",
+ "src/core/ext/filters/deadline/deadline_filter.cc",
+ "src/core/ext/filters/deadline/deadline_filter.h",
+ "src/core/ext/filters/fault_injection/fault_injection_filter.cc",
+ "src/core/ext/filters/fault_injection/fault_injection_filter.h",
+ "src/core/ext/filters/fault_injection/service_config_parser.cc",
+ "src/core/ext/filters/fault_injection/service_config_parser.h",
+ "src/core/ext/filters/http/client/http_client_filter.cc",
+ "src/core/ext/filters/http/client/http_client_filter.h",
+ "src/core/ext/filters/http/client_authority_filter.cc",
+ "src/core/ext/filters/http/client_authority_filter.h",
+ "src/core/ext/filters/http/http_filters_plugin.cc",
+ "src/core/ext/filters/http/message_compress/message_compress_filter.cc",
+ "src/core/ext/filters/http/message_compress/message_compress_filter.h",
+ "src/core/ext/filters/http/message_compress/message_decompress_filter.cc",
+ "src/core/ext/filters/http/message_compress/message_decompress_filter.h",
+ "src/core/ext/filters/http/server/http_server_filter.cc",
+ "src/core/ext/filters/http/server/http_server_filter.h",
+ "src/core/ext/filters/max_age/max_age_filter.cc",
+ "src/core/ext/filters/max_age/max_age_filter.h",
+ "src/core/ext/filters/message_size/message_size_filter.cc",
+ "src/core/ext/filters/message_size/message_size_filter.h",
+ "src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc",
+ "src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h",
+ "src/core/ext/filters/workarounds/workaround_utils.cc",
+ "src/core/ext/filters/workarounds/workaround_utils.h",
+ "src/core/ext/transport/chttp2/alpn/alpn.cc",
+ "src/core/ext/transport/chttp2/alpn/alpn.h",
+ "src/core/ext/transport/chttp2/client/authority.cc",
+ "src/core/ext/transport/chttp2/client/authority.h",
+ "src/core/ext/transport/chttp2/client/chttp2_connector.cc",
+ "src/core/ext/transport/chttp2/client/chttp2_connector.h",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.cc",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc",
+ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc",
+ "src/core/ext/transport/chttp2/server/chttp2_server.cc",
+ "src/core/ext/transport/chttp2/server/chttp2_server.h",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc",
+ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc",
+ "src/core/ext/transport/chttp2/transport/bin_decoder.cc",
+ "src/core/ext/transport/chttp2/transport/bin_decoder.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.cc",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_plugin.cc",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/context_list.cc",
+ "src/core/ext/transport/chttp2/transport/context_list.h",
+ "src/core/ext/transport/chttp2/transport/flow_control.cc",
+ "src/core/ext/transport/chttp2/transport/flow_control.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.cc",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.cc",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.cc",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.cc",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.cc",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.cc",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.cc",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_settings.cc",
+ "src/core/ext/transport/chttp2/transport/http2_settings.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.cc",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.cc",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/parsing.cc",
+ "src/core/ext/transport/chttp2/transport/stream_lists.cc",
+ "src/core/ext/transport/chttp2/transport/stream_map.cc",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/varint.cc",
+ "src/core/ext/transport/chttp2/transport/varint.h",
+ "src/core/ext/transport/chttp2/transport/writing.cc",
+ "src/core/ext/transport/inproc/inproc_plugin.cc",
+ "src/core/ext/transport/inproc/inproc_transport.cc",
+ "src/core/ext/transport/inproc/inproc_transport.h",
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c",
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h",
+ "src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c",
+ "src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h",
+ "src/core/ext/upb-generated/envoy/annotations/resource.upb.c",
+ "src/core/ext/upb-generated/envoy/annotations/resource.upb.h",
+ "src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c",
+ "src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c",
+ "src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h",
+ "src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c",
+ "src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c",
+ "src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c",
+ "src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h",
+ "src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c",
+ "src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h",
+ "src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c",
+ "src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h",
+ "src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c",
+ "src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h",
+ "src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c",
+ "src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h",
+ "src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c",
+ "src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c",
+ "src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h",
+ "src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c",
+ "src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h",
+ "src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c",
+ "src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h",
+ "src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c",
+ "src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h",
+ "src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h",
+ "src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c",
+ "src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h",
+ "src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c",
+ "src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h",
+ "src/core/ext/upb-generated/envoy/type/v3/http.upb.c",
+ "src/core/ext/upb-generated/envoy/type/v3/http.upb.h",
+ "src/core/ext/upb-generated/envoy/type/v3/percent.upb.c",
+ "src/core/ext/upb-generated/envoy/type/v3/percent.upb.h",
+ "src/core/ext/upb-generated/envoy/type/v3/range.upb.c",
+ "src/core/ext/upb-generated/envoy/type/v3/range.upb.h",
+ "src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c",
+ "src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
+ "src/core/ext/upb-generated/udpa/annotations/migrate.upb.c",
+ "src/core/ext/upb-generated/udpa/annotations/migrate.upb.h",
+ "src/core/ext/upb-generated/udpa/annotations/security.upb.c",
+ "src/core/ext/upb-generated/udpa/annotations/security.upb.h",
+ "src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c",
+ "src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h",
+ "src/core/ext/upb-generated/udpa/annotations/status.upb.c",
+ "src/core/ext/upb-generated/udpa/annotations/status.upb.h",
+ "src/core/ext/upb-generated/udpa/annotations/versioning.upb.c",
+ "src/core/ext/upb-generated/udpa/annotations/versioning.upb.h",
+ "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c",
+ "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h",
+ "src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c",
+ "src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h",
+ "src/core/ext/upb-generated/validate/validate.upb.c",
+ "src/core/ext/upb-generated/validate/validate.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/authority.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/authority.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/context_params.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/context_params.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/resource.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/resource.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h",
+ "src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c",
+ "src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h",
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/api/http.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/api/http.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h",
+ "src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c",
+ "src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h",
+ "src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c",
+ "src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h",
+ "src/core/ext/upbdefs-generated/validate/validate.upbdefs.c",
+ "src/core/ext/upbdefs-generated/validate/validate.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c",
+ "src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h",
+ "src/core/ext/xds/certificate_provider_factory.h",
+ "src/core/ext/xds/certificate_provider_registry.cc",
+ "src/core/ext/xds/certificate_provider_registry.h",
+ "src/core/ext/xds/certificate_provider_store.cc",
+ "src/core/ext/xds/certificate_provider_store.h",
+ "src/core/ext/xds/file_watcher_certificate_provider_factory.cc",
+ "src/core/ext/xds/file_watcher_certificate_provider_factory.h",
+ "src/core/ext/xds/xds_api.cc",
+ "src/core/ext/xds/xds_api.h",
+ "src/core/ext/xds/xds_bootstrap.cc",
+ "src/core/ext/xds/xds_bootstrap.h",
+ "src/core/ext/xds/xds_certificate_provider.cc",
+ "src/core/ext/xds/xds_certificate_provider.h",
+ "src/core/ext/xds/xds_channel_args.h",
+ "src/core/ext/xds/xds_client.cc",
+ "src/core/ext/xds/xds_client.h",
+ "src/core/ext/xds/xds_client_stats.cc",
+ "src/core/ext/xds/xds_client_stats.h",
+ "src/core/ext/xds/xds_http_fault_filter.cc",
+ "src/core/ext/xds/xds_http_fault_filter.h",
+ "src/core/ext/xds/xds_http_filters.cc",
+ "src/core/ext/xds/xds_http_filters.h",
+ "src/core/ext/xds/xds_server_config_fetcher.cc",
+ "src/core/lib/address_utils/parse_address.cc",
+ "src/core/lib/address_utils/parse_address.h",
+ "src/core/lib/address_utils/sockaddr_utils.cc",
+ "src/core/lib/address_utils/sockaddr_utils.h",
+ "src/core/lib/avl/avl.cc",
+ "src/core/lib/avl/avl.h",
+ "src/core/lib/backoff/backoff.cc",
+ "src/core/lib/backoff/backoff.h",
+ "src/core/lib/channel/channel_args.cc",
+ "src/core/lib/channel/channel_args.h",
+ "src/core/lib/channel/channel_stack.cc",
+ "src/core/lib/channel/channel_stack.h",
+ "src/core/lib/channel/channel_stack_builder.cc",
+ "src/core/lib/channel/channel_stack_builder.h",
+ "src/core/lib/channel/channel_trace.cc",
+ "src/core/lib/channel/channel_trace.h",
+ "src/core/lib/channel/channelz.cc",
+ "src/core/lib/channel/channelz.h",
+ "src/core/lib/channel/channelz_registry.cc",
+ "src/core/lib/channel/channelz_registry.h",
+ "src/core/lib/channel/connected_channel.cc",
+ "src/core/lib/channel/connected_channel.h",
+ "src/core/lib/channel/context.h",
+ "src/core/lib/channel/handshaker.cc",
+ "src/core/lib/channel/handshaker.h",
+ "src/core/lib/channel/handshaker_factory.h",
+ "src/core/lib/channel/handshaker_registry.cc",
+ "src/core/lib/channel/handshaker_registry.h",
+ "src/core/lib/channel/status_util.cc",
+ "src/core/lib/channel/status_util.h",
+ "src/core/lib/compression/algorithm_metadata.h",
+ "src/core/lib/compression/compression.cc",
+ "src/core/lib/compression/compression_args.cc",
+ "src/core/lib/compression/compression_args.h",
+ "src/core/lib/compression/compression_internal.cc",
+ "src/core/lib/compression/compression_internal.h",
+ "src/core/lib/compression/message_compress.cc",
+ "src/core/lib/compression/message_compress.h",
+ "src/core/lib/compression/stream_compression.cc",
+ "src/core/lib/compression/stream_compression.h",
+ "src/core/lib/compression/stream_compression_gzip.cc",
+ "src/core/lib/compression/stream_compression_gzip.h",
+ "src/core/lib/compression/stream_compression_identity.cc",
+ "src/core/lib/compression/stream_compression_identity.h",
+ "src/core/lib/debug/stats.cc",
+ "src/core/lib/debug/stats.h",
+ "src/core/lib/debug/stats_data.cc",
+ "src/core/lib/debug/stats_data.h",
+ "src/core/lib/debug/trace.cc",
+ "src/core/lib/debug/trace.h",
+ "src/core/lib/event_engine/endpoint_config.cc",
+ "src/core/lib/event_engine/endpoint_config_internal.h",
+ "src/core/lib/event_engine/event_engine.cc",
+ "src/core/lib/event_engine/slice_allocator.cc",
+ "src/core/lib/event_engine/sockaddr.cc",
+ "src/core/lib/event_engine/sockaddr.h",
+ "src/core/lib/gprpp/atomic.h",
+ "src/core/lib/gprpp/dual_ref_counted.h",
+ "src/core/lib/gprpp/orphanable.h",
+ "src/core/lib/gprpp/ref_counted.h",
+ "src/core/lib/gprpp/ref_counted_ptr.h",
+ "src/core/lib/http/format_request.cc",
+ "src/core/lib/http/format_request.h",
+ "src/core/lib/http/httpcli.cc",
+ "src/core/lib/http/httpcli.h",
+ "src/core/lib/http/httpcli_security_connector.cc",
+ "src/core/lib/http/parser.cc",
+ "src/core/lib/http/parser.h",
+ "src/core/lib/iomgr/block_annotate.h",
+ "src/core/lib/iomgr/buffer_list.cc",
+ "src/core/lib/iomgr/buffer_list.h",
+ "src/core/lib/iomgr/call_combiner.cc",
+ "src/core/lib/iomgr/call_combiner.h",
+ "src/core/lib/iomgr/cfstream_handle.cc",
+ "src/core/lib/iomgr/cfstream_handle.h",
+ "src/core/lib/iomgr/closure.h",
+ "src/core/lib/iomgr/combiner.cc",
+ "src/core/lib/iomgr/combiner.h",
+ "src/core/lib/iomgr/dualstack_socket_posix.cc",
+ "src/core/lib/iomgr/dynamic_annotations.h",
+ "src/core/lib/iomgr/endpoint.cc",
+ "src/core/lib/iomgr/endpoint.h",
+ "src/core/lib/iomgr/endpoint_cfstream.cc",
+ "src/core/lib/iomgr/endpoint_cfstream.h",
+ "src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/endpoint_pair_event_engine.cc",
+ "src/core/lib/iomgr/endpoint_pair_posix.cc",
+ "src/core/lib/iomgr/endpoint_pair_uv.cc",
+ "src/core/lib/iomgr/endpoint_pair_windows.cc",
+ "src/core/lib/iomgr/error.cc",
+ "src/core/lib/iomgr/error.h",
+ "src/core/lib/iomgr/error_cfstream.cc",
+ "src/core/lib/iomgr/error_cfstream.h",
+ "src/core/lib/iomgr/error_internal.h",
+ "src/core/lib/iomgr/ev_apple.cc",
+ "src/core/lib/iomgr/ev_apple.h",
+ "src/core/lib/iomgr/ev_epoll1_linux.cc",
+ "src/core/lib/iomgr/ev_epoll1_linux.h",
+ "src/core/lib/iomgr/ev_epollex_linux.cc",
+ "src/core/lib/iomgr/ev_epollex_linux.h",
+ "src/core/lib/iomgr/ev_poll_posix.cc",
+ "src/core/lib/iomgr/ev_poll_posix.h",
+ "src/core/lib/iomgr/ev_posix.cc",
+ "src/core/lib/iomgr/ev_posix.h",
+ "src/core/lib/iomgr/ev_windows.cc",
+ "src/core/lib/iomgr/event_engine/closure.cc",
+ "src/core/lib/iomgr/event_engine/closure.h",
+ "src/core/lib/iomgr/event_engine/endpoint.cc",
+ "src/core/lib/iomgr/event_engine/endpoint.h",
+ "src/core/lib/iomgr/event_engine/iomgr.cc",
+ "src/core/lib/iomgr/event_engine/iomgr.h",
+ "src/core/lib/iomgr/event_engine/pollset.cc",
+ "src/core/lib/iomgr/event_engine/pollset.h",
+ "src/core/lib/iomgr/event_engine/promise.h",
+ "src/core/lib/iomgr/event_engine/resolved_address_internal.cc",
+ "src/core/lib/iomgr/event_engine/resolved_address_internal.h",
+ "src/core/lib/iomgr/event_engine/resolver.cc",
+ "src/core/lib/iomgr/event_engine/tcp.cc",
+ "src/core/lib/iomgr/event_engine/timer.cc",
+ "src/core/lib/iomgr/exec_ctx.cc",
+ "src/core/lib/iomgr/exec_ctx.h",
+ "src/core/lib/iomgr/executor.cc",
+ "src/core/lib/iomgr/executor.h",
+ "src/core/lib/iomgr/executor/mpmcqueue.cc",
+ "src/core/lib/iomgr/executor/mpmcqueue.h",
+ "src/core/lib/iomgr/executor/threadpool.cc",
+ "src/core/lib/iomgr/executor/threadpool.h",
+ "src/core/lib/iomgr/fork_posix.cc",
+ "src/core/lib/iomgr/fork_windows.cc",
+ "src/core/lib/iomgr/gethostname.h",
+ "src/core/lib/iomgr/gethostname_fallback.cc",
+ "src/core/lib/iomgr/gethostname_host_name_max.cc",
+ "src/core/lib/iomgr/gethostname_sysconf.cc",
+ "src/core/lib/iomgr/grpc_if_nametoindex.h",
+ "src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+ "src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+ "src/core/lib/iomgr/internal_errqueue.cc",
+ "src/core/lib/iomgr/internal_errqueue.h",
+ "src/core/lib/iomgr/iocp_windows.cc",
+ "src/core/lib/iomgr/iocp_windows.h",
+ "src/core/lib/iomgr/iomgr.cc",
+ "src/core/lib/iomgr/iomgr.h",
+ "src/core/lib/iomgr/iomgr_custom.cc",
+ "src/core/lib/iomgr/iomgr_custom.h",
+ "src/core/lib/iomgr/iomgr_internal.cc",
+ "src/core/lib/iomgr/iomgr_internal.h",
+ "src/core/lib/iomgr/iomgr_posix.cc",
+ "src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+ "src/core/lib/iomgr/iomgr_uv.cc",
+ "src/core/lib/iomgr/iomgr_windows.cc",
+ "src/core/lib/iomgr/is_epollexclusive_available.cc",
+ "src/core/lib/iomgr/is_epollexclusive_available.h",
+ "src/core/lib/iomgr/load_file.cc",
+ "src/core/lib/iomgr/load_file.h",
+ "src/core/lib/iomgr/lockfree_event.cc",
+ "src/core/lib/iomgr/lockfree_event.h",
+ "src/core/lib/iomgr/nameser.h",
+ "src/core/lib/iomgr/polling_entity.cc",
+ "src/core/lib/iomgr/polling_entity.h",
+ "src/core/lib/iomgr/pollset.cc",
+ "src/core/lib/iomgr/pollset.h",
+ "src/core/lib/iomgr/pollset_custom.cc",
+ "src/core/lib/iomgr/pollset_custom.h",
+ "src/core/lib/iomgr/pollset_set.cc",
+ "src/core/lib/iomgr/pollset_set.h",
+ "src/core/lib/iomgr/pollset_set_custom.cc",
+ "src/core/lib/iomgr/pollset_set_custom.h",
+ "src/core/lib/iomgr/pollset_set_windows.cc",
+ "src/core/lib/iomgr/pollset_set_windows.h",
+ "src/core/lib/iomgr/pollset_uv.cc",
+ "src/core/lib/iomgr/pollset_uv.h",
+ "src/core/lib/iomgr/pollset_windows.cc",
+ "src/core/lib/iomgr/pollset_windows.h",
+ "src/core/lib/iomgr/port.h",
+ "src/core/lib/iomgr/python_util.h",
+ "src/core/lib/iomgr/resolve_address.cc",
+ "src/core/lib/iomgr/resolve_address.h",
+ "src/core/lib/iomgr/resolve_address_custom.cc",
+ "src/core/lib/iomgr/resolve_address_custom.h",
+ "src/core/lib/iomgr/resolve_address_posix.cc",
+ "src/core/lib/iomgr/resolve_address_windows.cc",
+ "src/core/lib/iomgr/resource_quota.cc",
+ "src/core/lib/iomgr/resource_quota.h",
+ "src/core/lib/iomgr/sockaddr.h",
+ "src/core/lib/iomgr/sockaddr_custom.h",
+ "src/core/lib/iomgr/sockaddr_posix.h",
+ "src/core/lib/iomgr/sockaddr_windows.h",
+ "src/core/lib/iomgr/socket_factory_posix.cc",
+ "src/core/lib/iomgr/socket_factory_posix.h",
+ "src/core/lib/iomgr/socket_mutator.cc",
+ "src/core/lib/iomgr/socket_mutator.h",
+ "src/core/lib/iomgr/socket_utils.h",
+ "src/core/lib/iomgr/socket_utils_common_posix.cc",
+ "src/core/lib/iomgr/socket_utils_linux.cc",
+ "src/core/lib/iomgr/socket_utils_posix.cc",
+ "src/core/lib/iomgr/socket_utils_posix.h",
+ "src/core/lib/iomgr/socket_utils_uv.cc",
+ "src/core/lib/iomgr/socket_utils_windows.cc",
+ "src/core/lib/iomgr/socket_windows.cc",
+ "src/core/lib/iomgr/socket_windows.h",
+ "src/core/lib/iomgr/sys_epoll_wrapper.h",
+ "src/core/lib/iomgr/tcp_client.cc",
+ "src/core/lib/iomgr/tcp_client.h",
+ "src/core/lib/iomgr/tcp_client_cfstream.cc",
+ "src/core/lib/iomgr/tcp_client_custom.cc",
+ "src/core/lib/iomgr/tcp_client_posix.cc",
+ "src/core/lib/iomgr/tcp_client_posix.h",
+ "src/core/lib/iomgr/tcp_client_windows.cc",
+ "src/core/lib/iomgr/tcp_custom.cc",
+ "src/core/lib/iomgr/tcp_custom.h",
+ "src/core/lib/iomgr/tcp_posix.cc",
+ "src/core/lib/iomgr/tcp_posix.h",
+ "src/core/lib/iomgr/tcp_server.cc",
+ "src/core/lib/iomgr/tcp_server.h",
+ "src/core/lib/iomgr/tcp_server_custom.cc",
+ "src/core/lib/iomgr/tcp_server_posix.cc",
+ "src/core/lib/iomgr/tcp_server_utils_posix.h",
+ "src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+ "src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+ "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+ "src/core/lib/iomgr/tcp_server_windows.cc",
+ "src/core/lib/iomgr/tcp_uv.cc",
+ "src/core/lib/iomgr/tcp_windows.cc",
+ "src/core/lib/iomgr/tcp_windows.h",
+ "src/core/lib/iomgr/time_averaged_stats.cc",
+ "src/core/lib/iomgr/time_averaged_stats.h",
+ "src/core/lib/iomgr/timer.cc",
+ "src/core/lib/iomgr/timer.h",
+ "src/core/lib/iomgr/timer_custom.cc",
+ "src/core/lib/iomgr/timer_custom.h",
+ "src/core/lib/iomgr/timer_generic.cc",
+ "src/core/lib/iomgr/timer_generic.h",
+ "src/core/lib/iomgr/timer_heap.cc",
+ "src/core/lib/iomgr/timer_heap.h",
+ "src/core/lib/iomgr/timer_manager.cc",
+ "src/core/lib/iomgr/timer_manager.h",
+ "src/core/lib/iomgr/timer_uv.cc",
+ "src/core/lib/iomgr/udp_server.cc",
+ "src/core/lib/iomgr/udp_server.h",
+ "src/core/lib/iomgr/unix_sockets_posix.cc",
+ "src/core/lib/iomgr/unix_sockets_posix.h",
+ "src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+ "src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+ "src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+ "src/core/lib/iomgr/wakeup_fd_pipe.cc",
+ "src/core/lib/iomgr/wakeup_fd_pipe.h",
+ "src/core/lib/iomgr/wakeup_fd_posix.cc",
+ "src/core/lib/iomgr/wakeup_fd_posix.h",
+ "src/core/lib/iomgr/work_serializer.cc",
+ "src/core/lib/iomgr/work_serializer.h",
+ "src/core/lib/json/json.h",
+ "src/core/lib/json/json_reader.cc",
+ "src/core/lib/json/json_util.cc",
+ "src/core/lib/json/json_util.h",
+ "src/core/lib/json/json_writer.cc",
+ "src/core/lib/matchers/matchers.cc",
+ "src/core/lib/matchers/matchers.h",
+ "src/core/lib/security/authorization/authorization_engine.h",
+ "src/core/lib/security/authorization/authorization_policy_provider.h",
+ "src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+ "src/core/lib/security/authorization/evaluate_args.cc",
+ "src/core/lib/security/authorization/evaluate_args.h",
+ "src/core/lib/security/context/security_context.cc",
+ "src/core/lib/security/context/security_context.h",
+ "src/core/lib/security/credentials/alts/alts_credentials.cc",
+ "src/core/lib/security/credentials/alts/alts_credentials.h",
+ "src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+ "src/core/lib/security/credentials/alts/check_gcp_environment.h",
+ "src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+ "src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+ "src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+ "src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+ "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+ "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+ "src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+ "src/core/lib/security/credentials/composite/composite_credentials.cc",
+ "src/core/lib/security/credentials/composite/composite_credentials.h",
+ "src/core/lib/security/credentials/credentials.cc",
+ "src/core/lib/security/credentials/credentials.h",
+ "src/core/lib/security/credentials/credentials_metadata.cc",
+ "src/core/lib/security/credentials/external/aws_external_account_credentials.cc",
+ "src/core/lib/security/credentials/external/aws_external_account_credentials.h",
+ "src/core/lib/security/credentials/external/aws_request_signer.cc",
+ "src/core/lib/security/credentials/external/aws_request_signer.h",
+ "src/core/lib/security/credentials/external/external_account_credentials.cc",
+ "src/core/lib/security/credentials/external/external_account_credentials.h",
+ "src/core/lib/security/credentials/external/file_external_account_credentials.cc",
+ "src/core/lib/security/credentials/external/file_external_account_credentials.h",
+ "src/core/lib/security/credentials/external/url_external_account_credentials.cc",
+ "src/core/lib/security/credentials/external/url_external_account_credentials.h",
+ "src/core/lib/security/credentials/fake/fake_credentials.cc",
+ "src/core/lib/security/credentials/fake/fake_credentials.h",
+ "src/core/lib/security/credentials/google_default/credentials_generic.cc",
+ "src/core/lib/security/credentials/google_default/google_default_credentials.cc",
+ "src/core/lib/security/credentials/google_default/google_default_credentials.h",
+ "src/core/lib/security/credentials/iam/iam_credentials.cc",
+ "src/core/lib/security/credentials/iam/iam_credentials.h",
+ "src/core/lib/security/credentials/insecure/insecure_credentials.cc",
+ "src/core/lib/security/credentials/jwt/json_token.cc",
+ "src/core/lib/security/credentials/jwt/json_token.h",
+ "src/core/lib/security/credentials/jwt/jwt_credentials.cc",
+ "src/core/lib/security/credentials/jwt/jwt_credentials.h",
+ "src/core/lib/security/credentials/jwt/jwt_verifier.cc",
+ "src/core/lib/security/credentials/jwt/jwt_verifier.h",
+ "src/core/lib/security/credentials/local/local_credentials.cc",
+ "src/core/lib/security/credentials/local/local_credentials.h",
+ "src/core/lib/security/credentials/oauth2/oauth2_credentials.cc",
+ "src/core/lib/security/credentials/oauth2/oauth2_credentials.h",
+ "src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+ "src/core/lib/security/credentials/plugin/plugin_credentials.h",
+ "src/core/lib/security/credentials/ssl/ssl_credentials.cc",
+ "src/core/lib/security/credentials/ssl/ssl_credentials.h",
+ "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc",
+ "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h",
+ "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc",
+ "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h",
+ "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc",
+ "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h",
+ "src/core/lib/security/credentials/tls/tls_credentials.cc",
+ "src/core/lib/security/credentials/tls/tls_credentials.h",
+ "src/core/lib/security/credentials/tls/tls_utils.cc",
+ "src/core/lib/security/credentials/tls/tls_utils.h",
+ "src/core/lib/security/credentials/xds/xds_credentials.cc",
+ "src/core/lib/security/credentials/xds/xds_credentials.h",
+ "src/core/lib/security/security_connector/alts/alts_security_connector.cc",
+ "src/core/lib/security/security_connector/alts/alts_security_connector.h",
+ "src/core/lib/security/security_connector/fake/fake_security_connector.cc",
+ "src/core/lib/security/security_connector/fake/fake_security_connector.h",
+ "src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
+ "src/core/lib/security/security_connector/insecure/insecure_security_connector.h",
+ "src/core/lib/security/security_connector/load_system_roots.h",
+ "src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+ "src/core/lib/security/security_connector/load_system_roots_linux.cc",
+ "src/core/lib/security/security_connector/load_system_roots_linux.h",
+ "src/core/lib/security/security_connector/local/local_security_connector.cc",
+ "src/core/lib/security/security_connector/local/local_security_connector.h",
+ "src/core/lib/security/security_connector/security_connector.cc",
+ "src/core/lib/security/security_connector/security_connector.h",
+ "src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
+ "src/core/lib/security/security_connector/ssl/ssl_security_connector.h",
+ "src/core/lib/security/security_connector/ssl_utils.cc",
+ "src/core/lib/security/security_connector/ssl_utils.h",
+ "src/core/lib/security/security_connector/ssl_utils_config.cc",
+ "src/core/lib/security/security_connector/ssl_utils_config.h",
+ "src/core/lib/security/security_connector/tls/tls_security_connector.cc",
+ "src/core/lib/security/security_connector/tls/tls_security_connector.h",
+ "src/core/lib/security/transport/auth_filters.h",
+ "src/core/lib/security/transport/client_auth_filter.cc",
+ "src/core/lib/security/transport/secure_endpoint.cc",
+ "src/core/lib/security/transport/secure_endpoint.h",
+ "src/core/lib/security/transport/security_handshaker.cc",
+ "src/core/lib/security/transport/security_handshaker.h",
+ "src/core/lib/security/transport/server_auth_filter.cc",
+ "src/core/lib/security/transport/tsi_error.cc",
+ "src/core/lib/security/transport/tsi_error.h",
+ "src/core/lib/security/util/json_util.cc",
+ "src/core/lib/security/util/json_util.h",
+ "src/core/lib/slice/b64.cc",
+ "src/core/lib/slice/b64.h",
+ "src/core/lib/slice/percent_encoding.cc",
+ "src/core/lib/slice/percent_encoding.h",
+ "src/core/lib/slice/slice.cc",
+ "src/core/lib/slice/slice_buffer.cc",
+ "src/core/lib/slice/slice_intern.cc",
+ "src/core/lib/slice/slice_internal.h",
+ "src/core/lib/slice/slice_string_helpers.cc",
+ "src/core/lib/slice/slice_string_helpers.h",
+ "src/core/lib/slice/slice_utils.h",
+ "src/core/lib/surface/api_trace.cc",
+ "src/core/lib/surface/api_trace.h",
+ "src/core/lib/surface/byte_buffer.cc",
+ "src/core/lib/surface/byte_buffer_reader.cc",
+ "src/core/lib/surface/call.cc",
+ "src/core/lib/surface/call.h",
+ "src/core/lib/surface/call_details.cc",
+ "src/core/lib/surface/call_log_batch.cc",
+ "src/core/lib/surface/call_test_only.h",
+ "src/core/lib/surface/channel.cc",
+ "src/core/lib/surface/channel.h",
+ "src/core/lib/surface/channel_init.cc",
+ "src/core/lib/surface/channel_init.h",
+ "src/core/lib/surface/channel_ping.cc",
+ "src/core/lib/surface/channel_stack_type.cc",
+ "src/core/lib/surface/channel_stack_type.h",
+ "src/core/lib/surface/completion_queue.cc",
+ "src/core/lib/surface/completion_queue.h",
+ "src/core/lib/surface/completion_queue_factory.cc",
+ "src/core/lib/surface/completion_queue_factory.h",
+ "src/core/lib/surface/event_string.cc",
+ "src/core/lib/surface/event_string.h",
+ "src/core/lib/surface/init.cc",
+ "src/core/lib/surface/init.h",
+ "src/core/lib/surface/init_secure.cc",
+ "src/core/lib/surface/lame_client.cc",
+ "src/core/lib/surface/lame_client.h",
+ "src/core/lib/surface/metadata_array.cc",
+ "src/core/lib/surface/server.cc",
+ "src/core/lib/surface/server.h",
+ "src/core/lib/surface/validate_metadata.cc",
+ "src/core/lib/surface/validate_metadata.h",
+ "src/core/lib/surface/version.cc",
+ "src/core/lib/transport/authority_override.cc",
+ "src/core/lib/transport/authority_override.h",
+ "src/core/lib/transport/bdp_estimator.cc",
+ "src/core/lib/transport/bdp_estimator.h",
+ "src/core/lib/transport/byte_stream.cc",
+ "src/core/lib/transport/byte_stream.h",
+ "src/core/lib/transport/connectivity_state.cc",
+ "src/core/lib/transport/connectivity_state.h",
+ "src/core/lib/transport/error_utils.cc",
+ "src/core/lib/transport/error_utils.h",
+ "src/core/lib/transport/http2_errors.h",
+ "src/core/lib/transport/metadata.cc",
+ "src/core/lib/transport/metadata.h",
+ "src/core/lib/transport/metadata_batch.cc",
+ "src/core/lib/transport/metadata_batch.h",
+ "src/core/lib/transport/pid_controller.cc",
+ "src/core/lib/transport/pid_controller.h",
+ "src/core/lib/transport/static_metadata.cc",
+ "src/core/lib/transport/static_metadata.h",
+ "src/core/lib/transport/status_conversion.cc",
+ "src/core/lib/transport/status_conversion.h",
+ "src/core/lib/transport/status_metadata.cc",
+ "src/core/lib/transport/status_metadata.h",
+ "src/core/lib/transport/timeout_encoding.cc",
+ "src/core/lib/transport/timeout_encoding.h",
+ "src/core/lib/transport/transport.cc",
+ "src/core/lib/transport/transport.h",
+ "src/core/lib/transport/transport_impl.h",
+ "src/core/lib/transport/transport_op_string.cc",
+ "src/core/lib/uri/uri_parser.cc",
+ "src/core/lib/uri/uri_parser.h",
+ "src/core/plugin_registry/grpc_plugin_registry.cc",
+ "src/core/tsi/alts/crypt/aes_gcm.cc",
+ "src/core/tsi/alts/crypt/gsec.cc",
+ "src/core/tsi/alts/crypt/gsec.h",
+ "src/core/tsi/alts/frame_protector/alts_counter.cc",
+ "src/core/tsi/alts/frame_protector/alts_counter.h",
+ "src/core/tsi/alts/frame_protector/alts_crypter.cc",
+ "src/core/tsi/alts/frame_protector/alts_crypter.h",
+ "src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
+ "src/core/tsi/alts/frame_protector/alts_frame_protector.h",
+ "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
+ "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
+ "src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
+ "src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
+ "src/core/tsi/alts/frame_protector/frame_handler.cc",
+ "src/core/tsi/alts/frame_protector/frame_handler.h",
+ "src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
+ "src/core/tsi/alts/handshaker/alts_handshaker_client.h",
+ "src/core/tsi/alts/handshaker/alts_shared_resource.cc",
+ "src/core/tsi/alts/handshaker/alts_shared_resource.h",
+ "src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
+ "src/core/tsi/alts/handshaker/alts_tsi_handshaker.h",
+ "src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h",
+ "src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
+ "src/core/tsi/alts/handshaker/alts_tsi_utils.h",
+ "src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+ "src/core/tsi/alts/handshaker/transport_security_common_api.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
+ "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
+ "src/core/tsi/fake_transport_security.cc",
+ "src/core/tsi/fake_transport_security.h",
+ "src/core/tsi/local_transport_security.cc",
+ "src/core/tsi/local_transport_security.h",
+ "src/core/tsi/ssl/session_cache/ssl_session.h",
+ "src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
+ "src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
+ "src/core/tsi/ssl/session_cache/ssl_session_cache.h",
+ "src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
+ "src/core/tsi/ssl_transport_security.cc",
+ "src/core/tsi/ssl_transport_security.h",
+ "src/core/tsi/ssl_types.h",
+ "src/core/tsi/transport_security.cc",
+ "src/core/tsi/transport_security.h",
+ "src/core/tsi/transport_security_grpc.cc",
+ "src/core/tsi/transport_security_grpc.h",
+ "src/core/tsi/transport_security_interface.h",
+ "third_party/xxhash/xxhash.h",
+ ]
+ deps = [
+ "//third_party/zlib",
+ ":absl/container:flat_hash_map",
+ ":absl/container:inlined_vector",
+ ":absl/functional:bind_front",
+ ":absl/status:statusor",
+ ":gpr",
+ "//third_party/boringssl",
+ ":address_sorting",
+ "//third_party/cares",
+ ":address_sorting",
+ ]
+
+ public_configs = [
+ ":grpc_config",
+ ]
+ include_dirs = [
+ "third_party/cares",
+ "third_party/address_sorting/include",
+ ]
+ }
+
+
+
+ source_set("grpc++") {
+ sources = [
+ "include/grpc++/alarm.h",
+ "include/grpc++/channel.h",
+ "include/grpc++/client_context.h",
+ "include/grpc++/completion_queue.h",
+ "include/grpc++/create_channel.h",
+ "include/grpc++/create_channel_posix.h",
+ "include/grpc++/ext/health_check_service_server_builder_option.h",
+ "include/grpc++/generic/async_generic_service.h",
+ "include/grpc++/generic/generic_stub.h",
+ "include/grpc++/grpc++.h",
+ "include/grpc++/health_check_service_interface.h",
+ "include/grpc++/impl/call.h",
+ "include/grpc++/impl/channel_argument_option.h",
+ "include/grpc++/impl/client_unary_call.h",
+ "include/grpc++/impl/codegen/async_stream.h",
+ "include/grpc++/impl/codegen/async_unary_call.h",
+ "include/grpc++/impl/codegen/byte_buffer.h",
+ "include/grpc++/impl/codegen/call.h",
+ "include/grpc++/impl/codegen/call_hook.h",
+ "include/grpc++/impl/codegen/channel_interface.h",
+ "include/grpc++/impl/codegen/client_context.h",
+ "include/grpc++/impl/codegen/client_unary_call.h",
+ "include/grpc++/impl/codegen/completion_queue.h",
+ "include/grpc++/impl/codegen/completion_queue_tag.h",
+ "include/grpc++/impl/codegen/config.h",
+ "include/grpc++/impl/codegen/config_protobuf.h",
+ "include/grpc++/impl/codegen/core_codegen.h",
+ "include/grpc++/impl/codegen/core_codegen_interface.h",
+ "include/grpc++/impl/codegen/create_auth_context.h",
+ "include/grpc++/impl/codegen/grpc_library.h",
+ "include/grpc++/impl/codegen/metadata_map.h",
+ "include/grpc++/impl/codegen/method_handler_impl.h",
+ "include/grpc++/impl/codegen/proto_utils.h",
+ "include/grpc++/impl/codegen/rpc_method.h",
+ "include/grpc++/impl/codegen/rpc_service_method.h",
+ "include/grpc++/impl/codegen/security/auth_context.h",
+ "include/grpc++/impl/codegen/serialization_traits.h",
+ "include/grpc++/impl/codegen/server_context.h",
+ "include/grpc++/impl/codegen/server_interface.h",
+ "include/grpc++/impl/codegen/service_type.h",
+ "include/grpc++/impl/codegen/slice.h",
+ "include/grpc++/impl/codegen/status.h",
+ "include/grpc++/impl/codegen/status_code_enum.h",
+ "include/grpc++/impl/codegen/string_ref.h",
+ "include/grpc++/impl/codegen/stub_options.h",
+ "include/grpc++/impl/codegen/sync_stream.h",
+ "include/grpc++/impl/codegen/time.h",
+ "include/grpc++/impl/grpc_library.h",
+ "include/grpc++/impl/method_handler_impl.h",
+ "include/grpc++/impl/rpc_method.h",
+ "include/grpc++/impl/rpc_service_method.h",
+ "include/grpc++/impl/serialization_traits.h",
+ "include/grpc++/impl/server_builder_option.h",
+ "include/grpc++/impl/server_builder_plugin.h",
+ "include/grpc++/impl/server_initializer.h",
+ "include/grpc++/impl/service_type.h",
+ "include/grpc++/resource_quota.h",
+ "include/grpc++/security/auth_context.h",
+ "include/grpc++/security/auth_metadata_processor.h",
+ "include/grpc++/security/credentials.h",
+ "include/grpc++/security/server_credentials.h",
+ "include/grpc++/server.h",
+ "include/grpc++/server_builder.h",
+ "include/grpc++/server_context.h",
+ "include/grpc++/server_posix.h",
+ "include/grpc++/support/async_stream.h",
+ "include/grpc++/support/async_unary_call.h",
+ "include/grpc++/support/byte_buffer.h",
+ "include/grpc++/support/channel_arguments.h",
+ "include/grpc++/support/config.h",
+ "include/grpc++/support/slice.h",
+ "include/grpc++/support/status.h",
+ "include/grpc++/support/status_code_enum.h",
+ "include/grpc++/support/string_ref.h",
+ "include/grpc++/support/stub_options.h",
+ "include/grpc++/support/sync_stream.h",
+ "include/grpc++/support/time.h",
+ "include/grpcpp/alarm.h",
+ "include/grpcpp/channel.h",
+ "include/grpcpp/client_context.h",
+ "include/grpcpp/completion_queue.h",
+ "include/grpcpp/create_channel.h",
+ "include/grpcpp/create_channel_posix.h",
+ "include/grpcpp/ext/health_check_service_server_builder_option.h",
+ "include/grpcpp/generic/async_generic_service.h",
+ "include/grpcpp/generic/generic_stub.h",
+ "include/grpcpp/grpcpp.h",
+ "include/grpcpp/health_check_service_interface.h",
+ "include/grpcpp/impl/call.h",
+ "include/grpcpp/impl/channel_argument_option.h",
+ "include/grpcpp/impl/client_unary_call.h",
+ "include/grpcpp/impl/codegen/async_generic_service.h",
+ "include/grpcpp/impl/codegen/async_stream.h",
+ "include/grpcpp/impl/codegen/async_unary_call.h",
+ "include/grpcpp/impl/codegen/byte_buffer.h",
+ "include/grpcpp/impl/codegen/call.h",
+ "include/grpcpp/impl/codegen/call_hook.h",
+ "include/grpcpp/impl/codegen/call_op_set.h",
+ "include/grpcpp/impl/codegen/call_op_set_interface.h",
+ "include/grpcpp/impl/codegen/callback_common.h",
+ "include/grpcpp/impl/codegen/channel_interface.h",
+ "include/grpcpp/impl/codegen/client_callback.h",
+ "include/grpcpp/impl/codegen/client_context.h",
+ "include/grpcpp/impl/codegen/client_interceptor.h",
+ "include/grpcpp/impl/codegen/client_unary_call.h",
+ "include/grpcpp/impl/codegen/completion_queue.h",
+ "include/grpcpp/impl/codegen/completion_queue_tag.h",
+ "include/grpcpp/impl/codegen/config.h",
+ "include/grpcpp/impl/codegen/config_protobuf.h",
+ "include/grpcpp/impl/codegen/core_codegen.h",
+ "include/grpcpp/impl/codegen/core_codegen_interface.h",
+ "include/grpcpp/impl/codegen/create_auth_context.h",
+ "include/grpcpp/impl/codegen/delegating_channel.h",
+ "include/grpcpp/impl/codegen/grpc_library.h",
+ "include/grpcpp/impl/codegen/intercepted_channel.h",
+ "include/grpcpp/impl/codegen/interceptor.h",
+ "include/grpcpp/impl/codegen/interceptor_common.h",
+ "include/grpcpp/impl/codegen/message_allocator.h",
+ "include/grpcpp/impl/codegen/metadata_map.h",
+ "include/grpcpp/impl/codegen/method_handler.h",
+ "include/grpcpp/impl/codegen/method_handler_impl.h",
+ "include/grpcpp/impl/codegen/proto_buffer_reader.h",
+ "include/grpcpp/impl/codegen/proto_buffer_writer.h",
+ "include/grpcpp/impl/codegen/proto_utils.h",
+ "include/grpcpp/impl/codegen/rpc_method.h",
+ "include/grpcpp/impl/codegen/rpc_service_method.h",
+ "include/grpcpp/impl/codegen/security/auth_context.h",
+ "include/grpcpp/impl/codegen/serialization_traits.h",
+ "include/grpcpp/impl/codegen/server_callback.h",
+ "include/grpcpp/impl/codegen/server_callback_handlers.h",
+ "include/grpcpp/impl/codegen/server_context.h",
+ "include/grpcpp/impl/codegen/server_interceptor.h",
+ "include/grpcpp/impl/codegen/server_interface.h",
+ "include/grpcpp/impl/codegen/service_type.h",
+ "include/grpcpp/impl/codegen/slice.h",
+ "include/grpcpp/impl/codegen/status.h",
+ "include/grpcpp/impl/codegen/status_code_enum.h",
+ "include/grpcpp/impl/codegen/string_ref.h",
+ "include/grpcpp/impl/codegen/stub_options.h",
+ "include/grpcpp/impl/codegen/sync.h",
+ "include/grpcpp/impl/codegen/sync_stream.h",
+ "include/grpcpp/impl/codegen/time.h",
+ "include/grpcpp/impl/grpc_library.h",
+ "include/grpcpp/impl/method_handler_impl.h",
+ "include/grpcpp/impl/rpc_method.h",
+ "include/grpcpp/impl/rpc_service_method.h",
+ "include/grpcpp/impl/serialization_traits.h",
+ "include/grpcpp/impl/server_builder_option.h",
+ "include/grpcpp/impl/server_builder_plugin.h",
+ "include/grpcpp/impl/server_initializer.h",
+ "include/grpcpp/impl/service_type.h",
+ "include/grpcpp/resource_quota.h",
+ "include/grpcpp/security/auth_context.h",
+ "include/grpcpp/security/auth_metadata_processor.h",
+ "include/grpcpp/security/authorization_policy_provider.h",
+ "include/grpcpp/security/credentials.h",
+ "include/grpcpp/security/server_credentials.h",
+ "include/grpcpp/security/tls_certificate_provider.h",
+ "include/grpcpp/security/tls_credentials_options.h",
+ "include/grpcpp/server.h",
+ "include/grpcpp/server_builder.h",
+ "include/grpcpp/server_context.h",
+ "include/grpcpp/server_posix.h",
+ "include/grpcpp/support/async_stream.h",
+ "include/grpcpp/support/async_unary_call.h",
+ "include/grpcpp/support/byte_buffer.h",
+ "include/grpcpp/support/channel_arguments.h",
+ "include/grpcpp/support/client_callback.h",
+ "include/grpcpp/support/client_interceptor.h",
+ "include/grpcpp/support/config.h",
+ "include/grpcpp/support/interceptor.h",
+ "include/grpcpp/support/message_allocator.h",
+ "include/grpcpp/support/method_handler.h",
+ "include/grpcpp/support/proto_buffer_reader.h",
+ "include/grpcpp/support/proto_buffer_writer.h",
+ "include/grpcpp/support/server_callback.h",
+ "include/grpcpp/support/server_interceptor.h",
+ "include/grpcpp/support/slice.h",
+ "include/grpcpp/support/status.h",
+ "include/grpcpp/support/status_code_enum.h",
+ "include/grpcpp/support/string_ref.h",
+ "include/grpcpp/support/stub_options.h",
+ "include/grpcpp/support/sync_stream.h",
+ "include/grpcpp/support/time.h",
+ "include/grpcpp/support/validate_service_config.h",
+ "include/grpcpp/xds_server_builder.h",
+ "src/cpp/client/channel_cc.cc",
+ "src/cpp/client/client_callback.cc",
+ "src/cpp/client/client_context.cc",
+ "src/cpp/client/client_interceptor.cc",
+ "src/cpp/client/create_channel.cc",
+ "src/cpp/client/create_channel_internal.cc",
+ "src/cpp/client/create_channel_internal.h",
+ "src/cpp/client/create_channel_posix.cc",
+ "src/cpp/client/credentials_cc.cc",
+ "src/cpp/client/insecure_credentials.cc",
+ "src/cpp/client/secure_credentials.cc",
+ "src/cpp/client/secure_credentials.h",
+ "src/cpp/client/xds_credentials.cc",
+ "src/cpp/codegen/codegen_init.cc",
+ "src/cpp/common/alarm.cc",
+ "src/cpp/common/auth_property_iterator.cc",
+ "src/cpp/common/channel_arguments.cc",
+ "src/cpp/common/channel_filter.cc",
+ "src/cpp/common/channel_filter.h",
+ "src/cpp/common/completion_queue_cc.cc",
+ "src/cpp/common/core_codegen.cc",
+ "src/cpp/common/resource_quota_cc.cc",
+ "src/cpp/common/rpc_method.cc",
+ "src/cpp/common/secure_auth_context.cc",
+ "src/cpp/common/secure_auth_context.h",
+ "src/cpp/common/secure_channel_arguments.cc",
+ "src/cpp/common/secure_create_auth_context.cc",
+ "src/cpp/common/tls_certificate_provider.cc",
+ "src/cpp/common/tls_credentials_options.cc",
+ "src/cpp/common/tls_credentials_options_util.cc",
+ "src/cpp/common/tls_credentials_options_util.h",
+ "src/cpp/common/validate_service_config.cc",
+ "src/cpp/common/version_cc.cc",
+ "src/cpp/server/async_generic_service.cc",
+ "src/cpp/server/channel_argument_option.cc",
+ "src/cpp/server/create_default_thread_pool.cc",
+ "src/cpp/server/dynamic_thread_pool.cc",
+ "src/cpp/server/dynamic_thread_pool.h",
+ "src/cpp/server/external_connection_acceptor_impl.cc",
+ "src/cpp/server/external_connection_acceptor_impl.h",
+ "src/cpp/server/health/default_health_check_service.cc",
+ "src/cpp/server/health/default_health_check_service.h",
+ "src/cpp/server/health/health_check_service.cc",
+ "src/cpp/server/health/health_check_service_server_builder_option.cc",
+ "src/cpp/server/insecure_server_credentials.cc",
+ "src/cpp/server/secure_server_credentials.cc",
+ "src/cpp/server/secure_server_credentials.h",
+ "src/cpp/server/server_builder.cc",
+ "src/cpp/server/server_callback.cc",
+ "src/cpp/server/server_cc.cc",
+ "src/cpp/server/server_context.cc",
+ "src/cpp/server/server_credentials.cc",
+ "src/cpp/server/server_posix.cc",
+ "src/cpp/server/thread_pool_interface.h",
+ "src/cpp/server/xds_server_credentials.cc",
+ "src/cpp/thread_manager/thread_manager.cc",
+ "src/cpp/thread_manager/thread_manager.h",
+ "src/cpp/util/byte_buffer_cc.cc",
+ "src/cpp/util/status.cc",
+ "src/cpp/util/string_ref.cc",
+ "src/cpp/util/time_cc.cc",
+ ]
+ deps = [
+ "//third_party/protobuf:protobuf_lite",
+ ":grpc",
+ ]
+
+ public_configs = [
+ ":grpc_config",
+ ]
+ }
+
+ # Only compile the plugin for the host architecture.
+ if (current_toolchain == host_toolchain) {
+
+
+ source_set("grpc_plugin_support") {
+ sources = [
+ "include/grpc++/impl/codegen/config_protobuf.h",
+ "include/grpcpp/impl/codegen/config_protobuf.h",
+ "src/compiler/config.h",
+ "src/compiler/config_protobuf.h",
+ "src/compiler/cpp_generator.cc",
+ "src/compiler/cpp_generator.h",
+ "src/compiler/cpp_generator_helpers.h",
+ "src/compiler/cpp_plugin.h",
+ "src/compiler/csharp_generator.cc",
+ "src/compiler/csharp_generator.h",
+ "src/compiler/csharp_generator_helpers.h",
+ "src/compiler/generator_helpers.h",
+ "src/compiler/node_generator.cc",
+ "src/compiler/node_generator.h",
+ "src/compiler/node_generator_helpers.h",
+ "src/compiler/objective_c_generator.cc",
+ "src/compiler/objective_c_generator.h",
+ "src/compiler/objective_c_generator_helpers.h",
+ "src/compiler/php_generator.cc",
+ "src/compiler/php_generator.h",
+ "src/compiler/php_generator_helpers.h",
+ "src/compiler/protobuf_plugin.h",
+ "src/compiler/python_generator.cc",
+ "src/compiler/python_generator.h",
+ "src/compiler/python_generator_helpers.h",
+ "src/compiler/python_private_generator.h",
+ "src/compiler/schema_interface.h",
+ ]
+ deps = [
+ "//third_party/protobuf:protoc_lib",
+ ]
+
+ public_configs = [
+ ":grpc_config",
+ ]
+ }
+
+ }
+ # Only compile the plugin for the host architecture.
+ if (current_toolchain == host_toolchain) {
+
+ executable("grpc_cpp_plugin") {
+ sources = [
+ "src/compiler/cpp_plugin.cc",
+ ]
+ deps = [
+ "//third_party/protobuf:protoc_lib",
+ ":grpc_plugin_support",
+ ]
+
+ configs += [
+ "//third_party/protobuf:protobuf_config",
+ ]
+ public_configs = [ ":grpc_config" ]
+ }
+
+ }
+
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fe665fad82d77..bed72041c9434 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -121,6 +121,7 @@ set(gRPC_ABSL_USED_TARGETS
absl_endian
absl_errno_saver
absl_exponential_biased
+ absl_fast_type_id
absl_fixed_array
absl_flat_hash_map
absl_function_ref
@@ -141,6 +142,29 @@ set(gRPC_ABSL_USED_TARGETS
absl_memory
absl_numeric_representation
absl_optional
+ absl_random_distributions
+ absl_random_internal_distribution_caller
+ absl_random_internal_fast_uniform_bits
+ absl_random_internal_fastmath
+ absl_random_internal_generate_real
+ absl_random_internal_iostream_state_saver
+ absl_random_internal_nonsecure_base
+ absl_random_internal_pcg_engine
+ absl_random_internal_platform
+ absl_random_internal_pool_urbg
+ absl_random_internal_randen
+ absl_random_internal_randen_engine
+ absl_random_internal_randen_hwaes
+ absl_random_internal_randen_hwaes_impl
+ absl_random_internal_randen_slow
+ absl_random_internal_salted_seed_seq
+ absl_random_internal_seed_material
+ absl_random_internal_traits
+ absl_random_internal_uniform_helper
+ absl_random_internal_wide_multiply
+ absl_random_random
+ absl_random_seed_gen_exception
+ absl_random_seed_sequences
absl_raw_hash_map
absl_raw_hash_set
absl_raw_logging_internal
@@ -1475,6 +1499,7 @@ target_link_libraries(gpr
absl::base
absl::core_headers
absl::memory
+ absl::random_random
absl::status
absl::cord
absl::str_format
@@ -7793,6 +7818,7 @@ target_link_libraries(activity_test
absl::core_headers
absl::flat_hash_set
absl::memory
+ absl::random_random
absl::status
absl::statusor
absl::cord
@@ -10656,7 +10682,6 @@ target_include_directories(end2end_binder_transport_test
target_link_libraries(end2end_binder_transport_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
- absl::random_random
grpc_test_util
)
@@ -10985,7 +11010,6 @@ target_include_directories(fake_binder_test
target_link_libraries(fake_binder_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
- absl::random_random
grpc_test_util
)
@@ -12758,6 +12782,7 @@ target_link_libraries(latch_test
absl::base
absl::core_headers
absl::memory
+ absl::random_random
absl::status
absl::statusor
absl::cord
@@ -13380,6 +13405,7 @@ target_link_libraries(observable_test
absl::core_headers
absl::flat_hash_set
absl::memory
+ absl::random_random
absl::status
absl::statusor
absl::cord
@@ -17311,7 +17337,7 @@ generate_pkgconfig(
"gpr"
"gRPC platform support library"
"${gRPC_CORE_VERSION}"
- "absl_base absl_cord absl_core_headers absl_memory absl_optional absl_status absl_str_format absl_strings absl_synchronization absl_time"
+ "absl_base absl_cord absl_core_headers absl_memory absl_optional absl_random_random absl_status absl_str_format absl_strings absl_synchronization absl_time"
"-lgpr"
""
"gpr.pc")
@@ -17321,7 +17347,7 @@ generate_pkgconfig(
"gRPC"
"high performance general RPC framework"
"${gRPC_CORE_VERSION}"
- "gpr openssl absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
+ "gpr openssl absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_random_random absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
"-lgrpc -laddress_sorting -lre2 -lupb -lcares -lz"
""
"grpc.pc")
@@ -17331,7 +17357,7 @@ generate_pkgconfig(
"gRPC unsecure"
"high performance general RPC framework without SSL"
"${gRPC_CORE_VERSION}"
- "gpr absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
+ "gpr absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_random_random absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
"-lgrpc_unsecure"
""
"grpc_unsecure.pc")
@@ -17341,7 +17367,7 @@ generate_pkgconfig(
"gRPC++"
"C++ wrapper for gRPC"
"${gRPC_CPP_VERSION}"
- "grpc absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
+ "grpc absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_random_random absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
"-lgrpc++"
""
"grpc++.pc")
@@ -17351,7 +17377,7 @@ generate_pkgconfig(
"gRPC++ unsecure"
"C++ wrapper for gRPC without SSL"
"${gRPC_CPP_VERSION}"
- "grpc_unsecure absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
+ "grpc_unsecure absl_base absl_bind_front absl_cord absl_core_headers absl_flat_hash_map absl_inlined_vector absl_memory absl_optional absl_random_random absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_variant"
"-lgrpc++_unsecure"
""
"grpc++_unsecure.pc")
diff --git a/Makefile b/Makefile
index 6e77306d2a5ee..cfe9be6156e1c 100644
--- a/Makefile
+++ b/Makefile
@@ -418,7 +418,7 @@ LDFLAGS += -pthread
endif
ifeq ($(SYSTEM),MINGW32)
-LIBS = m pthread ws2_32 dbghelp
+LIBS = m pthread ws2_32 dbghelp bcrypt
LDFLAGS += -pthread
endif
@@ -2600,6 +2600,7 @@ endif
# start of build recipe for library "grpc_abseil" (generated by makelib(lib) template function)
LIBGRPC_ABSEIL_SRC = \
+ src/abseil-cpp/randen_hwaes_nohw.cc \
third_party/abseil-cpp/absl/base/internal/cycleclock.cc \
third_party/abseil-cpp/absl/base/internal/exponential_biased.cc \
third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc \
@@ -2624,6 +2625,16 @@ LIBGRPC_ABSEIL_SRC = \
third_party/abseil-cpp/absl/hash/internal/hash.cc \
third_party/abseil-cpp/absl/hash/internal/wyhash.cc \
third_party/abseil-cpp/absl/numeric/int128.cc \
+ third_party/abseil-cpp/absl/random/discrete_distribution.cc \
+ third_party/abseil-cpp/absl/random/gaussian_distribution.cc \
+ third_party/abseil-cpp/absl/random/internal/pool_urbg.cc \
+ third_party/abseil-cpp/absl/random/internal/randen.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_detect.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_slow.cc \
+ third_party/abseil-cpp/absl/random/internal/seed_material.cc \
+ third_party/abseil-cpp/absl/random/seed_gen_exception.cc \
+ third_party/abseil-cpp/absl/random/seed_sequences.cc \
third_party/abseil-cpp/absl/status/status.cc \
third_party/abseil-cpp/absl/status/status_payload_printer.cc \
third_party/abseil-cpp/absl/status/statusor.cc \
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index bd9bedab01226..20cc3aad11a4f 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -401,6 +401,7 @@ libs:
- absl/base:base
- absl/base:core_headers
- absl/memory:memory
+ - absl/random:random
- absl/status:status
- absl/strings:cord
- absl/strings:str_format
@@ -4330,6 +4331,7 @@ targets:
- absl/base:core_headers
- absl/container:flat_hash_set
- absl/memory:memory
+ - absl/random:random
- absl/status:status
- absl/status:statusor
- absl/strings:cord
@@ -5432,7 +5434,6 @@ targets:
- test/core/transport/binder/end2end/fake_binder.cc
- test/core/transport/binder/end2end/testing_channel_create.cc
deps:
- - absl/random:random
- grpc_test_util
- name: end2end_test
gtest: true
@@ -5541,7 +5542,6 @@ targets:
- test/core/transport/binder/end2end/fake_binder.cc
- test/core/transport/binder/end2end/fake_binder_test.cc
deps:
- - absl/random:random
- grpc_test_util
uses_polling: false
- name: file_watcher_certificate_provider_factory_test
@@ -6251,6 +6251,7 @@ targets:
- absl/base:base
- absl/base:core_headers
- absl/memory:memory
+ - absl/random:random
- absl/status:status
- absl/status:statusor
- absl/strings:cord
@@ -6567,6 +6568,7 @@ targets:
- absl/base:core_headers
- absl/container:flat_hash_set
- absl/memory:memory
+ - absl/random:random
- absl/status:status
- absl/status:statusor
- absl/strings:cord
diff --git a/config.m4 b/config.m4
index edbf6cdf81fc9..77a303d970955 100644
--- a/config.m4
+++ b/config.m4
@@ -40,6 +40,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_SUBST(GRPC_SHARED_LIBADD)
PHP_NEW_EXTENSION(grpc,
+ src/abseil-cpp/randen_hwaes_nohw.cc \
src/core/ext/filters/census/grpc_context.cc \
src/core/ext/filters/client_channel/backend_metric.cc \
src/core/ext/filters/client_channel/backup_poller.cc \
@@ -702,6 +703,16 @@ if test "$PHP_GRPC" != "no"; then
third_party/abseil-cpp/absl/hash/internal/hash.cc \
third_party/abseil-cpp/absl/hash/internal/wyhash.cc \
third_party/abseil-cpp/absl/numeric/int128.cc \
+ third_party/abseil-cpp/absl/random/discrete_distribution.cc \
+ third_party/abseil-cpp/absl/random/gaussian_distribution.cc \
+ third_party/abseil-cpp/absl/random/internal/pool_urbg.cc \
+ third_party/abseil-cpp/absl/random/internal/randen.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_detect.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc \
+ third_party/abseil-cpp/absl/random/internal/randen_slow.cc \
+ third_party/abseil-cpp/absl/random/internal/seed_material.cc \
+ third_party/abseil-cpp/absl/random/seed_gen_exception.cc \
+ third_party/abseil-cpp/absl/random/seed_sequences.cc \
third_party/abseil-cpp/absl/status/status.cc \
third_party/abseil-cpp/absl/status/status_payload_printer.cc \
third_party/abseil-cpp/absl/status/statusor.cc \
@@ -1064,6 +1075,7 @@ if test "$PHP_GRPC" != "no"; then
-DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' \
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.41.0dev\""')
+ PHP_ADD_BUILD_DIR($ext_builddir/src/abseil-cpp)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/census)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/health)
@@ -1244,6 +1256,8 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/debugging/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/hash/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/numeric)
+ PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/random)
+ PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/random/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/status)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings/internal)
diff --git a/config.w32 b/config.w32
index 6dbd4d0c10df2..2369caa8cbd1b 100644
--- a/config.w32
+++ b/config.w32
@@ -6,6 +6,7 @@ ARG_WITH("grpc", "grpc support", "no");
if (PHP_GRPC != "no") {
EXTENSION("grpc",
+ "src\\abseil-cpp\\randen_hwaes_nohw.cc " +
"src\\core\\ext\\filters\\census\\grpc_context.cc " +
"src\\core\\ext\\filters\\client_channel\\backend_metric.cc " +
"src\\core\\ext\\filters\\client_channel\\backup_poller.cc " +
@@ -668,6 +669,16 @@ if (PHP_GRPC != "no") {
"third_party\\abseil-cpp\\absl\\hash\\internal\\hash.cc " +
"third_party\\abseil-cpp\\absl\\hash\\internal\\wyhash.cc " +
"third_party\\abseil-cpp\\absl\\numeric\\int128.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\discrete_distribution.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\gaussian_distribution.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\pool_urbg.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\randen.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\randen_detect.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\randen_round_keys.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\randen_slow.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\internal\\seed_material.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\seed_gen_exception.cc " +
+ "third_party\\abseil-cpp\\absl\\random\\seed_sequences.cc " +
"third_party\\abseil-cpp\\absl\\status\\status.cc " +
"third_party\\abseil-cpp\\absl\\status\\status_payload_printer.cc " +
"third_party\\abseil-cpp\\absl\\status\\statusor.cc " +
@@ -1059,6 +1070,7 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext");
FSO.CreateFolder(base_dir+"\\ext\\grpc");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\abseil-cpp");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters");
@@ -1355,6 +1367,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\hash");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\hash\\internal");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\numeric");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\random");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\random\\internal");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\status");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings\\internal");
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index 27ba977635c17..389d15aca92c8 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -194,6 +194,7 @@ Pod::Spec.new do |s|
ss.dependency 'abseil/container/inlined_vector', abseil_version
ss.dependency 'abseil/functional/bind_front', abseil_version
ss.dependency 'abseil/memory/memory', abseil_version
+ ss.dependency 'abseil/random/random', abseil_version
ss.dependency 'abseil/status/status', abseil_version
ss.dependency 'abseil/status/statusor', abseil_version
ss.dependency 'abseil/strings/cord', abseil_version
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index e97cf566f4ff0..36399f509d911 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -184,6 +184,7 @@ Pod::Spec.new do |s|
ss.dependency 'abseil/container/inlined_vector', abseil_version
ss.dependency 'abseil/functional/bind_front', abseil_version
ss.dependency 'abseil/memory/memory', abseil_version
+ ss.dependency 'abseil/random/random', abseil_version
ss.dependency 'abseil/status/status', abseil_version
ss.dependency 'abseil/status/statusor', abseil_version
ss.dependency 'abseil/strings/cord', abseil_version
diff --git a/grpc.gemspec b/grpc.gemspec
index bacde2e04a9de..2ae1aa1dc4d76 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -108,6 +108,7 @@ Gem::Specification.new do |s|
s.files += %w( include/grpc/support/thd_id.h )
s.files += %w( include/grpc/support/time.h )
s.files += %w( include/grpc/support/workaround_list.h )
+ s.files += %w( src/abseil-cpp/randen_hwaes_nohw.cc )
s.files += %w( src/core/ext/filters/census/grpc_context.cc )
s.files += %w( src/core/ext/filters/client_channel/backend_metric.cc )
s.files += %w( src/core/ext/filters/client_channel/backend_metric.h )
@@ -1313,6 +1314,7 @@ Gem::Specification.new do |s|
s.files += %w( third_party/abseil-cpp/absl/base/internal/errno_saver.h )
s.files += %w( third_party/abseil-cpp/absl/base/internal/exponential_biased.cc )
s.files += %w( third_party/abseil-cpp/absl/base/internal/exponential_biased.h )
+ s.files += %w( third_party/abseil-cpp/absl/base/internal/fast_type_id.h )
s.files += %w( third_party/abseil-cpp/absl/base/internal/hide_ptr.h )
s.files += %w( third_party/abseil-cpp/absl/base/internal/identity.h )
s.files += %w( third_party/abseil-cpp/absl/base/internal/inline_variable.h )
@@ -1414,6 +1416,50 @@ Gem::Specification.new do |s|
s.files += %w( third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc )
s.files += %w( third_party/abseil-cpp/absl/numeric/internal/bits.h )
s.files += %w( third_party/abseil-cpp/absl/numeric/internal/representation.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/bernoulli_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/beta_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/discrete_distribution.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/discrete_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/distributions.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/exponential_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/gaussian_distribution.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/gaussian_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/distribution_caller.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/fastmath.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/generate_real.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/nonsecure_base.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/pcg_engine.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/platform.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/pool_urbg.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/pool_urbg.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_detect.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_detect.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_engine.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_hwaes.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_slow.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_slow.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/randen_traits.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/seed_material.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/seed_material.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/traits.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/uniform_helper.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/internal/wide_multiply.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/poisson_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/random.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/seed_gen_exception.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/seed_gen_exception.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/seed_sequences.cc )
+ s.files += %w( third_party/abseil-cpp/absl/random/seed_sequences.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/uniform_int_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/uniform_real_distribution.h )
+ s.files += %w( third_party/abseil-cpp/absl/random/zipf_distribution.h )
s.files += %w( third_party/abseil-cpp/absl/status/internal/status_internal.h )
s.files += %w( third_party/abseil-cpp/absl/status/internal/statusor_internal.h )
s.files += %w( third_party/abseil-cpp/absl/status/status.cc )
diff --git a/grpc.gyp b/grpc.gyp
index 7ffc7e095e2d2..e9e7939c7cb3e 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -403,6 +403,7 @@
'absl/base:base',
'absl/base:core_headers',
'absl/memory:memory',
+ 'absl/random:random',
'absl/status:status',
'absl/strings:cord',
'absl/strings:str_format',
diff --git a/package.xml b/package.xml
index 4a8f454398c70..48f11943854a0 100644
--- a/package.xml
+++ b/package.xml
@@ -88,6 +88,7 @@
+
@@ -1315,6 +1316,7 @@
+
@@ -1416,6 +1418,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup.py b/setup.py
index 65c7c373f21ee..39e43cef78cce 100644
--- a/setup.py
+++ b/setup.py
@@ -311,8 +311,9 @@ def check_linker_need_libatomic():
if "win32" in sys.platform:
EXTENSION_LIBRARIES += (
'advapi32',
- 'ws2_32',
+ 'bcrypt',
'dbghelp',
+ 'ws2_32',
)
if BUILD_WITH_SYSTEM_OPENSSL:
EXTENSION_LIBRARIES += (
diff --git a/src/abseil-cpp/preprocessed_builds.yaml b/src/abseil-cpp/preprocessed_builds.yaml
index 6c73dd3d5adc4..f82139dbd6f39 100644
--- a/src/abseil-cpp/preprocessed_builds.yaml
+++ b/src/abseil-cpp/preprocessed_builds.yaml
@@ -1003,7 +1003,7 @@
- third_party/abseil-cpp/absl/random/internal/randen_hwaes.h
name: absl/random/internal:randen_hwaes_impl
src:
- - third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc
+ - src/abseil-cpp/randen_hwaes_nohw.cc
- cmake_target: absl::random_internal_randen_slow
deps:
- absl/base:config
diff --git a/src/abseil-cpp/preprocessed_builds.yaml.gen.py b/src/abseil-cpp/preprocessed_builds.yaml.gen.py
index 599cc98de7f38..b45b9faa4c249 100755
--- a/src/abseil-cpp/preprocessed_builds.yaml.gen.py
+++ b/src/abseil-cpp/preprocessed_builds.yaml.gen.py
@@ -166,7 +166,19 @@ def resolve_hdrs(files):
def resolve_srcs(files):
- return [ABSEIL_PATH + "/" + f for f in files if f.endswith(".cc")]
+ srcs = [ABSEIL_PATH + "/" + f for f in files if f.endswith(".cc")]
+ # Replace absl/random/internal/randen_hwaes.cc with
+ # src/abseil-cpp/randen_hwaes_nohw.c
+ # Currently abseil doesn't have a simple way to disable it to use instrinsic
+ # instruction. Some build targets, however, cannot understand those resulting
+ # in build failures. Until abseil gets a build flag to ignore them, this hack
+ # is needed. (https://github.com/grpc/grpc/issues/26478)
+ try:
+ i = srcs.index(ABSEIL_PATH + "/absl/random/internal/randen_hwaes.cc")
+ srcs[i] = "src/abseil-cpp/randen_hwaes_nohw.cc"
+ except ValueError:
+ pass
+ return srcs
def resolve_deps(targets):
diff --git a/src/abseil-cpp/randen_hwaes_nohw.cc b/src/abseil-cpp/randen_hwaes_nohw.cc
new file mode 100644
index 0000000000000..0d424061ae34b
--- /dev/null
+++ b/src/abseil-cpp/randen_hwaes_nohw.cc
@@ -0,0 +1,47 @@
+// Copyright 2021 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.
+
+#include "absl/random/internal/randen_slow.h"
+
+#include "absl/random/internal/randen_hwaes.h"
+
+namespace absl {
+ABSL_NAMESPACE_BEGIN
+namespace random_internal {
+
+// This module is a custome implementation of RandenHwAes forarding all ops
+// to RandenSlow. This is devised to address the issue where some build
+// targets (e.g. php) which cannot specify the compiler options to allow to
+// understand instrinsics used in the actual RandenHwAes implementation.
+// (https://github.com/grpc/grpc/issues/26478)
+
+void RandenHwAes::Generate(const void* keys, void* state_void) {
+ return RandenSlow::Generate(keys, state_void);
+}
+
+void RandenHwAes::Absorb(const void* seed_void, void* state_void) {
+ return RandenSlow::Absorb(seed_void, state_void);
+}
+
+const void* RandenHwAes::GetKeys() {
+ return RandenSlow::GetKeys();
+}
+
+bool HasRandenHwAesImplementation() {
+ return false;
+}
+
+} // namespace random_internal
+ABSL_NAMESPACE_END
+} // namespace absl
diff --git a/src/core/lib/backoff/backoff.cc b/src/core/lib/backoff/backoff.cc
index e536abde0a28e..ca90f2b8c70b4 100644
--- a/src/core/lib/backoff/backoff.cc
+++ b/src/core/lib/backoff/backoff.cc
@@ -26,31 +26,7 @@
namespace grpc_core {
-namespace {
-
-/* Generate a random number between 0 and 1. We roll our own RNG because seeding
- * rand() modifies a global variable we have no control over. */
-double generate_uniform_random_number(uint32_t* rng_state) {
- constexpr uint32_t two_raise_31 = uint32_t(1) << 31;
- *rng_state = (1103515245 * *rng_state + 12345) % two_raise_31;
- return *rng_state / static_cast(two_raise_31);
-}
-
-double generate_uniform_random_number_between(uint32_t* rng_state, double a,
- double b) {
- if (a == b) return a;
- if (a > b) GPR_SWAP(double, a, b); // make sure a < b
- const double range = b - a;
- return a + generate_uniform_random_number(rng_state) * range;
-}
-
-} // namespace
-
-BackOff::BackOff(const Options& options)
- : options_(options),
- rng_state_(static_cast(gpr_now(GPR_CLOCK_REALTIME).tv_nsec)) {
- Reset();
-}
+BackOff::BackOff(const Options& options) : options_(options) { Reset(); }
grpc_millis BackOff::NextAttemptTime() {
if (initial_) {
@@ -60,9 +36,9 @@ grpc_millis BackOff::NextAttemptTime() {
current_backoff_ = static_cast(
std::min(current_backoff_ * options_.multiplier(),
static_cast(options_.max_backoff())));
- const double jitter = generate_uniform_random_number_between(
- &rng_state_, -options_.jitter() * current_backoff_,
- options_.jitter() * current_backoff_);
+ const double jitter =
+ absl::Uniform(rand_gen_, -options_.jitter() * current_backoff_,
+ options_.jitter() * current_backoff_);
const grpc_millis next_timeout =
static_cast(current_backoff_ + jitter);
return next_timeout + grpc_core::ExecCtx::Get()->Now();
@@ -73,6 +49,4 @@ void BackOff::Reset() {
initial_ = true;
}
-void BackOff::SetRandomSeed(uint32_t seed) { rng_state_ = seed; }
-
} // namespace grpc_core
diff --git a/src/core/lib/backoff/backoff.h b/src/core/lib/backoff/backoff.h
index e769d150ef433..57b7743ed68b8 100644
--- a/src/core/lib/backoff/backoff.h
+++ b/src/core/lib/backoff/backoff.h
@@ -23,6 +23,8 @@
#include "src/core/lib/iomgr/exec_ctx.h"
+#include "absl/random/random.h"
+
namespace grpc_core {
/// Implementation of the backoff mechanism described in
@@ -41,8 +43,6 @@ class BackOff {
/// will be the time of the second attempt (rather than the Nth).
void Reset();
- void SetRandomSeed(unsigned int seed);
-
class Options {
public:
Options& set_initial_backoff(grpc_millis initial_backoff) {
@@ -79,7 +79,7 @@ class BackOff {
private:
const Options options_;
- uint32_t rng_state_;
+ absl::InsecureBitGen rand_gen_;
bool initial_;
/// current delay before retries
grpc_millis current_backoff_;
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 66aa2c8b3b802..bee52586049b7 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -15,6 +15,7 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!!
CORE_SOURCE_FILES = [
+ 'src/abseil-cpp/randen_hwaes_nohw.cc',
'src/core/ext/filters/census/grpc_context.cc',
'src/core/ext/filters/client_channel/backend_metric.cc',
'src/core/ext/filters/client_channel/backup_poller.cc',
@@ -667,6 +668,16 @@
'third_party/abseil-cpp/absl/hash/internal/hash.cc',
'third_party/abseil-cpp/absl/hash/internal/wyhash.cc',
'third_party/abseil-cpp/absl/numeric/int128.cc',
+ 'third_party/abseil-cpp/absl/random/discrete_distribution.cc',
+ 'third_party/abseil-cpp/absl/random/gaussian_distribution.cc',
+ 'third_party/abseil-cpp/absl/random/internal/pool_urbg.cc',
+ 'third_party/abseil-cpp/absl/random/internal/randen.cc',
+ 'third_party/abseil-cpp/absl/random/internal/randen_detect.cc',
+ 'third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc',
+ 'third_party/abseil-cpp/absl/random/internal/randen_slow.cc',
+ 'third_party/abseil-cpp/absl/random/internal/seed_material.cc',
+ 'third_party/abseil-cpp/absl/random/seed_gen_exception.cc',
+ 'third_party/abseil-cpp/absl/random/seed_sequences.cc',
'third_party/abseil-cpp/absl/status/status.cc',
'third_party/abseil-cpp/absl/status/status_payload_printer.cc',
'third_party/abseil-cpp/absl/status/statusor.cc',
diff --git a/templates/Makefile.template b/templates/Makefile.template
index 5afb36ce6a47f..a8a5151e52226 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -284,7 +284,7 @@
endif
ifeq ($(SYSTEM),MINGW32)
- LIBS = m pthread ws2_32 dbghelp
+ LIBS = m pthread ws2_32 dbghelp bcrypt
LDFLAGS += -pthread
endif
diff --git a/test/core/backoff/backoff_test.cc b/test/core/backoff/backoff_test.cc
index 62d6059044030..52953bbd83bcc 100644
--- a/test/core/backoff/backoff_test.cc
+++ b/test/core/backoff/backoff_test.cc
@@ -138,8 +138,6 @@ TEST(BackOffTest, JitterBackOff) {
.set_max_backoff(max_backoff);
BackOff backoff(options);
- backoff.SetRandomSeed(0); // force consistent PRNG
-
grpc_core::ExecCtx exec_ctx;
grpc_millis next = backoff.NextAttemptTime();
EXPECT_EQ(next - grpc_core::ExecCtx::Get()->Now(), initial_backoff);