grpc 1.60.2 → 1.61.0.pre2
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 +208 -165
- data/include/grpc/event_engine/event_engine.h +59 -12
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +6 -0
- data/include/grpc/event_engine/internal/slice_cast.h +12 -0
- data/include/grpc/event_engine/memory_allocator.h +3 -1
- data/include/grpc/event_engine/slice.h +5 -0
- data/include/grpc/grpc_security.h +22 -1
- data/include/grpc/impl/call.h +29 -0
- data/include/grpc/impl/channel_arg_names.h +12 -1
- data/include/grpc/impl/slice_type.h +1 -1
- data/include/grpc/module.modulemap +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +54 -7
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +20 -6
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +10 -13
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +18 -10
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +326 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +143 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +32 -6
- data/src/core/ext/filters/client_channel/client_channel_internal.h +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +54 -21
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc +12 -15
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.h +8 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +139 -92
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +10 -11
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +94 -93
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +5 -3
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +12 -15
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +38 -16
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +25 -28
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +10 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +37 -35
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +504 -461
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +232 -122
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +642 -251
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +6 -8
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc +1031 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h +277 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +128 -270
- data/src/core/ext/filters/client_channel/resolver/xds/{xds_resolver.h → xds_resolver_attributes.h} +5 -4
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc +25 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h +30 -0
- data/src/core/ext/filters/client_channel/retry_filter.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +35 -17
- data/src/core/ext/filters/deadline/deadline_filter.cc +12 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +17 -13
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -4
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -32
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -5
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/client_authority_filter.h +12 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +42 -20
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +55 -80
- data/src/core/ext/filters/http/message_compress/compression_filter.h +54 -12
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc +325 -0
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.h +139 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +41 -41
- data/src/core/ext/filters/http/server/http_server_filter.h +11 -4
- data/src/core/ext/filters/message_size/message_size_filter.cc +56 -76
- data/src/core/ext/filters/message_size/message_size_filter.h +35 -23
- data/src/core/ext/filters/rbac/rbac_filter.cc +15 -11
- data/src/core/ext/filters/rbac/rbac_filter.h +11 -4
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +25 -13
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +47 -50
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +21 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +11 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +68 -145
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +21 -82
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -8
- data/src/core/ext/transport/chttp2/transport/frame.cc +506 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +214 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +33 -79
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -7
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +27 -36
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +122 -32
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +142 -37
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -22
- data/src/core/ext/transport/chttp2/transport/parsing.cc +23 -37
- data/src/core/ext/transport/chttp2/transport/writing.cc +26 -58
- data/src/core/ext/transport/inproc/inproc_transport.cc +172 -13
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +712 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +151 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +33 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +50 -0
- data/src/core/ext/xds/certificate_provider_store.cc +2 -1
- data/src/core/ext/xds/certificate_provider_store.h +0 -5
- data/src/core/ext/xds/xds_api.cc +31 -18
- data/src/core/ext/xds/xds_api.h +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +3 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +88 -287
- data/src/core/ext/xds/xds_certificate_provider.h +44 -111
- data/src/core/ext/xds/xds_client.cc +420 -414
- data/src/core/ext/xds/xds_client.h +31 -22
- data/src/core/ext/xds/xds_client_grpc.cc +3 -1
- data/src/core/ext/xds/xds_cluster.cc +104 -11
- data/src/core/ext/xds/xds_cluster.h +9 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +9 -5
- data/src/core/ext/xds/xds_common_types.cc +14 -10
- data/src/core/ext/xds/xds_endpoint.cc +9 -4
- data/src/core/ext/xds/xds_endpoint.h +5 -1
- data/src/core/ext/xds/xds_health_status.cc +12 -2
- data/src/core/ext/xds/xds_health_status.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -3
- data/src/core/ext/xds/xds_listener.cc +14 -8
- data/src/core/ext/xds/xds_resource_type_impl.h +6 -4
- data/src/core/ext/xds/xds_route_config.cc +34 -22
- data/src/core/ext/xds/xds_route_config.h +1 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +61 -57
- data/src/core/ext/xds/xds_transport.h +3 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +47 -50
- data/src/core/ext/xds/xds_transport_grpc.h +4 -0
- data/src/core/lib/channel/call_tracer.cc +12 -0
- data/src/core/lib/channel/call_tracer.h +17 -3
- data/src/core/lib/channel/channel_args.cc +24 -14
- data/src/core/lib/channel/channel_args.h +74 -13
- data/src/core/lib/channel/channel_stack.cc +27 -0
- data/src/core/lib/channel/channel_stack.h +10 -10
- data/src/core/lib/channel/connected_channel.cc +64 -18
- data/src/core/lib/channel/promise_based_filter.h +1041 -1
- data/src/core/lib/channel/server_call_tracer_filter.cc +43 -35
- data/src/core/lib/compression/compression_internal.cc +0 -3
- data/src/core/lib/event_engine/ares_resolver.cc +35 -14
- data/src/core/lib/event_engine/ares_resolver.h +9 -10
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +8 -1
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +132 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +61 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +52 -36
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +4 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +11 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +9 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +7 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +17 -27
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +0 -3
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +55 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +114 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +51 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +7 -7
- data/src/core/lib/experiments/config.cc +13 -0
- data/src/core/lib/experiments/config.h +3 -0
- data/src/core/lib/experiments/experiments.cc +245 -366
- data/src/core/lib/experiments/experiments.h +50 -156
- data/src/core/lib/gprpp/debug_location.h +13 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +36 -7
- data/src/core/lib/gprpp/orphanable.h +27 -0
- data/src/core/lib/gprpp/ref_counted.h +63 -22
- data/src/core/lib/gprpp/ref_counted_ptr.h +70 -27
- data/src/core/lib/gprpp/ref_counted_string.h +13 -0
- data/src/core/lib/gprpp/status_helper.cc +1 -2
- data/src/core/lib/iomgr/combiner.cc +15 -51
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +31 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +16 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -3
- data/src/core/lib/load_balancing/lb_policy.h +1 -1
- data/src/core/lib/promise/activity.cc +17 -2
- data/src/core/lib/promise/activity.h +5 -4
- data/src/core/lib/promise/all_ok.h +80 -0
- data/src/core/lib/promise/detail/join_state.h +2077 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -0
- data/src/core/lib/promise/detail/promise_like.h +8 -1
- data/src/core/lib/promise/detail/seq_state.h +3458 -150
- data/src/core/lib/promise/detail/status.h +42 -5
- data/src/core/lib/promise/for_each.h +13 -1
- data/src/core/lib/promise/if.h +4 -0
- data/src/core/lib/promise/latch.h +6 -3
- data/src/core/lib/promise/party.cc +33 -31
- data/src/core/lib/promise/party.h +142 -6
- data/src/core/lib/promise/poll.h +39 -13
- data/src/core/lib/promise/promise.h +4 -0
- data/src/core/lib/promise/seq.h +107 -7
- data/src/core/lib/promise/status_flag.h +196 -0
- data/src/core/lib/promise/try_join.h +132 -0
- data/src/core/lib/promise/try_seq.h +132 -10
- data/src/core/lib/resolver/endpoint_addresses.cc +0 -1
- data/src/core/lib/resolver/endpoint_addresses.h +48 -0
- data/src/core/lib/resource_quota/arena.h +2 -2
- data/src/core/lib/resource_quota/memory_quota.cc +57 -8
- data/src/core/lib/resource_quota/memory_quota.h +6 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +14 -11
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +14 -5
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +28 -20
- data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +12 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +22 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +21 -28
- data/src/core/lib/security/credentials/xds/xds_credentials.h +2 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -3
- data/src/core/lib/security/transport/auth_filters.h +71 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +2 -4
- data/src/core/lib/security/transport/legacy_server_auth_filter.cc +244 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +70 -90
- data/src/core/lib/slice/slice_buffer.h +3 -0
- data/src/core/lib/surface/builtins.cc +1 -1
- data/src/core/lib/surface/call.cc +683 -196
- data/src/core/lib/surface/call.h +26 -13
- data/src/core/lib/surface/call_trace.cc +42 -1
- data/src/core/lib/surface/channel.cc +0 -1
- data/src/core/lib/surface/channel.h +0 -6
- data/src/core/lib/surface/channel_init.h +26 -0
- data/src/core/lib/surface/init.cc +14 -8
- data/src/core/lib/surface/server.cc +256 -237
- data/src/core/lib/surface/server.h +26 -54
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/surface/wait_for_cq_end_op.h +94 -0
- data/src/core/lib/transport/call_final_info.cc +38 -0
- data/src/core/lib/transport/call_final_info.h +54 -0
- data/src/core/lib/transport/connectivity_state.cc +3 -2
- data/src/core/lib/transport/connectivity_state.h +4 -0
- data/src/core/lib/transport/metadata_batch.h +4 -4
- data/src/core/lib/transport/transport.cc +70 -19
- data/src/core/lib/transport/transport.h +395 -25
- data/src/core/plugin_registry/grpc_plugin_registry.cc +3 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +65 -43
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_grpc.c +0 -1
- data/src/ruby/ext/grpc/rb_grpc.h +0 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/upb/upb/reflection/def_pool.h +2 -2
- data/third_party/zlib/adler32.c +5 -27
- data/third_party/zlib/compress.c +5 -16
- data/third_party/zlib/crc32.c +86 -162
- data/third_party/zlib/deflate.c +233 -336
- data/third_party/zlib/deflate.h +8 -8
- data/third_party/zlib/gzguts.h +11 -12
- data/third_party/zlib/infback.c +7 -23
- data/third_party/zlib/inffast.c +1 -4
- data/third_party/zlib/inffast.h +1 -1
- data/third_party/zlib/inflate.c +30 -99
- data/third_party/zlib/inftrees.c +6 -11
- data/third_party/zlib/inftrees.h +3 -3
- data/third_party/zlib/trees.c +224 -302
- data/third_party/zlib/uncompr.c +4 -12
- data/third_party/zlib/zconf.h +6 -2
- data/third_party/zlib/zlib.h +191 -188
- data/third_party/zlib/zutil.c +16 -44
- data/third_party/zlib/zutil.h +10 -10
- metadata +35 -13
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +0 -1173
- data/src/core/lib/event_engine/memory_allocator.cc +0 -74
- data/src/core/lib/transport/pid_controller.cc +0 -51
- data/src/core/lib/transport/pid_controller.h +0 -116
- data/third_party/upb/upb/collections/array.h +0 -17
- data/third_party/upb/upb/collections/map.h +0 -17
- data/third_party/upb/upb/upb.hpp +0 -18
@@ -57,19 +57,11 @@ namespace grpc_core {
|
|
57
57
|
#ifdef GRPC_EXPERIMENTS_ARE_FINAL
|
58
58
|
|
59
59
|
#if defined(GRPC_CFSTREAM)
|
60
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_BLOCK_EXCESSIVE_REQUESTS_BEFORE_SETTINGS_ACK
|
61
|
-
inline bool IsBlockExcessiveRequestsBeforeSettingsAckEnabled() { return true; }
|
62
60
|
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
|
63
61
|
inline bool IsCanaryClientPrivacyEnabled() { return false; }
|
64
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_BATCH_REQUESTS
|
65
|
-
inline bool IsChttp2BatchRequestsEnabled() { return true; }
|
66
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_OFFLOAD_ON_RST_STREAM
|
67
|
-
inline bool IsChttp2OffloadOnRstStreamEnabled() { return true; }
|
68
62
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
|
69
63
|
inline bool IsClientIdlenessEnabled() { return true; }
|
70
64
|
inline bool IsClientPrivacyEnabled() { return false; }
|
71
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_COMBINER_OFFLOAD_TO_EVENT_ENGINE
|
72
|
-
inline bool IsCombinerOffloadToEventEngineEnabled() { return true; }
|
73
65
|
inline bool IsEventEngineClientEnabled() { return false; }
|
74
66
|
inline bool IsEventEngineDnsEnabled() { return false; }
|
75
67
|
inline bool IsEventEngineListenerEnabled() { return false; }
|
@@ -78,70 +70,50 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
|
78
70
|
inline bool IsHttp2StatsFixEnabled() { return true; }
|
79
71
|
inline bool IsKeepaliveFixEnabled() { return false; }
|
80
72
|
inline bool IsKeepaliveServerFixEnabled() { return false; }
|
81
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_LAZIER_STREAM_UPDATES
|
82
|
-
inline bool IsLazierStreamUpdatesEnabled() { return true; }
|
83
|
-
inline bool IsMemoryPressureControllerEnabled() { return false; }
|
84
73
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
85
74
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
86
75
|
inline bool IsMultipingEnabled() { return false; }
|
87
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_OVERLOAD_PROTECTION
|
88
|
-
inline bool IsOverloadProtectionEnabled() { return true; }
|
89
76
|
inline bool IsPeerStateBasedFramingEnabled() { return false; }
|
90
77
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
|
91
78
|
inline bool IsPendingQueueCapEnabled() { return true; }
|
92
79
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_HAPPY_EYEBALLS
|
93
80
|
inline bool IsPickFirstHappyEyeballsEnabled() { return true; }
|
94
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_PING_ON_RST_STREAM
|
95
|
-
inline bool IsPingOnRstStreamEnabled() { return true; }
|
96
81
|
inline bool IsPromiseBasedClientCallEnabled() { return false; }
|
97
|
-
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
98
82
|
inline bool IsPromiseBasedServerCallEnabled() { return false; }
|
99
|
-
inline bool IsRedMaxConcurrentStreamsEnabled() { return false; }
|
100
83
|
#define GRPC_EXPERIMENT_IS_INCLUDED_REGISTERED_METHOD_LOOKUP_IN_TRANSPORT
|
101
84
|
inline bool IsRegisteredMethodLookupInTransportEnabled() { return true; }
|
85
|
+
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
102
86
|
inline bool IsRegisteredMethodsMapEnabled() { return false; }
|
103
87
|
inline bool IsRfcMaxConcurrentStreamsEnabled() { return false; }
|
104
88
|
#define GRPC_EXPERIMENT_IS_INCLUDED_ROUND_ROBIN_DELEGATE_TO_PICK_FIRST
|
105
89
|
inline bool IsRoundRobinDelegateToPickFirstEnabled() { return true; }
|
106
90
|
inline bool IsRstpitEnabled() { return false; }
|
107
91
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
108
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SEPARATE_PING_FROM_KEEPALIVE
|
109
|
-
inline bool IsSeparatePingFromKeepaliveEnabled() { return true; }
|
110
92
|
inline bool IsServerPrivacyEnabled() { return false; }
|
111
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SETTINGS_TIMEOUT
|
112
|
-
inline bool IsSettingsTimeoutEnabled() { return true; }
|
113
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_TARPIT
|
114
|
-
inline bool IsTarpitEnabled() { return true; }
|
115
93
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
116
94
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
117
95
|
inline bool IsTraceRecordCallopsEnabled() { return false; }
|
118
96
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
119
|
-
|
120
|
-
inline bool
|
97
|
+
inline bool IsV3BackendMetricFilterEnabled() { return false; }
|
98
|
+
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
|
99
|
+
inline bool IsV3CompressionFilterEnabled() { return false; }
|
100
|
+
inline bool IsV3ServerAuthFilterEnabled() { return false; }
|
121
101
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
|
122
102
|
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
|
123
103
|
inline bool IsWorkSerializerDispatchEnabled() { return false; }
|
124
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
125
|
-
inline bool IsWriteSizeCapEnabled() { return true; }
|
126
104
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_POLICY
|
127
105
|
inline bool IsWriteSizePolicyEnabled() { return true; }
|
106
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
107
|
+
inline bool IsWriteSizeCapEnabled() { return true; }
|
128
108
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRR_DELEGATE_TO_PICK_FIRST
|
129
109
|
inline bool IsWrrDelegateToPickFirstEnabled() { return true; }
|
130
110
|
|
131
111
|
#elif defined(GPR_WINDOWS)
|
132
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_BLOCK_EXCESSIVE_REQUESTS_BEFORE_SETTINGS_ACK
|
133
|
-
inline bool IsBlockExcessiveRequestsBeforeSettingsAckEnabled() { return true; }
|
134
112
|
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
|
135
113
|
inline bool IsCanaryClientPrivacyEnabled() { return false; }
|
136
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_BATCH_REQUESTS
|
137
|
-
inline bool IsChttp2BatchRequestsEnabled() { return true; }
|
138
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_OFFLOAD_ON_RST_STREAM
|
139
|
-
inline bool IsChttp2OffloadOnRstStreamEnabled() { return true; }
|
140
114
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
|
141
115
|
inline bool IsClientIdlenessEnabled() { return true; }
|
142
116
|
inline bool IsClientPrivacyEnabled() { return false; }
|
143
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_COMBINER_OFFLOAD_TO_EVENT_ENGINE
|
144
|
-
inline bool IsCombinerOffloadToEventEngineEnabled() { return true; }
|
145
117
|
inline bool IsEventEngineClientEnabled() { return false; }
|
146
118
|
inline bool IsEventEngineDnsEnabled() { return false; }
|
147
119
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
@@ -151,70 +123,50 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
|
151
123
|
inline bool IsHttp2StatsFixEnabled() { return true; }
|
152
124
|
inline bool IsKeepaliveFixEnabled() { return false; }
|
153
125
|
inline bool IsKeepaliveServerFixEnabled() { return false; }
|
154
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_LAZIER_STREAM_UPDATES
|
155
|
-
inline bool IsLazierStreamUpdatesEnabled() { return true; }
|
156
|
-
inline bool IsMemoryPressureControllerEnabled() { return false; }
|
157
126
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
158
127
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
159
128
|
inline bool IsMultipingEnabled() { return false; }
|
160
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_OVERLOAD_PROTECTION
|
161
|
-
inline bool IsOverloadProtectionEnabled() { return true; }
|
162
129
|
inline bool IsPeerStateBasedFramingEnabled() { return false; }
|
163
130
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
|
164
131
|
inline bool IsPendingQueueCapEnabled() { return true; }
|
165
132
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_HAPPY_EYEBALLS
|
166
133
|
inline bool IsPickFirstHappyEyeballsEnabled() { return true; }
|
167
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_PING_ON_RST_STREAM
|
168
|
-
inline bool IsPingOnRstStreamEnabled() { return true; }
|
169
134
|
inline bool IsPromiseBasedClientCallEnabled() { return false; }
|
170
|
-
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
171
135
|
inline bool IsPromiseBasedServerCallEnabled() { return false; }
|
172
|
-
inline bool IsRedMaxConcurrentStreamsEnabled() { return false; }
|
173
136
|
#define GRPC_EXPERIMENT_IS_INCLUDED_REGISTERED_METHOD_LOOKUP_IN_TRANSPORT
|
174
137
|
inline bool IsRegisteredMethodLookupInTransportEnabled() { return true; }
|
138
|
+
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
175
139
|
inline bool IsRegisteredMethodsMapEnabled() { return false; }
|
176
140
|
inline bool IsRfcMaxConcurrentStreamsEnabled() { return false; }
|
177
141
|
#define GRPC_EXPERIMENT_IS_INCLUDED_ROUND_ROBIN_DELEGATE_TO_PICK_FIRST
|
178
142
|
inline bool IsRoundRobinDelegateToPickFirstEnabled() { return true; }
|
179
143
|
inline bool IsRstpitEnabled() { return false; }
|
180
144
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
181
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SEPARATE_PING_FROM_KEEPALIVE
|
182
|
-
inline bool IsSeparatePingFromKeepaliveEnabled() { return true; }
|
183
145
|
inline bool IsServerPrivacyEnabled() { return false; }
|
184
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SETTINGS_TIMEOUT
|
185
|
-
inline bool IsSettingsTimeoutEnabled() { return true; }
|
186
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_TARPIT
|
187
|
-
inline bool IsTarpitEnabled() { return true; }
|
188
146
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
189
147
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
190
148
|
inline bool IsTraceRecordCallopsEnabled() { return false; }
|
191
149
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
192
|
-
|
193
|
-
inline bool
|
150
|
+
inline bool IsV3BackendMetricFilterEnabled() { return false; }
|
151
|
+
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
|
152
|
+
inline bool IsV3CompressionFilterEnabled() { return false; }
|
153
|
+
inline bool IsV3ServerAuthFilterEnabled() { return false; }
|
194
154
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
|
195
155
|
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
|
196
156
|
inline bool IsWorkSerializerDispatchEnabled() { return false; }
|
197
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
198
|
-
inline bool IsWriteSizeCapEnabled() { return true; }
|
199
157
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_POLICY
|
200
158
|
inline bool IsWriteSizePolicyEnabled() { return true; }
|
159
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
160
|
+
inline bool IsWriteSizeCapEnabled() { return true; }
|
201
161
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRR_DELEGATE_TO_PICK_FIRST
|
202
162
|
inline bool IsWrrDelegateToPickFirstEnabled() { return true; }
|
203
163
|
|
204
164
|
#else
|
205
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_BLOCK_EXCESSIVE_REQUESTS_BEFORE_SETTINGS_ACK
|
206
|
-
inline bool IsBlockExcessiveRequestsBeforeSettingsAckEnabled() { return true; }
|
207
165
|
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
|
208
166
|
inline bool IsCanaryClientPrivacyEnabled() { return false; }
|
209
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_BATCH_REQUESTS
|
210
|
-
inline bool IsChttp2BatchRequestsEnabled() { return true; }
|
211
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_OFFLOAD_ON_RST_STREAM
|
212
|
-
inline bool IsChttp2OffloadOnRstStreamEnabled() { return true; }
|
213
167
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
|
214
168
|
inline bool IsClientIdlenessEnabled() { return true; }
|
215
169
|
inline bool IsClientPrivacyEnabled() { return false; }
|
216
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_COMBINER_OFFLOAD_TO_EVENT_ENGINE
|
217
|
-
inline bool IsCombinerOffloadToEventEngineEnabled() { return true; }
|
218
170
|
inline bool IsEventEngineClientEnabled() { return false; }
|
219
171
|
inline bool IsEventEngineDnsEnabled() { return false; }
|
220
172
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
@@ -224,67 +176,51 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
|
224
176
|
inline bool IsHttp2StatsFixEnabled() { return true; }
|
225
177
|
inline bool IsKeepaliveFixEnabled() { return false; }
|
226
178
|
inline bool IsKeepaliveServerFixEnabled() { return false; }
|
227
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_LAZIER_STREAM_UPDATES
|
228
|
-
inline bool IsLazierStreamUpdatesEnabled() { return true; }
|
229
|
-
inline bool IsMemoryPressureControllerEnabled() { return false; }
|
230
179
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
231
180
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
232
181
|
inline bool IsMultipingEnabled() { return false; }
|
233
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_OVERLOAD_PROTECTION
|
234
|
-
inline bool IsOverloadProtectionEnabled() { return true; }
|
235
182
|
inline bool IsPeerStateBasedFramingEnabled() { return false; }
|
236
183
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
|
237
184
|
inline bool IsPendingQueueCapEnabled() { return true; }
|
238
185
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_HAPPY_EYEBALLS
|
239
186
|
inline bool IsPickFirstHappyEyeballsEnabled() { return true; }
|
240
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_PING_ON_RST_STREAM
|
241
|
-
inline bool IsPingOnRstStreamEnabled() { return true; }
|
242
187
|
inline bool IsPromiseBasedClientCallEnabled() { return false; }
|
243
|
-
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
244
188
|
inline bool IsPromiseBasedServerCallEnabled() { return false; }
|
245
|
-
inline bool IsRedMaxConcurrentStreamsEnabled() { return false; }
|
246
189
|
#define GRPC_EXPERIMENT_IS_INCLUDED_REGISTERED_METHOD_LOOKUP_IN_TRANSPORT
|
247
190
|
inline bool IsRegisteredMethodLookupInTransportEnabled() { return true; }
|
191
|
+
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
248
192
|
inline bool IsRegisteredMethodsMapEnabled() { return false; }
|
249
193
|
inline bool IsRfcMaxConcurrentStreamsEnabled() { return false; }
|
250
194
|
#define GRPC_EXPERIMENT_IS_INCLUDED_ROUND_ROBIN_DELEGATE_TO_PICK_FIRST
|
251
195
|
inline bool IsRoundRobinDelegateToPickFirstEnabled() { return true; }
|
252
196
|
inline bool IsRstpitEnabled() { return false; }
|
253
197
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
254
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SEPARATE_PING_FROM_KEEPALIVE
|
255
|
-
inline bool IsSeparatePingFromKeepaliveEnabled() { return true; }
|
256
198
|
inline bool IsServerPrivacyEnabled() { return false; }
|
257
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SETTINGS_TIMEOUT
|
258
|
-
inline bool IsSettingsTimeoutEnabled() { return true; }
|
259
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_TARPIT
|
260
|
-
inline bool IsTarpitEnabled() { return true; }
|
261
199
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
262
200
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
263
201
|
inline bool IsTraceRecordCallopsEnabled() { return false; }
|
264
202
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
265
|
-
|
266
|
-
inline bool
|
203
|
+
inline bool IsV3BackendMetricFilterEnabled() { return false; }
|
204
|
+
inline bool IsV3ChannelIdleFiltersEnabled() { return false; }
|
205
|
+
inline bool IsV3CompressionFilterEnabled() { return false; }
|
206
|
+
inline bool IsV3ServerAuthFilterEnabled() { return false; }
|
267
207
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
|
268
208
|
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
|
269
209
|
inline bool IsWorkSerializerDispatchEnabled() { return false; }
|
270
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
271
|
-
inline bool IsWriteSizeCapEnabled() { return true; }
|
272
210
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_POLICY
|
273
211
|
inline bool IsWriteSizePolicyEnabled() { return true; }
|
212
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
213
|
+
inline bool IsWriteSizeCapEnabled() { return true; }
|
274
214
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRR_DELEGATE_TO_PICK_FIRST
|
275
215
|
inline bool IsWrrDelegateToPickFirstEnabled() { return true; }
|
276
216
|
#endif
|
277
217
|
|
278
218
|
#else
|
279
219
|
enum ExperimentIds {
|
280
|
-
kExperimentIdBlockExcessiveRequestsBeforeSettingsAck,
|
281
220
|
kExperimentIdCallStatusOverrideOnCancellation,
|
282
221
|
kExperimentIdCanaryClientPrivacy,
|
283
|
-
kExperimentIdChttp2BatchRequests,
|
284
|
-
kExperimentIdChttp2OffloadOnRstStream,
|
285
222
|
kExperimentIdClientIdleness,
|
286
223
|
kExperimentIdClientPrivacy,
|
287
|
-
kExperimentIdCombinerOffloadToEventEngine,
|
288
224
|
kExperimentIdEventEngineClient,
|
289
225
|
kExperimentIdEventEngineDns,
|
290
226
|
kExperimentIdEventEngineListener,
|
@@ -292,46 +228,36 @@ enum ExperimentIds {
|
|
292
228
|
kExperimentIdHttp2StatsFix,
|
293
229
|
kExperimentIdKeepaliveFix,
|
294
230
|
kExperimentIdKeepaliveServerFix,
|
295
|
-
kExperimentIdLazierStreamUpdates,
|
296
|
-
kExperimentIdMemoryPressureController,
|
297
231
|
kExperimentIdMonitoringExperiment,
|
298
232
|
kExperimentIdMultiping,
|
299
|
-
kExperimentIdOverloadProtection,
|
300
233
|
kExperimentIdPeerStateBasedFraming,
|
301
234
|
kExperimentIdPendingQueueCap,
|
302
235
|
kExperimentIdPickFirstHappyEyeballs,
|
303
|
-
kExperimentIdPingOnRstStream,
|
304
236
|
kExperimentIdPromiseBasedClientCall,
|
305
|
-
kExperimentIdPromiseBasedInprocTransport,
|
306
237
|
kExperimentIdPromiseBasedServerCall,
|
307
|
-
kExperimentIdRedMaxConcurrentStreams,
|
308
238
|
kExperimentIdRegisteredMethodLookupInTransport,
|
239
|
+
kExperimentIdPromiseBasedInprocTransport,
|
309
240
|
kExperimentIdRegisteredMethodsMap,
|
310
241
|
kExperimentIdRfcMaxConcurrentStreams,
|
311
242
|
kExperimentIdRoundRobinDelegateToPickFirst,
|
312
243
|
kExperimentIdRstpit,
|
313
244
|
kExperimentIdScheduleCancellationOverWrite,
|
314
|
-
kExperimentIdSeparatePingFromKeepalive,
|
315
245
|
kExperimentIdServerPrivacy,
|
316
|
-
kExperimentIdSettingsTimeout,
|
317
|
-
kExperimentIdTarpit,
|
318
246
|
kExperimentIdTcpFrameSizeTuning,
|
319
247
|
kExperimentIdTcpRcvLowat,
|
320
248
|
kExperimentIdTraceRecordCallops,
|
321
249
|
kExperimentIdUnconstrainedMaxQuotaBufferSize,
|
322
|
-
|
250
|
+
kExperimentIdV3BackendMetricFilter,
|
251
|
+
kExperimentIdV3ChannelIdleFilters,
|
252
|
+
kExperimentIdV3CompressionFilter,
|
253
|
+
kExperimentIdV3ServerAuthFilter,
|
323
254
|
kExperimentIdWorkSerializerClearsTimeCache,
|
324
255
|
kExperimentIdWorkSerializerDispatch,
|
325
|
-
kExperimentIdWriteSizeCap,
|
326
256
|
kExperimentIdWriteSizePolicy,
|
257
|
+
kExperimentIdWriteSizeCap,
|
327
258
|
kExperimentIdWrrDelegateToPickFirst,
|
328
259
|
kNumExperiments
|
329
260
|
};
|
330
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_BLOCK_EXCESSIVE_REQUESTS_BEFORE_SETTINGS_ACK
|
331
|
-
inline bool IsBlockExcessiveRequestsBeforeSettingsAckEnabled() {
|
332
|
-
return IsExperimentEnabled(
|
333
|
-
kExperimentIdBlockExcessiveRequestsBeforeSettingsAck);
|
334
|
-
}
|
335
261
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
|
336
262
|
inline bool IsCallStatusOverrideOnCancellationEnabled() {
|
337
263
|
return IsExperimentEnabled(kExperimentIdCallStatusOverrideOnCancellation);
|
@@ -340,14 +266,6 @@ inline bool IsCallStatusOverrideOnCancellationEnabled() {
|
|
340
266
|
inline bool IsCanaryClientPrivacyEnabled() {
|
341
267
|
return IsExperimentEnabled(kExperimentIdCanaryClientPrivacy);
|
342
268
|
}
|
343
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_BATCH_REQUESTS
|
344
|
-
inline bool IsChttp2BatchRequestsEnabled() {
|
345
|
-
return IsExperimentEnabled(kExperimentIdChttp2BatchRequests);
|
346
|
-
}
|
347
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CHTTP2_OFFLOAD_ON_RST_STREAM
|
348
|
-
inline bool IsChttp2OffloadOnRstStreamEnabled() {
|
349
|
-
return IsExperimentEnabled(kExperimentIdChttp2OffloadOnRstStream);
|
350
|
-
}
|
351
269
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
|
352
270
|
inline bool IsClientIdlenessEnabled() {
|
353
271
|
return IsExperimentEnabled(kExperimentIdClientIdleness);
|
@@ -356,10 +274,6 @@ inline bool IsClientIdlenessEnabled() {
|
|
356
274
|
inline bool IsClientPrivacyEnabled() {
|
357
275
|
return IsExperimentEnabled(kExperimentIdClientPrivacy);
|
358
276
|
}
|
359
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_COMBINER_OFFLOAD_TO_EVENT_ENGINE
|
360
|
-
inline bool IsCombinerOffloadToEventEngineEnabled() {
|
361
|
-
return IsExperimentEnabled(kExperimentIdCombinerOffloadToEventEngine);
|
362
|
-
}
|
363
277
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT
|
364
278
|
inline bool IsEventEngineClientEnabled() {
|
365
279
|
return IsExperimentEnabled(kExperimentIdEventEngineClient);
|
@@ -388,14 +302,6 @@ inline bool IsKeepaliveFixEnabled() {
|
|
388
302
|
inline bool IsKeepaliveServerFixEnabled() {
|
389
303
|
return IsExperimentEnabled(kExperimentIdKeepaliveServerFix);
|
390
304
|
}
|
391
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_LAZIER_STREAM_UPDATES
|
392
|
-
inline bool IsLazierStreamUpdatesEnabled() {
|
393
|
-
return IsExperimentEnabled(kExperimentIdLazierStreamUpdates);
|
394
|
-
}
|
395
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MEMORY_PRESSURE_CONTROLLER
|
396
|
-
inline bool IsMemoryPressureControllerEnabled() {
|
397
|
-
return IsExperimentEnabled(kExperimentIdMemoryPressureController);
|
398
|
-
}
|
399
305
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
400
306
|
inline bool IsMonitoringExperimentEnabled() {
|
401
307
|
return IsExperimentEnabled(kExperimentIdMonitoringExperiment);
|
@@ -404,10 +310,6 @@ inline bool IsMonitoringExperimentEnabled() {
|
|
404
310
|
inline bool IsMultipingEnabled() {
|
405
311
|
return IsExperimentEnabled(kExperimentIdMultiping);
|
406
312
|
}
|
407
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_OVERLOAD_PROTECTION
|
408
|
-
inline bool IsOverloadProtectionEnabled() {
|
409
|
-
return IsExperimentEnabled(kExperimentIdOverloadProtection);
|
410
|
-
}
|
411
313
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PEER_STATE_BASED_FRAMING
|
412
314
|
inline bool IsPeerStateBasedFramingEnabled() {
|
413
315
|
return IsExperimentEnabled(kExperimentIdPeerStateBasedFraming);
|
@@ -420,30 +322,22 @@ inline bool IsPendingQueueCapEnabled() {
|
|
420
322
|
inline bool IsPickFirstHappyEyeballsEnabled() {
|
421
323
|
return IsExperimentEnabled(kExperimentIdPickFirstHappyEyeballs);
|
422
324
|
}
|
423
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_PING_ON_RST_STREAM
|
424
|
-
inline bool IsPingOnRstStreamEnabled() {
|
425
|
-
return IsExperimentEnabled(kExperimentIdPingOnRstStream);
|
426
|
-
}
|
427
325
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_CLIENT_CALL
|
428
326
|
inline bool IsPromiseBasedClientCallEnabled() {
|
429
327
|
return IsExperimentEnabled(kExperimentIdPromiseBasedClientCall);
|
430
328
|
}
|
431
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_INPROC_TRANSPORT
|
432
|
-
inline bool IsPromiseBasedInprocTransportEnabled() {
|
433
|
-
return IsExperimentEnabled(kExperimentIdPromiseBasedInprocTransport);
|
434
|
-
}
|
435
329
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_SERVER_CALL
|
436
330
|
inline bool IsPromiseBasedServerCallEnabled() {
|
437
331
|
return IsExperimentEnabled(kExperimentIdPromiseBasedServerCall);
|
438
332
|
}
|
439
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RED_MAX_CONCURRENT_STREAMS
|
440
|
-
inline bool IsRedMaxConcurrentStreamsEnabled() {
|
441
|
-
return IsExperimentEnabled(kExperimentIdRedMaxConcurrentStreams);
|
442
|
-
}
|
443
333
|
#define GRPC_EXPERIMENT_IS_INCLUDED_REGISTERED_METHOD_LOOKUP_IN_TRANSPORT
|
444
334
|
inline bool IsRegisteredMethodLookupInTransportEnabled() {
|
445
335
|
return IsExperimentEnabled(kExperimentIdRegisteredMethodLookupInTransport);
|
446
336
|
}
|
337
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_INPROC_TRANSPORT
|
338
|
+
inline bool IsPromiseBasedInprocTransportEnabled() {
|
339
|
+
return IsExperimentEnabled(kExperimentIdPromiseBasedInprocTransport);
|
340
|
+
}
|
447
341
|
#define GRPC_EXPERIMENT_IS_INCLUDED_REGISTERED_METHODS_MAP
|
448
342
|
inline bool IsRegisteredMethodsMapEnabled() {
|
449
343
|
return IsExperimentEnabled(kExperimentIdRegisteredMethodsMap);
|
@@ -464,22 +358,10 @@ inline bool IsRstpitEnabled() {
|
|
464
358
|
inline bool IsScheduleCancellationOverWriteEnabled() {
|
465
359
|
return IsExperimentEnabled(kExperimentIdScheduleCancellationOverWrite);
|
466
360
|
}
|
467
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SEPARATE_PING_FROM_KEEPALIVE
|
468
|
-
inline bool IsSeparatePingFromKeepaliveEnabled() {
|
469
|
-
return IsExperimentEnabled(kExperimentIdSeparatePingFromKeepalive);
|
470
|
-
}
|
471
361
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_PRIVACY
|
472
362
|
inline bool IsServerPrivacyEnabled() {
|
473
363
|
return IsExperimentEnabled(kExperimentIdServerPrivacy);
|
474
364
|
}
|
475
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SETTINGS_TIMEOUT
|
476
|
-
inline bool IsSettingsTimeoutEnabled() {
|
477
|
-
return IsExperimentEnabled(kExperimentIdSettingsTimeout);
|
478
|
-
}
|
479
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_TARPIT
|
480
|
-
inline bool IsTarpitEnabled() {
|
481
|
-
return IsExperimentEnabled(kExperimentIdTarpit);
|
482
|
-
}
|
483
365
|
#define GRPC_EXPERIMENT_IS_INCLUDED_TCP_FRAME_SIZE_TUNING
|
484
366
|
inline bool IsTcpFrameSizeTuningEnabled() {
|
485
367
|
return IsExperimentEnabled(kExperimentIdTcpFrameSizeTuning);
|
@@ -496,9 +378,21 @@ inline bool IsTraceRecordCallopsEnabled() {
|
|
496
378
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() {
|
497
379
|
return IsExperimentEnabled(kExperimentIdUnconstrainedMaxQuotaBufferSize);
|
498
380
|
}
|
499
|
-
#define
|
500
|
-
inline bool
|
501
|
-
return IsExperimentEnabled(
|
381
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_V3_BACKEND_METRIC_FILTER
|
382
|
+
inline bool IsV3BackendMetricFilterEnabled() {
|
383
|
+
return IsExperimentEnabled(kExperimentIdV3BackendMetricFilter);
|
384
|
+
}
|
385
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_V3_CHANNEL_IDLE_FILTERS
|
386
|
+
inline bool IsV3ChannelIdleFiltersEnabled() {
|
387
|
+
return IsExperimentEnabled(kExperimentIdV3ChannelIdleFilters);
|
388
|
+
}
|
389
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_V3_COMPRESSION_FILTER
|
390
|
+
inline bool IsV3CompressionFilterEnabled() {
|
391
|
+
return IsExperimentEnabled(kExperimentIdV3CompressionFilter);
|
392
|
+
}
|
393
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_V3_SERVER_AUTH_FILTER
|
394
|
+
inline bool IsV3ServerAuthFilterEnabled() {
|
395
|
+
return IsExperimentEnabled(kExperimentIdV3ServerAuthFilter);
|
502
396
|
}
|
503
397
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
|
504
398
|
inline bool IsWorkSerializerClearsTimeCacheEnabled() {
|
@@ -508,14 +402,14 @@ inline bool IsWorkSerializerClearsTimeCacheEnabled() {
|
|
508
402
|
inline bool IsWorkSerializerDispatchEnabled() {
|
509
403
|
return IsExperimentEnabled(kExperimentIdWorkSerializerDispatch);
|
510
404
|
}
|
511
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
512
|
-
inline bool IsWriteSizeCapEnabled() {
|
513
|
-
return IsExperimentEnabled(kExperimentIdWriteSizeCap);
|
514
|
-
}
|
515
405
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_POLICY
|
516
406
|
inline bool IsWriteSizePolicyEnabled() {
|
517
407
|
return IsExperimentEnabled(kExperimentIdWriteSizePolicy);
|
518
408
|
}
|
409
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_WRITE_SIZE_CAP
|
410
|
+
inline bool IsWriteSizeCapEnabled() {
|
411
|
+
return IsExperimentEnabled(kExperimentIdWriteSizeCap);
|
412
|
+
}
|
519
413
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WRR_DELEGATE_TO_PICK_FIRST
|
520
414
|
inline bool IsWrrDelegateToPickFirstEnabled() {
|
521
415
|
return IsExperimentEnabled(kExperimentIdWrrDelegateToPickFirst);
|
@@ -19,6 +19,10 @@
|
|
19
19
|
#ifndef GRPC_SRC_CORE_LIB_GPRPP_DEBUG_LOCATION_H
|
20
20
|
#define GRPC_SRC_CORE_LIB_GPRPP_DEBUG_LOCATION_H
|
21
21
|
|
22
|
+
#include <grpc/support/port_platform.h>
|
23
|
+
|
24
|
+
#include <utility>
|
25
|
+
|
22
26
|
#if defined(__has_builtin)
|
23
27
|
#if __has_builtin(__builtin_FILE)
|
24
28
|
#define GRPC_DEFAULT_FILE __builtin_FILE()
|
@@ -77,6 +81,15 @@ class DebugLocation {
|
|
77
81
|
};
|
78
82
|
#endif
|
79
83
|
|
84
|
+
template <typename T>
|
85
|
+
struct ValueWithDebugLocation {
|
86
|
+
// NOLINTNEXTLINE
|
87
|
+
ValueWithDebugLocation(T&& value, DebugLocation debug_location = {})
|
88
|
+
: value(std::forward<T>(value)), debug_location(debug_location) {}
|
89
|
+
T value;
|
90
|
+
GPR_NO_UNIQUE_ADDRESS DebugLocation debug_location;
|
91
|
+
};
|
92
|
+
|
80
93
|
#define DEBUG_LOCATION ::grpc_core::DebugLocation(__FILE__, __LINE__)
|
81
94
|
|
82
95
|
} // namespace grpc_core
|
@@ -47,19 +47,38 @@ namespace grpc_core {
|
|
47
47
|
template <typename Child>
|
48
48
|
class DualRefCounted : public Orphanable {
|
49
49
|
public:
|
50
|
+
// Not copyable nor movable.
|
51
|
+
DualRefCounted(const DualRefCounted&) = delete;
|
52
|
+
DualRefCounted& operator=(const DualRefCounted&) = delete;
|
53
|
+
|
50
54
|
~DualRefCounted() override = default;
|
51
55
|
|
52
56
|
GRPC_MUST_USE_RESULT RefCountedPtr<Child> Ref() {
|
53
57
|
IncrementRefCount();
|
54
58
|
return RefCountedPtr<Child>(static_cast<Child*>(this));
|
55
59
|
}
|
56
|
-
|
57
60
|
GRPC_MUST_USE_RESULT RefCountedPtr<Child> Ref(const DebugLocation& location,
|
58
61
|
const char* reason) {
|
59
62
|
IncrementRefCount(location, reason);
|
60
63
|
return RefCountedPtr<Child>(static_cast<Child*>(this));
|
61
64
|
}
|
62
65
|
|
66
|
+
template <
|
67
|
+
typename Subclass,
|
68
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
69
|
+
RefCountedPtr<Subclass> RefAsSubclass() {
|
70
|
+
IncrementRefCount();
|
71
|
+
return RefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
72
|
+
}
|
73
|
+
template <
|
74
|
+
typename Subclass,
|
75
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
76
|
+
RefCountedPtr<Subclass> RefAsSubclass(const DebugLocation& location,
|
77
|
+
const char* reason) {
|
78
|
+
IncrementRefCount(location, reason);
|
79
|
+
return RefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
80
|
+
}
|
81
|
+
|
63
82
|
void Unref() {
|
64
83
|
// Convert strong ref to weak ref.
|
65
84
|
const uint64_t prev_ref_pair =
|
@@ -120,7 +139,6 @@ class DualRefCounted : public Orphanable {
|
|
120
139
|
std::memory_order_acq_rel, std::memory_order_acquire));
|
121
140
|
return RefCountedPtr<Child>(static_cast<Child*>(this));
|
122
141
|
}
|
123
|
-
|
124
142
|
GRPC_MUST_USE_RESULT RefCountedPtr<Child> RefIfNonZero(
|
125
143
|
const DebugLocation& location, const char* reason) {
|
126
144
|
uint64_t prev_ref_pair = refs_.load(std::memory_order_acquire);
|
@@ -150,13 +168,28 @@ class DualRefCounted : public Orphanable {
|
|
150
168
|
IncrementWeakRefCount();
|
151
169
|
return WeakRefCountedPtr<Child>(static_cast<Child*>(this));
|
152
170
|
}
|
153
|
-
|
154
171
|
GRPC_MUST_USE_RESULT WeakRefCountedPtr<Child> WeakRef(
|
155
172
|
const DebugLocation& location, const char* reason) {
|
156
173
|
IncrementWeakRefCount(location, reason);
|
157
174
|
return WeakRefCountedPtr<Child>(static_cast<Child*>(this));
|
158
175
|
}
|
159
176
|
|
177
|
+
template <
|
178
|
+
typename Subclass,
|
179
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
180
|
+
WeakRefCountedPtr<Subclass> WeakRefAsSubclass() {
|
181
|
+
IncrementWeakRefCount();
|
182
|
+
return WeakRefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
183
|
+
}
|
184
|
+
template <
|
185
|
+
typename Subclass,
|
186
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
187
|
+
WeakRefCountedPtr<Subclass> WeakRefAsSubclass(const DebugLocation& location,
|
188
|
+
const char* reason) {
|
189
|
+
IncrementWeakRefCount(location, reason);
|
190
|
+
return WeakRefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
191
|
+
}
|
192
|
+
|
160
193
|
void WeakUnref() {
|
161
194
|
#ifndef NDEBUG
|
162
195
|
// Grab a copy of the trace flag before the atomic change, since we
|
@@ -207,10 +240,6 @@ class DualRefCounted : public Orphanable {
|
|
207
240
|
}
|
208
241
|
}
|
209
242
|
|
210
|
-
// Not copyable nor movable.
|
211
|
-
DualRefCounted(const DualRefCounted&) = delete;
|
212
|
-
DualRefCounted& operator=(const DualRefCounted&) = delete;
|
213
|
-
|
214
243
|
protected:
|
215
244
|
// Note: Tracing is a no-op in non-debug builds.
|
216
245
|
explicit DualRefCounted(
|
@@ -97,6 +97,33 @@ class InternallyRefCounted : public Orphanable {
|
|
97
97
|
return RefCountedPtr<Child>(static_cast<Child*>(this));
|
98
98
|
}
|
99
99
|
|
100
|
+
template <
|
101
|
+
typename Subclass,
|
102
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
103
|
+
RefCountedPtr<Subclass> RefAsSubclass() {
|
104
|
+
IncrementRefCount();
|
105
|
+
return RefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
106
|
+
}
|
107
|
+
template <
|
108
|
+
typename Subclass,
|
109
|
+
std::enable_if_t<std::is_base_of<Child, Subclass>::value, bool> = true>
|
110
|
+
RefCountedPtr<Subclass> RefAsSubclass(const DebugLocation& location,
|
111
|
+
const char* reason) {
|
112
|
+
IncrementRefCount(location, reason);
|
113
|
+
return RefCountedPtr<Subclass>(static_cast<Subclass*>(this));
|
114
|
+
}
|
115
|
+
|
116
|
+
GRPC_MUST_USE_RESULT RefCountedPtr<Child> RefIfNonZero() {
|
117
|
+
return RefCountedPtr<Child>(refs_.RefIfNonZero() ? static_cast<Child*>(this)
|
118
|
+
: nullptr);
|
119
|
+
}
|
120
|
+
GRPC_MUST_USE_RESULT RefCountedPtr<Child> RefIfNonZero(
|
121
|
+
const DebugLocation& location, const char* reason) {
|
122
|
+
return RefCountedPtr<Child>(refs_.RefIfNonZero(location, reason)
|
123
|
+
? static_cast<Child*>(this)
|
124
|
+
: nullptr);
|
125
|
+
}
|
126
|
+
|
100
127
|
void Unref() {
|
101
128
|
if (GPR_UNLIKELY(refs_.Unref())) {
|
102
129
|
unref_behavior_(static_cast<Child*>(this));
|