grpc 1.83.1 → 1.84.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 (322) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +21 -17
  3. data/include/grpc/credentials.h +10 -0
  4. data/include/grpc/grpc_security_constants.h +2 -0
  5. data/include/grpc/impl/channel_arg_names.h +9 -0
  6. data/src/core/call/call_filters.h +4 -2
  7. data/src/core/call/client_call.cc +20 -8
  8. data/src/core/call/client_call.h +4 -0
  9. data/src/core/call/interception_chain.cc +2 -0
  10. data/src/core/call/interception_chain.h +14 -1
  11. data/src/core/call/metadata.cc +1 -3
  12. data/src/core/call/metadata_batch.h +13 -5
  13. data/src/core/call/server_call.cc +31 -14
  14. data/src/core/call/server_call.h +4 -0
  15. data/src/core/channelz/text_encode.cc +9 -4
  16. data/src/core/channelz/v2tov1/convert.cc +2 -2
  17. data/src/core/client_channel/backup_poller.cc +1 -2
  18. data/src/core/client_channel/client_channel.cc +6 -33
  19. data/src/core/client_channel/client_channel_filter.cc +22 -55
  20. data/src/core/client_channel/client_channel_filter.h +2 -2
  21. data/src/core/client_channel/client_channel_service_config.cc +3 -19
  22. data/src/core/client_channel/direct_channel.cc +7 -1
  23. data/src/core/client_channel/direct_channel.h +2 -2
  24. data/src/core/client_channel/load_balanced_call_destination.cc +5 -3
  25. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -12
  26. data/src/core/client_channel/subchannel.cc +310 -1058
  27. data/src/core/client_channel/subchannel.h +44 -329
  28. data/src/core/client_channel/subchannel_metrics.cc +48 -0
  29. data/src/core/client_channel/subchannel_metrics.h +60 -0
  30. data/src/core/credentials/call/external/file_external_account_credentials.cc +1 -1
  31. data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -3
  32. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +8 -24
  33. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +3 -6
  34. data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.cc +525 -0
  35. data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.h +138 -0
  36. data/src/core/credentials/call/json_util.h +1 -0
  37. data/src/core/credentials/call/jwt/json_token.cc +10 -2
  38. data/src/core/credentials/call/jwt/jwt_verifier.cc +15 -1
  39. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +1 -1
  40. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +42 -79
  41. data/src/core/credentials/call/oauth2/oauth2_credentials.h +2 -5
  42. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +52 -31
  43. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +21 -8
  44. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -4
  45. data/src/core/credentials/transport/ssl/ssl_credentials.cc +59 -72
  46. data/src/core/credentials/transport/ssl/ssl_credentials.h +9 -8
  47. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +12 -6
  48. data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -4
  49. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -18
  50. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +9 -6
  51. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +45 -56
  52. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -4
  53. data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +26 -0
  54. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +1 -1
  55. data/src/core/credentials/transport/tls/load_system_roots.h +2 -6
  56. data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +2 -4
  57. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +13 -15
  58. data/src/core/credentials/transport/tls/load_system_roots_supported.h +3 -2
  59. data/src/core/credentials/transport/tls/load_system_roots_windows.cc +5 -8
  60. data/src/core/credentials/transport/tls/spiffe_utils.cc +1 -1
  61. data/src/core/credentials/transport/tls/ssl_utils.cc +39 -28
  62. data/src/core/credentials/transport/tls/ssl_utils.h +12 -49
  63. data/src/core/credentials/transport/tls/tls_security_connector.cc +48 -33
  64. data/src/core/credentials/transport/tls/tls_security_connector.h +31 -10
  65. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +15 -11
  66. data/src/core/ext/filters/http/http_filters_plugin.cc +20 -9
  67. data/src/core/ext/filters/rbac/rbac_filter.cc +43 -21
  68. data/src/core/ext/filters/rbac/rbac_filter.h +21 -3
  69. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  70. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  71. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -20
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +32 -67
  73. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -0
  74. data/src/core/ext/transport/chttp2/transport/flow_control.h +78 -4
  75. data/src/core/ext/transport/chttp2/transport/frame.h +2 -0
  76. data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -4
  77. data/src/core/ext/transport/chttp2/transport/goaway.h +7 -0
  78. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +5 -3
  79. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -1
  80. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +141 -130
  81. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +22 -22
  82. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +402 -269
  83. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +80 -49
  84. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +1 -2
  85. data/src/core/ext/transport/chttp2/transport/http2_status.h +38 -37
  86. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +178 -5
  87. data/src/core/ext/transport/chttp2/transport/http2_transport.h +345 -5
  88. data/src/core/ext/transport/chttp2/transport/parsing.cc +5 -5
  89. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +3 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_promise.h +25 -5
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +3 -4
  92. data/src/core/ext/transport/chttp2/transport/read_context.h +30 -3
  93. data/src/core/ext/transport/chttp2/transport/stream.h +65 -23
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +0 -3
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -5
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +4 -17
  97. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb.h +1912 -0
  98. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.c +300 -0
  99. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.h +37 -0
  100. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb.h +187 -0
  101. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.c +64 -0
  102. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.h +31 -0
  103. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb.h +2362 -0
  104. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.c +556 -0
  105. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.h +47 -0
  106. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb.h +5 -5
  107. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.c +3 -3
  108. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.h +5 -5
  109. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.c +453 -0
  110. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.h +67 -0
  111. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.c +142 -0
  112. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.h +37 -0
  113. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +715 -0
  114. data/src/core/ext/upbdefs-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upbdefs.h +44 -44
  115. data/src/core/filter/auth/server_auth_filter.cc +2 -3
  116. data/src/core/filter/composite/composite_filter.cc +45 -33
  117. data/src/core/filter/composite/composite_filter.h +5 -4
  118. data/src/core/filter/ext_proc/ext_proc_filter.cc +224 -0
  119. data/src/core/filter/ext_proc/ext_proc_filter.h +155 -0
  120. data/src/core/filter/ext_proc/ext_proc_messages.cc +701 -0
  121. data/src/core/filter/ext_proc/ext_proc_messages.h +297 -0
  122. data/src/core/filter/filter_args.h +13 -2
  123. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +30 -3
  124. data/src/core/handshaker/security/security_handshaker.cc +9 -6
  125. data/src/core/lib/channel/channel_stack.cc +3 -0
  126. data/src/core/lib/channel/channel_stack.h +2 -0
  127. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -2
  128. data/src/core/lib/channel/promise_based_filter.cc +132 -20
  129. data/src/core/lib/channel/promise_based_filter.h +42 -12
  130. data/src/core/lib/compression/compression_internal.cc +4 -5
  131. data/src/core/lib/debug/trace_flags.cc +8 -0
  132. data/src/core/lib/debug/trace_flags.h +3 -0
  133. data/src/core/lib/event_engine/ares_resolver.cc +54 -50
  134. data/src/core/lib/event_engine/ares_resolver.h +3 -2
  135. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +3 -3
  136. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -10
  137. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +74 -33
  138. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +4 -4
  139. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -2
  140. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -0
  141. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
  142. data/src/core/lib/event_engine/windows/windows_endpoint.cc +1 -3
  143. data/src/core/lib/experiments/experiments.cc +60 -96
  144. data/src/core/lib/experiments/experiments.h +34 -50
  145. data/src/core/lib/iomgr/cfstream_handle.cc +2 -6
  146. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -10
  147. data/src/core/lib/iomgr/error.cc +2 -6
  148. data/src/core/lib/iomgr/error_cfstream.cc +1 -1
  149. data/src/core/lib/iomgr/ev_poll_posix.cc +5 -9
  150. data/src/core/lib/iomgr/event_engine_shims/closure.cc +1 -1
  151. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -2
  152. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
  153. data/src/core/lib/iomgr/iomgr_posix.cc +0 -4
  154. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -4
  155. data/src/core/lib/iomgr/iomgr_windows.cc +0 -4
  156. data/src/core/lib/iomgr/socket_factory_posix.h +1 -1
  157. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
  158. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  159. data/src/core/lib/iomgr/systemd_utils.cc +0 -1
  160. data/src/core/lib/iomgr/tcp_client.h +1 -1
  161. data/src/core/lib/iomgr/tcp_posix.cc +23 -15
  162. data/src/core/lib/iomgr/tcp_server.h +1 -1
  163. data/src/core/lib/iomgr/tcp_server_posix.cc +2 -3
  164. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
  165. data/src/core/lib/iomgr/tcp_server_windows.cc +0 -1
  166. data/src/core/lib/iomgr/tcp_windows.cc +5 -10
  167. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
  168. data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
  169. data/src/core/lib/iomgr/vsock.h +3 -1
  170. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  171. data/src/core/lib/security/authorization/rbac_policy.cc +139 -56
  172. data/src/core/lib/security/authorization/rbac_policy.h +21 -3
  173. data/src/core/lib/surface/call.cc +3 -9
  174. data/src/core/lib/surface/call_utils.h +113 -0
  175. data/src/core/lib/surface/channel_create.cc +1 -1
  176. data/src/core/lib/surface/channel_create.h +0 -2
  177. data/src/core/lib/surface/channel_init.cc +77 -38
  178. data/src/core/lib/surface/channel_init.h +30 -16
  179. data/src/core/lib/surface/filter_stack_call.cc +5 -10
  180. data/src/core/lib/surface/init.cc +13 -27
  181. data/src/core/lib/surface/version.cc +1 -1
  182. data/src/core/lib/transport/error_utils.cc +0 -27
  183. data/src/core/lib/transport/error_utils.h +0 -16
  184. data/src/core/lib/transport/transport.h +7 -5
  185. data/src/core/load_balancing/pick_first/pick_first.cc +2 -0
  186. data/src/core/load_balancing/rls/rls.cc +28 -11
  187. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -42
  188. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +0 -2
  189. data/src/core/load_balancing/xds/cds.cc +3 -1
  190. data/src/core/load_balancing/xds/xds_cluster_impl.cc +0 -1
  191. data/src/core/mitigation_engine/mitigation.h +14 -5
  192. data/src/core/mitigation_engine/mitigation_engine.h +7 -3
  193. data/src/core/mitigation_engine/mitigation_provider.h +2 -1
  194. data/src/core/plugin_registry/grpc_plugin_registry.cc +39 -8
  195. data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.cc → dns_resolver.cc} +42 -41
  196. data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.h → dns_resolver.h} +8 -5
  197. data/src/core/resolver/dns/{event_engine/service_config_helper.cc → service_config_helper.cc} +1 -1
  198. data/src/core/resolver/dns/{event_engine/service_config_helper.h → service_config_helper.h} +3 -3
  199. data/src/core/resolver/endpoint_addresses.h +3 -0
  200. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +2 -1
  201. data/src/core/resolver/xds/xds_resolver.cc +35 -9
  202. data/src/core/server/server.cc +2 -6
  203. data/src/core/server/server_config_selector.h +18 -3
  204. data/src/core/server/server_config_selector_filter.cc +178 -91
  205. data/src/core/server/server_config_selector_filter.h +58 -3
  206. data/src/core/server/xds_server_config_fetcher.cc +196 -129
  207. data/src/core/server/xds_server_config_fetcher.h +49 -0
  208. data/src/core/server/xds_server_config_fetcher_legacy.cc +41 -37
  209. data/src/core/telemetry/histogram.h +94 -14
  210. data/src/core/telemetry/instrument.cc +179 -74
  211. data/src/core/telemetry/instrument.h +78 -30
  212. data/src/core/telemetry/metrics.h +5 -0
  213. data/src/core/{resolver/dns/dns_resolver_plugin.h → telemetry/telemetry_label.h} +12 -8
  214. data/src/core/tsi/alts/crypt/aes_gcm.cc +10 -13
  215. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
  216. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +3 -1
  217. data/src/core/tsi/ssl_telemetry_utils.cc +216 -259
  218. data/src/core/tsi/ssl_telemetry_utils.h +12 -2
  219. data/src/core/tsi/ssl_transport_security.cc +238 -80
  220. data/src/core/tsi/ssl_transport_security.h +63 -33
  221. data/src/core/tsi/tls_telemetry.cc +31 -0
  222. data/src/core/tsi/tls_telemetry.h +47 -0
  223. data/src/core/tsi/transport_security.cc +2 -2
  224. data/src/core/tsi/transport_security.h +1 -1
  225. data/src/core/tsi/transport_security_interface.h +1 -1
  226. data/src/core/{resolver/dns/native/dns_resolver.h → util/address_sorting_init.cc} +21 -8
  227. data/src/core/{resolver/dns/c_ares/grpc_ares_wrapper_posix.cc → util/address_sorting_init.h} +7 -8
  228. data/src/core/util/http_client/httpcli.cc +16 -53
  229. data/src/core/util/http_client/httpcli.h +0 -7
  230. data/src/core/util/http_client/httpcli_security_connector.cc +13 -8
  231. data/src/core/util/linux/cpu.cc +1 -1
  232. data/src/core/util/load_file.cc +3 -9
  233. data/src/core/util/load_file.h +3 -4
  234. data/src/core/util/matchers.h +8 -0
  235. data/src/core/util/posix/cpu.cc +1 -1
  236. data/src/core/util/status_helper.cc +0 -20
  237. data/src/core/util/status_helper.h +3 -14
  238. data/src/core/xds/grpc/xds_audit_logger_registry.cc +51 -31
  239. data/src/core/xds/grpc/xds_audit_logger_registry.h +17 -3
  240. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -10
  241. data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -6
  242. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +488 -0
  243. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.h +97 -0
  244. data/src/core/xds/grpc/xds_certificate_provider.cc +7 -7
  245. data/src/core/xds/grpc/xds_client_grpc.cc +4 -8
  246. data/src/core/xds/grpc/xds_client_grpc.h +0 -4
  247. data/src/core/xds/grpc/xds_cluster.h +1 -0
  248. data/src/core/xds/grpc/xds_cluster_parser.cc +1 -5
  249. data/src/core/xds/grpc/xds_cluster_parser.h +0 -2
  250. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -2
  251. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +0 -2
  252. data/src/core/xds/grpc/xds_common_types.cc +0 -91
  253. data/src/core/xds/grpc/xds_common_types.h +1 -47
  254. data/src/core/xds/grpc/xds_common_types_parser.cc +84 -378
  255. data/src/core/xds/grpc/xds_common_types_parser.h +9 -11
  256. data/src/core/xds/grpc/xds_endpoint_parser.cc +0 -2
  257. data/src/core/xds/grpc/xds_grpc_service_parser.cc +177 -0
  258. data/src/core/{resolver/dns/c_ares/dns_resolver_ares.h → xds/grpc/xds_grpc_service_parser.h} +14 -9
  259. data/src/core/xds/grpc/xds_http_composite_filter.cc +26 -21
  260. data/src/core/xds/grpc/xds_http_composite_filter.h +4 -3
  261. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +418 -0
  262. data/src/core/xds/grpc/xds_http_ext_proc_filter.h +89 -0
  263. data/src/core/xds/grpc/xds_http_fault_filter.cc +9 -12
  264. data/src/core/xds/grpc/xds_http_fault_filter.h +1 -4
  265. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  266. data/src/core/xds/grpc/xds_http_filter.h +6 -5
  267. data/src/core/xds/grpc/xds_http_filter_registry.cc +10 -127
  268. data/src/core/xds/grpc/xds_http_filter_registry.h +7 -59
  269. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +13 -14
  270. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -2
  271. data/src/core/xds/grpc/xds_http_rbac_filter.cc +403 -25
  272. data/src/core/xds/grpc/xds_http_rbac_filter.h +1 -3
  273. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +8 -13
  274. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +1 -4
  275. data/src/core/xds/grpc/xds_lb_policy_registry.cc +0 -292
  276. data/src/core/xds/grpc/xds_lb_policy_registry.h +7 -3
  277. data/src/core/xds/grpc/xds_listener.cc +2 -0
  278. data/src/core/xds/grpc/xds_listener.h +5 -0
  279. data/src/core/xds/grpc/xds_listener_parser.cc +16 -11
  280. data/src/core/xds/grpc/xds_matcher_parse.h +3 -1
  281. data/src/core/xds/grpc/xds_metadata_parser.cc +6 -1
  282. data/src/core/xds/grpc/xds_metadata_parser.h +2 -0
  283. data/src/core/xds/grpc/xds_route_config.cc +2 -0
  284. data/src/core/xds/grpc/xds_route_config.h +3 -1
  285. data/src/core/xds/grpc/xds_route_config_parser.cc +13 -79
  286. data/src/core/xds/grpc/xds_route_config_parser.h +0 -3
  287. data/src/core/xds/grpc/xds_routing.cc +116 -69
  288. data/src/core/xds/grpc/xds_routing.h +19 -8
  289. data/src/core/xds/grpc/xds_tls_context.cc +117 -0
  290. data/src/core/xds/grpc/xds_tls_context.h +76 -0
  291. data/src/core/xds/grpc/xds_tls_context_parser.cc +275 -0
  292. data/src/core/xds/grpc/xds_tls_context_parser.h +35 -0
  293. data/src/core/xds/grpc/xds_transport_grpc.cc +41 -38
  294. data/src/core/xds/grpc/xds_transport_grpc.h +4 -2
  295. data/src/ruby/ext/grpc/rb_call.c +26 -15
  296. data/src/ruby/ext/grpc/rb_completion_queue.c +6 -5
  297. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  298. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  299. data/src/ruby/lib/grpc/version.rb +1 -1
  300. data/src/ruby/pb/test/client.rb +5 -4
  301. data/src/ruby/spec/call_spec.rb +14 -0
  302. data/src/ruby/spec/generic/server_interceptors_spec.rb +3 -6
  303. metadata +50 -35
  304. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +0 -716
  305. data/src/core/lib/iomgr/resolve_address.cc +0 -59
  306. data/src/core/lib/iomgr/resolve_address.h +0 -125
  307. data/src/core/lib/iomgr/resolve_address_impl.h +0 -58
  308. data/src/core/lib/iomgr/resolve_address_posix.cc +0 -184
  309. data/src/core/lib/iomgr/resolve_address_posix.h +0 -78
  310. data/src/core/lib/iomgr/resolve_address_windows.cc +0 -169
  311. data/src/core/lib/iomgr/resolve_address_windows.h +0 -76
  312. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +0 -781
  313. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +0 -93
  314. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -203
  315. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +0 -838
  316. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +0 -1237
  317. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -130
  318. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +0 -35
  319. data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -64
  320. data/src/core/resolver/dns/native/dns_resolver.cc +0 -173
  321. data/src/core/util/json/json_util.cc +0 -101
  322. data/src/core/util/json/json_util.h +0 -163
@@ -57,14 +57,6 @@ const char* const additional_constraints_custom_frame_check = "{}";
57
57
  const char* const description_event_engine_client =
58
58
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
59
59
  const char* const additional_constraints_event_engine_client = "{}";
60
- const char* const description_event_engine_dns =
61
- "If set, use EventEngine DNSResolver for client channel resolution";
62
- const char* const additional_constraints_event_engine_dns = "{}";
63
- const char* const description_event_engine_dns_non_client_channel =
64
- "If set, use EventEngine DNSResolver in other places besides client "
65
- "channel.";
66
- const char* const additional_constraints_event_engine_dns_non_client_channel =
67
- "{}";
68
60
  const char* const description_event_engine_fork =
69
61
  "Enables event engine fork handling, including onfork events and file "
70
62
  "descriptor generations";
@@ -85,14 +77,15 @@ const char* const additional_constraints_event_engine_for_all_other_endpoints =
85
77
  "{}";
86
78
  const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
87
79
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
88
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
89
- static_cast<uint8_t>(
90
- grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
91
80
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
92
81
  const char* const description_fail_recv_metadata_on_deadline_exceeded =
93
82
  "Fail recv initial metadata when the deadline is exceeded.";
94
83
  const char* const
95
84
  additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
85
+ const char* const description_fix_v3_filter_stack_server_side_ordering =
86
+ "If set, reverse the server side ordering for v3 filter stack.";
87
+ const char* const
88
+ additional_constraints_fix_v3_filter_stack_server_side_ordering = "{}";
96
89
  const char* const description_free_large_allocator =
97
90
  "If set, return all free bytes from a \042big\042 allocator";
98
91
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -134,9 +127,6 @@ const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
134
127
  const char* const description_monitoring_experiment =
135
128
  "Placeholder experiment to prove/disprove our monitoring is working";
136
129
  const char* const additional_constraints_monitoring_experiment = "{}";
137
- const char* const description_multiping =
138
- "Allow more than one ping to be in flight at a time by default.";
139
- const char* const additional_constraints_multiping = "{}";
140
130
  const char* const description_optimization_01 = "Optimization";
141
131
  const char* const additional_constraints_optimization_01 = "{}";
142
132
  const char* const description_optimization_02 = "Optimization";
@@ -205,6 +195,10 @@ const char* const description_promise_filter_send_cancel_metadata =
205
195
  "promise-based filters upon stream cancellation.";
206
196
  const char* const additional_constraints_promise_filter_send_cancel_metadata =
207
197
  "{}";
198
+ const char* const description_recv_message_filter_bypass_fix =
199
+ "Receive message bypass happen if trailing metadata is received while "
200
+ "Server Initial Metadata is getting processed.";
201
+ const char* const additional_constraints_recv_message_filter_bypass_fix = "{}";
208
202
  const char* const description_retry_in_callv3 = "Support retries with call-v3";
209
203
  const char* const additional_constraints_retry_in_callv3 = "{}";
210
204
  const char* const description_return_preexisting_errors =
@@ -237,9 +231,6 @@ const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
237
231
  const char* const description_skip_clear_peer_on_cancellation =
238
232
  "If set, skips clearing of peer string on call cancellation.";
239
233
  const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
240
- const char* const description_subchannel_connection_scaling =
241
- "Subchannel connection scaling support.";
242
- const char* const additional_constraints_subchannel_connection_scaling = "{}";
243
234
  const char* const description_tcp_frame_size_tuning =
244
235
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
245
236
  "would not indicate completion of a read operation until a specified "
@@ -310,12 +301,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
310
301
  additional_constraints_custom_frame_check, nullptr, 0, true, false},
311
302
  {"event_engine_client", description_event_engine_client,
312
303
  additional_constraints_event_engine_client, nullptr, 0, true, false},
313
- {"event_engine_dns", description_event_engine_dns,
314
- additional_constraints_event_engine_dns, nullptr, 0, true, false},
315
- {"event_engine_dns_non_client_channel",
316
- description_event_engine_dns_non_client_channel,
317
- additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
318
- true, false},
319
304
  {"event_engine_fork", description_event_engine_fork,
320
305
  additional_constraints_event_engine_fork, nullptr, 0, true, false},
321
306
  {"event_engine_listener", description_event_engine_listener,
@@ -326,11 +311,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
326
311
  {"event_engine_for_all_other_endpoints",
327
312
  description_event_engine_for_all_other_endpoints,
328
313
  additional_constraints_event_engine_for_all_other_endpoints,
329
- required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
314
+ required_experiments_event_engine_for_all_other_endpoints, 2, true, false},
330
315
  {"fail_recv_metadata_on_deadline_exceeded",
331
316
  description_fail_recv_metadata_on_deadline_exceeded,
332
317
  additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
333
318
  false, false},
319
+ {"fix_v3_filter_stack_server_side_ordering",
320
+ description_fix_v3_filter_stack_server_side_ordering,
321
+ additional_constraints_fix_v3_filter_stack_server_side_ordering, nullptr,
322
+ 0, false, true},
334
323
  {"free_large_allocator", description_free_large_allocator,
335
324
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
336
325
  {"fuse_filters", description_fuse_filters,
@@ -363,8 +352,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
363
352
  true},
364
353
  {"monitoring_experiment", description_monitoring_experiment,
365
354
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
366
- {"multiping", description_multiping, additional_constraints_multiping,
367
- nullptr, 0, false, true},
368
355
  {"optimization_01", description_optimization_01,
369
356
  additional_constraints_optimization_01, nullptr, 0, true, true},
370
357
  {"optimization_02", description_optimization_02,
@@ -413,7 +400,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
413
400
  {"promise_filter_send_cancel_metadata",
414
401
  description_promise_filter_send_cancel_metadata,
415
402
  additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
416
- false, true},
403
+ true, true},
404
+ {"recv_message_filter_bypass_fix",
405
+ description_recv_message_filter_bypass_fix,
406
+ additional_constraints_recv_message_filter_bypass_fix, nullptr, 0, false,
407
+ true},
417
408
  {"retry_in_callv3", description_retry_in_callv3,
418
409
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
419
410
  {"return_preexisting_errors", description_return_preexisting_errors,
@@ -438,9 +429,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
438
429
  description_skip_clear_peer_on_cancellation,
439
430
  additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
440
431
  true},
441
- {"subchannel_connection_scaling", description_subchannel_connection_scaling,
442
- additional_constraints_subchannel_connection_scaling, nullptr, 0, true,
443
- true},
444
432
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
445
433
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
446
434
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
@@ -460,7 +448,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
460
448
  {"v2_non_owning_waker_implementation",
461
449
  description_v2_non_owning_waker_implementation,
462
450
  additional_constraints_v2_non_owning_waker_implementation, nullptr, 0,
463
- false, true},
451
+ true, true},
464
452
  {"verbose_channelz_connection_logging",
465
453
  description_verbose_channelz_connection_logging,
466
454
  additional_constraints_verbose_channelz_connection_logging, nullptr, 0,
@@ -472,7 +460,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
472
460
  {"xds_server_filter_chain_per_route",
473
461
  description_xds_server_filter_chain_per_route,
474
462
  additional_constraints_xds_server_filter_chain_per_route,
475
- required_experiments_xds_server_filter_chain_per_route, 1, false, true},
463
+ required_experiments_xds_server_filter_chain_per_route, 1, true, true},
476
464
  };
477
465
 
478
466
  } // namespace grpc_core
@@ -513,14 +501,6 @@ const char* const additional_constraints_custom_frame_check = "{}";
513
501
  const char* const description_event_engine_client =
514
502
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
515
503
  const char* const additional_constraints_event_engine_client = "{}";
516
- const char* const description_event_engine_dns =
517
- "If set, use EventEngine DNSResolver for client channel resolution";
518
- const char* const additional_constraints_event_engine_dns = "{}";
519
- const char* const description_event_engine_dns_non_client_channel =
520
- "If set, use EventEngine DNSResolver in other places besides client "
521
- "channel.";
522
- const char* const additional_constraints_event_engine_dns_non_client_channel =
523
- "{}";
524
504
  const char* const description_event_engine_fork =
525
505
  "Enables event engine fork handling, including onfork events and file "
526
506
  "descriptor generations";
@@ -541,14 +521,15 @@ const char* const additional_constraints_event_engine_for_all_other_endpoints =
541
521
  "{}";
542
522
  const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
543
523
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
544
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
545
- static_cast<uint8_t>(
546
- grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
547
524
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
548
525
  const char* const description_fail_recv_metadata_on_deadline_exceeded =
549
526
  "Fail recv initial metadata when the deadline is exceeded.";
550
527
  const char* const
551
528
  additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
529
+ const char* const description_fix_v3_filter_stack_server_side_ordering =
530
+ "If set, reverse the server side ordering for v3 filter stack.";
531
+ const char* const
532
+ additional_constraints_fix_v3_filter_stack_server_side_ordering = "{}";
552
533
  const char* const description_free_large_allocator =
553
534
  "If set, return all free bytes from a \042big\042 allocator";
554
535
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -590,9 +571,6 @@ const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
590
571
  const char* const description_monitoring_experiment =
591
572
  "Placeholder experiment to prove/disprove our monitoring is working";
592
573
  const char* const additional_constraints_monitoring_experiment = "{}";
593
- const char* const description_multiping =
594
- "Allow more than one ping to be in flight at a time by default.";
595
- const char* const additional_constraints_multiping = "{}";
596
574
  const char* const description_optimization_01 = "Optimization";
597
575
  const char* const additional_constraints_optimization_01 = "{}";
598
576
  const char* const description_optimization_02 = "Optimization";
@@ -661,6 +639,10 @@ const char* const description_promise_filter_send_cancel_metadata =
661
639
  "promise-based filters upon stream cancellation.";
662
640
  const char* const additional_constraints_promise_filter_send_cancel_metadata =
663
641
  "{}";
642
+ const char* const description_recv_message_filter_bypass_fix =
643
+ "Receive message bypass happen if trailing metadata is received while "
644
+ "Server Initial Metadata is getting processed.";
645
+ const char* const additional_constraints_recv_message_filter_bypass_fix = "{}";
664
646
  const char* const description_retry_in_callv3 = "Support retries with call-v3";
665
647
  const char* const additional_constraints_retry_in_callv3 = "{}";
666
648
  const char* const description_return_preexisting_errors =
@@ -693,9 +675,6 @@ const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
693
675
  const char* const description_skip_clear_peer_on_cancellation =
694
676
  "If set, skips clearing of peer string on call cancellation.";
695
677
  const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
696
- const char* const description_subchannel_connection_scaling =
697
- "Subchannel connection scaling support.";
698
- const char* const additional_constraints_subchannel_connection_scaling = "{}";
699
678
  const char* const description_tcp_frame_size_tuning =
700
679
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
701
680
  "would not indicate completion of a read operation until a specified "
@@ -766,12 +745,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
766
745
  additional_constraints_custom_frame_check, nullptr, 0, true, false},
767
746
  {"event_engine_client", description_event_engine_client,
768
747
  additional_constraints_event_engine_client, nullptr, 0, true, false},
769
- {"event_engine_dns", description_event_engine_dns,
770
- additional_constraints_event_engine_dns, nullptr, 0, true, false},
771
- {"event_engine_dns_non_client_channel",
772
- description_event_engine_dns_non_client_channel,
773
- additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
774
- true, false},
775
748
  {"event_engine_fork", description_event_engine_fork,
776
749
  additional_constraints_event_engine_fork, nullptr, 0, true, false},
777
750
  {"event_engine_listener", description_event_engine_listener,
@@ -782,11 +755,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
782
755
  {"event_engine_for_all_other_endpoints",
783
756
  description_event_engine_for_all_other_endpoints,
784
757
  additional_constraints_event_engine_for_all_other_endpoints,
785
- required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
758
+ required_experiments_event_engine_for_all_other_endpoints, 2, true, false},
786
759
  {"fail_recv_metadata_on_deadline_exceeded",
787
760
  description_fail_recv_metadata_on_deadline_exceeded,
788
761
  additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
789
762
  false, false},
763
+ {"fix_v3_filter_stack_server_side_ordering",
764
+ description_fix_v3_filter_stack_server_side_ordering,
765
+ additional_constraints_fix_v3_filter_stack_server_side_ordering, nullptr,
766
+ 0, false, true},
790
767
  {"free_large_allocator", description_free_large_allocator,
791
768
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
792
769
  {"fuse_filters", description_fuse_filters,
@@ -819,8 +796,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
819
796
  true},
820
797
  {"monitoring_experiment", description_monitoring_experiment,
821
798
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
822
- {"multiping", description_multiping, additional_constraints_multiping,
823
- nullptr, 0, false, true},
824
799
  {"optimization_01", description_optimization_01,
825
800
  additional_constraints_optimization_01, nullptr, 0, true, true},
826
801
  {"optimization_02", description_optimization_02,
@@ -869,7 +844,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
869
844
  {"promise_filter_send_cancel_metadata",
870
845
  description_promise_filter_send_cancel_metadata,
871
846
  additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
872
- false, true},
847
+ true, true},
848
+ {"recv_message_filter_bypass_fix",
849
+ description_recv_message_filter_bypass_fix,
850
+ additional_constraints_recv_message_filter_bypass_fix, nullptr, 0, false,
851
+ true},
873
852
  {"retry_in_callv3", description_retry_in_callv3,
874
853
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
875
854
  {"return_preexisting_errors", description_return_preexisting_errors,
@@ -894,9 +873,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
894
873
  description_skip_clear_peer_on_cancellation,
895
874
  additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
896
875
  true},
897
- {"subchannel_connection_scaling", description_subchannel_connection_scaling,
898
- additional_constraints_subchannel_connection_scaling, nullptr, 0, true,
899
- true},
900
876
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
901
877
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
902
878
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
@@ -916,7 +892,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
916
892
  {"v2_non_owning_waker_implementation",
917
893
  description_v2_non_owning_waker_implementation,
918
894
  additional_constraints_v2_non_owning_waker_implementation, nullptr, 0,
919
- false, true},
895
+ true, true},
920
896
  {"verbose_channelz_connection_logging",
921
897
  description_verbose_channelz_connection_logging,
922
898
  additional_constraints_verbose_channelz_connection_logging, nullptr, 0,
@@ -928,7 +904,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
928
904
  {"xds_server_filter_chain_per_route",
929
905
  description_xds_server_filter_chain_per_route,
930
906
  additional_constraints_xds_server_filter_chain_per_route,
931
- required_experiments_xds_server_filter_chain_per_route, 1, false, true},
907
+ required_experiments_xds_server_filter_chain_per_route, 1, true, true},
932
908
  };
933
909
 
934
910
  } // namespace grpc_core
@@ -969,14 +945,6 @@ const char* const additional_constraints_custom_frame_check = "{}";
969
945
  const char* const description_event_engine_client =
970
946
  "Use EventEngine clients instead of iomgr's grpc_tcp_client";
971
947
  const char* const additional_constraints_event_engine_client = "{}";
972
- const char* const description_event_engine_dns =
973
- "If set, use EventEngine DNSResolver for client channel resolution";
974
- const char* const additional_constraints_event_engine_dns = "{}";
975
- const char* const description_event_engine_dns_non_client_channel =
976
- "If set, use EventEngine DNSResolver in other places besides client "
977
- "channel.";
978
- const char* const additional_constraints_event_engine_dns_non_client_channel =
979
- "{}";
980
948
  const char* const description_event_engine_fork =
981
949
  "Enables event engine fork handling, including onfork events and file "
982
950
  "descriptor generations";
@@ -997,14 +965,15 @@ const char* const additional_constraints_event_engine_for_all_other_endpoints =
997
965
  "{}";
998
966
  const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
999
967
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
1000
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineDns),
1001
- static_cast<uint8_t>(
1002
- grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
1003
968
  static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
1004
969
  const char* const description_fail_recv_metadata_on_deadline_exceeded =
1005
970
  "Fail recv initial metadata when the deadline is exceeded.";
1006
971
  const char* const
1007
972
  additional_constraints_fail_recv_metadata_on_deadline_exceeded = "{}";
973
+ const char* const description_fix_v3_filter_stack_server_side_ordering =
974
+ "If set, reverse the server side ordering for v3 filter stack.";
975
+ const char* const
976
+ additional_constraints_fix_v3_filter_stack_server_side_ordering = "{}";
1008
977
  const char* const description_free_large_allocator =
1009
978
  "If set, return all free bytes from a \042big\042 allocator";
1010
979
  const char* const additional_constraints_free_large_allocator = "{}";
@@ -1046,9 +1015,6 @@ const char* const additional_constraints_metadata_publish_to_app_tag = "{}";
1046
1015
  const char* const description_monitoring_experiment =
1047
1016
  "Placeholder experiment to prove/disprove our monitoring is working";
1048
1017
  const char* const additional_constraints_monitoring_experiment = "{}";
1049
- const char* const description_multiping =
1050
- "Allow more than one ping to be in flight at a time by default.";
1051
- const char* const additional_constraints_multiping = "{}";
1052
1018
  const char* const description_optimization_01 = "Optimization";
1053
1019
  const char* const additional_constraints_optimization_01 = "{}";
1054
1020
  const char* const description_optimization_02 = "Optimization";
@@ -1117,6 +1083,10 @@ const char* const description_promise_filter_send_cancel_metadata =
1117
1083
  "promise-based filters upon stream cancellation.";
1118
1084
  const char* const additional_constraints_promise_filter_send_cancel_metadata =
1119
1085
  "{}";
1086
+ const char* const description_recv_message_filter_bypass_fix =
1087
+ "Receive message bypass happen if trailing metadata is received while "
1088
+ "Server Initial Metadata is getting processed.";
1089
+ const char* const additional_constraints_recv_message_filter_bypass_fix = "{}";
1120
1090
  const char* const description_retry_in_callv3 = "Support retries with call-v3";
1121
1091
  const char* const additional_constraints_retry_in_callv3 = "{}";
1122
1092
  const char* const description_return_preexisting_errors =
@@ -1149,9 +1119,6 @@ const uint8_t required_experiments_secure_endpoint_read_coalescing[] = {
1149
1119
  const char* const description_skip_clear_peer_on_cancellation =
1150
1120
  "If set, skips clearing of peer string on call cancellation.";
1151
1121
  const char* const additional_constraints_skip_clear_peer_on_cancellation = "{}";
1152
- const char* const description_subchannel_connection_scaling =
1153
- "Subchannel connection scaling support.";
1154
- const char* const additional_constraints_subchannel_connection_scaling = "{}";
1155
1122
  const char* const description_tcp_frame_size_tuning =
1156
1123
  "If set, enables TCP to use RPC size estimation made by higher layers. TCP "
1157
1124
  "would not indicate completion of a read operation until a specified "
@@ -1222,12 +1189,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
1222
1189
  additional_constraints_custom_frame_check, nullptr, 0, true, false},
1223
1190
  {"event_engine_client", description_event_engine_client,
1224
1191
  additional_constraints_event_engine_client, nullptr, 0, true, false},
1225
- {"event_engine_dns", description_event_engine_dns,
1226
- additional_constraints_event_engine_dns, nullptr, 0, true, false},
1227
- {"event_engine_dns_non_client_channel",
1228
- description_event_engine_dns_non_client_channel,
1229
- additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
1230
- true, false},
1231
1192
  {"event_engine_fork", description_event_engine_fork,
1232
1193
  additional_constraints_event_engine_fork, nullptr, 0, true, false},
1233
1194
  {"event_engine_listener", description_event_engine_listener,
@@ -1238,11 +1199,15 @@ const ExperimentMetadata g_experiment_metadata[] = {
1238
1199
  {"event_engine_for_all_other_endpoints",
1239
1200
  description_event_engine_for_all_other_endpoints,
1240
1201
  additional_constraints_event_engine_for_all_other_endpoints,
1241
- required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
1202
+ required_experiments_event_engine_for_all_other_endpoints, 2, true, false},
1242
1203
  {"fail_recv_metadata_on_deadline_exceeded",
1243
1204
  description_fail_recv_metadata_on_deadline_exceeded,
1244
1205
  additional_constraints_fail_recv_metadata_on_deadline_exceeded, nullptr, 0,
1245
1206
  false, false},
1207
+ {"fix_v3_filter_stack_server_side_ordering",
1208
+ description_fix_v3_filter_stack_server_side_ordering,
1209
+ additional_constraints_fix_v3_filter_stack_server_side_ordering, nullptr,
1210
+ 0, false, true},
1246
1211
  {"free_large_allocator", description_free_large_allocator,
1247
1212
  additional_constraints_free_large_allocator, nullptr, 0, false, true},
1248
1213
  {"fuse_filters", description_fuse_filters,
@@ -1275,8 +1240,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
1275
1240
  true},
1276
1241
  {"monitoring_experiment", description_monitoring_experiment,
1277
1242
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
1278
- {"multiping", description_multiping, additional_constraints_multiping,
1279
- nullptr, 0, false, true},
1280
1243
  {"optimization_01", description_optimization_01,
1281
1244
  additional_constraints_optimization_01, nullptr, 0, true, true},
1282
1245
  {"optimization_02", description_optimization_02,
@@ -1325,7 +1288,11 @@ const ExperimentMetadata g_experiment_metadata[] = {
1325
1288
  {"promise_filter_send_cancel_metadata",
1326
1289
  description_promise_filter_send_cancel_metadata,
1327
1290
  additional_constraints_promise_filter_send_cancel_metadata, nullptr, 0,
1328
- false, true},
1291
+ true, true},
1292
+ {"recv_message_filter_bypass_fix",
1293
+ description_recv_message_filter_bypass_fix,
1294
+ additional_constraints_recv_message_filter_bypass_fix, nullptr, 0, false,
1295
+ true},
1329
1296
  {"retry_in_callv3", description_retry_in_callv3,
1330
1297
  additional_constraints_retry_in_callv3, nullptr, 0, false, true},
1331
1298
  {"return_preexisting_errors", description_return_preexisting_errors,
@@ -1350,9 +1317,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
1350
1317
  description_skip_clear_peer_on_cancellation,
1351
1318
  additional_constraints_skip_clear_peer_on_cancellation, nullptr, 0, false,
1352
1319
  true},
1353
- {"subchannel_connection_scaling", description_subchannel_connection_scaling,
1354
- additional_constraints_subchannel_connection_scaling, nullptr, 0, true,
1355
- true},
1356
1320
  {"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
1357
1321
  additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
1358
1322
  {"tcp_rcv_lowat", description_tcp_rcv_lowat,
@@ -1372,7 +1336,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
1372
1336
  {"v2_non_owning_waker_implementation",
1373
1337
  description_v2_non_owning_waker_implementation,
1374
1338
  additional_constraints_v2_non_owning_waker_implementation, nullptr, 0,
1375
- false, true},
1339
+ true, true},
1376
1340
  {"verbose_channelz_connection_logging",
1377
1341
  description_verbose_channelz_connection_logging,
1378
1342
  additional_constraints_verbose_channelz_connection_logging, nullptr, 0,
@@ -1384,7 +1348,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
1384
1348
  {"xds_server_filter_chain_per_route",
1385
1349
  description_xds_server_filter_chain_per_route,
1386
1350
  additional_constraints_xds_server_filter_chain_per_route,
1387
- required_experiments_xds_server_filter_chain_per_route, 1, false, true},
1351
+ required_experiments_xds_server_filter_chain_per_route, 1, true, true},
1388
1352
  };
1389
1353
 
1390
1354
  } // namespace grpc_core