grpc 1.78.0 → 1.80.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 +22 -8
- data/include/grpc/credentials.h +47 -37
- data/include/grpc/credentials_cpp.h +39 -0
- data/include/grpc/event_engine/event_engine.h +8 -3
- data/include/grpc/grpc.h +4 -0
- data/include/grpc/impl/call.h +9 -0
- data/include/grpc/impl/channel_arg_names.h +7 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/private_key_signer.h +104 -0
- data/include/grpc/support/port_platform.h +6 -0
- data/src/core/call/call_filters.h +101 -78
- data/src/core/call/call_spine.h +91 -68
- data/src/core/call/call_state.h +60 -4
- data/src/core/call/client_call.cc +9 -9
- data/src/core/call/client_call.h +1 -1
- data/src/core/call/metadata_batch.cc +2 -0
- data/src/core/call/metadata_batch.h +48 -1
- data/src/core/call/metadata_info.cc +35 -0
- data/src/core/call/metadata_info.h +2 -0
- data/src/core/call/simple_slice_based_metadata.h +2 -1
- data/src/core/channelz/channelz.cc +9 -6
- data/src/core/channelz/channelz.h +7 -4
- data/src/core/channelz/property_list.h +5 -0
- data/src/core/channelz/v2tov1/convert.cc +1 -1
- data/src/core/channelz/v2tov1/legacy_api.cc +164 -307
- data/src/core/client_channel/buffered_call.cc +7 -3
- data/src/core/client_channel/buffered_call.h +11 -5
- data/src/core/client_channel/client_channel.cc +106 -44
- data/src/core/client_channel/client_channel.h +3 -6
- data/src/core/client_channel/client_channel_filter.cc +90 -64
- data/src/core/client_channel/client_channel_filter.h +3 -6
- data/src/core/client_channel/client_channel_internal.h +5 -0
- data/src/core/client_channel/config_selector.h +17 -12
- data/src/core/client_channel/dynamic_filters.cc +8 -7
- data/src/core/client_channel/dynamic_filters.h +7 -5
- data/src/core/client_channel/retry_filter.cc +1 -1
- data/src/core/client_channel/retry_filter.h +2 -2
- data/src/core/client_channel/subchannel.cc +1682 -266
- data/src/core/client_channel/subchannel.h +411 -134
- data/src/core/client_channel/subchannel_stream_client.cc +22 -18
- data/src/core/client_channel/subchannel_stream_client.h +8 -9
- data/src/core/client_channel/subchannel_stream_limiter.cc +76 -0
- data/src/core/client_channel/subchannel_stream_limiter.h +51 -0
- data/src/core/config/config_vars.cc +9 -1
- data/src/core/config/config_vars.h +6 -0
- data/src/core/credentials/call/call_creds_registry.h +51 -22
- data/src/core/credentials/call/call_creds_registry_init.cc +86 -2
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +2 -2
- data/src/core/credentials/call/external/external_account_credentials.cc +11 -4
- data/src/core/credentials/call/external/file_external_account_credentials.cc +2 -2
- data/src/core/credentials/transport/channel_creds_registry.h +71 -20
- data/src/core/credentials/transport/channel_creds_registry_init.cc +338 -29
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +43 -24
- data/src/core/credentials/transport/ssl/ssl_credentials.h +7 -1
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +2 -8
- data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +7 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +181 -109
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +55 -42
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +28 -23
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +26 -23
- data/src/core/credentials/transport/tls/spiffe_utils.cc +2 -2
- data/src/core/credentials/transport/tls/ssl_utils.cc +18 -18
- data/src/core/credentials/transport/tls/ssl_utils.h +12 -10
- data/src/core/credentials/transport/tls/tls_security_connector.cc +106 -74
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -8
- data/src/core/credentials/transport/xds/xds_credentials.cc +76 -32
- data/src/core/credentials/transport/xds/xds_credentials.h +4 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +117 -35
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +42 -4
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +58 -29
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +19 -11
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +82 -25
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +28 -3
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +9 -7
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +7 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +117 -67
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +2 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -1
- data/src/core/ext/transport/chttp2/transport/frame.cc +2 -15
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/goaway.cc +17 -2
- data/src/core/ext/transport/chttp2/transport/goaway.h +27 -6
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -21
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +101 -40
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +95 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +923 -772
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +406 -423
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +8 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +25 -13
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +71 -24
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +25 -49
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +29 -9
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -2
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/keepalive.h +9 -6
- data/src/core/ext/transport/chttp2/transport/parsing.cc +11 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +34 -74
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +123 -79
- data/src/core/ext/transport/chttp2/transport/security_frame.h +233 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +152 -73
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +155 -85
- data/src/core/ext/transport/chttp2/transport/transport_common.h +0 -5
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +8 -7
- data/src/core/ext/transport/chttp2/transport/write_cycle.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +355 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +31 -29
- data/src/core/ext/upb-gen/cel/expr/checked.upb.h +1875 -0
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +409 -0
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +56 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +2223 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +489 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +60 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +130 -18
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -13
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +70 -38
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +20 -17
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +26 -10
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +8 -7
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +495 -0
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +114 -0
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +26 -10
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +8 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +121 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +143 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +18 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +112 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +22 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +276 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +60 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +72 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +23 -2
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +129 -13
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +36 -10
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +16 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -3
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +63 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +12 -7
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +97 -81
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +40 -23
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +604 -228
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +146 -100
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +35 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +66 -14
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +22 -11
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +87 -0
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +29 -2
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +20 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +5 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +239 -60
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +59 -28
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +89 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +135 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +53 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +105 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +206 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +41 -8
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +4 -3
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +31 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +283 -14
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +48 -11
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +144 -6
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +42 -21
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +9 -8
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +164 -1
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +37 -6
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +26 -11
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -8
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +33 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +14 -3
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +90 -10
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +18 -7
- data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c +248 -0
- data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h +97 -0
- data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c +283 -0
- data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h +107 -0
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +213 -211
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +635 -614
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1012 -1000
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +276 -273
- data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +149 -144
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +367 -370
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +297 -284
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +492 -469
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +74 -43
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +60 -59
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +202 -184
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +354 -339
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +28 -19
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +30 -27
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +71 -66
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +94 -91
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +386 -369
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +60 -57
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +1974 -1884
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +119 -112
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +62 -51
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +109 -88
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +54 -36
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +78 -84
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +48 -46
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1041 -984
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +304 -290
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +94 -77
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +246 -193
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +37 -23
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +5 -3
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +4 -5
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +113 -87
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +6 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +25 -30
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +14 -20
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +180 -183
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +56 -47
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +69 -47
- data/src/core/filter/filter_chain.h +95 -0
- data/src/core/handshaker/http_connect/{http_connect_handshaker.cc → http_connect_client_handshaker.cc} +32 -31
- data/src/core/handshaker/http_connect/{http_connect_handshaker.h → http_connect_client_handshaker.h} +4 -4
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +1 -1
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +14 -13
- data/src/core/handshaker/security/secure_endpoint.cc +282 -68
- data/src/core/handshaker/security/secure_endpoint.h +0 -7
- data/src/core/lib/channel/channel_args.h +1 -1
- data/src/core/lib/channel/promise_based_filter.cc +17 -4
- data/src/core/lib/channel/promise_based_filter.h +3 -2
- data/src/core/lib/debug/trace_flags.cc +2 -0
- data/src/core/lib/debug/trace_flags.h +1 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +35 -8
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +1 -2
- data/src/core/lib/event_engine/event_engine.cc +9 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +0 -3
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +24 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +141 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +19 -2
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +7 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +21 -3
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +16 -0
- data/src/core/lib/experiments/experiments.cc +309 -201
- data/src/core/lib/experiments/experiments.h +141 -80
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/resolve_address.h +0 -2
- data/src/core/lib/iomgr/resolved_address.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +13 -5
- data/src/core/lib/iomgr/tcp_server.cc +0 -5
- data/src/core/lib/iomgr/tcp_server.h +0 -7
- data/src/core/lib/iomgr/tcp_server_posix.cc +0 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -3
- data/src/core/lib/iomgr/tcp_server_windows.cc +12 -51
- data/src/core/lib/promise/all_ok.h +17 -12
- data/src/core/lib/promise/cancel_callback.h +12 -13
- data/src/core/lib/promise/detail/join_state.h +626 -0
- data/src/core/lib/promise/detail/promise_factory.h +14 -14
- data/src/core/lib/promise/for_each.h +32 -8
- data/src/core/lib/promise/if.h +9 -7
- data/src/core/lib/promise/loop.h +18 -16
- data/src/core/lib/promise/map.h +54 -47
- data/src/core/lib/promise/mpsc.h +11 -10
- data/src/core/lib/promise/observable.h +6 -6
- data/src/core/lib/promise/party.h +25 -19
- data/src/core/lib/promise/poll.h +5 -5
- data/src/core/lib/promise/prioritized_race.h +10 -7
- data/src/core/lib/promise/promise.h +16 -11
- data/src/core/lib/promise/race.h +6 -5
- data/src/core/lib/promise/seq.h +109 -74
- data/src/core/lib/promise/try_join.h +14 -6
- data/src/core/lib/promise/try_seq.h +76 -60
- data/src/core/lib/resource_quota/api.cc +7 -0
- data/src/core/lib/resource_quota/arena.h +1 -1
- data/src/core/lib/resource_quota/memory_quota.cc +4 -1
- data/src/core/lib/resource_quota/resource_quota.cc +2 -1
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/resource_quota/stream_quota.cc +77 -1
- data/src/core/lib/resource_quota/stream_quota.h +64 -1
- data/src/core/lib/resource_quota/telemetry.h +1 -1
- data/src/core/lib/surface/call.cc +13 -0
- data/src/core/lib/surface/call_utils.h +58 -43
- data/src/core/lib/surface/channel.h +1 -4
- data/src/core/lib/surface/completion_queue.cc +13 -6
- data/src/core/lib/surface/validate_metadata.cc +20 -15
- data/src/core/lib/surface/validate_metadata.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +1 -1
- data/src/core/lib/transport/promise_endpoint.h +1 -1
- data/src/core/lib/transport/transport.h +5 -0
- data/src/core/load_balancing/health_check_client.cc +1 -15
- data/src/core/load_balancing/health_check_client_internal.h +0 -2
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/oob_backend_metric_internal.h +0 -1
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +12 -9
- data/src/core/plugin_registry/grpc_plugin_registry.cc +3 -2
- data/src/core/resolver/xds/xds_resolver.cc +162 -116
- data/src/core/server/server.cc +18 -1
- data/src/core/server/server.h +2 -0
- data/src/core/server/xds_server_config_fetcher.cc +4 -4
- data/src/core/telemetry/call_tracer.cc +87 -2
- data/src/core/telemetry/call_tracer.h +46 -8
- data/src/core/telemetry/instrument.cc +102 -40
- data/src/core/telemetry/instrument.h +246 -65
- data/src/core/tsi/fake_transport_security.cc +3 -1
- data/src/core/tsi/ssl_transport_security.cc +516 -137
- data/src/core/tsi/ssl_transport_security.h +28 -22
- data/src/core/tsi/ssl_transport_security_utils.cc +2 -2
- data/src/core/tsi/ssl_transport_security_utils.h +2 -2
- data/src/core/util/bitset.h +6 -0
- data/src/core/util/function_signature.h +3 -1
- data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
- data/src/core/util/json/json_reader.cc +0 -4
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -1
- data/src/core/xds/grpc/certificate_provider_store.h +3 -17
- data/src/core/xds/grpc/certificate_provider_store_interface.h +61 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +48 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +18 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +7 -2
- data/src/core/xds/grpc/xds_certificate_provider.h +13 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +13 -6
- data/src/core/xds/grpc/xds_client_grpc.h +10 -7
- data/src/core/xds/grpc/xds_cluster.cc +18 -4
- data/src/core/xds/grpc/xds_cluster.h +17 -2
- data/src/core/xds/grpc/xds_cluster_parser.cc +36 -11
- data/src/core/xds/grpc/xds_common_types.cc +45 -0
- data/src/core/xds/grpc/xds_common_types.h +31 -0
- data/src/core/xds/grpc/xds_common_types_parser.cc +274 -16
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_fault_filter.cc +128 -24
- data/src/core/xds/grpc/xds_http_fault_filter.h +19 -10
- data/src/core/xds/grpc/xds_http_filter.cc +38 -0
- data/src/core/xds/grpc/xds_http_filter.h +70 -47
- data/src/core/xds/grpc/xds_http_filter_registry.cc +48 -14
- data/src/core/xds/grpc/xds_http_filter_registry.h +29 -15
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +88 -22
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +22 -11
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +36 -20
- data/src/core/xds/grpc/xds_http_rbac_filter.h +19 -10
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +143 -26
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -10
- data/src/core/xds/grpc/xds_listener.cc +4 -1
- data/src/core/xds/grpc/xds_listener.h +10 -2
- data/src/core/xds/grpc/xds_listener_parser.cc +23 -18
- data/src/core/xds/grpc/xds_matcher.cc +40 -5
- data/src/core/xds/grpc/xds_matcher.h +13 -0
- data/src/core/xds/grpc/xds_matcher_action.h +1 -1
- data/src/core/xds/grpc/xds_matcher_parse.cc +60 -40
- data/src/core/xds/grpc/xds_matcher_parse.h +2 -1
- data/src/core/xds/grpc/xds_route_config.cc +12 -1
- data/src/core/xds/grpc/xds_route_config.h +15 -2
- data/src/core/xds/grpc/xds_route_config_parser.cc +11 -5
- data/src/core/xds/grpc/xds_routing.cc +181 -6
- data/src/core/xds/grpc/xds_routing.h +57 -0
- data/src/core/xds/grpc/xds_server_grpc.cc +55 -43
- data/src/core/xds/grpc/xds_server_grpc.h +13 -6
- data/src/core/xds/grpc/xds_server_grpc_interface.h +3 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +12 -6
- data/src/core/xds/grpc/xds_transport_grpc.h +5 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +18 -12
- data/src/ruby/lib/grpc/grpc.rb +7 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +3 -4
- data/src/ruby/spec/spec_helper.rb +1 -1
- metadata +64 -14
- data/src/core/ext/transport/chttp2/transport/security_frame.cc +0 -31
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +0 -597
|
@@ -23,24 +23,34 @@
|
|
|
23
23
|
|
|
24
24
|
#if defined(GRPC_CFSTREAM)
|
|
25
25
|
namespace {
|
|
26
|
+
const char* const description_buffer_list_deletion_prep =
|
|
27
|
+
"Gate the removal of old TCP timestamp collection mechanism.";
|
|
28
|
+
const char* const additional_constraints_buffer_list_deletion_prep = "{}";
|
|
26
29
|
const char* const description_call_tracer_in_transport =
|
|
27
30
|
"Transport directly passes byte counts to CallTracer.";
|
|
28
31
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
|
29
|
-
const char* const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const char* const
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
const char* const
|
|
33
|
+
description_call_tracer_send_initial_metadata_is_an_annotation =
|
|
34
|
+
"Use the new annotation-based CallTracer API.";
|
|
35
|
+
const char* const
|
|
36
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation =
|
|
37
|
+
"{}";
|
|
38
|
+
const char* const
|
|
39
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
40
|
+
"Use the new annotation-based CallTracer API.";
|
|
41
|
+
const char* const
|
|
42
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
43
|
+
"{}";
|
|
35
44
|
const char* const description_chaotic_good_connect_deadline =
|
|
36
45
|
"Use the deadline from the connect args in chaotic good connector";
|
|
37
46
|
const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
|
|
38
47
|
const char* const description_chaotic_good_framing_layer =
|
|
39
48
|
"Enable the chaotic good framing layer.";
|
|
40
49
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
|
41
|
-
const char* const
|
|
42
|
-
"
|
|
43
|
-
const char* const
|
|
50
|
+
const char* const description_chaotic_good_send_supported_features =
|
|
51
|
+
"Send supported features in chaotic good settings frames.";
|
|
52
|
+
const char* const additional_constraints_chaotic_good_send_supported_features =
|
|
53
|
+
"{}";
|
|
44
54
|
const char* const description_error_flatten =
|
|
45
55
|
"Flatten errors to ordinary absl::Status form.";
|
|
46
56
|
const char* const additional_constraints_error_flatten = "{}";
|
|
@@ -82,9 +92,6 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
|
82
92
|
const char* const description_event_engine_poller_for_python =
|
|
83
93
|
"Enable event engine poller in gRPC Python";
|
|
84
94
|
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
|
85
|
-
const char* const description_event_engine_secure_endpoint =
|
|
86
|
-
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
|
87
|
-
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
88
95
|
const char* const description_fail_recv_metadata_on_deadline_exceeded =
|
|
89
96
|
"Fail recv initial metadata when the deadline is exceeded.";
|
|
90
97
|
const char* const
|
|
@@ -95,10 +102,6 @@ const char* const additional_constraints_free_large_allocator = "{}";
|
|
|
95
102
|
const char* const description_fuse_filters =
|
|
96
103
|
"If set, individual filters are merged into fused filters";
|
|
97
104
|
const char* const additional_constraints_fuse_filters = "{}";
|
|
98
|
-
const char* const description_graceful_external_connection_failure =
|
|
99
|
-
"If set, handles external connection failures gracefully";
|
|
100
|
-
const char* const additional_constraints_graceful_external_connection_failure =
|
|
101
|
-
"{}";
|
|
102
105
|
const char* const description_keep_alive_ping_timer_batch =
|
|
103
106
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
|
104
107
|
"callback to re-schedule itself to the next ping interval.";
|
|
@@ -110,6 +113,9 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
|
110
113
|
const char* const description_max_inflight_pings_strict_limit =
|
|
111
114
|
"If set, the max inflight pings limit is strictly enforced.";
|
|
112
115
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
|
116
|
+
const char* const description_metadata_publish_to_app_tag =
|
|
117
|
+
"Publish metadata to the app using the kPublishToApp metadata field.";
|
|
118
|
+
const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
|
|
113
119
|
const char* const description_monitoring_experiment =
|
|
114
120
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
|
115
121
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
|
@@ -131,8 +137,7 @@ const char* const description_pipelined_read_secure_endpoint =
|
|
|
131
137
|
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
|
132
138
|
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
|
133
139
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
134
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
135
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
140
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
136
141
|
const char* const description_pollset_alternative =
|
|
137
142
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
|
138
143
|
"alternatives when enabled.";
|
|
@@ -159,8 +164,16 @@ const char* const additional_constraints_promise_based_http2_server_transport =
|
|
|
159
164
|
const char* const description_promise_based_inproc_transport =
|
|
160
165
|
"Use promises for the in-process transport.";
|
|
161
166
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
|
167
|
+
const char* const description_promise_filter_send_cancel_metadata =
|
|
168
|
+
"Enables sending all trailing metadata fields from server side "
|
|
169
|
+
"promise-based filters upon stream cancellation.";
|
|
170
|
+
const char* const additional_constraints_promise_filter_send_cancel_metadata =
|
|
171
|
+
"{}";
|
|
162
172
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
|
163
173
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
|
174
|
+
const char* const description_return_preexisting_errors =
|
|
175
|
+
"Return errors that exist before the start of the call in RunHandler.";
|
|
176
|
+
const char* const additional_constraints_return_preexisting_errors = "{}";
|
|
164
177
|
const char* const description_rr_wrr_connect_from_random_index =
|
|
165
178
|
"RR and WRR LB policies start connecting from a random index in the "
|
|
166
179
|
"address list.";
|
|
@@ -176,16 +189,20 @@ const char* const additional_constraints_secure_endpoint_offload_large_reads =
|
|
|
176
189
|
"{}";
|
|
177
190
|
const uint8_t required_experiments_secure_endpoint_offload_large_reads[] = {
|
|
178
191
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
179
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
180
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
192
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
181
193
|
const char* const description_secure_endpoint_offload_large_writes =
|
|
182
194
|
"If a large read write to be encrypted, use a separate thread.";
|
|
183
195
|
const char* const additional_constraints_secure_endpoint_offload_large_writes =
|
|
184
196
|
"{}";
|
|
185
197
|
const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
|
|
186
198
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
187
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
188
|
-
|
|
199
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
200
|
+
const char* const description_secure_endpoint_read_coalescing =
|
|
201
|
+
"Coalesce decrypted bytes in SecureEndpoint if a read_hint is provided.";
|
|
202
|
+
const char* const additional_constraints_secure_endpoint_read_coalescing = "{}";
|
|
203
|
+
const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
|
|
204
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
205
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
189
206
|
const char* const description_skip_clear_peer_on_cancellation =
|
|
190
207
|
"If set, skips clearing of peer string on call cancellation.";
|
|
191
208
|
const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
|
|
@@ -195,6 +212,9 @@ const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
|
|
195
212
|
const char* const description_sleep_use_non_owning_waker =
|
|
196
213
|
"If set, the sleep promise uses a non-owning waker.";
|
|
197
214
|
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
|
215
|
+
const char* const description_subchannel_connection_scaling =
|
|
216
|
+
"Subchannel connection scaling support.";
|
|
217
|
+
const char* const additional_constraints_subchannel_connection_scaling = "{}";
|
|
198
218
|
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
|
199
219
|
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
|
200
220
|
"gets orphaned.";
|
|
@@ -209,18 +229,6 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
|
209
229
|
const char* const description_tcp_rcv_lowat =
|
|
210
230
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
|
211
231
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
|
212
|
-
const char* const description_track_writes_in_resource_quota =
|
|
213
|
-
"Track the Write memory in Resource Quota.";
|
|
214
|
-
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
|
215
|
-
const char* const description_track_zero_copy_allocations_in_resource_quota =
|
|
216
|
-
"Track the memory allocattions under the zero copy path in Resource Quota. "
|
|
217
|
-
"This includes the encryption / decryption for privacy-and-integrity "
|
|
218
|
-
"payloads.";
|
|
219
|
-
const char* const
|
|
220
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota = "{}";
|
|
221
|
-
const char* const description_transport_state_watcher =
|
|
222
|
-
"New state watcher API between transport and subchannel.";
|
|
223
|
-
const char* const additional_constraints_transport_state_watcher = "{}";
|
|
224
232
|
const char* const description_tsi_frame_protector_without_locks =
|
|
225
233
|
"Do not hold locks while using the tsi_frame_protector.";
|
|
226
234
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
|
@@ -229,28 +237,45 @@ const char* const description_unconstrained_max_quota_buffer_size =
|
|
|
229
237
|
"Discard the cap on the max free pool size for one memory allocator";
|
|
230
238
|
const char* const additional_constraints_unconstrained_max_quota_buffer_size =
|
|
231
239
|
"{}";
|
|
240
|
+
const char* const description_use_call_event_engine_in_completion_queue =
|
|
241
|
+
"Use the call event engine to run callbacks in completion queue.";
|
|
242
|
+
const char* const
|
|
243
|
+
additional_constraints_use_call_event_engine_in_completion_queue = "{}";
|
|
244
|
+
const char* const description_wildcard_ip_expansion_restriction =
|
|
245
|
+
"If set, adds optional restriction on when to expand wildcard IPs.";
|
|
246
|
+
const char* const additional_constraints_wildcard_ip_expansion_restriction =
|
|
247
|
+
"{}";
|
|
248
|
+
const char* const description_xds_channel_filter_chain_per_route =
|
|
249
|
+
"xDS channels use a separate filter chain for each route.";
|
|
250
|
+
const char* const additional_constraints_xds_channel_filter_chain_per_route =
|
|
251
|
+
"{}";
|
|
232
252
|
} // namespace
|
|
233
253
|
|
|
234
254
|
namespace grpc_core {
|
|
235
255
|
|
|
236
256
|
const ExperimentMetadata g_experiment_metadata[] = {
|
|
257
|
+
{"buffer_list_deletion_prep", description_buffer_list_deletion_prep,
|
|
258
|
+
additional_constraints_buffer_list_deletion_prep, nullptr, 0, false, true},
|
|
237
259
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
|
238
260
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
|
239
|
-
{"
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
261
|
+
{"call_tracer_send_initial_metadata_is_an_annotation",
|
|
262
|
+
description_call_tracer_send_initial_metadata_is_an_annotation,
|
|
263
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation,
|
|
264
|
+
nullptr, 0, true, true},
|
|
265
|
+
{"call_tracer_send_trailing_metadata_is_an_annotation",
|
|
266
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
267
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
268
|
+
nullptr, 0, false, true},
|
|
246
269
|
{"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
|
|
247
270
|
additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
|
|
248
271
|
true},
|
|
249
272
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
|
250
273
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
|
251
274
|
false},
|
|
252
|
-
{"
|
|
253
|
-
|
|
275
|
+
{"chaotic_good_send_supported_features",
|
|
276
|
+
description_chaotic_good_send_supported_features,
|
|
277
|
+
additional_constraints_chaotic_good_send_supported_features, nullptr, 0,
|
|
278
|
+
false, true},
|
|
254
279
|
{"error_flatten", description_error_flatten,
|
|
255
280
|
additional_constraints_error_flatten, nullptr, 0, false, false},
|
|
256
281
|
{"event_engine_client", description_event_engine_client,
|
|
@@ -262,7 +287,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
262
287
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
|
263
288
|
true, false},
|
|
264
289
|
{"event_engine_fork", description_event_engine_fork,
|
|
265
|
-
additional_constraints_event_engine_fork, nullptr, 0,
|
|
290
|
+
additional_constraints_event_engine_fork, nullptr, 0, true, false},
|
|
266
291
|
{"event_engine_listener", description_event_engine_listener,
|
|
267
292
|
additional_constraints_event_engine_listener, nullptr, 0, true, false},
|
|
268
293
|
{"event_engine_callback_cq", description_event_engine_callback_cq,
|
|
@@ -274,11 +299,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
274
299
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
|
275
300
|
{"event_engine_poller_for_python",
|
|
276
301
|
description_event_engine_poller_for_python,
|
|
277
|
-
additional_constraints_event_engine_poller_for_python, nullptr, 0,
|
|
302
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, true,
|
|
278
303
|
true},
|
|
279
|
-
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
|
280
|
-
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
|
281
|
-
false},
|
|
282
304
|
{"fail_recv_metadata_on_deadline_exceeded",
|
|
283
305
|
description_fail_recv_metadata_on_deadline_exceeded,
|
|
284
306
|
additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
|
|
@@ -287,10 +309,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
287
309
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
|
288
310
|
{"fuse_filters", description_fuse_filters,
|
|
289
311
|
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
|
290
|
-
{"graceful_external_connection_failure",
|
|
291
|
-
description_graceful_external_connection_failure,
|
|
292
|
-
additional_constraints_graceful_external_connection_failure, nullptr, 0,
|
|
293
|
-
true, false},
|
|
294
312
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
|
295
313
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
|
296
314
|
true},
|
|
@@ -300,6 +318,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
300
318
|
description_max_inflight_pings_strict_limit,
|
|
301
319
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
|
302
320
|
true},
|
|
321
|
+
{"metadata_publish_to_app_tag", description_metadata_publish_to_app_tag,
|
|
322
|
+
additional_constraints_metadata_publish_to_app_tag, nullptr, 0, true,
|
|
323
|
+
true},
|
|
303
324
|
{"monitoring_experiment", description_monitoring_experiment,
|
|
304
325
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
|
305
326
|
{"multiping", description_multiping, additional_constraints_multiping,
|
|
@@ -313,12 +334,12 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
313
334
|
true},
|
|
314
335
|
{"pick_first_ready_to_connecting",
|
|
315
336
|
description_pick_first_ready_to_connecting,
|
|
316
|
-
additional_constraints_pick_first_ready_to_connecting, nullptr, 0,
|
|
337
|
+
additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true,
|
|
317
338
|
true},
|
|
318
339
|
{"pipelined_read_secure_endpoint",
|
|
319
340
|
description_pipelined_read_secure_endpoint,
|
|
320
341
|
additional_constraints_pipelined_read_secure_endpoint,
|
|
321
|
-
required_experiments_pipelined_read_secure_endpoint,
|
|
342
|
+
required_experiments_pipelined_read_secure_endpoint, 2, false, false},
|
|
322
343
|
{"pollset_alternative", description_pollset_alternative,
|
|
323
344
|
additional_constraints_pollset_alternative,
|
|
324
345
|
required_experiments_pollset_alternative, 2, false, false},
|
|
@@ -337,11 +358,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
337
358
|
description_promise_based_inproc_transport,
|
|
338
359
|
additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
|
|
339
360
|
false},
|
|
361
|
+
{"promise_filter_send_cancel_metadata",
|
|
362
|
+
description_promise_filter_send_cancel_metadata,
|
|
363
|
+
additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
|
|
364
|
+
false, true},
|
|
340
365
|
{"retry_in_callv3", description_retry_in_callv3,
|
|
341
366
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
|
367
|
+
{"return_preexisting_errors", description_return_preexisting_errors,
|
|
368
|
+
additional_constraints_return_preexisting_errors, nullptr, 0, false, true},
|
|
342
369
|
{"rr_wrr_connect_from_random_index",
|
|
343
370
|
description_rr_wrr_connect_from_random_index,
|
|
344
|
-
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0,
|
|
371
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true,
|
|
345
372
|
true},
|
|
346
373
|
{"schedule_cancellation_over_write",
|
|
347
374
|
description_schedule_cancellation_over_write,
|
|
@@ -350,11 +377,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
350
377
|
{"secure_endpoint_offload_large_reads",
|
|
351
378
|
description_secure_endpoint_offload_large_reads,
|
|
352
379
|
additional_constraints_secure_endpoint_offload_large_reads,
|
|
353
|
-
required_experiments_secure_endpoint_offload_large_reads,
|
|
380
|
+
required_experiments_secure_endpoint_offload_large_reads, 2, false, true},
|
|
354
381
|
{"secure_endpoint_offload_large_writes",
|
|
355
382
|
description_secure_endpoint_offload_large_writes,
|
|
356
383
|
additional_constraints_secure_endpoint_offload_large_writes,
|
|
357
|
-
required_experiments_secure_endpoint_offload_large_writes,
|
|
384
|
+
required_experiments_secure_endpoint_offload_large_writes, 2, false, true},
|
|
385
|
+
{"secure_endpoint_read_coalescing",
|
|
386
|
+
description_secure_endpoint_read_coalescing,
|
|
387
|
+
additional_constraints_secure_endpoint_read_coalescing,
|
|
388
|
+
required_experiments_secure_endpoint_read_coalescing, 2, false, true},
|
|
358
389
|
{"skip_clear_peer_on_cancellation",
|
|
359
390
|
description_skip_clear_peer_on_cancellation,
|
|
360
391
|
additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
|
|
@@ -365,6 +396,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
365
396
|
true},
|
|
366
397
|
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
|
367
398
|
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
|
|
399
|
+
{"subchannel_connection_scaling", description_subchannel_connection_scaling,
|
|
400
|
+
additional_constraints_subchannel_connection_scaling, nullptr, 0, false,
|
|
401
|
+
true},
|
|
368
402
|
{"subchannel_wrapper_cleanup_on_orphan",
|
|
369
403
|
description_subchannel_wrapper_cleanup_on_orphan,
|
|
370
404
|
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
|
@@ -373,16 +407,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
373
407
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
|
374
408
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
|
375
409
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
|
376
|
-
{"track_writes_in_resource_quota",
|
|
377
|
-
description_track_writes_in_resource_quota,
|
|
378
|
-
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
|
379
|
-
true},
|
|
380
|
-
{"track_zero_copy_allocations_in_resource_quota",
|
|
381
|
-
description_track_zero_copy_allocations_in_resource_quota,
|
|
382
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota,
|
|
383
|
-
nullptr, 0, false, true},
|
|
384
|
-
{"transport_state_watcher", description_transport_state_watcher,
|
|
385
|
-
additional_constraints_transport_state_watcher, nullptr, 0, false, true},
|
|
386
410
|
{"tsi_frame_protector_without_locks",
|
|
387
411
|
description_tsi_frame_protector_without_locks,
|
|
388
412
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
|
@@ -391,30 +415,52 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
391
415
|
description_unconstrained_max_quota_buffer_size,
|
|
392
416
|
additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0,
|
|
393
417
|
false, true},
|
|
418
|
+
{"use_call_event_engine_in_completion_queue",
|
|
419
|
+
description_use_call_event_engine_in_completion_queue,
|
|
420
|
+
additional_constraints_use_call_event_engine_in_completion_queue, nullptr,
|
|
421
|
+
0, false, true},
|
|
422
|
+
{"wildcard_ip_expansion_restriction",
|
|
423
|
+
description_wildcard_ip_expansion_restriction,
|
|
424
|
+
additional_constraints_wildcard_ip_expansion_restriction, nullptr, 0,
|
|
425
|
+
false, true},
|
|
426
|
+
{"xds_channel_filter_chain_per_route",
|
|
427
|
+
description_xds_channel_filter_chain_per_route,
|
|
428
|
+
additional_constraints_xds_channel_filter_chain_per_route, nullptr, 0,
|
|
429
|
+
true, true},
|
|
394
430
|
};
|
|
395
431
|
|
|
396
432
|
} // namespace grpc_core
|
|
397
433
|
|
|
398
434
|
#elif defined(GPR_WINDOWS)
|
|
399
435
|
namespace {
|
|
436
|
+
const char* const description_buffer_list_deletion_prep =
|
|
437
|
+
"Gate the removal of old TCP timestamp collection mechanism.";
|
|
438
|
+
const char* const additional_constraints_buffer_list_deletion_prep = "{}";
|
|
400
439
|
const char* const description_call_tracer_in_transport =
|
|
401
440
|
"Transport directly passes byte counts to CallTracer.";
|
|
402
441
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
|
403
|
-
const char* const
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
const char* const
|
|
407
|
-
|
|
408
|
-
|
|
442
|
+
const char* const
|
|
443
|
+
description_call_tracer_send_initial_metadata_is_an_annotation =
|
|
444
|
+
"Use the new annotation-based CallTracer API.";
|
|
445
|
+
const char* const
|
|
446
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation =
|
|
447
|
+
"{}";
|
|
448
|
+
const char* const
|
|
449
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
450
|
+
"Use the new annotation-based CallTracer API.";
|
|
451
|
+
const char* const
|
|
452
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
453
|
+
"{}";
|
|
409
454
|
const char* const description_chaotic_good_connect_deadline =
|
|
410
455
|
"Use the deadline from the connect args in chaotic good connector";
|
|
411
456
|
const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
|
|
412
457
|
const char* const description_chaotic_good_framing_layer =
|
|
413
458
|
"Enable the chaotic good framing layer.";
|
|
414
459
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
|
415
|
-
const char* const
|
|
416
|
-
"
|
|
417
|
-
const char* const
|
|
460
|
+
const char* const description_chaotic_good_send_supported_features =
|
|
461
|
+
"Send supported features in chaotic good settings frames.";
|
|
462
|
+
const char* const additional_constraints_chaotic_good_send_supported_features =
|
|
463
|
+
"{}";
|
|
418
464
|
const char* const description_error_flatten =
|
|
419
465
|
"Flatten errors to ordinary absl::Status form.";
|
|
420
466
|
const char* const additional_constraints_error_flatten = "{}";
|
|
@@ -456,9 +502,6 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
|
456
502
|
const char* const description_event_engine_poller_for_python =
|
|
457
503
|
"Enable event engine poller in gRPC Python";
|
|
458
504
|
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
|
459
|
-
const char* const description_event_engine_secure_endpoint =
|
|
460
|
-
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
|
461
|
-
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
462
505
|
const char* const description_fail_recv_metadata_on_deadline_exceeded =
|
|
463
506
|
"Fail recv initial metadata when the deadline is exceeded.";
|
|
464
507
|
const char* const
|
|
@@ -469,10 +512,6 @@ const char* const additional_constraints_free_large_allocator = "{}";
|
|
|
469
512
|
const char* const description_fuse_filters =
|
|
470
513
|
"If set, individual filters are merged into fused filters";
|
|
471
514
|
const char* const additional_constraints_fuse_filters = "{}";
|
|
472
|
-
const char* const description_graceful_external_connection_failure =
|
|
473
|
-
"If set, handles external connection failures gracefully";
|
|
474
|
-
const char* const additional_constraints_graceful_external_connection_failure =
|
|
475
|
-
"{}";
|
|
476
515
|
const char* const description_keep_alive_ping_timer_batch =
|
|
477
516
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
|
478
517
|
"callback to re-schedule itself to the next ping interval.";
|
|
@@ -484,6 +523,9 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
|
484
523
|
const char* const description_max_inflight_pings_strict_limit =
|
|
485
524
|
"If set, the max inflight pings limit is strictly enforced.";
|
|
486
525
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
|
526
|
+
const char* const description_metadata_publish_to_app_tag =
|
|
527
|
+
"Publish metadata to the app using the kPublishToApp metadata field.";
|
|
528
|
+
const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
|
|
487
529
|
const char* const description_monitoring_experiment =
|
|
488
530
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
|
489
531
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
|
@@ -505,8 +547,7 @@ const char* const description_pipelined_read_secure_endpoint =
|
|
|
505
547
|
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
|
506
548
|
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
|
507
549
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
508
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
509
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
550
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
510
551
|
const char* const description_pollset_alternative =
|
|
511
552
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
|
512
553
|
"alternatives when enabled.";
|
|
@@ -533,8 +574,16 @@ const char* const additional_constraints_promise_based_http2_server_transport =
|
|
|
533
574
|
const char* const description_promise_based_inproc_transport =
|
|
534
575
|
"Use promises for the in-process transport.";
|
|
535
576
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
|
577
|
+
const char* const description_promise_filter_send_cancel_metadata =
|
|
578
|
+
"Enables sending all trailing metadata fields from server side "
|
|
579
|
+
"promise-based filters upon stream cancellation.";
|
|
580
|
+
const char* const additional_constraints_promise_filter_send_cancel_metadata =
|
|
581
|
+
"{}";
|
|
536
582
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
|
537
583
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
|
584
|
+
const char* const description_return_preexisting_errors =
|
|
585
|
+
"Return errors that exist before the start of the call in RunHandler.";
|
|
586
|
+
const char* const additional_constraints_return_preexisting_errors = "{}";
|
|
538
587
|
const char* const description_rr_wrr_connect_from_random_index =
|
|
539
588
|
"RR and WRR LB policies start connecting from a random index in the "
|
|
540
589
|
"address list.";
|
|
@@ -550,16 +599,20 @@ const char* const additional_constraints_secure_endpoint_offload_large_reads =
|
|
|
550
599
|
"{}";
|
|
551
600
|
const uint8_t required_experiments_secure_endpoint_offload_large_reads[] = {
|
|
552
601
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
553
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
554
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
602
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
555
603
|
const char* const description_secure_endpoint_offload_large_writes =
|
|
556
604
|
"If a large read write to be encrypted, use a separate thread.";
|
|
557
605
|
const char* const additional_constraints_secure_endpoint_offload_large_writes =
|
|
558
606
|
"{}";
|
|
559
607
|
const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
|
|
560
608
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
561
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
562
|
-
|
|
609
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
610
|
+
const char* const description_secure_endpoint_read_coalescing =
|
|
611
|
+
"Coalesce decrypted bytes in SecureEndpoint if a read_hint is provided.";
|
|
612
|
+
const char* const additional_constraints_secure_endpoint_read_coalescing = "{}";
|
|
613
|
+
const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
|
|
614
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
615
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
563
616
|
const char* const description_skip_clear_peer_on_cancellation =
|
|
564
617
|
"If set, skips clearing of peer string on call cancellation.";
|
|
565
618
|
const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
|
|
@@ -569,6 +622,9 @@ const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
|
|
569
622
|
const char* const description_sleep_use_non_owning_waker =
|
|
570
623
|
"If set, the sleep promise uses a non-owning waker.";
|
|
571
624
|
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
|
625
|
+
const char* const description_subchannel_connection_scaling =
|
|
626
|
+
"Subchannel connection scaling support.";
|
|
627
|
+
const char* const additional_constraints_subchannel_connection_scaling = "{}";
|
|
572
628
|
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
|
573
629
|
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
|
574
630
|
"gets orphaned.";
|
|
@@ -583,18 +639,6 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
|
583
639
|
const char* const description_tcp_rcv_lowat =
|
|
584
640
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
|
585
641
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
|
586
|
-
const char* const description_track_writes_in_resource_quota =
|
|
587
|
-
"Track the Write memory in Resource Quota.";
|
|
588
|
-
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
|
589
|
-
const char* const description_track_zero_copy_allocations_in_resource_quota =
|
|
590
|
-
"Track the memory allocattions under the zero copy path in Resource Quota. "
|
|
591
|
-
"This includes the encryption / decryption for privacy-and-integrity "
|
|
592
|
-
"payloads.";
|
|
593
|
-
const char* const
|
|
594
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota = "{}";
|
|
595
|
-
const char* const description_transport_state_watcher =
|
|
596
|
-
"New state watcher API between transport and subchannel.";
|
|
597
|
-
const char* const additional_constraints_transport_state_watcher = "{}";
|
|
598
642
|
const char* const description_tsi_frame_protector_without_locks =
|
|
599
643
|
"Do not hold locks while using the tsi_frame_protector.";
|
|
600
644
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
|
@@ -603,28 +647,45 @@ const char* const description_unconstrained_max_quota_buffer_size =
|
|
|
603
647
|
"Discard the cap on the max free pool size for one memory allocator";
|
|
604
648
|
const char* const additional_constraints_unconstrained_max_quota_buffer_size =
|
|
605
649
|
"{}";
|
|
650
|
+
const char* const description_use_call_event_engine_in_completion_queue =
|
|
651
|
+
"Use the call event engine to run callbacks in completion queue.";
|
|
652
|
+
const char* const
|
|
653
|
+
additional_constraints_use_call_event_engine_in_completion_queue = "{}";
|
|
654
|
+
const char* const description_wildcard_ip_expansion_restriction =
|
|
655
|
+
"If set, adds optional restriction on when to expand wildcard IPs.";
|
|
656
|
+
const char* const additional_constraints_wildcard_ip_expansion_restriction =
|
|
657
|
+
"{}";
|
|
658
|
+
const char* const description_xds_channel_filter_chain_per_route =
|
|
659
|
+
"xDS channels use a separate filter chain for each route.";
|
|
660
|
+
const char* const additional_constraints_xds_channel_filter_chain_per_route =
|
|
661
|
+
"{}";
|
|
606
662
|
} // namespace
|
|
607
663
|
|
|
608
664
|
namespace grpc_core {
|
|
609
665
|
|
|
610
666
|
const ExperimentMetadata g_experiment_metadata[] = {
|
|
667
|
+
{"buffer_list_deletion_prep", description_buffer_list_deletion_prep,
|
|
668
|
+
additional_constraints_buffer_list_deletion_prep, nullptr, 0, false, true},
|
|
611
669
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
|
612
670
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
|
613
|
-
{"
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
671
|
+
{"call_tracer_send_initial_metadata_is_an_annotation",
|
|
672
|
+
description_call_tracer_send_initial_metadata_is_an_annotation,
|
|
673
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation,
|
|
674
|
+
nullptr, 0, true, true},
|
|
675
|
+
{"call_tracer_send_trailing_metadata_is_an_annotation",
|
|
676
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
677
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
678
|
+
nullptr, 0, false, true},
|
|
620
679
|
{"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
|
|
621
680
|
additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
|
|
622
681
|
true},
|
|
623
682
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
|
624
683
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
|
625
684
|
false},
|
|
626
|
-
{"
|
|
627
|
-
|
|
685
|
+
{"chaotic_good_send_supported_features",
|
|
686
|
+
description_chaotic_good_send_supported_features,
|
|
687
|
+
additional_constraints_chaotic_good_send_supported_features, nullptr, 0,
|
|
688
|
+
false, true},
|
|
628
689
|
{"error_flatten", description_error_flatten,
|
|
629
690
|
additional_constraints_error_flatten, nullptr, 0, false, false},
|
|
630
691
|
{"event_engine_client", description_event_engine_client,
|
|
@@ -636,7 +697,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
636
697
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
|
637
698
|
true, false},
|
|
638
699
|
{"event_engine_fork", description_event_engine_fork,
|
|
639
|
-
additional_constraints_event_engine_fork, nullptr, 0,
|
|
700
|
+
additional_constraints_event_engine_fork, nullptr, 0, true, false},
|
|
640
701
|
{"event_engine_listener", description_event_engine_listener,
|
|
641
702
|
additional_constraints_event_engine_listener, nullptr, 0, true, false},
|
|
642
703
|
{"event_engine_callback_cq", description_event_engine_callback_cq,
|
|
@@ -648,11 +709,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
648
709
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
|
649
710
|
{"event_engine_poller_for_python",
|
|
650
711
|
description_event_engine_poller_for_python,
|
|
651
|
-
additional_constraints_event_engine_poller_for_python, nullptr, 0,
|
|
712
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, true,
|
|
652
713
|
true},
|
|
653
|
-
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
|
654
|
-
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
|
655
|
-
false},
|
|
656
714
|
{"fail_recv_metadata_on_deadline_exceeded",
|
|
657
715
|
description_fail_recv_metadata_on_deadline_exceeded,
|
|
658
716
|
additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
|
|
@@ -661,10 +719,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
661
719
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
|
662
720
|
{"fuse_filters", description_fuse_filters,
|
|
663
721
|
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
|
664
|
-
{"graceful_external_connection_failure",
|
|
665
|
-
description_graceful_external_connection_failure,
|
|
666
|
-
additional_constraints_graceful_external_connection_failure, nullptr, 0,
|
|
667
|
-
true, false},
|
|
668
722
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
|
669
723
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
|
670
724
|
true},
|
|
@@ -674,6 +728,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
674
728
|
description_max_inflight_pings_strict_limit,
|
|
675
729
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
|
676
730
|
true},
|
|
731
|
+
{"metadata_publish_to_app_tag", description_metadata_publish_to_app_tag,
|
|
732
|
+
additional_constraints_metadata_publish_to_app_tag, nullptr, 0, true,
|
|
733
|
+
true},
|
|
677
734
|
{"monitoring_experiment", description_monitoring_experiment,
|
|
678
735
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
|
679
736
|
{"multiping", description_multiping, additional_constraints_multiping,
|
|
@@ -687,12 +744,12 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
687
744
|
true},
|
|
688
745
|
{"pick_first_ready_to_connecting",
|
|
689
746
|
description_pick_first_ready_to_connecting,
|
|
690
|
-
additional_constraints_pick_first_ready_to_connecting, nullptr, 0,
|
|
747
|
+
additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true,
|
|
691
748
|
true},
|
|
692
749
|
{"pipelined_read_secure_endpoint",
|
|
693
750
|
description_pipelined_read_secure_endpoint,
|
|
694
751
|
additional_constraints_pipelined_read_secure_endpoint,
|
|
695
|
-
required_experiments_pipelined_read_secure_endpoint,
|
|
752
|
+
required_experiments_pipelined_read_secure_endpoint, 2, false, false},
|
|
696
753
|
{"pollset_alternative", description_pollset_alternative,
|
|
697
754
|
additional_constraints_pollset_alternative,
|
|
698
755
|
required_experiments_pollset_alternative, 2, false, false},
|
|
@@ -711,11 +768,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
711
768
|
description_promise_based_inproc_transport,
|
|
712
769
|
additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
|
|
713
770
|
false},
|
|
771
|
+
{"promise_filter_send_cancel_metadata",
|
|
772
|
+
description_promise_filter_send_cancel_metadata,
|
|
773
|
+
additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
|
|
774
|
+
false, true},
|
|
714
775
|
{"retry_in_callv3", description_retry_in_callv3,
|
|
715
776
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
|
777
|
+
{"return_preexisting_errors", description_return_preexisting_errors,
|
|
778
|
+
additional_constraints_return_preexisting_errors, nullptr, 0, false, true},
|
|
716
779
|
{"rr_wrr_connect_from_random_index",
|
|
717
780
|
description_rr_wrr_connect_from_random_index,
|
|
718
|
-
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0,
|
|
781
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true,
|
|
719
782
|
true},
|
|
720
783
|
{"schedule_cancellation_over_write",
|
|
721
784
|
description_schedule_cancellation_over_write,
|
|
@@ -724,11 +787,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
724
787
|
{"secure_endpoint_offload_large_reads",
|
|
725
788
|
description_secure_endpoint_offload_large_reads,
|
|
726
789
|
additional_constraints_secure_endpoint_offload_large_reads,
|
|
727
|
-
required_experiments_secure_endpoint_offload_large_reads,
|
|
790
|
+
required_experiments_secure_endpoint_offload_large_reads, 2, false, true},
|
|
728
791
|
{"secure_endpoint_offload_large_writes",
|
|
729
792
|
description_secure_endpoint_offload_large_writes,
|
|
730
793
|
additional_constraints_secure_endpoint_offload_large_writes,
|
|
731
|
-
required_experiments_secure_endpoint_offload_large_writes,
|
|
794
|
+
required_experiments_secure_endpoint_offload_large_writes, 2, false, true},
|
|
795
|
+
{"secure_endpoint_read_coalescing",
|
|
796
|
+
description_secure_endpoint_read_coalescing,
|
|
797
|
+
additional_constraints_secure_endpoint_read_coalescing,
|
|
798
|
+
required_experiments_secure_endpoint_read_coalescing, 2, false, true},
|
|
732
799
|
{"skip_clear_peer_on_cancellation",
|
|
733
800
|
description_skip_clear_peer_on_cancellation,
|
|
734
801
|
additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
|
|
@@ -739,6 +806,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
739
806
|
true},
|
|
740
807
|
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
|
741
808
|
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
|
|
809
|
+
{"subchannel_connection_scaling", description_subchannel_connection_scaling,
|
|
810
|
+
additional_constraints_subchannel_connection_scaling, nullptr, 0, false,
|
|
811
|
+
true},
|
|
742
812
|
{"subchannel_wrapper_cleanup_on_orphan",
|
|
743
813
|
description_subchannel_wrapper_cleanup_on_orphan,
|
|
744
814
|
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
|
@@ -747,16 +817,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
747
817
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
|
748
818
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
|
749
819
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
|
750
|
-
{"track_writes_in_resource_quota",
|
|
751
|
-
description_track_writes_in_resource_quota,
|
|
752
|
-
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
|
753
|
-
true},
|
|
754
|
-
{"track_zero_copy_allocations_in_resource_quota",
|
|
755
|
-
description_track_zero_copy_allocations_in_resource_quota,
|
|
756
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota,
|
|
757
|
-
nullptr, 0, false, true},
|
|
758
|
-
{"transport_state_watcher", description_transport_state_watcher,
|
|
759
|
-
additional_constraints_transport_state_watcher, nullptr, 0, false, true},
|
|
760
820
|
{"tsi_frame_protector_without_locks",
|
|
761
821
|
description_tsi_frame_protector_without_locks,
|
|
762
822
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
|
@@ -765,30 +825,52 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
765
825
|
description_unconstrained_max_quota_buffer_size,
|
|
766
826
|
additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0,
|
|
767
827
|
false, true},
|
|
828
|
+
{"use_call_event_engine_in_completion_queue",
|
|
829
|
+
description_use_call_event_engine_in_completion_queue,
|
|
830
|
+
additional_constraints_use_call_event_engine_in_completion_queue, nullptr,
|
|
831
|
+
0, false, true},
|
|
832
|
+
{"wildcard_ip_expansion_restriction",
|
|
833
|
+
description_wildcard_ip_expansion_restriction,
|
|
834
|
+
additional_constraints_wildcard_ip_expansion_restriction, nullptr, 0,
|
|
835
|
+
false, true},
|
|
836
|
+
{"xds_channel_filter_chain_per_route",
|
|
837
|
+
description_xds_channel_filter_chain_per_route,
|
|
838
|
+
additional_constraints_xds_channel_filter_chain_per_route, nullptr, 0,
|
|
839
|
+
true, true},
|
|
768
840
|
};
|
|
769
841
|
|
|
770
842
|
} // namespace grpc_core
|
|
771
843
|
|
|
772
844
|
#else
|
|
773
845
|
namespace {
|
|
846
|
+
const char* const description_buffer_list_deletion_prep =
|
|
847
|
+
"Gate the removal of old TCP timestamp collection mechanism.";
|
|
848
|
+
const char* const additional_constraints_buffer_list_deletion_prep = "{}";
|
|
774
849
|
const char* const description_call_tracer_in_transport =
|
|
775
850
|
"Transport directly passes byte counts to CallTracer.";
|
|
776
851
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
|
777
|
-
const char* const
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
const char* const
|
|
781
|
-
|
|
782
|
-
|
|
852
|
+
const char* const
|
|
853
|
+
description_call_tracer_send_initial_metadata_is_an_annotation =
|
|
854
|
+
"Use the new annotation-based CallTracer API.";
|
|
855
|
+
const char* const
|
|
856
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation =
|
|
857
|
+
"{}";
|
|
858
|
+
const char* const
|
|
859
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
860
|
+
"Use the new annotation-based CallTracer API.";
|
|
861
|
+
const char* const
|
|
862
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation =
|
|
863
|
+
"{}";
|
|
783
864
|
const char* const description_chaotic_good_connect_deadline =
|
|
784
865
|
"Use the deadline from the connect args in chaotic good connector";
|
|
785
866
|
const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
|
|
786
867
|
const char* const description_chaotic_good_framing_layer =
|
|
787
868
|
"Enable the chaotic good framing layer.";
|
|
788
869
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
|
789
|
-
const char* const
|
|
790
|
-
"
|
|
791
|
-
const char* const
|
|
870
|
+
const char* const description_chaotic_good_send_supported_features =
|
|
871
|
+
"Send supported features in chaotic good settings frames.";
|
|
872
|
+
const char* const additional_constraints_chaotic_good_send_supported_features =
|
|
873
|
+
"{}";
|
|
792
874
|
const char* const description_error_flatten =
|
|
793
875
|
"Flatten errors to ordinary absl::Status form.";
|
|
794
876
|
const char* const additional_constraints_error_flatten = "{}";
|
|
@@ -830,9 +912,6 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
|
830
912
|
const char* const description_event_engine_poller_for_python =
|
|
831
913
|
"Enable event engine poller in gRPC Python";
|
|
832
914
|
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
|
833
|
-
const char* const description_event_engine_secure_endpoint =
|
|
834
|
-
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
|
835
|
-
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
|
836
915
|
const char* const description_fail_recv_metadata_on_deadline_exceeded =
|
|
837
916
|
"Fail recv initial metadata when the deadline is exceeded.";
|
|
838
917
|
const char* const
|
|
@@ -843,10 +922,6 @@ const char* const additional_constraints_free_large_allocator = "{}";
|
|
|
843
922
|
const char* const description_fuse_filters =
|
|
844
923
|
"If set, individual filters are merged into fused filters";
|
|
845
924
|
const char* const additional_constraints_fuse_filters = "{}";
|
|
846
|
-
const char* const description_graceful_external_connection_failure =
|
|
847
|
-
"If set, handles external connection failures gracefully";
|
|
848
|
-
const char* const additional_constraints_graceful_external_connection_failure =
|
|
849
|
-
"{}";
|
|
850
925
|
const char* const description_keep_alive_ping_timer_batch =
|
|
851
926
|
"Avoid explicitly cancelling the keepalive timer. Instead adjust the "
|
|
852
927
|
"callback to re-schedule itself to the next ping interval.";
|
|
@@ -858,6 +933,9 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
|
858
933
|
const char* const description_max_inflight_pings_strict_limit =
|
|
859
934
|
"If set, the max inflight pings limit is strictly enforced.";
|
|
860
935
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
|
936
|
+
const char* const description_metadata_publish_to_app_tag =
|
|
937
|
+
"Publish metadata to the app using the kPublishToApp metadata field.";
|
|
938
|
+
const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
|
|
861
939
|
const char* const description_monitoring_experiment =
|
|
862
940
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
|
863
941
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
|
@@ -879,8 +957,7 @@ const char* const description_pipelined_read_secure_endpoint =
|
|
|
879
957
|
const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
|
|
880
958
|
const uint8_t required_experiments_pipelined_read_secure_endpoint[] = {
|
|
881
959
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
882
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
883
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
960
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
884
961
|
const char* const description_pollset_alternative =
|
|
885
962
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
|
886
963
|
"alternatives when enabled.";
|
|
@@ -907,8 +984,16 @@ const char* const additional_constraints_promise_based_http2_server_transport =
|
|
|
907
984
|
const char* const description_promise_based_inproc_transport =
|
|
908
985
|
"Use promises for the in-process transport.";
|
|
909
986
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
|
987
|
+
const char* const description_promise_filter_send_cancel_metadata =
|
|
988
|
+
"Enables sending all trailing metadata fields from server side "
|
|
989
|
+
"promise-based filters upon stream cancellation.";
|
|
990
|
+
const char* const additional_constraints_promise_filter_send_cancel_metadata =
|
|
991
|
+
"{}";
|
|
910
992
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
|
911
993
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
|
994
|
+
const char* const description_return_preexisting_errors =
|
|
995
|
+
"Return errors that exist before the start of the call in RunHandler.";
|
|
996
|
+
const char* const additional_constraints_return_preexisting_errors = "{}";
|
|
912
997
|
const char* const description_rr_wrr_connect_from_random_index =
|
|
913
998
|
"RR and WRR LB policies start connecting from a random index in the "
|
|
914
999
|
"address list.";
|
|
@@ -924,16 +1009,20 @@ const char* const additional_constraints_secure_endpoint_offload_large_reads =
|
|
|
924
1009
|
"{}";
|
|
925
1010
|
const uint8_t required_experiments_secure_endpoint_offload_large_reads[] = {
|
|
926
1011
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
927
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
928
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
|
|
1012
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
929
1013
|
const char* const description_secure_endpoint_offload_large_writes =
|
|
930
1014
|
"If a large read write to be encrypted, use a separate thread.";
|
|
931
1015
|
const char* const additional_constraints_secure_endpoint_offload_large_writes =
|
|
932
1016
|
"{}";
|
|
933
1017
|
const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
|
|
934
1018
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
935
|
-
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)
|
|
936
|
-
|
|
1019
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
1020
|
+
const char* const description_secure_endpoint_read_coalescing =
|
|
1021
|
+
"Coalesce decrypted bytes in SecureEndpoint if a read_hint is provided.";
|
|
1022
|
+
const char* const additional_constraints_secure_endpoint_read_coalescing = "{}";
|
|
1023
|
+
const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
|
|
1024
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
|
1025
|
+
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
|
937
1026
|
const char* const description_skip_clear_peer_on_cancellation =
|
|
938
1027
|
"If set, skips clearing of peer string on call cancellation.";
|
|
939
1028
|
const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
|
|
@@ -943,6 +1032,9 @@ const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
|
|
943
1032
|
const char* const description_sleep_use_non_owning_waker =
|
|
944
1033
|
"If set, the sleep promise uses a non-owning waker.";
|
|
945
1034
|
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
|
1035
|
+
const char* const description_subchannel_connection_scaling =
|
|
1036
|
+
"Subchannel connection scaling support.";
|
|
1037
|
+
const char* const additional_constraints_subchannel_connection_scaling = "{}";
|
|
946
1038
|
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
|
947
1039
|
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
|
948
1040
|
"gets orphaned.";
|
|
@@ -957,18 +1049,6 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
|
957
1049
|
const char* const description_tcp_rcv_lowat =
|
|
958
1050
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
|
959
1051
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
|
960
|
-
const char* const description_track_writes_in_resource_quota =
|
|
961
|
-
"Track the Write memory in Resource Quota.";
|
|
962
|
-
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
|
963
|
-
const char* const description_track_zero_copy_allocations_in_resource_quota =
|
|
964
|
-
"Track the memory allocattions under the zero copy path in Resource Quota. "
|
|
965
|
-
"This includes the encryption / decryption for privacy-and-integrity "
|
|
966
|
-
"payloads.";
|
|
967
|
-
const char* const
|
|
968
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota = "{}";
|
|
969
|
-
const char* const description_transport_state_watcher =
|
|
970
|
-
"New state watcher API between transport and subchannel.";
|
|
971
|
-
const char* const additional_constraints_transport_state_watcher = "{}";
|
|
972
1052
|
const char* const description_tsi_frame_protector_without_locks =
|
|
973
1053
|
"Do not hold locks while using the tsi_frame_protector.";
|
|
974
1054
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
|
@@ -977,28 +1057,45 @@ const char* const description_unconstrained_max_quota_buffer_size =
|
|
|
977
1057
|
"Discard the cap on the max free pool size for one memory allocator";
|
|
978
1058
|
const char* const additional_constraints_unconstrained_max_quota_buffer_size =
|
|
979
1059
|
"{}";
|
|
1060
|
+
const char* const description_use_call_event_engine_in_completion_queue =
|
|
1061
|
+
"Use the call event engine to run callbacks in completion queue.";
|
|
1062
|
+
const char* const
|
|
1063
|
+
additional_constraints_use_call_event_engine_in_completion_queue = "{}";
|
|
1064
|
+
const char* const description_wildcard_ip_expansion_restriction =
|
|
1065
|
+
"If set, adds optional restriction on when to expand wildcard IPs.";
|
|
1066
|
+
const char* const additional_constraints_wildcard_ip_expansion_restriction =
|
|
1067
|
+
"{}";
|
|
1068
|
+
const char* const description_xds_channel_filter_chain_per_route =
|
|
1069
|
+
"xDS channels use a separate filter chain for each route.";
|
|
1070
|
+
const char* const additional_constraints_xds_channel_filter_chain_per_route =
|
|
1071
|
+
"{}";
|
|
980
1072
|
} // namespace
|
|
981
1073
|
|
|
982
1074
|
namespace grpc_core {
|
|
983
1075
|
|
|
984
1076
|
const ExperimentMetadata g_experiment_metadata[] = {
|
|
1077
|
+
{"buffer_list_deletion_prep", description_buffer_list_deletion_prep,
|
|
1078
|
+
additional_constraints_buffer_list_deletion_prep, nullptr, 0, false, true},
|
|
985
1079
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
|
986
1080
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
|
987
|
-
{"
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
1081
|
+
{"call_tracer_send_initial_metadata_is_an_annotation",
|
|
1082
|
+
description_call_tracer_send_initial_metadata_is_an_annotation,
|
|
1083
|
+
additional_constraints_call_tracer_send_initial_metadata_is_an_annotation,
|
|
1084
|
+
nullptr, 0, true, true},
|
|
1085
|
+
{"call_tracer_send_trailing_metadata_is_an_annotation",
|
|
1086
|
+
description_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
1087
|
+
additional_constraints_call_tracer_send_trailing_metadata_is_an_annotation,
|
|
1088
|
+
nullptr, 0, false, true},
|
|
994
1089
|
{"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
|
|
995
1090
|
additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
|
|
996
1091
|
true},
|
|
997
1092
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
|
998
1093
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
|
999
1094
|
false},
|
|
1000
|
-
{"
|
|
1001
|
-
|
|
1095
|
+
{"chaotic_good_send_supported_features",
|
|
1096
|
+
description_chaotic_good_send_supported_features,
|
|
1097
|
+
additional_constraints_chaotic_good_send_supported_features, nullptr, 0,
|
|
1098
|
+
false, true},
|
|
1002
1099
|
{"error_flatten", description_error_flatten,
|
|
1003
1100
|
additional_constraints_error_flatten, nullptr, 0, false, false},
|
|
1004
1101
|
{"event_engine_client", description_event_engine_client,
|
|
@@ -1010,7 +1107,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1010
1107
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
|
1011
1108
|
true, false},
|
|
1012
1109
|
{"event_engine_fork", description_event_engine_fork,
|
|
1013
|
-
additional_constraints_event_engine_fork, nullptr, 0,
|
|
1110
|
+
additional_constraints_event_engine_fork, nullptr, 0, true, false},
|
|
1014
1111
|
{"event_engine_listener", description_event_engine_listener,
|
|
1015
1112
|
additional_constraints_event_engine_listener, nullptr, 0, true, false},
|
|
1016
1113
|
{"event_engine_callback_cq", description_event_engine_callback_cq,
|
|
@@ -1022,11 +1119,8 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1022
1119
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
|
1023
1120
|
{"event_engine_poller_for_python",
|
|
1024
1121
|
description_event_engine_poller_for_python,
|
|
1025
|
-
additional_constraints_event_engine_poller_for_python, nullptr, 0,
|
|
1122
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, true,
|
|
1026
1123
|
true},
|
|
1027
|
-
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
|
1028
|
-
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
|
1029
|
-
false},
|
|
1030
1124
|
{"fail_recv_metadata_on_deadline_exceeded",
|
|
1031
1125
|
description_fail_recv_metadata_on_deadline_exceeded,
|
|
1032
1126
|
additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
|
|
@@ -1035,10 +1129,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1035
1129
|
additional_constraints_free_large_allocator, nullptr, 0, false, true},
|
|
1036
1130
|
{"fuse_filters", description_fuse_filters,
|
|
1037
1131
|
additional_constraints_fuse_filters, nullptr, 0, false, false},
|
|
1038
|
-
{"graceful_external_connection_failure",
|
|
1039
|
-
description_graceful_external_connection_failure,
|
|
1040
|
-
additional_constraints_graceful_external_connection_failure, nullptr, 0,
|
|
1041
|
-
true, false},
|
|
1042
1132
|
{"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
|
|
1043
1133
|
additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
|
|
1044
1134
|
true},
|
|
@@ -1048,6 +1138,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1048
1138
|
description_max_inflight_pings_strict_limit,
|
|
1049
1139
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
|
1050
1140
|
true},
|
|
1141
|
+
{"metadata_publish_to_app_tag", description_metadata_publish_to_app_tag,
|
|
1142
|
+
additional_constraints_metadata_publish_to_app_tag, nullptr, 0, true,
|
|
1143
|
+
true},
|
|
1051
1144
|
{"monitoring_experiment", description_monitoring_experiment,
|
|
1052
1145
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
|
1053
1146
|
{"multiping", description_multiping, additional_constraints_multiping,
|
|
@@ -1061,12 +1154,12 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1061
1154
|
true},
|
|
1062
1155
|
{"pick_first_ready_to_connecting",
|
|
1063
1156
|
description_pick_first_ready_to_connecting,
|
|
1064
|
-
additional_constraints_pick_first_ready_to_connecting, nullptr, 0,
|
|
1157
|
+
additional_constraints_pick_first_ready_to_connecting, nullptr, 0, true,
|
|
1065
1158
|
true},
|
|
1066
1159
|
{"pipelined_read_secure_endpoint",
|
|
1067
1160
|
description_pipelined_read_secure_endpoint,
|
|
1068
1161
|
additional_constraints_pipelined_read_secure_endpoint,
|
|
1069
|
-
required_experiments_pipelined_read_secure_endpoint,
|
|
1162
|
+
required_experiments_pipelined_read_secure_endpoint, 2, false, false},
|
|
1070
1163
|
{"pollset_alternative", description_pollset_alternative,
|
|
1071
1164
|
additional_constraints_pollset_alternative,
|
|
1072
1165
|
required_experiments_pollset_alternative, 2, false, false},
|
|
@@ -1085,11 +1178,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1085
1178
|
description_promise_based_inproc_transport,
|
|
1086
1179
|
additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
|
|
1087
1180
|
false},
|
|
1181
|
+
{"promise_filter_send_cancel_metadata",
|
|
1182
|
+
description_promise_filter_send_cancel_metadata,
|
|
1183
|
+
additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
|
|
1184
|
+
false, true},
|
|
1088
1185
|
{"retry_in_callv3", description_retry_in_callv3,
|
|
1089
1186
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
|
1187
|
+
{"return_preexisting_errors", description_return_preexisting_errors,
|
|
1188
|
+
additional_constraints_return_preexisting_errors, nullptr, 0, false, true},
|
|
1090
1189
|
{"rr_wrr_connect_from_random_index",
|
|
1091
1190
|
description_rr_wrr_connect_from_random_index,
|
|
1092
|
-
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0,
|
|
1191
|
+
additional_constraints_rr_wrr_connect_from_random_index, nullptr, 0, true,
|
|
1093
1192
|
true},
|
|
1094
1193
|
{"schedule_cancellation_over_write",
|
|
1095
1194
|
description_schedule_cancellation_over_write,
|
|
@@ -1098,11 +1197,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1098
1197
|
{"secure_endpoint_offload_large_reads",
|
|
1099
1198
|
description_secure_endpoint_offload_large_reads,
|
|
1100
1199
|
additional_constraints_secure_endpoint_offload_large_reads,
|
|
1101
|
-
required_experiments_secure_endpoint_offload_large_reads,
|
|
1200
|
+
required_experiments_secure_endpoint_offload_large_reads, 2, false, true},
|
|
1102
1201
|
{"secure_endpoint_offload_large_writes",
|
|
1103
1202
|
description_secure_endpoint_offload_large_writes,
|
|
1104
1203
|
additional_constraints_secure_endpoint_offload_large_writes,
|
|
1105
|
-
required_experiments_secure_endpoint_offload_large_writes,
|
|
1204
|
+
required_experiments_secure_endpoint_offload_large_writes, 2, false, true},
|
|
1205
|
+
{"secure_endpoint_read_coalescing",
|
|
1206
|
+
description_secure_endpoint_read_coalescing,
|
|
1207
|
+
additional_constraints_secure_endpoint_read_coalescing,
|
|
1208
|
+
required_experiments_secure_endpoint_read_coalescing, 2, false, true},
|
|
1106
1209
|
{"skip_clear_peer_on_cancellation",
|
|
1107
1210
|
description_skip_clear_peer_on_cancellation,
|
|
1108
1211
|
additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
|
|
@@ -1113,6 +1216,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1113
1216
|
true},
|
|
1114
1217
|
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
|
1115
1218
|
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
|
|
1219
|
+
{"subchannel_connection_scaling", description_subchannel_connection_scaling,
|
|
1220
|
+
additional_constraints_subchannel_connection_scaling, nullptr, 0, false,
|
|
1221
|
+
true},
|
|
1116
1222
|
{"subchannel_wrapper_cleanup_on_orphan",
|
|
1117
1223
|
description_subchannel_wrapper_cleanup_on_orphan,
|
|
1118
1224
|
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
|
@@ -1121,16 +1227,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1121
1227
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
|
1122
1228
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
|
1123
1229
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
|
1124
|
-
{"track_writes_in_resource_quota",
|
|
1125
|
-
description_track_writes_in_resource_quota,
|
|
1126
|
-
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
|
1127
|
-
true},
|
|
1128
|
-
{"track_zero_copy_allocations_in_resource_quota",
|
|
1129
|
-
description_track_zero_copy_allocations_in_resource_quota,
|
|
1130
|
-
additional_constraints_track_zero_copy_allocations_in_resource_quota,
|
|
1131
|
-
nullptr, 0, false, true},
|
|
1132
|
-
{"transport_state_watcher", description_transport_state_watcher,
|
|
1133
|
-
additional_constraints_transport_state_watcher, nullptr, 0, false, true},
|
|
1134
1230
|
{"tsi_frame_protector_without_locks",
|
|
1135
1231
|
description_tsi_frame_protector_without_locks,
|
|
1136
1232
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
|
@@ -1139,6 +1235,18 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
|
1139
1235
|
description_unconstrained_max_quota_buffer_size,
|
|
1140
1236
|
additional_constraints_unconstrained_max_quota_buffer_size, nullptr, 0,
|
|
1141
1237
|
false, true},
|
|
1238
|
+
{"use_call_event_engine_in_completion_queue",
|
|
1239
|
+
description_use_call_event_engine_in_completion_queue,
|
|
1240
|
+
additional_constraints_use_call_event_engine_in_completion_queue, nullptr,
|
|
1241
|
+
0, false, true},
|
|
1242
|
+
{"wildcard_ip_expansion_restriction",
|
|
1243
|
+
description_wildcard_ip_expansion_restriction,
|
|
1244
|
+
additional_constraints_wildcard_ip_expansion_restriction, nullptr, 0,
|
|
1245
|
+
false, true},
|
|
1246
|
+
{"xds_channel_filter_chain_per_route",
|
|
1247
|
+
description_xds_channel_filter_chain_per_route,
|
|
1248
|
+
additional_constraints_xds_channel_filter_chain_per_route, nullptr, 0,
|
|
1249
|
+
true, true},
|
|
1142
1250
|
};
|
|
1143
1251
|
|
|
1144
1252
|
} // namespace grpc_core
|