grpc 1.75.0 → 1.78.0

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.
Files changed (834) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +24 -5
  3. data/include/grpc/credentials.h +27 -6
  4. data/include/grpc/event_engine/memory_allocator.h +2 -0
  5. data/include/grpc/event_engine/memory_request.h +2 -0
  6. data/include/grpc/impl/channel_arg_names.h +5 -0
  7. data/include/grpc/support/metrics.h +7 -1
  8. data/src/core/call/call_filters.cc +5 -5
  9. data/src/core/call/call_filters.h +211 -37
  10. data/src/core/call/call_spine.cc +1 -1
  11. data/src/core/call/call_spine.h +54 -32
  12. data/src/core/call/channelz_context.h +30 -0
  13. data/src/core/call/client_call.cc +49 -10
  14. data/src/core/call/client_call.h +6 -3
  15. data/src/core/call/filter_fusion.h +9 -9
  16. data/src/core/call/interception_chain.h +7 -6
  17. data/src/core/call/metadata_batch.cc +49 -55
  18. data/src/core/call/metadata_batch.h +10 -9
  19. data/src/core/call/metadata_info.cc +1 -1
  20. data/src/core/call/parsed_metadata.h +2 -2
  21. data/src/core/call/request_buffer.cc +1 -1
  22. data/src/core/call/security_context.cc +2 -2
  23. data/src/core/call/security_context.h +1 -1
  24. data/src/core/call/server_call.cc +5 -5
  25. data/src/core/call/server_call.h +6 -4
  26. data/src/core/call/simple_slice_based_metadata.h +1 -1
  27. data/src/core/call/status_util.cc +1 -1
  28. data/src/core/channelz/channel_trace.cc +1 -1
  29. data/src/core/channelz/channel_trace.h +3 -3
  30. data/src/core/channelz/channelz.cc +25 -29
  31. data/src/core/channelz/channelz.h +73 -22
  32. data/src/core/channelz/channelz_registry.cc +2 -2
  33. data/src/core/channelz/channelz_registry.h +53 -2
  34. data/src/core/channelz/property_list.cc +18 -0
  35. data/src/core/channelz/property_list.h +15 -4
  36. data/src/core/channelz/text_encode.cc +66 -0
  37. data/src/core/channelz/text_encode.h +29 -0
  38. data/src/core/channelz/v2tov1/convert.cc +17 -6
  39. data/src/core/channelz/v2tov1/legacy_api.cc +18 -12
  40. data/src/core/channelz/v2tov1/property_list.cc +2 -1
  41. data/src/core/channelz/ztrace_collector.h +260 -87
  42. data/src/core/client_channel/backup_poller.cc +7 -8
  43. data/src/core/client_channel/buffered_call.cc +140 -0
  44. data/src/core/client_channel/buffered_call.h +104 -0
  45. data/src/core/client_channel/client_channel.cc +144 -84
  46. data/src/core/client_channel/client_channel.h +8 -11
  47. data/src/core/client_channel/client_channel_factory.h +1 -1
  48. data/src/core/client_channel/client_channel_filter.cc +424 -686
  49. data/src/core/client_channel/client_channel_filter.h +57 -150
  50. data/src/core/client_channel/client_channel_internal.h +8 -5
  51. data/src/core/client_channel/client_channel_service_config.cc +43 -3
  52. data/src/core/client_channel/client_channel_service_config.h +12 -1
  53. data/src/core/client_channel/config_selector.h +5 -5
  54. data/src/core/client_channel/connector.h +2 -0
  55. data/src/core/client_channel/dynamic_filters.cc +5 -5
  56. data/src/core/client_channel/global_subchannel_pool.cc +0 -37
  57. data/src/core/client_channel/global_subchannel_pool.h +1 -28
  58. data/src/core/client_channel/lb_metadata.h +1 -1
  59. data/src/core/client_channel/load_balanced_call_destination.cc +10 -12
  60. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  61. data/src/core/client_channel/local_subchannel_pool.cc +4 -4
  62. data/src/core/client_channel/retry_filter.cc +2 -2
  63. data/src/core/client_channel/retry_filter.h +3 -3
  64. data/src/core/client_channel/retry_filter_legacy_call_data.cc +11 -12
  65. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -8
  66. data/src/core/client_channel/retry_service_config.cc +3 -3
  67. data/src/core/client_channel/retry_service_config.h +1 -1
  68. data/src/core/client_channel/subchannel.cc +114 -25
  69. data/src/core/client_channel/subchannel.h +24 -8
  70. data/src/core/client_channel/subchannel_pool_interface.cc +2 -2
  71. data/src/core/client_channel/subchannel_pool_interface.h +1 -1
  72. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  73. data/src/core/client_channel/subchannel_stream_client.h +3 -3
  74. data/src/core/config/config_vars.cc +38 -3
  75. data/src/core/config/config_vars.h +26 -0
  76. data/src/core/config/core_configuration.cc +5 -5
  77. data/src/core/config/core_configuration.h +8 -8
  78. data/src/core/config/load_config.cc +13 -1
  79. data/src/core/config/load_config.h +2 -0
  80. data/src/core/credentials/call/call_credentials.h +4 -4
  81. data/src/core/credentials/call/call_creds_registry.h +1 -1
  82. data/src/core/credentials/call/call_creds_registry_init.cc +2 -2
  83. data/src/core/credentials/call/call_creds_util.cc +7 -6
  84. data/src/core/credentials/call/composite/composite_call_credentials.cc +6 -6
  85. data/src/core/credentials/call/composite/composite_call_credentials.h +1 -1
  86. data/src/core/credentials/call/external/aws_external_account_credentials.cc +9 -9
  87. data/src/core/credentials/call/external/aws_external_account_credentials.h +1 -1
  88. data/src/core/credentials/call/external/external_account_credentials.cc +12 -12
  89. data/src/core/credentials/call/external/external_account_credentials.h +1 -1
  90. data/src/core/credentials/call/external/file_external_account_credentials.cc +3 -3
  91. data/src/core/credentials/call/external/file_external_account_credentials.h +1 -1
  92. data/src/core/credentials/call/external/url_external_account_credentials.cc +7 -7
  93. data/src/core/credentials/call/external/url_external_account_credentials.h +1 -1
  94. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +24 -71
  95. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +1 -8
  96. data/src/core/credentials/call/iam/iam_credentials.cc +6 -6
  97. data/src/core/credentials/call/iam/iam_credentials.h +1 -1
  98. data/src/core/credentials/call/json_util.cc +1 -1
  99. data/src/core/credentials/call/jwt/json_token.cc +7 -7
  100. data/src/core/credentials/call/jwt/jwt_credentials.cc +5 -5
  101. data/src/core/credentials/call/jwt/jwt_credentials.h +4 -4
  102. data/src/core/credentials/call/jwt/jwt_verifier.cc +19 -18
  103. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +2 -2
  104. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +3 -3
  105. data/src/core/credentials/call/jwt_util.cc +3 -3
  106. data/src/core/credentials/call/jwt_util.h +1 -1
  107. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +49 -72
  108. data/src/core/credentials/call/oauth2/oauth2_credentials.h +3 -9
  109. data/src/core/credentials/call/plugin/plugin_credentials.cc +6 -6
  110. data/src/core/credentials/call/plugin/plugin_credentials.h +2 -2
  111. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +46 -0
  112. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +32 -3
  113. data/src/core/credentials/transport/alts/alts_credentials.cc +5 -5
  114. data/src/core/credentials/transport/alts/alts_security_connector.cc +17 -15
  115. data/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc +1 -1
  116. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +23 -3
  117. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
  118. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
  119. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
  120. data/src/core/credentials/transport/channel_creds_registry.h +1 -1
  121. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  122. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +7 -7
  123. data/src/core/credentials/transport/composite/composite_channel_credentials.h +1 -1
  124. data/src/core/credentials/transport/fake/fake_credentials.cc +1 -1
  125. data/src/core/credentials/transport/fake/fake_credentials.h +1 -1
  126. data/src/core/credentials/transport/fake/fake_security_connector.cc +7 -7
  127. data/src/core/credentials/transport/google_default/credentials_generic.cc +2 -2
  128. data/src/core/credentials/transport/google_default/google_default_credentials.cc +83 -39
  129. data/src/core/credentials/transport/google_default/google_default_credentials.h +0 -2
  130. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
  131. data/src/core/credentials/transport/insecure/insecure_security_connector.h +2 -2
  132. data/src/core/credentials/transport/local/local_security_connector.cc +13 -13
  133. data/src/core/credentials/transport/security_connector.cc +6 -6
  134. data/src/core/credentials/transport/security_connector.h +2 -2
  135. data/src/core/credentials/transport/ssl/ssl_credentials.cc +13 -13
  136. data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
  137. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -8
  138. data/src/core/credentials/transport/tls/certificate_provider_factory.h +1 -1
  139. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
  140. data/src/core/credentials/transport/tls/certificate_provider_registry.h +1 -1
  141. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -25
  142. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +2 -2
  143. data/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc +1 -1
  144. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +8 -8
  145. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -5
  146. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  147. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +4 -4
  148. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +18 -18
  149. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +5 -5
  150. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.h +3 -3
  151. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -1
  152. data/src/core/credentials/transport/tls/spiffe_utils.cc +10 -8
  153. data/src/core/credentials/transport/tls/spiffe_utils.h +2 -2
  154. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -13
  155. data/src/core/credentials/transport/tls/ssl_utils.h +2 -2
  156. data/src/core/credentials/transport/tls/tls_credentials.cc +3 -3
  157. data/src/core/credentials/transport/tls/tls_security_connector.cc +15 -15
  158. data/src/core/credentials/transport/tls/tls_security_connector.h +3 -3
  159. data/src/core/credentials/transport/transport_credentials.cc +3 -3
  160. data/src/core/credentials/transport/transport_credentials.h +4 -4
  161. data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
  162. data/src/core/credentials/transport/xds/xds_credentials.h +1 -1
  163. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +2 -2
  164. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +4 -1
  165. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -4
  166. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -2
  167. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +7 -7
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +6 -3
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +1 -1
  170. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  171. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +6 -3
  172. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +1 -1
  173. data/src/core/ext/filters/http/client/http_client_filter.cc +6 -6
  174. data/src/core/ext/filters/http/client/http_client_filter.h +4 -1
  175. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  176. data/src/core/ext/filters/http/client_authority_filter.h +4 -1
  177. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -1
  178. data/src/core/ext/filters/http/message_compress/compression_filter.cc +11 -11
  179. data/src/core/ext/filters/http/message_compress/compression_filter.h +24 -5
  180. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  181. data/src/core/ext/filters/http/server/http_server_filter.h +4 -1
  182. data/src/core/ext/filters/message_size/message_size_filter.cc +2 -2
  183. data/src/core/ext/filters/message_size/message_size_filter.h +8 -2
  184. data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
  185. data/src/core/ext/filters/rbac/rbac_filter.h +4 -1
  186. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +3 -3
  187. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  188. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +14 -14
  189. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +13 -2
  190. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
  191. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
  192. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +58 -44
  193. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -3
  194. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +25 -24
  195. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -2
  196. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
  197. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
  198. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +306 -148
  199. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -2
  200. data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -7
  201. data/src/core/ext/transport/chttp2/transport/flow_control.h +223 -83
  202. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +105 -0
  203. data/src/core/ext/transport/chttp2/transport/frame.cc +175 -27
  204. data/src/core/ext/transport/chttp2/transport/frame.h +58 -10
  205. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  206. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  207. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
  208. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
  209. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  210. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -1
  211. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -15
  212. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  213. data/src/core/ext/transport/chttp2/transport/goaway.cc +129 -0
  214. data/src/core/ext/transport/chttp2/transport/goaway.h +350 -0
  215. data/src/core/ext/transport/chttp2/transport/header_assembler.h +194 -54
  216. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +3 -3
  217. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -6
  218. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
  219. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +3 -3
  220. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +5 -5
  221. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +34 -34
  222. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -7
  223. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -8
  224. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -1
  225. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1475 -632
  226. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +384 -373
  227. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  228. data/src/core/ext/transport/chttp2/transport/http2_settings.h +6 -4
  229. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +4 -3
  230. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +6 -5
  231. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +417 -0
  232. data/src/core/ext/transport/chttp2/transport/http2_status.h +7 -1
  233. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +337 -30
  234. data/src/core/ext/transport/chttp2/transport/http2_transport.h +196 -21
  235. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +172 -72
  236. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +128 -0
  237. data/src/core/ext/transport/chttp2/transport/internal.h +31 -19
  238. data/src/core/ext/transport/chttp2/transport/keepalive.cc +12 -5
  239. data/src/core/ext/transport/chttp2/transport/keepalive.h +14 -10
  240. data/src/core/ext/transport/chttp2/transport/message_assembler.h +30 -21
  241. data/src/core/ext/transport/chttp2/transport/parsing.cc +25 -23
  242. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  243. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +3 -3
  244. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +70 -28
  245. data/src/core/ext/transport/chttp2/transport/ping_promise.h +63 -23
  246. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +1 -1
  247. data/src/core/ext/transport/chttp2/transport/security_frame.cc +31 -0
  248. data/src/core/ext/transport/chttp2/transport/security_frame.h +32 -0
  249. data/src/core/ext/transport/chttp2/transport/stream.h +287 -0
  250. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +476 -208
  251. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +8 -8
  252. data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
  253. data/src/core/ext/transport/chttp2/transport/transport_common.h +57 -0
  254. data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
  255. data/src/core/ext/transport/chttp2/transport/writable_streams.h +202 -84
  256. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
  257. data/src/core/ext/transport/chttp2/transport/writing.cc +6 -6
  258. data/src/core/ext/transport/inproc/inproc_transport.cc +9 -3
  259. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +11 -8
  260. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
  261. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
  262. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
  263. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
  264. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
  265. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
  266. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
  267. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
  268. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
  269. data/src/core/filter/auth/auth_filters.h +7 -1
  270. data/src/core/filter/auth/client_auth_filter.cc +2 -2
  271. data/src/core/filter/auth/server_auth_filter.cc +5 -5
  272. data/src/core/filter/blackboard.h +2 -2
  273. data/src/core/filter/filter_args.h +40 -2
  274. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +2 -2
  275. data/src/core/handshaker/handshaker.cc +8 -8
  276. data/src/core/handshaker/handshaker.h +2 -2
  277. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +5 -5
  278. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +12 -12
  279. data/src/core/handshaker/http_connect/http_proxy_mapper.h +1 -1
  280. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
  281. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +1 -1
  282. data/src/core/handshaker/proxy_mapper.h +1 -1
  283. data/src/core/handshaker/proxy_mapper_registry.h +1 -1
  284. data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -6
  285. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +38 -15
  286. data/src/core/handshaker/security/secure_endpoint.cc +31 -11
  287. data/src/core/handshaker/security/security_handshaker.cc +11 -8
  288. data/src/core/handshaker/security/security_handshaker.h +1 -1
  289. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +6 -6
  290. data/src/core/lib/address_utils/parse_address.cc +5 -5
  291. data/src/core/lib/address_utils/parse_address.h +2 -2
  292. data/src/core/lib/address_utils/sockaddr_utils.cc +4 -4
  293. data/src/core/lib/address_utils/sockaddr_utils.h +1 -1
  294. data/src/core/lib/channel/channel_args.cc +1 -1
  295. data/src/core/lib/channel/channel_args.h +2 -2
  296. data/src/core/lib/channel/channel_stack.cc +29 -25
  297. data/src/core/lib/channel/channel_stack.h +8 -3
  298. data/src/core/lib/channel/channel_stack_builder.cc +8 -4
  299. data/src/core/lib/channel/channel_stack_builder.h +10 -9
  300. data/src/core/lib/channel/channel_stack_builder_impl.cc +8 -13
  301. data/src/core/lib/channel/channel_stack_builder_impl.h +1 -1
  302. data/src/core/lib/channel/connected_channel.cc +4 -4
  303. data/src/core/lib/channel/promise_based_filter.cc +132 -72
  304. data/src/core/lib/channel/promise_based_filter.h +39 -23
  305. data/src/core/lib/compression/compression_internal.cc +6 -6
  306. data/src/core/lib/compression/compression_internal.h +1 -1
  307. data/src/core/lib/compression/message_compress.cc +8 -8
  308. data/src/core/lib/debug/trace.cc +2 -5
  309. data/src/core/lib/debug/trace.h +10 -0
  310. data/src/core/lib/debug/trace_flags.cc +2 -2
  311. data/src/core/lib/debug/trace_flags.h +1 -1
  312. data/src/core/lib/event_engine/ares_resolver.cc +30 -28
  313. data/src/core/lib/event_engine/ares_resolver.h +4 -4
  314. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -3
  315. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +2 -2
  316. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +1 -1
  317. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +4 -4
  318. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +3 -3
  319. data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -1
  320. data/src/core/lib/event_engine/default_event_engine.cc +1 -1
  321. data/src/core/lib/event_engine/event_engine.cc +1 -1
  322. data/src/core/lib/event_engine/extensions/channelz.h +3 -3
  323. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +1 -1
  324. data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
  325. data/src/core/lib/event_engine/extensions/tcp_trace.h +8 -1
  326. data/src/core/lib/event_engine/grpc_polled_fd.h +1 -1
  327. data/src/core/lib/event_engine/memory_allocator_factory.h +1 -1
  328. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +12 -12
  329. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +5 -5
  330. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +15 -15
  331. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
  332. data/src/core/lib/event_engine/posix_engine/event_poller.h +2 -2
  333. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
  334. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +1 -1
  335. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +1 -1
  336. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +4 -4
  337. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +1 -1
  338. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
  339. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +1 -1
  340. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +3 -3
  341. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +1 -1
  342. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +28 -27
  343. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +17 -17
  344. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +175 -177
  345. data/src/core/lib/event_engine/posix_engine/posix_engine.h +40 -61
  346. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +11 -7
  347. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +4 -4
  348. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +9 -9
  349. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -1
  350. data/src/core/lib/event_engine/posix_engine/posix_interface.h +2 -2
  351. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +5 -5
  352. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  353. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
  354. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -1
  355. data/src/core/lib/event_engine/posix_engine/timer.h +1 -1
  356. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -4
  357. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
  358. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -2
  359. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +2 -2
  360. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +1 -1
  361. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
  362. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +1 -1
  363. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
  364. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +1 -1
  365. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
  366. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +1 -1
  367. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -1
  368. data/src/core/lib/event_engine/resolved_address.cc +3 -3
  369. data/src/core/lib/event_engine/shim.cc +8 -11
  370. data/src/core/lib/event_engine/shim.h +2 -1
  371. data/src/core/lib/event_engine/slice.cc +2 -2
  372. data/src/core/lib/event_engine/tcp_socket_utils.cc +15 -15
  373. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  374. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  375. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +11 -11
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -3
  377. data/src/core/lib/event_engine/utils.cc +3 -3
  378. data/src/core/lib/event_engine/utils.h +1 -1
  379. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +32 -32
  380. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +2 -2
  381. data/src/core/lib/event_engine/windows/iocp.cc +11 -11
  382. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  383. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -2
  384. data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
  385. data/src/core/lib/event_engine/windows/win_socket.h +2 -2
  386. data/src/core/lib/event_engine/windows/windows_endpoint.cc +16 -16
  387. data/src/core/lib/event_engine/windows/windows_engine.cc +20 -18
  388. data/src/core/lib/event_engine/windows/windows_engine.h +3 -3
  389. data/src/core/lib/event_engine/windows/windows_listener.cc +10 -10
  390. data/src/core/lib/event_engine/windows/windows_listener.h +2 -2
  391. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -2
  392. data/src/core/lib/experiments/config.cc +4 -4
  393. data/src/core/lib/experiments/experiments.cc +255 -42
  394. data/src/core/lib/experiments/experiments.h +105 -21
  395. data/src/core/lib/iomgr/buffer_list.cc +1 -1
  396. data/src/core/lib/iomgr/call_combiner.cc +4 -4
  397. data/src/core/lib/iomgr/call_combiner.h +2 -2
  398. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  399. data/src/core/lib/iomgr/closure.h +2 -2
  400. data/src/core/lib/iomgr/combiner.cc +2 -2
  401. data/src/core/lib/iomgr/endpoint.h +1 -1
  402. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -7
  403. data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -6
  404. data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -15
  405. data/src/core/lib/iomgr/error.cc +1 -1
  406. data/src/core/lib/iomgr/error.h +2 -2
  407. data/src/core/lib/iomgr/error_cfstream.cc +1 -1
  408. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  409. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  410. data/src/core/lib/iomgr/ev_poll_posix.cc +14 -14
  411. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  412. data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -3
  413. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -1
  414. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +10 -9
  415. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
  416. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +2 -2
  417. data/src/core/lib/iomgr/exec_ctx.cc +3 -3
  418. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  419. data/src/core/lib/iomgr/fork_posix.cc +1 -1
  420. data/src/core/lib/iomgr/internal_errqueue.cc +1 -1
  421. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  422. data/src/core/lib/iomgr/iomgr.cc +1 -1
  423. data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
  424. data/src/core/lib/iomgr/lockfree_event.cc +3 -3
  425. data/src/core/lib/iomgr/polling_entity.cc +4 -4
  426. data/src/core/lib/iomgr/resolve_address.cc +1 -1
  427. data/src/core/lib/iomgr/resolve_address.h +2 -2
  428. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -4
  429. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  430. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +1 -1
  431. data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -4
  432. data/src/core/lib/iomgr/socket_windows.cc +6 -6
  433. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
  434. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -7
  435. data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
  436. data/src/core/lib/iomgr/tcp_posix.cc +47 -47
  437. data/src/core/lib/iomgr/tcp_server.cc +5 -0
  438. data/src/core/lib/iomgr/tcp_server.h +7 -0
  439. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -31
  440. data/src/core/lib/iomgr/tcp_server_utils_posix.h +4 -1
  441. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -7
  442. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -4
  443. data/src/core/lib/iomgr/tcp_server_windows.cc +70 -31
  444. data/src/core/lib/iomgr/tcp_windows.cc +8 -8
  445. data/src/core/lib/iomgr/timer_generic.cc +5 -5
  446. data/src/core/lib/iomgr/timer_manager.cc +3 -3
  447. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  448. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  449. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
  450. data/src/core/lib/iomgr/vsock.cc +1 -1
  451. data/src/core/lib/iomgr/vsock.h +1 -1
  452. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +1 -1
  453. data/src/core/lib/promise/activity.cc +3 -3
  454. data/src/core/lib/promise/activity.h +11 -10
  455. data/src/core/lib/promise/all_ok.h +3 -3
  456. data/src/core/lib/promise/arena_promise.h +47 -6
  457. data/src/core/lib/promise/context.h +3 -3
  458. data/src/core/lib/promise/detail/join_state.h +10 -10
  459. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  460. data/src/core/lib/promise/detail/promise_like.h +1 -1
  461. data/src/core/lib/promise/detail/seq_state.h +16 -16
  462. data/src/core/lib/promise/detail/status.h +2 -2
  463. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -1
  464. data/src/core/lib/promise/for_each.h +8 -8
  465. data/src/core/lib/promise/if.h +1 -1
  466. data/src/core/lib/promise/inter_activity_latch.h +3 -3
  467. data/src/core/lib/promise/inter_activity_mutex.h +1 -1
  468. data/src/core/lib/promise/interceptor_list.h +5 -5
  469. data/src/core/lib/promise/latch.h +9 -9
  470. data/src/core/lib/promise/loop.h +2 -2
  471. data/src/core/lib/promise/map.h +2 -2
  472. data/src/core/lib/promise/mpsc.cc +31 -30
  473. data/src/core/lib/promise/mpsc.h +2 -2
  474. data/src/core/lib/promise/observable.h +6 -6
  475. data/src/core/lib/promise/party.cc +43 -30
  476. data/src/core/lib/promise/party.h +27 -23
  477. data/src/core/lib/promise/pipe.h +31 -17
  478. data/src/core/lib/promise/poll.h +6 -5
  479. data/src/core/lib/promise/promise.h +2 -4
  480. data/src/core/lib/promise/sleep.cc +3 -1
  481. data/src/core/lib/promise/sleep.h +1 -1
  482. data/src/core/lib/promise/status_flag.h +8 -8
  483. data/src/core/lib/promise/try_join.h +5 -5
  484. data/src/core/lib/promise/try_seq.h +5 -5
  485. data/src/core/lib/promise/wait_set.h +2 -2
  486. data/src/core/lib/resource_quota/api.cc +1 -1
  487. data/src/core/lib/resource_quota/arena.cc +1 -1
  488. data/src/core/lib/resource_quota/arena.h +15 -2
  489. data/src/core/lib/resource_quota/connection_quota.cc +9 -7
  490. data/src/core/lib/resource_quota/connection_quota.h +1 -1
  491. data/src/core/lib/resource_quota/memory_quota.cc +48 -27
  492. data/src/core/lib/resource_quota/memory_quota.h +56 -20
  493. data/src/core/lib/resource_quota/periodic_update.h +1 -1
  494. data/src/core/lib/resource_quota/resource_quota.cc +8 -0
  495. data/src/core/lib/resource_quota/resource_quota.h +2 -1
  496. data/src/core/lib/resource_quota/stream_quota.cc +22 -0
  497. data/src/core/lib/resource_quota/stream_quota.h +31 -0
  498. data/src/core/lib/resource_quota/telemetry.h +55 -0
  499. data/src/core/lib/resource_quota/thread_quota.cc +2 -2
  500. data/src/core/lib/resource_quota/thread_quota.h +1 -1
  501. data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
  502. data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
  503. data/src/core/lib/security/authorization/audit_logging.cc +7 -7
  504. data/src/core/lib/security/authorization/audit_logging.h +1 -1
  505. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  506. data/src/core/lib/security/authorization/evaluate_args.cc +5 -5
  507. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  508. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
  509. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +3 -3
  510. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +4 -1
  511. data/src/core/lib/security/authorization/matchers.cc +2 -2
  512. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  513. data/src/core/lib/slice/percent_encoding.cc +1 -1
  514. data/src/core/lib/slice/slice.cc +1 -1
  515. data/src/core/lib/slice/slice.h +2 -2
  516. data/src/core/lib/slice/slice_buffer.cc +1 -1
  517. data/src/core/lib/slice/slice_internal.h +1 -1
  518. data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
  519. data/src/core/lib/surface/call.cc +58 -28
  520. data/src/core/lib/surface/call.h +13 -6
  521. data/src/core/lib/surface/call_log_batch.cc +2 -2
  522. data/src/core/lib/surface/call_utils.cc +7 -7
  523. data/src/core/lib/surface/call_utils.h +85 -20
  524. data/src/core/lib/surface/channel.cc +6 -5
  525. data/src/core/lib/surface/channel.h +13 -3
  526. data/src/core/lib/surface/channel_create.cc +12 -8
  527. data/src/core/lib/surface/channel_create.h +1 -1
  528. data/src/core/lib/surface/channel_init.cc +84 -27
  529. data/src/core/lib/surface/channel_init.h +30 -13
  530. data/src/core/lib/surface/completion_queue.cc +21 -20
  531. data/src/core/lib/surface/completion_queue_factory.cc +7 -7
  532. data/src/core/lib/surface/connection_context.h +45 -2
  533. data/src/core/lib/surface/filter_stack_call.cc +25 -31
  534. data/src/core/lib/surface/filter_stack_call.h +6 -7
  535. data/src/core/lib/surface/init.cc +4 -4
  536. data/src/core/lib/surface/lame_client.cc +2 -2
  537. data/src/core/lib/surface/lame_client.h +3 -3
  538. data/src/core/lib/surface/legacy_channel.cc +10 -10
  539. data/src/core/lib/surface/legacy_channel.h +1 -1
  540. data/src/core/lib/surface/validate_metadata.cc +2 -2
  541. data/src/core/lib/surface/validate_metadata.h +3 -3
  542. data/src/core/lib/surface/version.cc +2 -2
  543. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  544. data/src/core/lib/transport/bdp_estimator.h +5 -5
  545. data/src/core/lib/transport/connectivity_state.cc +1 -1
  546. data/src/core/lib/transport/connectivity_state.h +2 -2
  547. data/src/core/lib/transport/error_utils.h +1 -1
  548. data/src/core/lib/transport/promise_endpoint.cc +4 -4
  549. data/src/core/lib/transport/promise_endpoint.h +11 -11
  550. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  551. data/src/core/lib/transport/transport.cc +3 -3
  552. data/src/core/lib/transport/transport.h +62 -4
  553. data/src/core/lib/transport/transport_framing_endpoint_extension.h +1 -1
  554. data/src/core/lib/transport/transport_op_string.cc +2 -2
  555. data/src/core/load_balancing/address_filtering.cc +1 -1
  556. data/src/core/load_balancing/address_filtering.h +2 -2
  557. data/src/core/load_balancing/backend_metric_parser.cc +1 -1
  558. data/src/core/load_balancing/backend_metric_parser.h +1 -1
  559. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  560. data/src/core/load_balancing/child_policy_handler.h +2 -2
  561. data/src/core/load_balancing/delegating_helper.h +2 -2
  562. data/src/core/load_balancing/endpoint_list.cc +6 -6
  563. data/src/core/load_balancing/endpoint_list.h +2 -2
  564. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +7 -5
  565. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +5 -1
  566. data/src/core/load_balancing/grpclb/grpclb.cc +37 -48
  567. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +2 -2
  568. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  569. data/src/core/load_balancing/grpclb/load_balancer_api.h +1 -1
  570. data/src/core/load_balancing/health_check_client.cc +13 -9
  571. data/src/core/load_balancing/health_check_client_internal.h +5 -5
  572. data/src/core/load_balancing/lb_policy.h +11 -8
  573. data/src/core/load_balancing/lb_policy_factory.h +2 -2
  574. data/src/core/load_balancing/lb_policy_registry.cc +3 -3
  575. data/src/core/load_balancing/lb_policy_registry.h +2 -2
  576. data/src/core/load_balancing/oob_backend_metric.cc +11 -7
  577. data/src/core/load_balancing/oob_backend_metric_internal.h +4 -4
  578. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +9 -17
  579. data/src/core/load_balancing/pick_first/pick_first.cc +62 -32
  580. data/src/core/load_balancing/priority/priority.cc +29 -30
  581. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -11
  582. data/src/core/load_balancing/rls/rls.cc +23 -23
  583. data/src/core/load_balancing/round_robin/round_robin.cc +16 -16
  584. data/src/core/load_balancing/subchannel_interface.h +2 -2
  585. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
  586. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +42 -41
  587. data/src/core/load_balancing/weighted_target/weighted_target.cc +14 -14
  588. data/src/core/load_balancing/xds/cds.cc +81 -37
  589. data/src/core/load_balancing/xds/xds_cluster_impl.cc +24 -41
  590. data/src/core/load_balancing/xds/xds_cluster_manager.cc +6 -6
  591. data/src/core/load_balancing/xds/xds_override_host.cc +14 -14
  592. data/src/core/load_balancing/xds/xds_override_host.h +1 -1
  593. data/src/core/load_balancing/xds/xds_wrr_locality.cc +5 -5
  594. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
  595. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -1
  596. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  597. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  598. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +35 -35
  599. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +16 -16
  600. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -2
  601. data/src/core/resolver/dns/dns_resolver_plugin.cc +8 -5
  602. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +10 -10
  603. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +1 -1
  604. data/src/core/resolver/dns/event_engine/service_config_helper.cc +2 -2
  605. data/src/core/resolver/dns/native/dns_resolver.cc +7 -7
  606. data/src/core/resolver/endpoint_addresses.cc +6 -6
  607. data/src/core/resolver/endpoint_addresses.h +4 -1
  608. data/src/core/resolver/fake/fake_resolver.cc +3 -3
  609. data/src/core/resolver/fake/fake_resolver.h +3 -3
  610. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +46 -59
  611. data/src/core/resolver/polling_resolver.cc +8 -8
  612. data/src/core/resolver/polling_resolver.h +1 -1
  613. data/src/core/resolver/resolver.h +2 -2
  614. data/src/core/resolver/resolver_factory.h +2 -2
  615. data/src/core/resolver/resolver_registry.cc +5 -4
  616. data/src/core/resolver/resolver_registry.h +1 -1
  617. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +4 -4
  618. data/src/core/resolver/xds/xds_config.cc +1 -1
  619. data/src/core/resolver/xds/xds_config.h +3 -3
  620. data/src/core/resolver/xds/xds_dependency_manager.cc +7 -7
  621. data/src/core/resolver/xds/xds_dependency_manager.h +3 -3
  622. data/src/core/resolver/xds/xds_resolver.cc +25 -22
  623. data/src/core/resolver/xds/xds_resolver_attributes.h +1 -1
  624. data/src/core/server/add_port.cc +2 -2
  625. data/src/core/server/server.cc +47 -43
  626. data/src/core/server/server.h +8 -7
  627. data/src/core/server/server_call_tracer_filter.cc +1 -1
  628. data/src/core/server/server_call_tracer_filter.h +9 -5
  629. data/src/core/server/server_config_selector.h +2 -2
  630. data/src/core/server/server_config_selector_filter.cc +5 -5
  631. data/src/core/server/xds_channel_stack_modifier.cc +3 -2
  632. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  633. data/src/core/server/xds_server_config_fetcher.cc +19 -18
  634. data/src/core/service_config/service_config.h +1 -1
  635. data/src/core/service_config/service_config_channel_arg_filter.h +4 -1
  636. data/src/core/service_config/service_config_impl.cc +3 -3
  637. data/src/core/service_config/service_config_impl.h +4 -4
  638. data/src/core/service_config/service_config_parser.h +1 -1
  639. data/src/core/telemetry/call_tracer.cc +39 -49
  640. data/src/core/telemetry/call_tracer.h +201 -24
  641. data/src/core/telemetry/default_tcp_tracer.h +3 -3
  642. data/src/core/telemetry/histogram.h +205 -0
  643. data/src/core/telemetry/instrument.cc +999 -0
  644. data/src/core/telemetry/instrument.h +1105 -0
  645. data/src/core/telemetry/metrics.cc +15 -5
  646. data/src/core/telemetry/metrics.h +36 -5
  647. data/src/core/telemetry/stats.h +2 -2
  648. data/src/core/telemetry/stats_data.cc +1 -20
  649. data/src/core/telemetry/stats_data.h +2 -21
  650. data/src/core/transport/auth_context.cc +3 -3
  651. data/src/core/transport/auth_context.h +2 -1
  652. data/src/core/transport/auth_context_comparator_registry.h +1 -1
  653. data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -1
  654. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +2 -2
  655. data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -1
  656. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +81 -48
  657. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
  658. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
  659. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +46 -36
  660. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +4 -4
  661. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
  662. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +4 -4
  663. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +11 -3
  664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +10 -0
  665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -8
  666. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +3 -0
  667. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +18 -5
  668. data/src/core/tsi/fake_transport_security.cc +6 -5
  669. data/src/core/tsi/local_transport_security.cc +1 -1
  670. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  671. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -1
  672. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +10 -10
  673. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -4
  674. data/src/core/tsi/ssl_transport_security.cc +30 -30
  675. data/src/core/tsi/ssl_transport_security.h +1 -1
  676. data/src/core/tsi/ssl_transport_security_utils.cc +10 -10
  677. data/src/core/tsi/ssl_transport_security_utils.h +2 -2
  678. data/src/core/tsi/transport_security_grpc.cc +8 -0
  679. data/src/core/tsi/transport_security_grpc.h +15 -0
  680. data/src/core/util/alloc.cc +1 -1
  681. data/src/core/util/backoff.h +1 -1
  682. data/src/core/util/chunked_vector.h +4 -4
  683. data/src/core/util/crash.h +1 -1
  684. data/src/core/util/dual_ref_counted.h +2 -2
  685. data/src/core/util/event_log.cc +2 -2
  686. data/src/core/util/event_log.h +3 -3
  687. data/src/core/util/gcp_metadata_query.cc +7 -7
  688. data/src/core/util/gcp_metadata_query.h +2 -2
  689. data/src/core/util/glob.cc +2 -0
  690. data/src/core/util/grpc_check.cc +24 -0
  691. data/src/core/util/grpc_check.h +103 -0
  692. data/src/core/util/grpc_if_nametoindex_posix.cc +1 -1
  693. data/src/core/util/grpc_if_nametoindex_unsupported.cc +1 -1
  694. data/src/core/util/http_client/format_request.cc +1 -1
  695. data/src/core/util/http_client/httpcli.cc +6 -6
  696. data/src/core/util/http_client/httpcli.h +4 -4
  697. data/src/core/util/http_client/httpcli_security_connector.cc +4 -4
  698. data/src/core/util/http_client/parser.cc +4 -4
  699. data/src/core/util/json/json_channel_args.h +1 -1
  700. data/src/core/util/json/json_object_loader.h +6 -6
  701. data/src/core/util/json/json_reader.cc +2 -2
  702. data/src/core/util/json/json_reader.h +1 -1
  703. data/src/core/util/json/json_util.h +3 -3
  704. data/src/core/util/json/json_writer.cc +1 -1
  705. data/src/core/util/latent_see.cc +45 -24
  706. data/src/core/util/latent_see.h +199 -28
  707. data/src/core/util/linux/cpu.cc +1 -1
  708. data/src/core/util/load_file.cc +1 -1
  709. data/src/core/util/load_file.h +1 -1
  710. data/src/core/util/log.cc +3 -3
  711. data/src/core/util/lru_cache.h +4 -4
  712. data/src/core/util/matchers.h +1 -1
  713. data/src/core/util/memory_usage.h +17 -1
  714. data/src/core/util/mpscq.h +1 -1
  715. data/src/core/util/notification.h +1 -1
  716. data/src/core/util/posix/cpu.cc +1 -1
  717. data/src/core/util/posix/directory_reader.cc +3 -2
  718. data/src/core/util/posix/stat.cc +2 -2
  719. data/src/core/util/posix/sync.cc +24 -24
  720. data/src/core/util/posix/thd.cc +2 -2
  721. data/src/core/util/posix/tmpfile.cc +2 -2
  722. data/src/core/util/postmortem_emit.cc +52 -0
  723. data/src/core/util/postmortem_emit.h +30 -0
  724. data/src/core/util/ref_counted.h +2 -2
  725. data/src/core/util/ref_counted_ptr.h +6 -1
  726. data/src/core/util/ref_counted_string.h +1 -1
  727. data/src/core/util/single_set_ptr.h +3 -1
  728. data/src/core/util/status_helper.cc +8 -8
  729. data/src/core/util/status_helper.h +1 -1
  730. data/src/core/util/string.cc +2 -2
  731. data/src/core/util/sync_abseil.cc +1 -1
  732. data/src/core/util/table.h +1 -1
  733. data/src/core/util/time.cc +1 -1
  734. data/src/core/util/time_precise.cc +1 -1
  735. data/src/core/util/trie_lookup.h +170 -0
  736. data/src/core/util/unique_ptr_with_bitset.h +5 -5
  737. data/src/core/util/unique_type_name.h +1 -1
  738. data/src/core/util/upb_utils.h +6 -1
  739. data/src/core/util/validation_errors.cc +2 -2
  740. data/src/core/util/validation_errors.h +2 -3
  741. data/src/core/util/wait_for_single_owner.h +2 -2
  742. data/src/core/util/windows/directory_reader.cc +1 -1
  743. data/src/core/util/windows/stat.cc +2 -2
  744. data/src/core/util/windows/thd.cc +2 -2
  745. data/src/core/util/windows/time.cc +1 -1
  746. data/src/core/util/work_serializer.cc +3 -3
  747. data/src/core/util/work_serializer.h +2 -2
  748. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  749. data/src/core/xds/grpc/certificate_provider_store.h +2 -2
  750. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  751. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  752. data/src/core/xds/grpc/xds_audit_logger_registry.cc +3 -3
  753. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  754. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +7 -7
  755. data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -3
  756. data/src/core/xds/grpc/xds_certificate_provider.cc +4 -4
  757. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  758. data/src/core/xds/grpc/xds_client_grpc.cc +39 -20
  759. data/src/core/xds/grpc/xds_client_grpc.h +6 -3
  760. data/src/core/xds/grpc/xds_cluster.cc +2 -2
  761. data/src/core/xds/grpc/xds_cluster.h +1 -1
  762. data/src/core/xds/grpc/xds_cluster_parser.cc +7 -7
  763. data/src/core/xds/grpc/xds_cluster_parser.h +1 -1
  764. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +4 -4
  765. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  766. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  767. data/src/core/xds/grpc/xds_common_types.h +1 -1
  768. data/src/core/xds/grpc/xds_common_types_parser.cc +5 -5
  769. data/src/core/xds/grpc/xds_endpoint.h +2 -2
  770. data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -7
  771. data/src/core/xds/grpc/xds_endpoint_parser.h +1 -1
  772. data/src/core/xds/grpc/xds_health_status.cc +1 -1
  773. data/src/core/xds/grpc/xds_health_status.h +1 -1
  774. data/src/core/xds/grpc/xds_http_fault_filter.cc +4 -4
  775. data/src/core/xds/grpc/xds_http_fault_filter.h +2 -2
  776. data/src/core/xds/grpc/xds_http_filter.h +3 -3
  777. data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
  778. data/src/core/xds/grpc/xds_http_filter_registry.h +2 -2
  779. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +3 -3
  780. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +2 -2
  781. data/src/core/xds/grpc/xds_http_rbac_filter.cc +4 -4
  782. data/src/core/xds/grpc/xds_http_rbac_filter.h +2 -2
  783. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +3 -3
  784. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +2 -2
  785. data/src/core/xds/grpc/xds_lb_policy_registry.cc +1 -1
  786. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  787. data/src/core/xds/grpc/xds_listener.cc +2 -2
  788. data/src/core/xds/grpc/xds_listener_parser.cc +9 -9
  789. data/src/core/xds/grpc/xds_listener_parser.h +1 -1
  790. data/src/core/xds/grpc/xds_matcher.cc +277 -0
  791. data/src/core/xds/grpc/xds_matcher.h +432 -0
  792. data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
  793. data/src/core/xds/grpc/xds_matcher_action.h +48 -0
  794. data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
  795. data/src/core/xds/grpc/xds_matcher_context.h +46 -0
  796. data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
  797. data/src/core/xds/grpc/xds_matcher_input.h +105 -0
  798. data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
  799. data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
  800. data/src/core/xds/grpc/xds_metadata.cc +4 -3
  801. data/src/core/xds/grpc/xds_metadata.h +3 -3
  802. data/src/core/xds/grpc/xds_metadata_parser.cc +2 -2
  803. data/src/core/xds/grpc/xds_route_config.cc +3 -3
  804. data/src/core/xds/grpc/xds_route_config_parser.cc +14 -14
  805. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  806. data/src/core/xds/grpc/xds_routing.cc +6 -6
  807. data/src/core/xds/grpc/xds_routing.h +2 -2
  808. data/src/core/xds/grpc/xds_server_grpc.cc +2 -2
  809. data/src/core/xds/grpc/xds_transport_grpc.cc +11 -11
  810. data/src/core/xds/grpc/xds_transport_grpc.h +2 -2
  811. data/src/core/xds/xds_client/lrs_client.cc +9 -9
  812. data/src/core/xds/xds_client/lrs_client.h +4 -4
  813. data/src/core/xds/xds_client/xds_api.h +1 -1
  814. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +1 -1
  815. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +1 -1
  816. data/src/core/xds/xds_client/xds_client.cc +17 -17
  817. data/src/core/xds/xds_client/xds_client.h +5 -5
  818. data/src/core/xds/xds_client/xds_locality.h +2 -2
  819. data/src/core/xds/xds_client/xds_resource_type.h +2 -2
  820. data/src/core/xds/xds_client/xds_resource_type_impl.h +1 -1
  821. data/src/core/xds/xds_client/xds_transport.h +2 -2
  822. data/src/ruby/ext/grpc/extconf.rb +14 -12
  823. data/src/ruby/ext/grpc/rb_call.c +0 -1
  824. data/src/ruby/ext/grpc/rb_channel_args.c +0 -1
  825. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  826. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  827. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  828. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  829. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  830. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  831. data/src/ruby/lib/grpc/version.rb +1 -1
  832. data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  833. data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
  834. metadata +51 -6
@@ -32,6 +32,9 @@ const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
32
32
  const char* const description_channelz_use_v2_for_v1_service =
33
33
  "Use the v2 channelz service for the v1 channelz service.";
34
34
  const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
35
+ const char* const description_chaotic_good_connect_deadline =
36
+ "Use the deadline from the connect args in chaotic good connector";
37
+ const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
35
38
  const char* const description_chaotic_good_framing_layer =
36
39
  "Enable the chaotic good framing layer.";
37
40
  const char* const additional_constraints_chaotic_good_framing_layer = "{}";
@@ -76,15 +79,26 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
76
79
  static_cast<uint8_t>(
77
80
  grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
78
81
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
82
+ const char* const description_event_engine_poller_for_python =
83
+ "Enable event engine poller in gRPC Python";
84
+ const char* const additional_constraints_event_engine_poller_for_python = "{}";
79
85
  const char* const description_event_engine_secure_endpoint =
80
86
  "Use EventEngine secure endpoint wrapper instead of iomgr when available";
81
87
  const char* const additional_constraints_event_engine_secure_endpoint = "{}";
88
+ const char* const description_fail_recv_metadata_on_deadline_exceeded =
89
+ "Fail recv initial metadata when the deadline is exceeded.";
90
+ const char* const
91
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
82
92
  const char* const description_free_large_allocator =
83
93
  "If set, return all free bytes from a \042big\042 allocator";
84
94
  const char* const additional_constraints_free_large_allocator = "{}";
85
95
  const char* const description_fuse_filters =
86
96
  "If set, individual filters are merged into fused filters";
87
97
  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
+ "{}";
88
102
  const char* const description_keep_alive_ping_timer_batch =
89
103
  "Avoid explicitly cancelling the keepalive timer. Instead adjust the "
90
104
  "callback to re-schedule itself to the next ping interval.";
@@ -102,9 +116,16 @@ const char* const additional_constraints_monitoring_experiment = "{}";
102
116
  const char* const description_multiping =
103
117
  "Allow more than one ping to be in flight at a time by default.";
104
118
  const char* const additional_constraints_multiping = "{}";
119
+ const char* const description_otel_export_telemetry_domains =
120
+ "Export telemetry domains in OpenTelemetry metrics.";
121
+ const char* const additional_constraints_otel_export_telemetry_domains = "{}";
105
122
  const char* const description_pick_first_ignore_empty_updates =
106
123
  "Ignore empty resolutions in pick_first";
107
124
  const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
125
+ const char* const description_pick_first_ready_to_connecting =
126
+ "When the subchannel goes from READY to CONNECTING or TRANSIENT_FAILURE, "
127
+ "pick_first goes to CONNECTING and starts a new Happy Eyeballs pass.";
128
+ const char* const additional_constraints_pick_first_ready_to_connecting = "{}";
108
129
  const char* const description_pipelined_read_secure_endpoint =
109
130
  "Enable pipelined reads for EventEngine secure endpoints";
110
131
  const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
@@ -165,17 +186,20 @@ const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
165
186
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
166
187
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
167
188
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
168
- const char* const description_server_global_callbacks_ownership =
169
- "If set, server global callbacks ownership is fixed to not be owned by "
170
- "gRPC.";
171
- const char* const additional_constraints_server_global_callbacks_ownership =
172
- "{}";
173
- const char* const description_shard_global_connection_pool =
174
- "If set, shard the global connection pool to improve parallelism.";
175
- const char* const additional_constraints_shard_global_connection_pool = "{}";
189
+ const char* const description_skip_clear_peer_on_cancellation =
190
+ "If set, skips clearing of peer string on call cancellation.";
191
+ const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
176
192
  const char* const description_sleep_promise_exec_ctx_removal =
177
193
  "If set, polling the sleep promise does not rely on the ExecCtx.";
178
194
  const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
195
+ const char* const description_sleep_use_non_owning_waker =
196
+ "If set, the sleep promise uses a non-owning waker.";
197
+ const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
198
+ const char* const description_subchannel_wrapper_cleanup_on_orphan =
199
+ "Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
200
+ "gets orphaned.";
201
+ const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
202
+ "{}";
179
203
  const char* const description_tcp_frame_size_tuning =
180
204
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
181
205
  "would not indicate completion of a read operation until a specified "
@@ -185,6 +209,18 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
185
209
  const char* const description_tcp_rcv_lowat =
186
210
  "Use SO_RCVLOWAT to avoid wakeups on the read path.";
187
211
  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 = "{}";
188
224
  const char* const description_tsi_frame_protector_without_locks =
189
225
  "Do not hold locks while using the tsi_frame_protector.";
190
226
  const char* const additional_constraints_tsi_frame_protector_without_locks =
@@ -207,6 +243,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
207
243
  description_channelz_use_v2_for_v1_service,
208
244
  additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
209
245
  true},
246
+ {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
247
+ additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
248
+ true},
210
249
  {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
211
250
  additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
212
251
  false},
@@ -233,13 +272,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
233
272
  description_event_engine_for_all_other_endpoints,
234
273
  additional_constraints_event_engine_for_all_other_endpoints,
235
274
  required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
275
+ {"event_engine_poller_for_python",
276
+ description_event_engine_poller_for_python,
277
+ additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
278
+ true},
236
279
  {"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
237
280
  additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
238
281
  false},
282
+ {"fail_recv_metadata_on_deadline_exceeded",
283
+ description_fail_recv_metadata_on_deadline_exceeded,
284
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
285
+ false, false},
239
286
  {"free_large_allocator", description_free_large_allocator,
240
287
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
241
288
  {"fuse_filters", description_fuse_filters,
242
289
  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},
243
294
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
244
295
  additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
245
296
  true},
@@ -253,10 +304,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
253
304
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
254
305
  {"multiping", description_multiping, additional_constraints_multiping,
255
306
  nullptr, 0, false, true},
307
+ {"otel_export_telemetry_domains", description_otel_export_telemetry_domains,
308
+ additional_constraints_otel_export_telemetry_domains, nullptr, 0, false,
309
+ true},
256
310
  {"pick_first_ignore_empty_updates",
257
311
  description_pick_first_ignore_empty_updates,
258
312
  additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
259
313
  true},
314
+ {"pick_first_ready_to_connecting",
315
+ description_pick_first_ready_to_connecting,
316
+ additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false,
317
+ true},
260
318
  {"pipelined_read_secure_endpoint",
261
319
  description_pipelined_read_secure_endpoint,
262
320
  additional_constraints_pipelined_read_secure_endpoint,
@@ -297,21 +355,34 @@ const ExperimentMetadata g_experiment_metadata[] = {
297
355
  description_secure_endpoint_offload_large_writes,
298
356
  additional_constraints_secure_endpoint_offload_large_writes,
299
357
  required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
300
- {"server_global_callbacks_ownership",
301
- description_server_global_callbacks_ownership,
302
- additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
303
- true},
304
- {"shard_global_connection_pool", description_shard_global_connection_pool,
305
- additional_constraints_shard_global_connection_pool, nullptr, 0, true,
358
+ {"skip_clear_peer_on_cancellation",
359
+ description_skip_clear_peer_on_cancellation,
360
+ additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
306
361
  true},
307
362
  {"sleep_promise_exec_ctx_removal",
308
363
  description_sleep_promise_exec_ctx_removal,
309
364
  additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
310
365
  true},
366
+ {"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
367
+ additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
368
+ {"subchannel_wrapper_cleanup_on_orphan",
369
+ description_subchannel_wrapper_cleanup_on_orphan,
370
+ additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
371
+ false, true},
311
372
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
312
373
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
313
374
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
314
375
  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},
315
386
  {"tsi_frame_protector_without_locks",
316
387
  description_tsi_frame_protector_without_locks,
317
388
  additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
@@ -335,6 +406,9 @@ const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
335
406
  const char* const description_channelz_use_v2_for_v1_service =
336
407
  "Use the v2 channelz service for the v1 channelz service.";
337
408
  const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
409
+ const char* const description_chaotic_good_connect_deadline =
410
+ "Use the deadline from the connect args in chaotic good connector";
411
+ const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
338
412
  const char* const description_chaotic_good_framing_layer =
339
413
  "Enable the chaotic good framing layer.";
340
414
  const char* const additional_constraints_chaotic_good_framing_layer = "{}";
@@ -379,15 +453,26 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
379
453
  static_cast<uint8_t>(
380
454
  grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
381
455
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
456
+ const char* const description_event_engine_poller_for_python =
457
+ "Enable event engine poller in gRPC Python";
458
+ const char* const additional_constraints_event_engine_poller_for_python = "{}";
382
459
  const char* const description_event_engine_secure_endpoint =
383
460
  "Use EventEngine secure endpoint wrapper instead of iomgr when available";
384
461
  const char* const additional_constraints_event_engine_secure_endpoint = "{}";
462
+ const char* const description_fail_recv_metadata_on_deadline_exceeded =
463
+ "Fail recv initial metadata when the deadline is exceeded.";
464
+ const char* const
465
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
385
466
  const char* const description_free_large_allocator =
386
467
  "If set, return all free bytes from a \042big\042 allocator";
387
468
  const char* const additional_constraints_free_large_allocator = "{}";
388
469
  const char* const description_fuse_filters =
389
470
  "If set, individual filters are merged into fused filters";
390
471
  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
+ "{}";
391
476
  const char* const description_keep_alive_ping_timer_batch =
392
477
  "Avoid explicitly cancelling the keepalive timer. Instead adjust the "
393
478
  "callback to re-schedule itself to the next ping interval.";
@@ -405,9 +490,16 @@ const char* const additional_constraints_monitoring_experiment = "{}";
405
490
  const char* const description_multiping =
406
491
  "Allow more than one ping to be in flight at a time by default.";
407
492
  const char* const additional_constraints_multiping = "{}";
493
+ const char* const description_otel_export_telemetry_domains =
494
+ "Export telemetry domains in OpenTelemetry metrics.";
495
+ const char* const additional_constraints_otel_export_telemetry_domains = "{}";
408
496
  const char* const description_pick_first_ignore_empty_updates =
409
497
  "Ignore empty resolutions in pick_first";
410
498
  const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
499
+ const char* const description_pick_first_ready_to_connecting =
500
+ "When the subchannel goes from READY to CONNECTING or TRANSIENT_FAILURE, "
501
+ "pick_first goes to CONNECTING and starts a new Happy Eyeballs pass.";
502
+ const char* const additional_constraints_pick_first_ready_to_connecting = "{}";
411
503
  const char* const description_pipelined_read_secure_endpoint =
412
504
  "Enable pipelined reads for EventEngine secure endpoints";
413
505
  const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
@@ -468,17 +560,20 @@ const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
468
560
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
469
561
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
470
562
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
471
- const char* const description_server_global_callbacks_ownership =
472
- "If set, server global callbacks ownership is fixed to not be owned by "
473
- "gRPC.";
474
- const char* const additional_constraints_server_global_callbacks_ownership =
475
- "{}";
476
- const char* const description_shard_global_connection_pool =
477
- "If set, shard the global connection pool to improve parallelism.";
478
- const char* const additional_constraints_shard_global_connection_pool = "{}";
563
+ const char* const description_skip_clear_peer_on_cancellation =
564
+ "If set, skips clearing of peer string on call cancellation.";
565
+ const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
479
566
  const char* const description_sleep_promise_exec_ctx_removal =
480
567
  "If set, polling the sleep promise does not rely on the ExecCtx.";
481
568
  const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
569
+ const char* const description_sleep_use_non_owning_waker =
570
+ "If set, the sleep promise uses a non-owning waker.";
571
+ const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
572
+ const char* const description_subchannel_wrapper_cleanup_on_orphan =
573
+ "Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
574
+ "gets orphaned.";
575
+ const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
576
+ "{}";
482
577
  const char* const description_tcp_frame_size_tuning =
483
578
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
484
579
  "would not indicate completion of a read operation until a specified "
@@ -488,6 +583,18 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
488
583
  const char* const description_tcp_rcv_lowat =
489
584
  "Use SO_RCVLOWAT to avoid wakeups on the read path.";
490
585
  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 = "{}";
491
598
  const char* const description_tsi_frame_protector_without_locks =
492
599
  "Do not hold locks while using the tsi_frame_protector.";
493
600
  const char* const additional_constraints_tsi_frame_protector_without_locks =
@@ -510,6 +617,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
510
617
  description_channelz_use_v2_for_v1_service,
511
618
  additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
512
619
  true},
620
+ {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
621
+ additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
622
+ true},
513
623
  {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
514
624
  additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
515
625
  false},
@@ -536,13 +646,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
536
646
  description_event_engine_for_all_other_endpoints,
537
647
  additional_constraints_event_engine_for_all_other_endpoints,
538
648
  required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
649
+ {"event_engine_poller_for_python",
650
+ description_event_engine_poller_for_python,
651
+ additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
652
+ true},
539
653
  {"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
540
654
  additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
541
655
  false},
656
+ {"fail_recv_metadata_on_deadline_exceeded",
657
+ description_fail_recv_metadata_on_deadline_exceeded,
658
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
659
+ false, false},
542
660
  {"free_large_allocator", description_free_large_allocator,
543
661
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
544
662
  {"fuse_filters", description_fuse_filters,
545
663
  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},
546
668
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
547
669
  additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
548
670
  true},
@@ -556,10 +678,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
556
678
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
557
679
  {"multiping", description_multiping, additional_constraints_multiping,
558
680
  nullptr, 0, false, true},
681
+ {"otel_export_telemetry_domains", description_otel_export_telemetry_domains,
682
+ additional_constraints_otel_export_telemetry_domains, nullptr, 0, false,
683
+ true},
559
684
  {"pick_first_ignore_empty_updates",
560
685
  description_pick_first_ignore_empty_updates,
561
686
  additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
562
687
  true},
688
+ {"pick_first_ready_to_connecting",
689
+ description_pick_first_ready_to_connecting,
690
+ additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false,
691
+ true},
563
692
  {"pipelined_read_secure_endpoint",
564
693
  description_pipelined_read_secure_endpoint,
565
694
  additional_constraints_pipelined_read_secure_endpoint,
@@ -600,21 +729,34 @@ const ExperimentMetadata g_experiment_metadata[] = {
600
729
  description_secure_endpoint_offload_large_writes,
601
730
  additional_constraints_secure_endpoint_offload_large_writes,
602
731
  required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
603
- {"server_global_callbacks_ownership",
604
- description_server_global_callbacks_ownership,
605
- additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
606
- true},
607
- {"shard_global_connection_pool", description_shard_global_connection_pool,
608
- additional_constraints_shard_global_connection_pool, nullptr, 0, true,
732
+ {"skip_clear_peer_on_cancellation",
733
+ description_skip_clear_peer_on_cancellation,
734
+ additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
609
735
  true},
610
736
  {"sleep_promise_exec_ctx_removal",
611
737
  description_sleep_promise_exec_ctx_removal,
612
738
  additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
613
739
  true},
740
+ {"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
741
+ additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
742
+ {"subchannel_wrapper_cleanup_on_orphan",
743
+ description_subchannel_wrapper_cleanup_on_orphan,
744
+ additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
745
+ false, true},
614
746
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
615
747
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
616
748
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
617
749
  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},
618
760
  {"tsi_frame_protector_without_locks",
619
761
  description_tsi_frame_protector_without_locks,
620
762
  additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
@@ -638,6 +780,9 @@ const char* const additional_constraints_channelz_use_v2_for_v1_api = "{}";
638
780
  const char* const description_channelz_use_v2_for_v1_service =
639
781
  "Use the v2 channelz service for the v1 channelz service.";
640
782
  const char* const additional_constraints_channelz_use_v2_for_v1_service = "{}";
783
+ const char* const description_chaotic_good_connect_deadline =
784
+ "Use the deadline from the connect args in chaotic good connector";
785
+ const char* const additional_constraints_chaotic_good_connect_deadline = "{}";
641
786
  const char* const description_chaotic_good_framing_layer =
642
787
  "Enable the chaotic good framing layer.";
643
788
  const char* const additional_constraints_chaotic_good_framing_layer = "{}";
@@ -682,15 +827,26 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
682
827
  static_cast<uint8_t>(
683
828
  grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
684
829
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
830
+ const char* const description_event_engine_poller_for_python =
831
+ "Enable event engine poller in gRPC Python";
832
+ const char* const additional_constraints_event_engine_poller_for_python = "{}";
685
833
  const char* const description_event_engine_secure_endpoint =
686
834
  "Use EventEngine secure endpoint wrapper instead of iomgr when available";
687
835
  const char* const additional_constraints_event_engine_secure_endpoint = "{}";
836
+ const char* const description_fail_recv_metadata_on_deadline_exceeded =
837
+ "Fail recv initial metadata when the deadline is exceeded.";
838
+ const char* const
839
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
688
840
  const char* const description_free_large_allocator =
689
841
  "If set, return all free bytes from a \042big\042 allocator";
690
842
  const char* const additional_constraints_free_large_allocator = "{}";
691
843
  const char* const description_fuse_filters =
692
844
  "If set, individual filters are merged into fused filters";
693
845
  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
+ "{}";
694
850
  const char* const description_keep_alive_ping_timer_batch =
695
851
  "Avoid explicitly cancelling the keepalive timer. Instead adjust the "
696
852
  "callback to re-schedule itself to the next ping interval.";
@@ -708,9 +864,16 @@ const char* const additional_constraints_monitoring_experiment = "{}";
708
864
  const char* const description_multiping =
709
865
  "Allow more than one ping to be in flight at a time by default.";
710
866
  const char* const additional_constraints_multiping = "{}";
867
+ const char* const description_otel_export_telemetry_domains =
868
+ "Export telemetry domains in OpenTelemetry metrics.";
869
+ const char* const additional_constraints_otel_export_telemetry_domains = "{}";
711
870
  const char* const description_pick_first_ignore_empty_updates =
712
871
  "Ignore empty resolutions in pick_first";
713
872
  const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
873
+ const char* const description_pick_first_ready_to_connecting =
874
+ "When the subchannel goes from READY to CONNECTING or TRANSIENT_FAILURE, "
875
+ "pick_first goes to CONNECTING and starts a new Happy Eyeballs pass.";
876
+ const char* const additional_constraints_pick_first_ready_to_connecting = "{}";
714
877
  const char* const description_pipelined_read_secure_endpoint =
715
878
  "Enable pipelined reads for EventEngine secure endpoints";
716
879
  const char* const additional_constraints_pipelined_read_secure_endpoint = "{}";
@@ -771,17 +934,20 @@ const uint8_t required_experiments_secure_endpoint_offload_large_writes[] = {
771
934
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
772
935
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener),
773
936
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineSecureEndpoint)};
774
- const char* const description_server_global_callbacks_ownership =
775
- "If set, server global callbacks ownership is fixed to not be owned by "
776
- "gRPC.";
777
- const char* const additional_constraints_server_global_callbacks_ownership =
778
- "{}";
779
- const char* const description_shard_global_connection_pool =
780
- "If set, shard the global connection pool to improve parallelism.";
781
- const char* const additional_constraints_shard_global_connection_pool = "{}";
937
+ const char* const description_skip_clear_peer_on_cancellation =
938
+ "If set, skips clearing of peer string on call cancellation.";
939
+ const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
782
940
  const char* const description_sleep_promise_exec_ctx_removal =
783
941
  "If set, polling the sleep promise does not rely on the ExecCtx.";
784
942
  const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
943
+ const char* const description_sleep_use_non_owning_waker =
944
+ "If set, the sleep promise uses a non-owning waker.";
945
+ const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
946
+ const char* const description_subchannel_wrapper_cleanup_on_orphan =
947
+ "Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
948
+ "gets orphaned.";
949
+ const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
950
+ "{}";
785
951
  const char* const description_tcp_frame_size_tuning =
786
952
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
787
953
  "would not indicate completion of a read operation until a specified "
@@ -791,6 +957,18 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
791
957
  const char* const description_tcp_rcv_lowat =
792
958
  "Use SO_RCVLOWAT to avoid wakeups on the read path.";
793
959
  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 = "{}";
794
972
  const char* const description_tsi_frame_protector_without_locks =
795
973
  "Do not hold locks while using the tsi_frame_protector.";
796
974
  const char* const additional_constraints_tsi_frame_protector_without_locks =
@@ -813,6 +991,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
813
991
  description_channelz_use_v2_for_v1_service,
814
992
  additional_constraints_channelz_use_v2_for_v1_service, nullptr, 0, false,
815
993
  true},
994
+ {"chaotic_good_connect_deadline", description_chaotic_good_connect_deadline,
995
+ additional_constraints_chaotic_good_connect_deadline, nullptr, 0, true,
996
+ true},
816
997
  {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
817
998
  additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
818
999
  false},
@@ -839,13 +1020,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
839
1020
  description_event_engine_for_all_other_endpoints,
840
1021
  additional_constraints_event_engine_for_all_other_endpoints,
841
1022
  required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
1023
+ {"event_engine_poller_for_python",
1024
+ description_event_engine_poller_for_python,
1025
+ additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
1026
+ true},
842
1027
  {"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
843
1028
  additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
844
1029
  false},
1030
+ {"fail_recv_metadata_on_deadline_exceeded",
1031
+ description_fail_recv_metadata_on_deadline_exceeded,
1032
+ additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
1033
+ false, false},
845
1034
  {"free_large_allocator", description_free_large_allocator,
846
1035
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
847
1036
  {"fuse_filters", description_fuse_filters,
848
1037
  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},
849
1042
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
850
1043
  additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false,
851
1044
  true},
@@ -859,10 +1052,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
859
1052
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
860
1053
  {"multiping", description_multiping, additional_constraints_multiping,
861
1054
  nullptr, 0, false, true},
1055
+ {"otel_export_telemetry_domains", description_otel_export_telemetry_domains,
1056
+ additional_constraints_otel_export_telemetry_domains, nullptr, 0, false,
1057
+ true},
862
1058
  {"pick_first_ignore_empty_updates",
863
1059
  description_pick_first_ignore_empty_updates,
864
1060
  additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
865
1061
  true},
1062
+ {"pick_first_ready_to_connecting",
1063
+ description_pick_first_ready_to_connecting,
1064
+ additional_constraints_pick_first_ready_to_connecting, nullptr, 0, false,
1065
+ true},
866
1066
  {"pipelined_read_secure_endpoint",
867
1067
  description_pipelined_read_secure_endpoint,
868
1068
  additional_constraints_pipelined_read_secure_endpoint,
@@ -903,21 +1103,34 @@ const ExperimentMetadata g_experiment_metadata[] = {
903
1103
  description_secure_endpoint_offload_large_writes,
904
1104
  additional_constraints_secure_endpoint_offload_large_writes,
905
1105
  required_experiments_secure_endpoint_offload_large_writes, 3, false, true},
906
- {"server_global_callbacks_ownership",
907
- description_server_global_callbacks_ownership,
908
- additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
909
- true},
910
- {"shard_global_connection_pool", description_shard_global_connection_pool,
911
- additional_constraints_shard_global_connection_pool, nullptr, 0, true,
1106
+ {"skip_clear_peer_on_cancellation",
1107
+ description_skip_clear_peer_on_cancellation,
1108
+ additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
912
1109
  true},
913
1110
  {"sleep_promise_exec_ctx_removal",
914
1111
  description_sleep_promise_exec_ctx_removal,
915
1112
  additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
916
1113
  true},
1114
+ {"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
1115
+ additional_constraints_sleep_use_non_owning_waker, nullptr, 0, true, true},
1116
+ {"subchannel_wrapper_cleanup_on_orphan",
1117
+ description_subchannel_wrapper_cleanup_on_orphan,
1118
+ additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
1119
+ false, true},
917
1120
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
918
1121
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
919
1122
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
920
1123
  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},
921
1134
  {"tsi_frame_protector_without_locks",
922
1135
  description_tsi_frame_protector_without_locks,
923
1136
  additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,