grpc 1.76.0 → 1.78.0.pre1

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