grpc 1.74.1 → 1.75.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +83 -41
- data/include/grpc/credentials.h +7 -1
- data/src/core/call/client_call.cc +4 -4
- data/src/core/call/filter_fusion.h +1230 -0
- data/src/core/call/metadata.cc +22 -0
- data/src/core/call/metadata.h +24 -2
- data/src/core/channelz/channelz.cc +10 -17
- data/src/core/channelz/channelz.h +58 -19
- data/src/core/channelz/channelz_registry.cc +0 -162
- data/src/core/channelz/channelz_registry.h +14 -7
- data/src/core/channelz/property_list.cc +19 -23
- data/src/core/channelz/property_list.h +3 -1
- data/src/core/channelz/v2tov1/convert.cc +683 -0
- data/src/core/channelz/v2tov1/convert.h +58 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +425 -0
- data/src/core/channelz/v2tov1/legacy_api.h +32 -0
- data/src/core/channelz/v2tov1/property_list.cc +118 -0
- data/src/core/channelz/v2tov1/property_list.h +52 -0
- data/src/core/client_channel/client_channel_filter.cc +5 -4
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +2 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +6 -5
- data/src/core/client_channel/subchannel.cc +14 -6
- data/src/core/client_channel/subchannel.h +2 -0
- data/src/core/config/core_configuration.cc +3 -1
- data/src/core/config/core_configuration.h +12 -0
- data/src/core/credentials/transport/alts/alts_credentials.cc +5 -0
- data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +2 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +3 -1
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +1 -1
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +19 -8
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +96 -54
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +15 -2
- data/src/core/credentials/transport/tls/spiffe_utils.cc +371 -0
- data/src/core/credentials/transport/tls/spiffe_utils.h +171 -0
- data/src/core/credentials/transport/tls/ssl_utils.cc +11 -10
- data/src/core/credentials/transport/tls/ssl_utils.h +4 -2
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -26
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -12
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -2
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -6
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -6
- data/src/core/ext/filters/message_size/message_size_filter.cc +4 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +89 -6
- data/src/core/ext/transport/chttp2/transport/frame.h +38 -0
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +5 -14
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +294 -78
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +128 -9
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +11 -38
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +52 -35
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +61 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +142 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +81 -3
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +22 -5
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +607 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +254 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +6 -4
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +4959 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +1111 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +108 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +142 -54
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +18 -14
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +2 -2
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +716 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h +227 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +86 -88
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +2 -2
- data/src/core/filter/auth/auth_filters.h +2 -2
- data/src/core/filter/fused_filters.cc +154 -0
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +1 -1
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +965 -0
- data/src/core/handshaker/security/secure_endpoint.cc +28 -13
- data/src/core/handshaker/security/secure_endpoint.h +8 -0
- data/src/core/lib/channel/promise_based_filter.cc +15 -25
- data/src/core/lib/channel/promise_based_filter.h +6 -5
- data/src/core/lib/event_engine/ares_resolver.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +9 -5
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +2 -1
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +263 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.h +107 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +31 -3
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +12 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +12 -10
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +6 -4
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +15 -14
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -5
- data/src/core/lib/event_engine/posix_engine/event_poller.h +0 -8
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +11 -5
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -2
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +1 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -4
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +188 -199
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +30 -45
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +2 -1
- data/src/core/lib/experiments/experiments.cc +120 -6
- data/src/core/lib/experiments/experiments.h +46 -3
- data/src/core/lib/iomgr/combiner.cc +1 -1
- data/src/core/lib/iomgr/exec_ctx.h +3 -9
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +3 -3
- data/src/core/lib/promise/activity.h +2 -2
- data/src/core/lib/promise/mpsc.cc +8 -8
- data/src/core/lib/promise/party.cc +7 -7
- data/src/core/lib/promise/party.h +4 -4
- data/src/core/lib/promise/poll.h +10 -0
- data/src/core/lib/resource_quota/memory_quota.cc +90 -3
- data/src/core/lib/resource_quota/memory_quota.h +20 -9
- data/src/core/lib/resource_quota/periodic_update.cc +14 -0
- data/src/core/lib/resource_quota/periodic_update.h +8 -0
- data/src/core/lib/resource_quota/resource_quota.cc +15 -4
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/surface/call.cc +5 -5
- data/src/core/lib/surface/call.h +6 -5
- data/src/core/lib/surface/completion_queue.cc +2 -4
- data/src/core/lib/surface/filter_stack_call.cc +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.h +3 -3
- data/src/core/load_balancing/endpoint_list.cc +29 -2
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +3 -3
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -1
- data/src/core/load_balancing/pick_first/pick_first.cc +12 -5
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +5 -3
- data/src/core/net/socket_mutator.cc +19 -0
- data/src/core/net/socket_mutator.h +25 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +6 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +2 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +8 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -1
- data/src/core/resolver/xds/xds_dependency_manager.cc +1 -1
- data/src/core/server/server.cc +1 -1
- data/src/core/server/server_call_tracer_filter.cc +0 -66
- data/src/core/server/server_call_tracer_filter.h +64 -0
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/service_config/service_config_channel_arg_filter.cc +3 -60
- data/src/core/service_config/service_config_channel_arg_filter.h +82 -0
- data/src/core/telemetry/call_tracer.cc +20 -14
- data/src/core/telemetry/call_tracer.h +22 -17
- data/src/core/telemetry/metrics.h +8 -8
- data/src/core/telemetry/stats_data.cc +151 -151
- data/src/core/telemetry/stats_data.h +87 -87
- data/src/core/transport/auth_context.cc +20 -0
- data/src/core/transport/auth_context.h +4 -0
- data/src/core/transport/auth_context_comparator_registry.h +69 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -3
- data/src/core/tsi/ssl_transport_security.cc +202 -32
- data/src/core/tsi/ssl_transport_security.h +19 -10
- data/src/core/tsi/ssl_transport_security_utils.cc +21 -0
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -1
- data/src/core/util/latent_see.cc +178 -146
- data/src/core/util/latent_see.h +245 -188
- data/src/core/util/single_set_ptr.h +5 -2
- data/src/core/util/useful.h +91 -0
- data/src/core/util/windows/directory_reader.cc +1 -0
- data/src/core/util/windows/thd.cc +1 -3
- data/src/core/util/work_serializer.cc +1 -1
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +32 -5
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +5 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +5 -6
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/cares/cares/include/ares.h +925 -460
- data/third_party/cares/cares/include/ares_dns.h +86 -71
- data/third_party/cares/cares/include/ares_dns_record.h +1118 -0
- data/third_party/cares/cares/include/ares_nameser.h +215 -189
- data/third_party/cares/cares/include/ares_version.h +37 -14
- data/third_party/cares/cares/src/lib/ares_addrinfo2hostent.c +305 -0
- data/third_party/cares/cares/src/lib/ares_addrinfo_localhost.c +245 -0
- data/third_party/cares/cares/src/lib/ares_android.c +216 -164
- data/third_party/cares/cares/src/lib/ares_android.h +25 -14
- data/third_party/cares/cares/src/lib/ares_cancel.c +68 -44
- data/third_party/cares/cares/src/lib/ares_close_sockets.c +137 -0
- data/third_party/cares/cares/src/lib/ares_conn.c +511 -0
- data/third_party/cares/cares/src/lib/ares_conn.h +196 -0
- data/third_party/cares/cares/src/lib/ares_cookie.c +461 -0
- data/third_party/cares/cares/src/lib/ares_data.c +93 -181
- data/third_party/cares/cares/src/lib/ares_data.h +50 -39
- data/third_party/cares/cares/src/lib/ares_destroy.c +127 -89
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +35 -24
- data/third_party/cares/cares/src/lib/ares_free_string.c +24 -16
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +45 -38
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +549 -663
- data/third_party/cares/cares/src/lib/ares_getenv.c +25 -15
- data/third_party/cares/cares/src/lib/ares_getenv.h +26 -18
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +163 -221
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +222 -223
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +328 -338
- data/third_party/cares/cares/src/lib/ares_hosts_file.c +952 -0
- data/third_party/cares/cares/src/lib/ares_inet_net_pton.h +25 -19
- data/third_party/cares/cares/src/lib/ares_init.c +425 -2091
- data/third_party/cares/cares/src/lib/ares_ipv6.h +63 -33
- data/third_party/cares/cares/src/lib/ares_library_init.c +110 -54
- data/third_party/cares/cares/src/lib/ares_metrics.c +261 -0
- data/third_party/cares/cares/src/lib/ares_options.c +418 -332
- data/third_party/cares/cares/src/lib/ares_parse_into_addrinfo.c +179 -0
- data/third_party/cares/cares/src/lib/ares_private.h +558 -356
- data/third_party/cares/cares/src/lib/ares_process.c +1224 -1369
- data/third_party/cares/cares/src/lib/ares_qcache.c +430 -0
- data/third_party/cares/cares/src/lib/ares_query.c +126 -121
- data/third_party/cares/cares/src/lib/ares_search.c +564 -262
- data/third_party/cares/cares/src/lib/ares_send.c +264 -93
- data/third_party/cares/cares/src/lib/ares_set_socket_functions.c +588 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +115 -111
- data/third_party/cares/cares/src/lib/ares_socket.c +425 -0
- data/third_party/cares/cares/src/lib/ares_socket.h +163 -0
- data/third_party/cares/cares/src/lib/ares_sortaddrinfo.c +447 -0
- data/third_party/cares/cares/src/lib/ares_strerror.c +83 -48
- data/third_party/cares/cares/src/lib/ares_sysconfig.c +639 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_files.c +839 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_mac.c +373 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_win.c +621 -0
- data/third_party/cares/cares/src/lib/ares_timeout.c +136 -73
- data/third_party/cares/cares/src/lib/ares_update_servers.c +1362 -0
- data/third_party/cares/cares/src/lib/ares_version.c +29 -4
- data/third_party/cares/cares/src/lib/config-dos.h +88 -89
- data/third_party/cares/cares/src/lib/config-win32.h +122 -77
- data/third_party/cares/cares/src/lib/dsa/ares_array.c +394 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.c +447 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.h +174 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_asvp.c +224 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_dict.c +228 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_strvp.c +210 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_szvp.c +188 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpstr.c +186 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpvp.c +194 -0
- data/third_party/cares/cares/src/lib/dsa/ares_llist.c +382 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.c +479 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.h +207 -0
- data/third_party/cares/cares/src/lib/event/ares_event.h +191 -0
- data/third_party/cares/cares/src/lib/event/ares_event_configchg.c +743 -0
- data/third_party/cares/cares/src/lib/event/ares_event_epoll.c +192 -0
- data/third_party/cares/cares/src/lib/event/ares_event_kqueue.c +248 -0
- data/third_party/cares/cares/src/lib/event/ares_event_poll.c +140 -0
- data/third_party/cares/cares/src/lib/event/ares_event_select.c +159 -0
- data/third_party/cares/cares/src/lib/event/ares_event_thread.c +567 -0
- data/third_party/cares/cares/src/lib/event/ares_event_wake_pipe.c +166 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.c +978 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.h +161 -0
- data/third_party/cares/cares/src/lib/include/ares_array.h +276 -0
- data/third_party/cares/cares/src/lib/include/ares_buf.h +732 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_asvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_dict.h +123 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_strvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_szvp.h +118 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpstr.h +111 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpvp.h +128 -0
- data/third_party/cares/cares/src/lib/include/ares_llist.h +239 -0
- data/third_party/cares/cares/src/lib/include/ares_mem.h +38 -0
- data/third_party/cares/cares/src/lib/include/ares_str.h +244 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +202 -157
- data/third_party/cares/cares/src/lib/inet_ntop.c +87 -69
- data/third_party/cares/cares/src/lib/legacy/ares_create_query.c +78 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_name.c +99 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_string.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_fds.c +80 -0
- data/third_party/cares/cares/src/lib/legacy/ares_getsock.c +85 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_a_reply.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_aaaa_reply.c +109 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_caa_reply.c +137 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_mx_reply.c +110 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_naptr_reply.c +132 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ns_reply.c +154 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ptr_reply.c +213 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_soa_reply.c +115 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_srv_reply.c +114 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_txt_reply.c +144 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_uri_reply.c +113 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_mapping.c +982 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.c +307 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.h +72 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_name.c +673 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_parse.c +1329 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_private.h +273 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_record.c +1661 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_write.c +1229 -0
- data/third_party/cares/cares/src/lib/str/ares_buf.c +1498 -0
- data/third_party/cares/cares/src/lib/str/ares_str.c +508 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.c +90 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.h +51 -0
- data/third_party/cares/cares/src/lib/thirdparty/apple/dnsinfo.h +122 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.c +628 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.h +139 -0
- data/third_party/cares/cares/src/lib/util/ares_math.c +158 -0
- data/third_party/cares/cares/src/lib/util/ares_math.h +45 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.c +389 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.h +36 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.c +614 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.h +60 -0
- data/third_party/cares/cares/src/lib/util/ares_time.h +48 -0
- data/third_party/cares/cares/src/lib/util/ares_timeval.c +95 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.c +1626 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.h +252 -0
- data/third_party/cares/cares/src/lib/windows_port.c +16 -9
- metadata +121 -49
- data/src/core/util/ring_buffer.h +0 -122
- data/third_party/cares/cares/include/ares_rules.h +0 -125
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +0 -266
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +0 -240
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +0 -260
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +0 -229
- data/third_party/cares/cares/src/lib/ares__read_line.c +0 -73
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +0 -258
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +0 -507
- data/third_party/cares/cares/src/lib/ares__timeval.c +0 -111
- data/third_party/cares/cares/src/lib/ares_create_query.c +0 -197
- data/third_party/cares/cares/src/lib/ares_expand_name.c +0 -311
- data/third_party/cares/cares/src/lib/ares_expand_string.c +0 -67
- data/third_party/cares/cares/src/lib/ares_fds.c +0 -59
- data/third_party/cares/cares/src/lib/ares_getsock.c +0 -66
- data/third_party/cares/cares/src/lib/ares_iphlpapi.h +0 -221
- data/third_party/cares/cares/src/lib/ares_llist.c +0 -63
- data/third_party/cares/cares/src/lib/ares_llist.h +0 -39
- data/third_party/cares/cares/src/lib/ares_mkquery.c +0 -24
- data/third_party/cares/cares/src/lib/ares_nowarn.c +0 -260
- data/third_party/cares/cares/src/lib/ares_nowarn.h +0 -61
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +0 -90
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +0 -92
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +0 -199
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +0 -164
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +0 -183
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +0 -177
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +0 -228
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +0 -179
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +0 -168
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +0 -214
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +0 -184
- data/third_party/cares/cares/src/lib/ares_platform.c +0 -11042
- data/third_party/cares/cares/src/lib/ares_platform.h +0 -43
- data/third_party/cares/cares/src/lib/ares_rand.c +0 -279
- data/third_party/cares/cares/src/lib/ares_strcasecmp.c +0 -66
- data/third_party/cares/cares/src/lib/ares_strcasecmp.h +0 -30
- data/third_party/cares/cares/src/lib/ares_strdup.c +0 -42
- data/third_party/cares/cares/src/lib/ares_strdup.h +0 -24
- data/third_party/cares/cares/src/lib/ares_strsplit.c +0 -94
- data/third_party/cares/cares/src/lib/ares_strsplit.h +0 -42
- data/third_party/cares/cares/src/lib/ares_writev.c +0 -79
- data/third_party/cares/cares/src/lib/ares_writev.h +0 -36
- data/third_party/cares/cares/src/lib/bitncmp.c +0 -59
- data/third_party/cares/cares/src/lib/bitncmp.h +0 -26
- data/third_party/cares/cares/src/lib/setup_once.h +0 -554
- data/third_party/cares/cares/src/tools/ares_getopt.h +0 -53
@@ -48,6 +48,13 @@
|
|
48
48
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
49
49
|
#endif // GRPC_POSIX_SOCKET_TCP
|
50
50
|
|
51
|
+
#if defined(GRPC_POSIX_SOCKET_TCP) && \
|
52
|
+
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
53
|
+
#define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING true
|
54
|
+
#else
|
55
|
+
#define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING false
|
56
|
+
#endif
|
57
|
+
|
51
58
|
namespace grpc_event_engine::experimental {
|
52
59
|
|
53
60
|
#ifdef GRPC_POSIX_SOCKET_TCP
|
@@ -94,38 +101,6 @@ class AsyncConnect {
|
|
94
101
|
bool connect_cancelled_;
|
95
102
|
};
|
96
103
|
|
97
|
-
// A helper class to manager lifetime of the poller associated with the
|
98
|
-
// posix EventEngine.
|
99
|
-
class PosixEnginePollerManager
|
100
|
-
: public grpc_event_engine::experimental::Scheduler {
|
101
|
-
public:
|
102
|
-
explicit PosixEnginePollerManager(std::shared_ptr<ThreadPool> executor);
|
103
|
-
explicit PosixEnginePollerManager(
|
104
|
-
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller>
|
105
|
-
poller);
|
106
|
-
grpc_event_engine::experimental::PosixEventPoller* Poller() const {
|
107
|
-
return poller_.get();
|
108
|
-
}
|
109
|
-
|
110
|
-
ThreadPool* Executor() { return executor_.get(); }
|
111
|
-
|
112
|
-
void Run(experimental::EventEngine::Closure* closure) override;
|
113
|
-
void Run(absl::AnyInvocable<void()>) override;
|
114
|
-
|
115
|
-
bool IsShuttingDown() {
|
116
|
-
return poller_state_.load(std::memory_order_acquire) ==
|
117
|
-
PollerState::kShuttingDown;
|
118
|
-
}
|
119
|
-
void TriggerShutdown();
|
120
|
-
|
121
|
-
private:
|
122
|
-
enum class PollerState { kExternal, kOk, kShuttingDown };
|
123
|
-
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller> poller_;
|
124
|
-
std::atomic<PollerState> poller_state_{PollerState::kOk};
|
125
|
-
std::shared_ptr<ThreadPool> executor_;
|
126
|
-
bool trigger_shutdown_called_;
|
127
|
-
};
|
128
|
-
|
129
104
|
#endif // GRPC_POSIX_SOCKET_TCP
|
130
105
|
|
131
106
|
// An iomgr-based Posix EventEngine implementation.
|
@@ -219,14 +194,14 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
219
194
|
|
220
195
|
PosixEventEngine();
|
221
196
|
|
222
|
-
#
|
197
|
+
#if GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
223
198
|
// Constructs an EventEngine which has a shared ownership of the poller. Use
|
224
199
|
// the MakeTestOnlyPosixEventEngine static method to call this. Its expected
|
225
200
|
// to be used only in tests.
|
226
201
|
explicit PosixEventEngine(
|
227
202
|
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller>
|
228
203
|
poller);
|
229
|
-
#endif //
|
204
|
+
#endif // GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
230
205
|
|
231
206
|
EventEngine::TaskHandle RunAfterInternal(Duration when,
|
232
207
|
absl::AnyInvocable<void()> cb);
|
@@ -258,30 +233,36 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
258
233
|
grpc_core::Mutex mu_;
|
259
234
|
TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_);
|
260
235
|
std::atomic<intptr_t> aba_token_{0};
|
261
|
-
#if
|
262
|
-
|
236
|
+
#if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
237
|
+
|
238
|
+
void RegisterAresResolverForFork(AresResolver* resolver);
|
239
|
+
|
240
|
+
#if GRPC_ENABLE_FORK_SUPPORT
|
263
241
|
// A separate mutex to avoid deadlocks.
|
264
242
|
grpc_core::Mutex resolver_handles_mu_;
|
265
243
|
absl::InlinedVector<std::weak_ptr<AresResolver::ReinitHandle>, 16>
|
266
244
|
resolver_handles_ ABSL_GUARDED_BY(resolver_handles_mu_);
|
267
|
-
#endif //
|
268
|
-
|
245
|
+
#endif // GRPC_ENABLE_FORK_SUPPORT
|
246
|
+
#endif // GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
269
247
|
std::shared_ptr<ThreadPool> executor_;
|
270
248
|
|
271
|
-
#if
|
272
|
-
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
249
|
+
#if GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
273
250
|
|
274
251
|
// RAII wrapper for a polling cycle. Starts a new one in ctor and stops
|
275
252
|
// in dtor.
|
276
253
|
class PollingCycle {
|
277
254
|
public:
|
278
|
-
explicit PollingCycle(
|
255
|
+
explicit PollingCycle(
|
256
|
+
std::shared_ptr<ThreadPool> executor,
|
257
|
+
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller>
|
258
|
+
poller);
|
279
259
|
~PollingCycle();
|
280
260
|
|
281
261
|
private:
|
282
262
|
void PollerWorkInternal();
|
283
263
|
|
284
|
-
|
264
|
+
std::shared_ptr<ThreadPool> executor_;
|
265
|
+
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller> poller_;
|
285
266
|
grpc_core::Mutex mu_;
|
286
267
|
std::atomic_bool done_{false};
|
287
268
|
int is_scheduled_ ABSL_GUARDED_BY(&mu_) = 0;
|
@@ -291,13 +272,17 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
291
272
|
void SchedulePoller();
|
292
273
|
void ResetPollCycle();
|
293
274
|
|
294
|
-
|
275
|
+
PosixEventPoller* GetPollerChecked() const {
|
276
|
+
CHECK_NE(poller_, nullptr);
|
277
|
+
return poller_.get();
|
278
|
+
}
|
279
|
+
|
280
|
+
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller> poller_;
|
295
281
|
|
296
282
|
// Ensures there's ever only one of these.
|
297
283
|
std::optional<PollingCycle> polling_cycle_ ABSL_GUARDED_BY(&mu_);
|
298
284
|
|
299
|
-
#endif //
|
300
|
-
// !defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
285
|
+
#endif // GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
301
286
|
|
302
287
|
std::shared_ptr<TimerManager> timer_manager_;
|
303
288
|
};
|
@@ -44,7 +44,7 @@
|
|
44
44
|
#include "src/core/lib/event_engine/posix_engine/posix_interface.h"
|
45
45
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
46
46
|
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
47
|
-
#include "src/core/
|
47
|
+
#include "src/core/net/socket_mutator.h"
|
48
48
|
#include "src/core/util/status_helper.h"
|
49
49
|
#include "src/core/util/strerror.h"
|
50
50
|
#include "src/core/util/time.h"
|
@@ -24,8 +24,8 @@
|
|
24
24
|
#include <utility>
|
25
25
|
|
26
26
|
#include "src/core/lib/iomgr/port.h"
|
27
|
-
#include "src/core/lib/iomgr/socket_mutator.h"
|
28
27
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
28
|
+
#include "src/core/net/socket_mutator.h"
|
29
29
|
#include "src/core/util/ref_counted_ptr.h"
|
30
30
|
|
31
31
|
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
@@ -18,7 +18,6 @@
|
|
18
18
|
|
19
19
|
#if GRPC_ARES == 1 && defined(GRPC_WINDOWS_SOCKET_ARES_EV_DRIVER)
|
20
20
|
|
21
|
-
#include <ares.h>
|
22
21
|
#include <grpc/support/log_windows.h>
|
23
22
|
#include <winsock2.h>
|
24
23
|
|
@@ -27,6 +26,8 @@
|
|
27
26
|
#include "absl/status/status.h"
|
28
27
|
#include "absl/strings/str_format.h"
|
29
28
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
29
|
+
// We pull in ares.h transitively here, ares.h is not self-contained
|
30
|
+
// w.r.t. windows headers though, so make sure pull them in above.
|
30
31
|
#include "src/core/lib/event_engine/ares_resolver.h"
|
31
32
|
#include "src/core/lib/event_engine/grpc_polled_fd.h"
|
32
33
|
#include "src/core/lib/event_engine/windows/grpc_polled_fd_windows.h"
|
@@ -26,6 +26,12 @@ namespace {
|
|
26
26
|
const char* const description_call_tracer_in_transport =
|
27
27
|
"Transport directly passes byte counts to CallTracer.";
|
28
28
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
29
|
+
const char* const description_channelz_use_v2_for_v1_api =
|
30
|
+
"Use the v2 channelz API for the v1 channelz API.";
|
31
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
|
32
|
+
const char* const description_channelz_use_v2_for_v1_service =
|
33
|
+
"Use the v2 channelz service for the v1 channelz service.";
|
34
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
|
29
35
|
const char* const description_chaotic_good_framing_layer =
|
30
36
|
"Enable the chaotic good framing layer.";
|
31
37
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -76,6 +82,9 @@ const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
76
82
|
const char* const description_free_large_allocator =
|
77
83
|
"If set, return all free bytes from a \042big\042 allocator";
|
78
84
|
const char* const additional_constraints_free_large_allocator = "{}";
|
85
|
+
const char* const description_fuse_filters =
|
86
|
+
"If set, individual filters are merged into fused filters";
|
87
|
+
const char* const additional_constraints_fuse_filters = "{}";
|
79
88
|
const char* const description_keep_alive_ping_timer_batch =
|
80
89
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
81
90
|
"callback to re-schedule itself to the next ping interval.";
|
@@ -96,6 +105,13 @@ const char* const additional_constraints_multiping = "{}";
|
|
96
105
|
const char* const description_pick_first_ignore_empty_updates =
|
97
106
|
"Ignore empty resolutions in pick_first";
|
98
107
|
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
108
|
+
const char* const description_pipelined_read_secure_endpoint =
|
109
|
+
"Enable pipelined reads for EventEngine secure endpoints";
|
110
|
+
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
111
|
+
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
112
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
113
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
|
114
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
99
115
|
const char* const description_pollset_alternative =
|
100
116
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
101
117
|
"alternatives when enabled.";
|
@@ -124,6 +140,11 @@ const char* const description_promise_based_inproc_transport =
|
|
124
140
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
125
141
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
126
142
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
143
|
+
const char* const description_rr_wrr_connect_from_random_index =
|
144
|
+
"RR and WRR LB policies start connecting from a random index in the "
|
145
|
+
"address list.";
|
146
|
+
const char* const additional_constraints_rr_wrr_connect_from_random_index =
|
147
|
+
"{}";
|
127
148
|
const char* const description_schedule_cancellation_over_write =
|
128
149
|
"Allow cancellation op to be scheduled over a write";
|
129
150
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -179,6 +200,13 @@ namespace grpc_core {
|
|
179
200
|
const ExperimentMetadata g_experiment_metadata[] = {
|
180
201
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
181
202
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
203
|
+
{"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api,
|
204
|
+
additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false,
|
205
|
+
true},
|
206
|
+
{"channelz_use_v2_for_v1_service",
|
207
|
+
description_channelz_use_v2_for_v1_service,
|
208
|
+
additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
|
209
|
+
true},
|
182
210
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
183
211
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
184
212
|
false},
|
@@ -210,6 +238,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
210
238
|
false},
|
211
239
|
{"free_large_allocator", description_free_large_allocator,
|
212
240
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
241
|
+
{"fuse_filters", description_fuse_filters,
|
242
|
+
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
213
243
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
214
244
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
215
245
|
true},
|
@@ -227,6 +257,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
227
257
|
description_pick_first_ignore_empty_updates,
|
228
258
|
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
229
259
|
true},
|
260
|
+
{"pipelined_read_secure_endpoint",
|
261
|
+
description_pipelined_read_secure_endpoint,
|
262
|
+
additional_constraints_pipelined_read_secure_endpoint,
|
263
|
+
required_experiments_pipelined_read_secure_endpoint, 3, false, false},
|
230
264
|
{"pollset_alternative", description_pollset_alternative,
|
231
265
|
additional_constraints_pollset_alternative,
|
232
266
|
required_experiments_pollset_alternative, 2, false, false},
|
@@ -247,6 +281,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
247
281
|
false},
|
248
282
|
{"retry_in_callv3", description_retry_in_callv3,
|
249
283
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
284
|
+
{"rr_wrr_connect_from_random_index",
|
285
|
+
description_rr_wrr_connect_from_random_index,
|
286
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false,
|
287
|
+
true},
|
250
288
|
{"schedule_cancellation_over_write",
|
251
289
|
description_schedule_cancellation_over_write,
|
252
290
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -261,8 +299,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
261
299
|
required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
|
262
300
|
{"server_global_callbacks_ownership",
|
263
301
|
description_server_global_callbacks_ownership,
|
264
|
-
additional_constraints_server_global_callbacks_ownership, nullptr, 0,
|
265
|
-
|
302
|
+
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
303
|
+
true},
|
266
304
|
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
267
305
|
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
268
306
|
true},
|
@@ -291,6 +329,12 @@ namespace {
|
|
291
329
|
const char* const description_call_tracer_in_transport =
|
292
330
|
"Transport directly passes byte counts to CallTracer.";
|
293
331
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
332
|
+
const char* const description_channelz_use_v2_for_v1_api =
|
333
|
+
"Use the v2 channelz API for the v1 channelz API.";
|
334
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
|
335
|
+
const char* const description_channelz_use_v2_for_v1_service =
|
336
|
+
"Use the v2 channelz service for the v1 channelz service.";
|
337
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
|
294
338
|
const char* const description_chaotic_good_framing_layer =
|
295
339
|
"Enable the chaotic good framing layer.";
|
296
340
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -341,6 +385,9 @@ const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
341
385
|
const char* const description_free_large_allocator =
|
342
386
|
"If set, return all free bytes from a \042big\042 allocator";
|
343
387
|
const char* const additional_constraints_free_large_allocator = "{}";
|
388
|
+
const char* const description_fuse_filters =
|
389
|
+
"If set, individual filters are merged into fused filters";
|
390
|
+
const char* const additional_constraints_fuse_filters = "{}";
|
344
391
|
const char* const description_keep_alive_ping_timer_batch =
|
345
392
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
346
393
|
"callback to re-schedule itself to the next ping interval.";
|
@@ -361,6 +408,13 @@ const char* const additional_constraints_multiping = "{}";
|
|
361
408
|
const char* const description_pick_first_ignore_empty_updates =
|
362
409
|
"Ignore empty resolutions in pick_first";
|
363
410
|
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
411
|
+
const char* const description_pipelined_read_secure_endpoint =
|
412
|
+
"Enable pipelined reads for EventEngine secure endpoints";
|
413
|
+
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
414
|
+
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
415
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
416
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
|
417
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
364
418
|
const char* const description_pollset_alternative =
|
365
419
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
366
420
|
"alternatives when enabled.";
|
@@ -389,6 +443,11 @@ const char* const description_promise_based_inproc_transport =
|
|
389
443
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
390
444
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
391
445
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
446
|
+
const char* const description_rr_wrr_connect_from_random_index =
|
447
|
+
"RR and WRR LB policies start connecting from a random index in the "
|
448
|
+
"address list.";
|
449
|
+
const char* const additional_constraints_rr_wrr_connect_from_random_index =
|
450
|
+
"{}";
|
392
451
|
const char* const description_schedule_cancellation_over_write =
|
393
452
|
"Allow cancellation op to be scheduled over a write";
|
394
453
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -444,6 +503,13 @@ namespace grpc_core {
|
|
444
503
|
const ExperimentMetadata g_experiment_metadata[] = {
|
445
504
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
446
505
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
506
|
+
{"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api,
|
507
|
+
additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false,
|
508
|
+
true},
|
509
|
+
{"channelz_use_v2_for_v1_service",
|
510
|
+
description_channelz_use_v2_for_v1_service,
|
511
|
+
additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
|
512
|
+
true},
|
447
513
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
448
514
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
449
515
|
false},
|
@@ -475,6 +541,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
475
541
|
false},
|
476
542
|
{"free_large_allocator", description_free_large_allocator,
|
477
543
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
544
|
+
{"fuse_filters", description_fuse_filters,
|
545
|
+
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
478
546
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
479
547
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
480
548
|
true},
|
@@ -492,6 +560,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
492
560
|
description_pick_first_ignore_empty_updates,
|
493
561
|
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
494
562
|
true},
|
563
|
+
{"pipelined_read_secure_endpoint",
|
564
|
+
description_pipelined_read_secure_endpoint,
|
565
|
+
additional_constraints_pipelined_read_secure_endpoint,
|
566
|
+
required_experiments_pipelined_read_secure_endpoint, 3, false, false},
|
495
567
|
{"pollset_alternative", description_pollset_alternative,
|
496
568
|
additional_constraints_pollset_alternative,
|
497
569
|
required_experiments_pollset_alternative, 2, false, false},
|
@@ -512,6 +584,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
512
584
|
false},
|
513
585
|
{"retry_in_callv3", description_retry_in_callv3,
|
514
586
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
587
|
+
{"rr_wrr_connect_from_random_index",
|
588
|
+
description_rr_wrr_connect_from_random_index,
|
589
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false,
|
590
|
+
true},
|
515
591
|
{"schedule_cancellation_over_write",
|
516
592
|
description_schedule_cancellation_over_write,
|
517
593
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -526,8 +602,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
526
602
|
required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
|
527
603
|
{"server_global_callbacks_ownership",
|
528
604
|
description_server_global_callbacks_ownership,
|
529
|
-
additional_constraints_server_global_callbacks_ownership, nullptr, 0,
|
530
|
-
|
605
|
+
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
606
|
+
true},
|
531
607
|
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
532
608
|
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
533
609
|
true},
|
@@ -556,6 +632,12 @@ namespace {
|
|
556
632
|
const char* const description_call_tracer_in_transport =
|
557
633
|
"Transport directly passes byte counts to CallTracer.";
|
558
634
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
635
|
+
const char* const description_channelz_use_v2_for_v1_api =
|
636
|
+
"Use the v2 channelz API for the v1 channelz API.";
|
637
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
|
638
|
+
const char* const description_channelz_use_v2_for_v1_service =
|
639
|
+
"Use the v2 channelz service for the v1 channelz service.";
|
640
|
+
const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
|
559
641
|
const char* const description_chaotic_good_framing_layer =
|
560
642
|
"Enable the chaotic good framing layer.";
|
561
643
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -606,6 +688,9 @@ const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
606
688
|
const char* const description_free_large_allocator =
|
607
689
|
"If set, return all free bytes from a \042big\042 allocator";
|
608
690
|
const char* const additional_constraints_free_large_allocator = "{}";
|
691
|
+
const char* const description_fuse_filters =
|
692
|
+
"If set, individual filters are merged into fused filters";
|
693
|
+
const char* const additional_constraints_fuse_filters = "{}";
|
609
694
|
const char* const description_keep_alive_ping_timer_batch =
|
610
695
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
611
696
|
"callback to re-schedule itself to the next ping interval.";
|
@@ -626,6 +711,13 @@ const char* const additional_constraints_multiping = "{}";
|
|
626
711
|
const char* const description_pick_first_ignore_empty_updates =
|
627
712
|
"Ignore empty resolutions in pick_first";
|
628
713
|
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
714
|
+
const char* const description_pipelined_read_secure_endpoint =
|
715
|
+
"Enable pipelined reads for EventEngine secure endpoints";
|
716
|
+
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
717
|
+
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
718
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
719
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
|
720
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
629
721
|
const char* const description_pollset_alternative =
|
630
722
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
631
723
|
"alternatives when enabled.";
|
@@ -654,6 +746,11 @@ const char* const description_promise_based_inproc_transport =
|
|
654
746
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
655
747
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
656
748
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
749
|
+
const char* const description_rr_wrr_connect_from_random_index =
|
750
|
+
"RR and WRR LB policies start connecting from a random index in the "
|
751
|
+
"address list.";
|
752
|
+
const char* const additional_constraints_rr_wrr_connect_from_random_index =
|
753
|
+
"{}";
|
657
754
|
const char* const description_schedule_cancellation_over_write =
|
658
755
|
"Allow cancellation op to be scheduled over a write";
|
659
756
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -709,6 +806,13 @@ namespace grpc_core {
|
|
709
806
|
const ExperimentMetadata g_experiment_metadata[] = {
|
710
807
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
711
808
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
809
|
+
{"channelz_use_v2_for_v1_api", description_channelz_use_v2_for_v1_api,
|
810
|
+
additional_constraints_channelz_use_v2_for_v1_api, nullptr, 0, false,
|
811
|
+
true},
|
812
|
+
{"channelz_use_v2_for_v1_service",
|
813
|
+
description_channelz_use_v2_for_v1_service,
|
814
|
+
additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
|
815
|
+
true},
|
712
816
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
713
817
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
714
818
|
false},
|
@@ -740,6 +844,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
740
844
|
false},
|
741
845
|
{"free_large_allocator", description_free_large_allocator,
|
742
846
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
847
|
+
{"fuse_filters", description_fuse_filters,
|
848
|
+
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
743
849
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
744
850
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
745
851
|
true},
|
@@ -757,6 +863,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
757
863
|
description_pick_first_ignore_empty_updates,
|
758
864
|
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
759
865
|
true},
|
866
|
+
{"pipelined_read_secure_endpoint",
|
867
|
+
description_pipelined_read_secure_endpoint,
|
868
|
+
additional_constraints_pipelined_read_secure_endpoint,
|
869
|
+
required_experiments_pipelined_read_secure_endpoint, 3, false, false},
|
760
870
|
{"pollset_alternative", description_pollset_alternative,
|
761
871
|
additional_constraints_pollset_alternative,
|
762
872
|
required_experiments_pollset_alternative, 2, false, false},
|
@@ -777,6 +887,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
777
887
|
false},
|
778
888
|
{"retry_in_callv3", description_retry_in_callv3,
|
779
889
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
890
|
+
{"rr_wrr_connect_from_random_index",
|
891
|
+
description_rr_wrr_connect_from_random_index,
|
892
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, false,
|
893
|
+
true},
|
780
894
|
{"schedule_cancellation_over_write",
|
781
895
|
description_schedule_cancellation_over_write,
|
782
896
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -791,8 +905,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
791
905
|
required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
|
792
906
|
{"server_global_callbacks_ownership",
|
793
907
|
description_server_global_callbacks_ownership,
|
794
|
-
additional_constraints_server_global_callbacks_ownership, nullptr, 0,
|
795
|
-
|
908
|
+
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
909
|
+
true},
|
796
910
|
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
797
911
|
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
798
912
|
true},
|