grpc 1.71.0 → 1.72.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 (597) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -75
  3. data/include/grpc/event_engine/memory_request.h +3 -3
  4. data/include/grpc/impl/channel_arg_names.h +70 -50
  5. data/include/grpc/support/workaround_list.h +1 -4
  6. data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
  7. data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
  8. data/src/core/{lib/transport → call}/call_destination.h +4 -4
  9. data/src/core/{lib/transport → call}/call_filters.cc +2 -2
  10. data/src/core/{lib/transport → call}/call_filters.h +25 -6
  11. data/src/core/{lib/channel → call}/call_finalization.h +3 -3
  12. data/src/core/{lib/transport → call}/call_spine.cc +1 -1
  13. data/src/core/{lib/transport → call}/call_spine.h +68 -26
  14. data/src/core/{lib/transport → call}/call_state.cc +1 -1
  15. data/src/core/{lib/transport → call}/call_state.h +3 -3
  16. data/src/core/{lib/surface → call}/client_call.cc +9 -7
  17. data/src/core/{lib/surface → call}/client_call.h +4 -4
  18. data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
  19. data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
  20. data/src/core/{lib/transport → call}/interception_chain.h +7 -7
  21. data/src/core/{lib/transport → call}/message.cc +1 -1
  22. data/src/core/{lib/transport → call}/message.h +7 -3
  23. data/src/core/{lib/transport → call}/metadata.cc +2 -2
  24. data/src/core/{lib/transport → call}/metadata.h +4 -4
  25. data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
  26. data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
  27. data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
  28. data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
  29. data/src/core/{lib/transport → call}/metadata_info.h +4 -4
  30. data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
  31. data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
  32. data/src/core/call/request_buffer.h +3 -3
  33. data/src/core/call/security_context.cc +125 -0
  34. data/src/core/call/security_context.h +114 -0
  35. data/src/core/{lib/surface → call}/server_call.cc +3 -3
  36. data/src/core/{lib/surface → call}/server_call.h +5 -5
  37. data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
  38. data/src/core/{lib/channel → call}/status_util.cc +1 -1
  39. data/src/core/{lib/channel → call}/status_util.h +3 -3
  40. data/src/core/client_channel/client_channel.cc +24 -16
  41. data/src/core/client_channel/client_channel.h +4 -3
  42. data/src/core/client_channel/client_channel_filter.cc +10 -20
  43. data/src/core/client_channel/client_channel_filter.h +1 -1
  44. data/src/core/client_channel/client_channel_internal.h +1 -1
  45. data/src/core/client_channel/config_selector.h +2 -2
  46. data/src/core/client_channel/direct_channel.cc +2 -2
  47. data/src/core/client_channel/dynamic_filters.cc +0 -1
  48. data/src/core/client_channel/dynamic_filters.h +0 -1
  49. data/src/core/client_channel/lb_metadata.h +1 -1
  50. data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
  51. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  52. data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
  53. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
  54. data/src/core/client_channel/retry_interceptor.h +1 -1
  55. data/src/core/client_channel/retry_service_config.cc +1 -1
  56. data/src/core/client_channel/retry_service_config.h +1 -1
  57. data/src/core/client_channel/retry_throttle.cc +30 -34
  58. data/src/core/client_channel/retry_throttle.h +10 -2
  59. data/src/core/client_channel/subchannel.cc +7 -8
  60. data/src/core/client_channel/subchannel.h +1 -2
  61. data/src/core/client_channel/subchannel_stream_client.cc +14 -11
  62. data/src/core/client_channel/subchannel_stream_client.h +2 -2
  63. data/src/core/config/core_configuration.h +2 -2
  64. data/src/core/credentials/call/call_credentials.h +157 -0
  65. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
  66. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
  67. data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
  68. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  69. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
  70. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
  71. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
  72. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
  73. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
  74. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
  75. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
  76. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
  77. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
  78. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
  79. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
  80. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
  81. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
  82. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
  83. data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
  84. data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
  85. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
  86. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
  87. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
  88. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
  89. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
  90. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
  91. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
  92. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
  93. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
  94. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
  95. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
  96. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
  97. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
  98. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
  99. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
  100. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
  101. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
  102. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
  103. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
  104. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
  105. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
  106. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
  107. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
  108. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
  109. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
  110. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
  111. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
  112. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  113. data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
  114. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
  115. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
  116. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
  117. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
  118. data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
  119. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
  120. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
  121. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
  122. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
  123. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
  124. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
  125. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
  126. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
  127. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
  128. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
  129. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
  130. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
  131. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
  132. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
  133. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
  134. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
  135. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
  136. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
  137. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
  138. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
  139. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
  140. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
  141. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
  142. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
  143. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
  144. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
  145. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
  146. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
  147. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
  148. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
  149. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
  150. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
  151. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
  152. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
  153. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
  154. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
  155. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
  156. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
  157. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
  158. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
  159. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
  160. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
  161. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
  162. data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
  163. data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
  164. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
  165. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
  166. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  167. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +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 +1 -1
  172. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  173. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  174. data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
  175. data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
  176. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  177. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  178. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
  179. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
  180. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
  181. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
  182. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  183. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  184. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
  185. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
  186. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  187. data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
  188. data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
  189. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
  190. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
  191. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
  192. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
  193. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
  194. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
  195. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
  196. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  197. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
  198. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
  199. data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
  200. data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
  201. data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
  202. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
  203. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
  204. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
  205. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
  206. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
  209. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
  210. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
  212. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
  213. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
  214. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
  215. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
  216. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
  217. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
  218. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
  219. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
  220. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
  221. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
  222. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
  223. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
  224. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
  243. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
  244. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
  245. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
  246. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
  247. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
  248. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
  249. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
  250. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
  251. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
  252. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
  253. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
  254. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
  255. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
  256. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
  257. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
  258. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
  259. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
  260. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
  269. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
  277. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
  278. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
  279. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
  280. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
  281. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
  282. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
  283. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
  284. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
  285. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
  286. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
  287. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
  288. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
  289. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
  290. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
  291. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
  292. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
  294. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
  295. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
  296. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
  297. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
  298. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
  299. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
  300. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
  301. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
  302. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
  303. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
  304. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
  305. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
  306. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
  307. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
  308. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
  309. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
  310. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
  311. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
  312. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
  313. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
  314. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
  315. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
  316. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
  317. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
  318. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
  319. data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
  320. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
  321. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
  322. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
  323. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
  324. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
  325. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
  326. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
  327. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
  328. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
  329. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
  330. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
  331. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
  332. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
  333. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
  334. data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
  335. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
  336. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
  337. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
  338. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
  339. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
  340. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
  341. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
  342. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
  343. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
  344. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
  345. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
  346. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
  347. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
  348. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
  349. data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
  350. data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
  351. data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
  352. data/src/core/handshaker/handshaker.cc +0 -8
  353. data/src/core/handshaker/security/security_handshaker.cc +1 -1
  354. data/src/core/handshaker/security/security_handshaker.h +1 -1
  355. data/src/core/lib/channel/channel_args.h +49 -30
  356. data/src/core/lib/channel/channel_stack.h +1 -2
  357. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  358. data/src/core/lib/channel/connected_channel.cc +2 -2
  359. data/src/core/lib/channel/promise_based_filter.h +3 -3
  360. data/src/core/lib/debug/trace_flags.cc +2 -4
  361. data/src/core/lib/debug/trace_flags.h +1 -2
  362. data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
  363. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
  364. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  365. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  366. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  367. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
  368. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
  369. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
  370. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
  371. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  372. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
  373. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
  374. data/src/core/lib/event_engine/shim.cc +9 -16
  375. data/src/core/lib/event_engine/shim.h +11 -0
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
  377. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
  378. data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
  379. data/src/core/lib/event_engine/windows/win_socket.h +3 -0
  380. data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
  381. data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
  382. data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
  383. data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
  384. data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
  385. data/src/core/lib/experiments/experiments.cc +174 -21
  386. data/src/core/lib/experiments/experiments.h +70 -13
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
  389. data/src/core/lib/iomgr/error.cc +27 -43
  390. data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
  391. data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
  392. data/src/core/lib/iomgr/polling_entity.cc +2 -7
  393. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  394. data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
  395. data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
  396. data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
  397. data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
  398. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  399. data/src/core/lib/iomgr/tcp_posix.cc +58 -31
  400. data/src/core/lib/iomgr/tcp_posix.h +10 -2
  401. data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
  402. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
  403. data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
  404. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
  405. data/src/core/lib/promise/all_ok.h +31 -0
  406. data/src/core/lib/promise/loop.h +8 -5
  407. data/src/core/lib/promise/map.h +65 -2
  408. data/src/core/lib/promise/party.h +5 -1
  409. data/src/core/lib/promise/poll.h +22 -20
  410. data/src/core/lib/promise/promise.h +2 -2
  411. data/src/core/lib/promise/status_flag.h +23 -11
  412. data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
  413. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  414. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  415. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  416. data/src/core/lib/slice/slice.h +6 -0
  417. data/src/core/lib/surface/call.cc +20 -18
  418. data/src/core/lib/surface/call_utils.cc +3 -3
  419. data/src/core/lib/surface/call_utils.h +3 -3
  420. data/src/core/lib/surface/channel.h +2 -2
  421. data/src/core/lib/surface/channel_init.h +2 -2
  422. data/src/core/lib/surface/completion_queue.cc +77 -17
  423. data/src/core/lib/surface/filter_stack_call.cc +40 -27
  424. data/src/core/lib/surface/filter_stack_call.h +1 -1
  425. data/src/core/lib/surface/init.cc +2 -3
  426. data/src/core/lib/surface/lame_client.cc +1 -1
  427. data/src/core/lib/surface/legacy_channel.cc +27 -23
  428. data/src/core/lib/surface/legacy_channel.h +1 -1
  429. data/src/core/lib/surface/version.cc +2 -2
  430. data/src/core/lib/transport/error_utils.cc +65 -11
  431. data/src/core/lib/transport/error_utils.h +2 -2
  432. data/src/core/lib/transport/status_conversion.cc +16 -14
  433. data/src/core/lib/transport/status_conversion.h +5 -4
  434. data/src/core/lib/transport/transport.h +5 -5
  435. data/src/core/lib/transport/transport_op_string.cc +1 -1
  436. data/src/core/load_balancing/delegating_helper.h +1 -1
  437. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
  438. data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
  439. data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
  440. data/src/core/load_balancing/rls/rls.cc +31 -37
  441. data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
  442. data/src/core/load_balancing/xds/cds.cc +3 -10
  443. data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
  444. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  445. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
  446. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
  447. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
  448. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
  449. data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
  450. data/src/core/resolver/xds/xds_resolver.cc +2 -2
  451. data/src/core/server/server.cc +7 -4
  452. data/src/core/server/server.h +1 -1
  453. data/src/core/server/server_call_tracer_filter.cc +1 -1
  454. data/src/core/server/server_config_selector.h +1 -1
  455. data/src/core/server/server_config_selector_filter.cc +1 -1
  456. data/src/core/server/xds_server_config_fetcher.cc +5 -5
  457. data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
  458. data/src/core/telemetry/call_tracer.cc +2 -4
  459. data/src/core/telemetry/call_tracer.h +3 -3
  460. data/src/core/telemetry/metrics.cc +30 -12
  461. data/src/core/telemetry/metrics.h +15 -3
  462. data/src/core/telemetry/stats_data.cc +75 -2
  463. data/src/core/telemetry/stats_data.h +46 -4
  464. data/src/core/telemetry/tcp_tracer.h +90 -84
  465. data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
  466. data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
  467. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  468. data/src/core/tsi/ssl_transport_security.cc +1 -1
  469. data/src/core/util/check_class_size.h +48 -0
  470. data/src/core/util/gcp_metadata_query.cc +1 -1
  471. data/src/core/util/http_client/httpcli.cc +3 -3
  472. data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
  473. data/src/core/util/load_file.cc +26 -14
  474. data/src/core/util/status_helper.cc +86 -63
  475. data/src/core/util/status_helper.h +9 -26
  476. data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
  477. data/src/core/xds/grpc/certificate_provider_store.h +3 -3
  478. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  479. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  480. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
  481. data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
  482. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  483. data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
  484. data/src/core/xds/grpc/xds_client_grpc.h +4 -2
  485. data/src/core/xds/grpc/xds_cluster.h +3 -3
  486. data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
  487. data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
  488. data/src/core/xds/grpc/xds_http_filter.h +1 -1
  489. data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
  490. data/src/core/xds/grpc/xds_route_config.h +1 -1
  491. data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
  492. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  493. data/src/core/xds/grpc/xds_routing.h +1 -1
  494. data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
  495. data/src/core/xds/grpc/xds_server_grpc.h +23 -13
  496. data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
  497. data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
  498. data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
  499. data/src/core/xds/xds_client/lrs_client.cc +6 -5
  500. data/src/core/xds/xds_client/lrs_client.h +7 -7
  501. data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
  502. data/src/core/xds/xds_client/xds_client.cc +25 -23
  503. data/src/core/xds/xds_client/xds_client.h +3 -1
  504. data/src/core/xds/xds_client/xds_resource_type.h +1 -2
  505. data/src/core/xds/xds_client/xds_transport.h +1 -1
  506. data/src/ruby/ext/grpc/extconf.rb +1 -1
  507. data/src/ruby/lib/grpc/version.rb +1 -1
  508. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
  509. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
  510. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
  511. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
  512. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
  513. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
  514. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
  515. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
  516. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
  518. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
  519. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
  520. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
  521. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  522. data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
  523. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
  526. data/third_party/upb/upb/base/internal/log2.h +3 -1
  527. data/third_party/upb/upb/base/string_view.h +10 -0
  528. data/third_party/upb/upb/hash/common.c +5 -1
  529. data/third_party/upb/upb/json/decode.c +2 -2
  530. data/third_party/upb/upb/json/decode.h +0 -1
  531. data/third_party/upb/upb/mem/alloc.h +5 -0
  532. data/third_party/upb/upb/mem/arena.c +296 -142
  533. data/third_party/upb/upb/mem/arena.h +47 -11
  534. data/third_party/upb/upb/mem/arena.hpp +4 -20
  535. data/third_party/upb/upb/mem/internal/arena.h +4 -6
  536. data/third_party/upb/upb/message/accessors.h +41 -0
  537. data/third_party/upb/upb/message/compat.c +11 -14
  538. data/third_party/upb/upb/message/compat.h +4 -3
  539. data/third_party/upb/upb/message/copy.c +35 -30
  540. data/third_party/upb/upb/message/internal/accessors.h +139 -10
  541. data/third_party/upb/upb/message/internal/extension.c +28 -25
  542. data/third_party/upb/upb/message/internal/extension.h +21 -5
  543. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  544. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  545. data/third_party/upb/upb/message/internal/map.h +2 -3
  546. data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
  547. data/third_party/upb/upb/message/internal/message.c +48 -29
  548. data/third_party/upb/upb/message/internal/message.h +154 -24
  549. data/third_party/upb/upb/message/map_sorter.c +20 -8
  550. data/third_party/upb/upb/message/message.c +90 -38
  551. data/third_party/upb/upb/message/message.h +58 -2
  552. data/third_party/upb/upb/message/value.h +9 -0
  553. data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
  554. data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
  555. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  556. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  557. data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
  558. data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
  559. data/third_party/upb/upb/mini_table/message.c +21 -13
  560. data/third_party/upb/upb/port/atomic.h +134 -7
  561. data/third_party/upb/upb/port/def.inc +140 -38
  562. data/third_party/upb/upb/port/undef.inc +11 -1
  563. data/third_party/upb/upb/reflection/def.hpp +5 -1
  564. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  565. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
  566. data/third_party/upb/upb/reflection/file_def.c +12 -5
  567. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  568. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  569. data/third_party/upb/upb/reflection/message.c +19 -16
  570. data/third_party/upb/upb/reflection/message.h +3 -1
  571. data/third_party/upb/upb/text/encode.c +1 -13
  572. data/third_party/upb/upb/text/internal/encode.c +25 -6
  573. data/third_party/upb/upb/text/internal/encode.h +4 -0
  574. data/third_party/upb/upb/wire/decode.c +60 -45
  575. data/third_party/upb/upb/wire/decode.h +4 -2
  576. data/third_party/upb/upb/wire/encode.c +77 -42
  577. data/third_party/upb/upb/wire/encode.h +2 -0
  578. data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
  579. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  580. data/third_party/utf8_range/utf8_range.c +15 -275
  581. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  582. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  583. data/third_party/zlib/deflate.c +40 -15
  584. data/third_party/zlib/deflate.h +33 -2
  585. data/third_party/zlib/gzguts.h +2 -6
  586. data/third_party/zlib/inflate.c +1 -1
  587. data/third_party/zlib/inftrees.c +3 -3
  588. data/third_party/zlib/inftrees.h +2 -2
  589. data/third_party/zlib/trees.c +18 -4
  590. data/third_party/zlib/zconf.h +1 -9
  591. data/third_party/zlib/zlib.h +12 -12
  592. data/third_party/zlib/zutil.h +4 -25
  593. metadata +155 -145
  594. data/include/grpc/grpc_cronet.h +0 -37
  595. data/src/core/lib/transport/http2_errors.h +0 -43
  596. data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
  597. data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -35,6 +35,12 @@ const char* const additional_constraints_call_tracer_transport_fix = "{}";
35
35
  const char* const description_callv3_client_auth_filter =
36
36
  "Use the CallV3 client auth filter.";
37
37
  const char* const additional_constraints_callv3_client_auth_filter = "{}";
38
+ const char* const description_chaotic_good_framing_layer =
39
+ "Enable the chaotic good framing layer.";
40
+ const char* const additional_constraints_chaotic_good_framing_layer = "{}";
41
+ const char* const description_error_flatten =
42
+ "Flatten errors to ordinary absl::Status form.";
43
+ const char* const additional_constraints_error_flatten = "{}";
38
44
  const char* const description_event_engine_client =
39
45
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
40
46
  const char* const additional_constraints_event_engine_client = "{}";
@@ -46,6 +52,10 @@ const char* const description_event_engine_dns_non_client_channel =
46
52
  "channel.";
47
53
  const char* const additional_constraints_event_engine_dns_non_client_channel =
48
54
  "{}";
55
+ const char* const description_event_engine_fork =
56
+ "Enables event engine fork handling, including onfork events and file "
57
+ "descriptor generations";
58
+ const char* const additional_constraints_event_engine_fork = "{}";
49
59
  const char* const description_event_engine_listener =
50
60
  "Use EventEngine listeners instead of iomgr's grpc_tcp_server";
51
61
  const char* const additional_constraints_event_engine_listener = "{}";
@@ -55,6 +65,17 @@ const char* const additional_constraints_event_engine_callback_cq = "{}";
55
65
  const uint8_t required_experiments_event_engine_callback_cq[] = {
56
66
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
57
67
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
68
+ const char* const description_event_engine_for_all_other_endpoints =
69
+ "Use EventEngine endpoints for all call sites, including direct uses of "
70
+ "grpc_tcp_create.";
71
+ const char* const additional_constraints_event_engine_for_all_other_endpoints =
72
+ "{}";
73
+ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
74
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
75
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
76
+ static_cast<uint8_t>(
77
+ grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
78
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
58
79
  const char* const description_free_large_allocator =
59
80
  "If set, return all free bytes from a \042big\042 allocator";
60
81
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -77,9 +98,13 @@ const char* const additional_constraints_monitoring_experiment = "{}";
77
98
  const char* const description_multiping =
78
99
  "Allow more than one ping to be in flight at a time by default.";
79
100
  const char* const additional_constraints_multiping = "{}";
80
- const char* const description_pick_first_new =
81
- "New pick_first impl with memory reduction.";
82
- const char* const additional_constraints_pick_first_new = "{}";
101
+ const char* const description_pollset_alternative =
102
+ "Code outside iomgr that relies directly on pollsets will use non-pollset "
103
+ "alternatives when enabled.";
104
+ const char* const additional_constraints_pollset_alternative = "{}";
105
+ const uint8_t required_experiments_pollset_alternative[] = {
106
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
107
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
83
108
  const char* const description_posix_ee_skip_grpc_init =
84
109
  "Prevent the PosixEventEngine from calling grpc_init & grpc_shutdown on "
85
110
  "creation and destruction.";
@@ -105,10 +130,19 @@ const char* const description_rq_fast_reject =
105
130
  "Resource quota rejects requests immediately (before allocating the "
106
131
  "request structure) under very high memory pressure.";
107
132
  const char* const additional_constraints_rq_fast_reject = "{}";
133
+ const char* const description_rst_stream_fix =
134
+ "Fix for RST_STREAM - do not send for idle streams "
135
+ "(https://github.com/grpc/grpc/issues/38758)";
136
+ const char* const additional_constraints_rst_stream_fix = "{}";
108
137
  const char* const description_schedule_cancellation_over_write =
109
138
  "Allow cancellation op to be scheduled over a write";
110
139
  const char* const additional_constraints_schedule_cancellation_over_write =
111
140
  "{}";
141
+ const char* const description_server_global_callbacks_ownership =
142
+ "If set, server global callbacks ownership is fixed to not be owned by "
143
+ "gRPC.";
144
+ const char* const additional_constraints_server_global_callbacks_ownership =
145
+ "{}";
112
146
  const char* const description_server_listener =
113
147
  "If set, the new server listener classes are used.";
114
148
  const char* const additional_constraints_server_listener = "{}";
@@ -133,11 +167,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
133
167
  {"backoff_cap_initial_at_max", description_backoff_cap_initial_at_max,
134
168
  additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true},
135
169
  {"call_tracer_in_transport", description_call_tracer_in_transport,
136
- additional_constraints_call_tracer_in_transport, nullptr, 0, true, true},
170
+ additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
137
171
  {"call_tracer_transport_fix", description_call_tracer_transport_fix,
138
172
  additional_constraints_call_tracer_transport_fix, nullptr, 0, true, true},
139
173
  {"callv3_client_auth_filter", description_callv3_client_auth_filter,
140
174
  additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
175
+ {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
176
+ additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, true},
177
+ {"error_flatten", description_error_flatten,
178
+ additional_constraints_error_flatten, nullptr, 0, false, false},
141
179
  {"event_engine_client", description_event_engine_client,
142
180
  additional_constraints_event_engine_client, nullptr, 0, false, false},
143
181
  {"event_engine_dns", description_event_engine_dns,
@@ -146,11 +184,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
146
184
  description_event_engine_dns_non_client_channel,
147
185
  additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
148
186
  false, false},
187
+ {"event_engine_fork", description_event_engine_fork,
188
+ additional_constraints_event_engine_fork, nullptr, 0, false, false},
149
189
  {"event_engine_listener", description_event_engine_listener,
150
190
  additional_constraints_event_engine_listener, nullptr, 0, false, false},
151
191
  {"event_engine_callback_cq", description_event_engine_callback_cq,
152
192
  additional_constraints_event_engine_callback_cq,
153
193
  required_experiments_event_engine_callback_cq, 2, true, true},
194
+ {"event_engine_for_all_other_endpoints",
195
+ description_event_engine_for_all_other_endpoints,
196
+ additional_constraints_event_engine_for_all_other_endpoints,
197
+ required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
154
198
  {"free_large_allocator", description_free_large_allocator,
155
199
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
156
200
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
@@ -164,10 +208,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
164
208
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
165
209
  {"multiping", description_multiping, additional_constraints_multiping,
166
210
  nullptr, 0, false, true},
167
- {"pick_first_new", description_pick_first_new,
168
- additional_constraints_pick_first_new, nullptr, 0, true, true},
211
+ {"pollset_alternative", description_pollset_alternative,
212
+ additional_constraints_pollset_alternative,
213
+ required_experiments_pollset_alternative, 2, false, false},
169
214
  {"posix_ee_skip_grpc_init", description_posix_ee_skip_grpc_init,
170
- additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, false, true},
215
+ additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, true, true},
171
216
  {"promise_based_http2_client_transport",
172
217
  description_promise_based_http2_client_transport,
173
218
  additional_constraints_promise_based_http2_client_transport, nullptr, 0,
@@ -184,10 +229,16 @@ const ExperimentMetadata g_experiment_metadata[] = {
184
229
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
185
230
  {"rq_fast_reject", description_rq_fast_reject,
186
231
  additional_constraints_rq_fast_reject, nullptr, 0, false, true},
232
+ {"rst_stream_fix", description_rst_stream_fix,
233
+ additional_constraints_rst_stream_fix, nullptr, 0, true, true},
187
234
  {"schedule_cancellation_over_write",
188
235
  description_schedule_cancellation_over_write,
189
236
  additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
190
237
  true},
238
+ {"server_global_callbacks_ownership",
239
+ description_server_global_callbacks_ownership,
240
+ additional_constraints_server_global_callbacks_ownership, nullptr, 0,
241
+ false, true},
191
242
  {"server_listener", description_server_listener,
192
243
  additional_constraints_server_listener, nullptr, 0, true, true},
193
244
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
@@ -216,6 +267,12 @@ const char* const additional_constraints_call_tracer_transport_fix = "{}";
216
267
  const char* const description_callv3_client_auth_filter =
217
268
  "Use the CallV3 client auth filter.";
218
269
  const char* const additional_constraints_callv3_client_auth_filter = "{}";
270
+ const char* const description_chaotic_good_framing_layer =
271
+ "Enable the chaotic good framing layer.";
272
+ const char* const additional_constraints_chaotic_good_framing_layer = "{}";
273
+ const char* const description_error_flatten =
274
+ "Flatten errors to ordinary absl::Status form.";
275
+ const char* const additional_constraints_error_flatten = "{}";
219
276
  const char* const description_event_engine_client =
220
277
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
221
278
  const char* const additional_constraints_event_engine_client = "{}";
@@ -227,6 +284,10 @@ const char* const description_event_engine_dns_non_client_channel =
227
284
  "channel.";
228
285
  const char* const additional_constraints_event_engine_dns_non_client_channel =
229
286
  "{}";
287
+ const char* const description_event_engine_fork =
288
+ "Enables event engine fork handling, including onfork events and file "
289
+ "descriptor generations";
290
+ const char* const additional_constraints_event_engine_fork = "{}";
230
291
  const char* const description_event_engine_listener =
231
292
  "Use EventEngine listeners instead of iomgr's grpc_tcp_server";
232
293
  const char* const additional_constraints_event_engine_listener = "{}";
@@ -236,6 +297,17 @@ const char* const additional_constraints_event_engine_callback_cq = "{}";
236
297
  const uint8_t required_experiments_event_engine_callback_cq[] = {
237
298
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
238
299
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
300
+ const char* const description_event_engine_for_all_other_endpoints =
301
+ "Use EventEngine endpoints for all call sites, including direct uses of "
302
+ "grpc_tcp_create.";
303
+ const char* const additional_constraints_event_engine_for_all_other_endpoints =
304
+ "{}";
305
+ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
306
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
307
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
308
+ static_cast<uint8_t>(
309
+ grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
310
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
239
311
  const char* const description_free_large_allocator =
240
312
  "If set, return all free bytes from a \042big\042 allocator";
241
313
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -258,9 +330,13 @@ const char* const additional_constraints_monitoring_experiment = "{}";
258
330
  const char* const description_multiping =
259
331
  "Allow more than one ping to be in flight at a time by default.";
260
332
  const char* const additional_constraints_multiping = "{}";
261
- const char* const description_pick_first_new =
262
- "New pick_first impl with memory reduction.";
263
- const char* const additional_constraints_pick_first_new = "{}";
333
+ const char* const description_pollset_alternative =
334
+ "Code outside iomgr that relies directly on pollsets will use non-pollset "
335
+ "alternatives when enabled.";
336
+ const char* const additional_constraints_pollset_alternative = "{}";
337
+ const uint8_t required_experiments_pollset_alternative[] = {
338
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
339
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
264
340
  const char* const description_posix_ee_skip_grpc_init =
265
341
  "Prevent the PosixEventEngine from calling grpc_init & grpc_shutdown on "
266
342
  "creation and destruction.";
@@ -286,10 +362,19 @@ const char* const description_rq_fast_reject =
286
362
  "Resource quota rejects requests immediately (before allocating the "
287
363
  "request structure) under very high memory pressure.";
288
364
  const char* const additional_constraints_rq_fast_reject = "{}";
365
+ const char* const description_rst_stream_fix =
366
+ "Fix for RST_STREAM - do not send for idle streams "
367
+ "(https://github.com/grpc/grpc/issues/38758)";
368
+ const char* const additional_constraints_rst_stream_fix = "{}";
289
369
  const char* const description_schedule_cancellation_over_write =
290
370
  "Allow cancellation op to be scheduled over a write";
291
371
  const char* const additional_constraints_schedule_cancellation_over_write =
292
372
  "{}";
373
+ const char* const description_server_global_callbacks_ownership =
374
+ "If set, server global callbacks ownership is fixed to not be owned by "
375
+ "gRPC.";
376
+ const char* const additional_constraints_server_global_callbacks_ownership =
377
+ "{}";
293
378
  const char* const description_server_listener =
294
379
  "If set, the new server listener classes are used.";
295
380
  const char* const additional_constraints_server_listener = "{}";
@@ -314,11 +399,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
314
399
  {"backoff_cap_initial_at_max", description_backoff_cap_initial_at_max,
315
400
  additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true},
316
401
  {"call_tracer_in_transport", description_call_tracer_in_transport,
317
- additional_constraints_call_tracer_in_transport, nullptr, 0, true, true},
402
+ additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
318
403
  {"call_tracer_transport_fix", description_call_tracer_transport_fix,
319
404
  additional_constraints_call_tracer_transport_fix, nullptr, 0, true, true},
320
405
  {"callv3_client_auth_filter", description_callv3_client_auth_filter,
321
406
  additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
407
+ {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
408
+ additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, true},
409
+ {"error_flatten", description_error_flatten,
410
+ additional_constraints_error_flatten, nullptr, 0, false, false},
322
411
  {"event_engine_client", description_event_engine_client,
323
412
  additional_constraints_event_engine_client, nullptr, 0, true, false},
324
413
  {"event_engine_dns", description_event_engine_dns,
@@ -327,11 +416,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
327
416
  description_event_engine_dns_non_client_channel,
328
417
  additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
329
418
  false, false},
419
+ {"event_engine_fork", description_event_engine_fork,
420
+ additional_constraints_event_engine_fork, nullptr, 0, false, false},
330
421
  {"event_engine_listener", description_event_engine_listener,
331
422
  additional_constraints_event_engine_listener, nullptr, 0, true, false},
332
423
  {"event_engine_callback_cq", description_event_engine_callback_cq,
333
424
  additional_constraints_event_engine_callback_cq,
334
425
  required_experiments_event_engine_callback_cq, 2, true, true},
426
+ {"event_engine_for_all_other_endpoints",
427
+ description_event_engine_for_all_other_endpoints,
428
+ additional_constraints_event_engine_for_all_other_endpoints,
429
+ required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
335
430
  {"free_large_allocator", description_free_large_allocator,
336
431
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
337
432
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
@@ -345,10 +440,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
345
440
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
346
441
  {"multiping", description_multiping, additional_constraints_multiping,
347
442
  nullptr, 0, false, true},
348
- {"pick_first_new", description_pick_first_new,
349
- additional_constraints_pick_first_new, nullptr, 0, true, true},
443
+ {"pollset_alternative", description_pollset_alternative,
444
+ additional_constraints_pollset_alternative,
445
+ required_experiments_pollset_alternative, 2, false, false},
350
446
  {"posix_ee_skip_grpc_init", description_posix_ee_skip_grpc_init,
351
- additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, false, true},
447
+ additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, true, true},
352
448
  {"promise_based_http2_client_transport",
353
449
  description_promise_based_http2_client_transport,
354
450
  additional_constraints_promise_based_http2_client_transport, nullptr, 0,
@@ -365,10 +461,16 @@ const ExperimentMetadata g_experiment_metadata[] = {
365
461
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
366
462
  {"rq_fast_reject", description_rq_fast_reject,
367
463
  additional_constraints_rq_fast_reject, nullptr, 0, false, true},
464
+ {"rst_stream_fix", description_rst_stream_fix,
465
+ additional_constraints_rst_stream_fix, nullptr, 0, true, true},
368
466
  {"schedule_cancellation_over_write",
369
467
  description_schedule_cancellation_over_write,
370
468
  additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
371
469
  true},
470
+ {"server_global_callbacks_ownership",
471
+ description_server_global_callbacks_ownership,
472
+ additional_constraints_server_global_callbacks_ownership, nullptr, 0,
473
+ false, true},
372
474
  {"server_listener", description_server_listener,
373
475
  additional_constraints_server_listener, nullptr, 0, true, true},
374
476
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
@@ -397,6 +499,12 @@ const char* const additional_constraints_call_tracer_transport_fix = "{}";
397
499
  const char* const description_callv3_client_auth_filter =
398
500
  "Use the CallV3 client auth filter.";
399
501
  const char* const additional_constraints_callv3_client_auth_filter = "{}";
502
+ const char* const description_chaotic_good_framing_layer =
503
+ "Enable the chaotic good framing layer.";
504
+ const char* const additional_constraints_chaotic_good_framing_layer = "{}";
505
+ const char* const description_error_flatten =
506
+ "Flatten errors to ordinary absl::Status form.";
507
+ const char* const additional_constraints_error_flatten = "{}";
400
508
  const char* const description_event_engine_client =
401
509
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
402
510
  const char* const additional_constraints_event_engine_client = "{}";
@@ -408,6 +516,10 @@ const char* const description_event_engine_dns_non_client_channel =
408
516
  "channel.";
409
517
  const char* const additional_constraints_event_engine_dns_non_client_channel =
410
518
  "{}";
519
+ const char* const description_event_engine_fork =
520
+ "Enables event engine fork handling, including onfork events and file "
521
+ "descriptor generations";
522
+ const char* const additional_constraints_event_engine_fork = "{}";
411
523
  const char* const description_event_engine_listener =
412
524
  "Use EventEngine listeners instead of iomgr's grpc_tcp_server";
413
525
  const char* const additional_constraints_event_engine_listener = "{}";
@@ -417,6 +529,17 @@ const char* const additional_constraints_event_engine_callback_cq = "{}";
417
529
  const uint8_t required_experiments_event_engine_callback_cq[] = {
418
530
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
419
531
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
532
+ const char* const description_event_engine_for_all_other_endpoints =
533
+ "Use EventEngine endpoints for all call sites, including direct uses of "
534
+ "grpc_tcp_create.";
535
+ const char* const additional_constraints_event_engine_for_all_other_endpoints =
536
+ "{}";
537
+ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
538
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
539
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
540
+ static_cast<uint8_t>(
541
+ grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
542
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
420
543
  const char* const description_free_large_allocator =
421
544
  "If set, return all free bytes from a \042big\042 allocator";
422
545
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -439,9 +562,13 @@ const char* const additional_constraints_monitoring_experiment = "{}";
439
562
  const char* const description_multiping =
440
563
  "Allow more than one ping to be in flight at a time by default.";
441
564
  const char* const additional_constraints_multiping = "{}";
442
- const char* const description_pick_first_new =
443
- "New pick_first impl with memory reduction.";
444
- const char* const additional_constraints_pick_first_new = "{}";
565
+ const char* const description_pollset_alternative =
566
+ "Code outside iomgr that relies directly on pollsets will use non-pollset "
567
+ "alternatives when enabled.";
568
+ const char* const additional_constraints_pollset_alternative = "{}";
569
+ const uint8_t required_experiments_pollset_alternative[] = {
570
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
571
+ static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
445
572
  const char* const description_posix_ee_skip_grpc_init =
446
573
  "Prevent the PosixEventEngine from calling grpc_init & grpc_shutdown on "
447
574
  "creation and destruction.";
@@ -467,10 +594,19 @@ const char* const description_rq_fast_reject =
467
594
  "Resource quota rejects requests immediately (before allocating the "
468
595
  "request structure) under very high memory pressure.";
469
596
  const char* const additional_constraints_rq_fast_reject = "{}";
597
+ const char* const description_rst_stream_fix =
598
+ "Fix for RST_STREAM - do not send for idle streams "
599
+ "(https://github.com/grpc/grpc/issues/38758)";
600
+ const char* const additional_constraints_rst_stream_fix = "{}";
470
601
  const char* const description_schedule_cancellation_over_write =
471
602
  "Allow cancellation op to be scheduled over a write";
472
603
  const char* const additional_constraints_schedule_cancellation_over_write =
473
604
  "{}";
605
+ const char* const description_server_global_callbacks_ownership =
606
+ "If set, server global callbacks ownership is fixed to not be owned by "
607
+ "gRPC.";
608
+ const char* const additional_constraints_server_global_callbacks_ownership =
609
+ "{}";
474
610
  const char* const description_server_listener =
475
611
  "If set, the new server listener classes are used.";
476
612
  const char* const additional_constraints_server_listener = "{}";
@@ -495,11 +631,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
495
631
  {"backoff_cap_initial_at_max", description_backoff_cap_initial_at_max,
496
632
  additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true},
497
633
  {"call_tracer_in_transport", description_call_tracer_in_transport,
498
- additional_constraints_call_tracer_in_transport, nullptr, 0, true, true},
634
+ additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
499
635
  {"call_tracer_transport_fix", description_call_tracer_transport_fix,
500
636
  additional_constraints_call_tracer_transport_fix, nullptr, 0, true, true},
501
637
  {"callv3_client_auth_filter", description_callv3_client_auth_filter,
502
638
  additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
639
+ {"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
640
+ additional_constraints_chaotic_good_framing_layer, nullptr, 0, true, true},
641
+ {"error_flatten", description_error_flatten,
642
+ additional_constraints_error_flatten, nullptr, 0, false, false},
503
643
  {"event_engine_client", description_event_engine_client,
504
644
  additional_constraints_event_engine_client, nullptr, 0, true, false},
505
645
  {"event_engine_dns", description_event_engine_dns,
@@ -508,11 +648,17 @@ const ExperimentMetadata g_experiment_metadata[] = {
508
648
  description_event_engine_dns_non_client_channel,
509
649
  additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
510
650
  false, false},
651
+ {"event_engine_fork", description_event_engine_fork,
652
+ additional_constraints_event_engine_fork, nullptr, 0, false, false},
511
653
  {"event_engine_listener", description_event_engine_listener,
512
654
  additional_constraints_event_engine_listener, nullptr, 0, true, false},
513
655
  {"event_engine_callback_cq", description_event_engine_callback_cq,
514
656
  additional_constraints_event_engine_callback_cq,
515
657
  required_experiments_event_engine_callback_cq, 2, true, true},
658
+ {"event_engine_for_all_other_endpoints",
659
+ description_event_engine_for_all_other_endpoints,
660
+ additional_constraints_event_engine_for_all_other_endpoints,
661
+ required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
516
662
  {"free_large_allocator", description_free_large_allocator,
517
663
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
518
664
  {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch,
@@ -526,10 +672,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
526
672
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
527
673
  {"multiping", description_multiping, additional_constraints_multiping,
528
674
  nullptr, 0, false, true},
529
- {"pick_first_new", description_pick_first_new,
530
- additional_constraints_pick_first_new, nullptr, 0, true, true},
675
+ {"pollset_alternative", description_pollset_alternative,
676
+ additional_constraints_pollset_alternative,
677
+ required_experiments_pollset_alternative, 2, false, false},
531
678
  {"posix_ee_skip_grpc_init", description_posix_ee_skip_grpc_init,
532
- additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, false, true},
679
+ additional_constraints_posix_ee_skip_grpc_init, nullptr, 0, true, true},
533
680
  {"promise_based_http2_client_transport",
534
681
  description_promise_based_http2_client_transport,
535
682
  additional_constraints_promise_based_http2_client_transport, nullptr, 0,
@@ -546,10 +693,16 @@ const ExperimentMetadata g_experiment_metadata[] = {
546
693
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
547
694
  {"rq_fast_reject", description_rq_fast_reject,
548
695
  additional_constraints_rq_fast_reject, nullptr, 0, false, true},
696
+ {"rst_stream_fix", description_rst_stream_fix,
697
+ additional_constraints_rst_stream_fix, nullptr, 0, true, true},
549
698
  {"schedule_cancellation_over_write",
550
699
  description_schedule_cancellation_over_write,
551
700
  additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
552
701
  true},
702
+ {"server_global_callbacks_ownership",
703
+ description_server_global_callbacks_ownership,
704
+ additional_constraints_server_global_callbacks_ownership, nullptr, 0,
705
+ false, true},
553
706
  {"server_listener", description_server_listener,
554
707
  additional_constraints_server_listener, nullptr, 0, true, true},
555
708
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
@@ -64,12 +64,18 @@ inline bool IsCallTracerInTransportEnabled() { return true; }
64
64
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_TRANSPORT_FIX
65
65
  inline bool IsCallTracerTransportFixEnabled() { return true; }
66
66
  inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
67
+ #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
68
+ inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
69
+ inline bool IsErrorFlattenEnabled() { return false; }
67
70
  inline bool IsEventEngineClientEnabled() { return false; }
68
71
  inline bool IsEventEngineDnsEnabled() { return false; }
69
72
  inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; }
73
+ inline bool IsEventEngineForkEnabled() { return false; }
70
74
  inline bool IsEventEngineListenerEnabled() { return false; }
71
75
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CALLBACK_CQ
72
76
  inline bool IsEventEngineCallbackCqEnabled() { return true; }
77
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
78
+ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
73
79
  inline bool IsFreeLargeAllocatorEnabled() { return false; }
74
80
  inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
75
81
  inline bool IsLocalConnectorSecureEnabled() { return false; }
@@ -78,15 +84,18 @@ inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
78
84
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
79
85
  inline bool IsMonitoringExperimentEnabled() { return true; }
80
86
  inline bool IsMultipingEnabled() { return false; }
81
- #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
82
- inline bool IsPickFirstNewEnabled() { return true; }
83
- inline bool IsPosixEeSkipGrpcInitEnabled() { return false; }
87
+ inline bool IsPollsetAlternativeEnabled() { return false; }
88
+ #define GRPC_EXPERIMENT_IS_INCLUDED_POSIX_EE_SKIP_GRPC_INIT
89
+ inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
84
90
  inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
85
91
  inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
86
92
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
87
93
  inline bool IsRetryInCallv3Enabled() { return false; }
88
94
  inline bool IsRqFastRejectEnabled() { return false; }
95
+ #define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
96
+ inline bool IsRstStreamFixEnabled() { return true; }
89
97
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
98
+ inline bool IsServerGlobalCallbacksOwnershipEnabled() { return false; }
90
99
  #define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_LISTENER
91
100
  inline bool IsServerListenerEnabled() { return true; }
92
101
  inline bool IsTcpFrameSizeTuningEnabled() { return false; }
@@ -101,15 +110,21 @@ inline bool IsCallTracerInTransportEnabled() { return true; }
101
110
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_TRANSPORT_FIX
102
111
  inline bool IsCallTracerTransportFixEnabled() { return true; }
103
112
  inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
113
+ #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
114
+ inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
115
+ inline bool IsErrorFlattenEnabled() { return false; }
104
116
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT
105
117
  inline bool IsEventEngineClientEnabled() { return true; }
106
118
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
107
119
  inline bool IsEventEngineDnsEnabled() { return true; }
108
120
  inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; }
121
+ inline bool IsEventEngineForkEnabled() { return false; }
109
122
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
110
123
  inline bool IsEventEngineListenerEnabled() { return true; }
111
124
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CALLBACK_CQ
112
125
  inline bool IsEventEngineCallbackCqEnabled() { return true; }
126
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
127
+ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
113
128
  inline bool IsFreeLargeAllocatorEnabled() { return false; }
114
129
  inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
115
130
  inline bool IsLocalConnectorSecureEnabled() { return false; }
@@ -118,15 +133,18 @@ inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
118
133
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
119
134
  inline bool IsMonitoringExperimentEnabled() { return true; }
120
135
  inline bool IsMultipingEnabled() { return false; }
121
- #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
122
- inline bool IsPickFirstNewEnabled() { return true; }
123
- inline bool IsPosixEeSkipGrpcInitEnabled() { return false; }
136
+ inline bool IsPollsetAlternativeEnabled() { return false; }
137
+ #define GRPC_EXPERIMENT_IS_INCLUDED_POSIX_EE_SKIP_GRPC_INIT
138
+ inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
124
139
  inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
125
140
  inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
126
141
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
127
142
  inline bool IsRetryInCallv3Enabled() { return false; }
128
143
  inline bool IsRqFastRejectEnabled() { return false; }
144
+ #define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
145
+ inline bool IsRstStreamFixEnabled() { return true; }
129
146
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
147
+ inline bool IsServerGlobalCallbacksOwnershipEnabled() { return false; }
130
148
  #define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_LISTENER
131
149
  inline bool IsServerListenerEnabled() { return true; }
132
150
  inline bool IsTcpFrameSizeTuningEnabled() { return false; }
@@ -141,15 +159,21 @@ inline bool IsCallTracerInTransportEnabled() { return true; }
141
159
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_TRANSPORT_FIX
142
160
  inline bool IsCallTracerTransportFixEnabled() { return true; }
143
161
  inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
162
+ #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
163
+ inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
164
+ inline bool IsErrorFlattenEnabled() { return false; }
144
165
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT
145
166
  inline bool IsEventEngineClientEnabled() { return true; }
146
167
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
147
168
  inline bool IsEventEngineDnsEnabled() { return true; }
148
169
  inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; }
170
+ inline bool IsEventEngineForkEnabled() { return false; }
149
171
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
150
172
  inline bool IsEventEngineListenerEnabled() { return true; }
151
173
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CALLBACK_CQ
152
174
  inline bool IsEventEngineCallbackCqEnabled() { return true; }
175
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
176
+ inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
153
177
  inline bool IsFreeLargeAllocatorEnabled() { return false; }
154
178
  inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
155
179
  inline bool IsLocalConnectorSecureEnabled() { return false; }
@@ -158,15 +182,18 @@ inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
158
182
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
159
183
  inline bool IsMonitoringExperimentEnabled() { return true; }
160
184
  inline bool IsMultipingEnabled() { return false; }
161
- #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
162
- inline bool IsPickFirstNewEnabled() { return true; }
163
- inline bool IsPosixEeSkipGrpcInitEnabled() { return false; }
185
+ inline bool IsPollsetAlternativeEnabled() { return false; }
186
+ #define GRPC_EXPERIMENT_IS_INCLUDED_POSIX_EE_SKIP_GRPC_INIT
187
+ inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
164
188
  inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
165
189
  inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
166
190
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
167
191
  inline bool IsRetryInCallv3Enabled() { return false; }
168
192
  inline bool IsRqFastRejectEnabled() { return false; }
193
+ #define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
194
+ inline bool IsRstStreamFixEnabled() { return true; }
169
195
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
196
+ inline bool IsServerGlobalCallbacksOwnershipEnabled() { return false; }
170
197
  #define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_LISTENER
171
198
  inline bool IsServerListenerEnabled() { return true; }
172
199
  inline bool IsTcpFrameSizeTuningEnabled() { return false; }
@@ -180,25 +207,31 @@ enum ExperimentIds {
180
207
  kExperimentIdCallTracerInTransport,
181
208
  kExperimentIdCallTracerTransportFix,
182
209
  kExperimentIdCallv3ClientAuthFilter,
210
+ kExperimentIdChaoticGoodFramingLayer,
211
+ kExperimentIdErrorFlatten,
183
212
  kExperimentIdEventEngineClient,
184
213
  kExperimentIdEventEngineDns,
185
214
  kExperimentIdEventEngineDnsNonClientChannel,
215
+ kExperimentIdEventEngineFork,
186
216
  kExperimentIdEventEngineListener,
187
217
  kExperimentIdEventEngineCallbackCq,
218
+ kExperimentIdEventEngineForAllOtherEndpoints,
188
219
  kExperimentIdFreeLargeAllocator,
189
220
  kExperimentIdKeepAlivePingTimerBatch,
190
221
  kExperimentIdLocalConnectorSecure,
191
222
  kExperimentIdMaxPingsWoDataThrottle,
192
223
  kExperimentIdMonitoringExperiment,
193
224
  kExperimentIdMultiping,
194
- kExperimentIdPickFirstNew,
225
+ kExperimentIdPollsetAlternative,
195
226
  kExperimentIdPosixEeSkipGrpcInit,
196
227
  kExperimentIdPromiseBasedHttp2ClientTransport,
197
228
  kExperimentIdPromiseBasedHttp2ServerTransport,
198
229
  kExperimentIdPromiseBasedInprocTransport,
199
230
  kExperimentIdRetryInCallv3,
200
231
  kExperimentIdRqFastReject,
232
+ kExperimentIdRstStreamFix,
201
233
  kExperimentIdScheduleCancellationOverWrite,
234
+ kExperimentIdServerGlobalCallbacksOwnership,
202
235
  kExperimentIdServerListener,
203
236
  kExperimentIdTcpFrameSizeTuning,
204
237
  kExperimentIdTcpRcvLowat,
@@ -221,6 +254,14 @@ inline bool IsCallTracerTransportFixEnabled() {
221
254
  inline bool IsCallv3ClientAuthFilterEnabled() {
222
255
  return IsExperimentEnabled<kExperimentIdCallv3ClientAuthFilter>();
223
256
  }
257
+ #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
258
+ inline bool IsChaoticGoodFramingLayerEnabled() {
259
+ return IsExperimentEnabled<kExperimentIdChaoticGoodFramingLayer>();
260
+ }
261
+ #define GRPC_EXPERIMENT_IS_INCLUDED_ERROR_FLATTEN
262
+ inline bool IsErrorFlattenEnabled() {
263
+ return IsExperimentEnabled<kExperimentIdErrorFlatten>();
264
+ }
224
265
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT
225
266
  inline bool IsEventEngineClientEnabled() {
226
267
  return IsExperimentEnabled<kExperimentIdEventEngineClient>();
@@ -233,6 +274,10 @@ inline bool IsEventEngineDnsEnabled() {
233
274
  inline bool IsEventEngineDnsNonClientChannelEnabled() {
234
275
  return IsExperimentEnabled<kExperimentIdEventEngineDnsNonClientChannel>();
235
276
  }
277
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FORK
278
+ inline bool IsEventEngineForkEnabled() {
279
+ return IsExperimentEnabled<kExperimentIdEventEngineFork>();
280
+ }
236
281
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
237
282
  inline bool IsEventEngineListenerEnabled() {
238
283
  return IsExperimentEnabled<kExperimentIdEventEngineListener>();
@@ -241,6 +286,10 @@ inline bool IsEventEngineListenerEnabled() {
241
286
  inline bool IsEventEngineCallbackCqEnabled() {
242
287
  return IsExperimentEnabled<kExperimentIdEventEngineCallbackCq>();
243
288
  }
289
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
290
+ inline bool IsEventEngineForAllOtherEndpointsEnabled() {
291
+ return IsExperimentEnabled<kExperimentIdEventEngineForAllOtherEndpoints>();
292
+ }
244
293
  #define GRPC_EXPERIMENT_IS_INCLUDED_FREE_LARGE_ALLOCATOR
245
294
  inline bool IsFreeLargeAllocatorEnabled() {
246
295
  return IsExperimentEnabled<kExperimentIdFreeLargeAllocator>();
@@ -265,9 +314,9 @@ inline bool IsMonitoringExperimentEnabled() {
265
314
  inline bool IsMultipingEnabled() {
266
315
  return IsExperimentEnabled<kExperimentIdMultiping>();
267
316
  }
268
- #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
269
- inline bool IsPickFirstNewEnabled() {
270
- return IsExperimentEnabled<kExperimentIdPickFirstNew>();
317
+ #define GRPC_EXPERIMENT_IS_INCLUDED_POLLSET_ALTERNATIVE
318
+ inline bool IsPollsetAlternativeEnabled() {
319
+ return IsExperimentEnabled<kExperimentIdPollsetAlternative>();
271
320
  }
272
321
  #define GRPC_EXPERIMENT_IS_INCLUDED_POSIX_EE_SKIP_GRPC_INIT
273
322
  inline bool IsPosixEeSkipGrpcInitEnabled() {
@@ -293,10 +342,18 @@ inline bool IsRetryInCallv3Enabled() {
293
342
  inline bool IsRqFastRejectEnabled() {
294
343
  return IsExperimentEnabled<kExperimentIdRqFastReject>();
295
344
  }
345
+ #define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
346
+ inline bool IsRstStreamFixEnabled() {
347
+ return IsExperimentEnabled<kExperimentIdRstStreamFix>();
348
+ }
296
349
  #define GRPC_EXPERIMENT_IS_INCLUDED_SCHEDULE_CANCELLATION_OVER_WRITE
297
350
  inline bool IsScheduleCancellationOverWriteEnabled() {
298
351
  return IsExperimentEnabled<kExperimentIdScheduleCancellationOverWrite>();
299
352
  }
353
+ #define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
354
+ inline bool IsServerGlobalCallbacksOwnershipEnabled() {
355
+ return IsExperimentEnabled<kExperimentIdServerGlobalCallbacksOwnership>();
356
+ }
300
357
  #define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_LISTENER
301
358
  inline bool IsServerListenerEnabled() {
302
359
  return IsExperimentEnabled<kExperimentIdServerListener>();