grpc 1.63.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 (3500) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +480 -478
  3. data/include/grpc/compression.h +1 -2
  4. data/include/grpc/credentials.h +1221 -0
  5. data/include/grpc/event_engine/README.md +1 -1
  6. data/include/grpc/event_engine/endpoint_config.h +7 -7
  7. data/include/grpc/event_engine/event_engine.h +83 -20
  8. data/include/grpc/event_engine/extensible.h +5 -2
  9. data/include/grpc/event_engine/internal/memory_allocator_impl.h +4 -4
  10. data/include/grpc/event_engine/internal/slice_cast.h +1 -1
  11. data/include/grpc/event_engine/memory_allocator.h +3 -4
  12. data/include/grpc/event_engine/memory_request.h +19 -2
  13. data/include/grpc/event_engine/slice.h +3 -5
  14. data/include/grpc/event_engine/slice_buffer.h +6 -8
  15. data/include/grpc/grpc.h +8 -2
  16. data/include/grpc/grpc_audit_logging.h +3 -3
  17. data/include/grpc/grpc_crl_provider.h +5 -4
  18. data/include/grpc/grpc_posix.h +1 -2
  19. data/include/grpc/grpc_security.h +1 -1173
  20. data/include/grpc/impl/call.h +2 -2
  21. data/include/grpc/impl/channel_arg_names.h +78 -55
  22. data/include/grpc/impl/grpc_types.h +1 -2
  23. data/include/grpc/impl/slice_type.h +1 -2
  24. data/include/grpc/module.modulemap +2 -0
  25. data/include/grpc/passive_listener.h +62 -0
  26. data/include/grpc/status.h +1 -1
  27. data/include/grpc/support/alloc.h +1 -2
  28. data/include/grpc/support/atm.h +0 -13
  29. data/include/grpc/support/json.h +17 -18
  30. data/include/grpc/support/log.h +37 -64
  31. data/include/grpc/support/metrics.h +21 -6
  32. data/include/grpc/support/port_platform.h +31 -1
  33. data/include/grpc/support/sync_generic.h +2 -4
  34. data/include/grpc/support/sync_posix.h +1 -2
  35. data/include/grpc/support/time.h +1 -2
  36. data/include/grpc/support/workaround_list.h +1 -4
  37. data/src/core/call/call_arena_allocator.cc +27 -0
  38. data/src/core/call/call_arena_allocator.h +91 -0
  39. data/src/core/call/call_destination.h +76 -0
  40. data/src/core/call/call_filters.cc +148 -0
  41. data/src/core/call/call_filters.h +1967 -0
  42. data/src/core/call/call_finalization.h +88 -0
  43. data/src/core/call/call_spine.cc +90 -0
  44. data/src/core/call/call_spine.h +644 -0
  45. data/src/core/call/call_state.cc +39 -0
  46. data/src/core/call/call_state.h +1154 -0
  47. data/src/core/call/client_call.cc +458 -0
  48. data/src/core/call/client_call.h +192 -0
  49. data/src/core/call/custom_metadata.h +30 -0
  50. data/src/core/call/interception_chain.cc +155 -0
  51. data/src/core/call/interception_chain.h +282 -0
  52. data/src/core/call/message.cc +44 -0
  53. data/src/core/call/message.h +70 -0
  54. data/src/core/call/metadata.cc +61 -0
  55. data/src/core/call/metadata.h +201 -0
  56. data/src/core/call/metadata_batch.cc +383 -0
  57. data/src/core/call/metadata_batch.h +1668 -0
  58. data/src/core/call/metadata_compression_traits.h +66 -0
  59. data/src/core/call/metadata_info.cc +73 -0
  60. data/src/core/call/metadata_info.h +85 -0
  61. data/src/core/call/parsed_metadata.cc +35 -0
  62. data/src/core/call/parsed_metadata.h +429 -0
  63. data/src/core/call/request_buffer.cc +224 -0
  64. data/src/core/call/request_buffer.h +192 -0
  65. data/src/core/call/security_context.cc +125 -0
  66. data/src/core/call/security_context.h +114 -0
  67. data/src/core/call/server_call.cc +259 -0
  68. data/src/core/call/server_call.h +169 -0
  69. data/src/core/call/simple_slice_based_metadata.h +53 -0
  70. data/src/core/call/status_util.cc +153 -0
  71. data/src/core/call/status_util.h +80 -0
  72. data/src/core/channelz/channel_trace.cc +180 -0
  73. data/src/core/channelz/channel_trace.h +138 -0
  74. data/src/core/channelz/channelz.cc +670 -0
  75. data/src/core/channelz/channelz.h +402 -0
  76. data/src/core/channelz/channelz_registry.cc +274 -0
  77. data/src/core/channelz/channelz_registry.h +101 -0
  78. data/src/core/client_channel/backup_poller.cc +25 -16
  79. data/src/core/client_channel/client_channel.cc +1423 -0
  80. data/src/core/client_channel/client_channel.h +246 -0
  81. data/src/core/client_channel/client_channel_args.h +21 -0
  82. data/src/core/client_channel/client_channel_factory.cc +2 -2
  83. data/src/core/client_channel/client_channel_factory.h +1 -2
  84. data/src/core/client_channel/client_channel_filter.cc +441 -1045
  85. data/src/core/client_channel/client_channel_filter.h +35 -88
  86. data/src/core/client_channel/client_channel_internal.h +26 -11
  87. data/src/core/client_channel/client_channel_plugin.cc +4 -18
  88. data/src/core/client_channel/client_channel_service_config.cc +3 -4
  89. data/src/core/client_channel/client_channel_service_config.h +13 -15
  90. data/src/core/client_channel/config_selector.h +26 -26
  91. data/src/core/client_channel/connector.h +4 -4
  92. data/src/core/client_channel/direct_channel.cc +83 -0
  93. data/src/core/client_channel/direct_channel.h +101 -0
  94. data/src/core/client_channel/dynamic_filters.cc +19 -17
  95. data/src/core/client_channel/dynamic_filters.h +9 -11
  96. data/src/core/client_channel/global_subchannel_pool.cc +2 -2
  97. data/src/core/client_channel/global_subchannel_pool.h +2 -3
  98. data/src/core/client_channel/lb_metadata.cc +119 -0
  99. data/src/core/client_channel/lb_metadata.h +55 -0
  100. data/src/core/client_channel/load_balanced_call_destination.cc +273 -0
  101. data/src/core/client_channel/load_balanced_call_destination.h +48 -0
  102. data/src/core/client_channel/local_subchannel_pool.cc +6 -7
  103. data/src/core/client_channel/local_subchannel_pool.h +1 -1
  104. data/src/core/client_channel/retry_filter.cc +9 -18
  105. data/src/core/client_channel/retry_filter.h +10 -18
  106. data/src/core/client_channel/retry_filter_legacy_call_data.cc +259 -368
  107. data/src/core/client_channel/retry_filter_legacy_call_data.h +22 -25
  108. data/src/core/client_channel/retry_interceptor.cc +408 -0
  109. data/src/core/client_channel/retry_interceptor.h +157 -0
  110. data/src/core/client_channel/retry_service_config.cc +12 -15
  111. data/src/core/client_channel/retry_service_config.h +23 -12
  112. data/src/core/client_channel/retry_throttle.cc +60 -50
  113. data/src/core/client_channel/retry_throttle.h +16 -11
  114. data/src/core/client_channel/subchannel.cc +339 -254
  115. data/src/core/client_channel/subchannel.h +53 -47
  116. data/src/core/client_channel/subchannel_interface_internal.h +1 -1
  117. data/src/core/client_channel/subchannel_pool_interface.cc +1 -5
  118. data/src/core/client_channel/subchannel_pool_interface.h +4 -7
  119. data/src/core/client_channel/subchannel_stream_client.cc +58 -70
  120. data/src/core/client_channel/subchannel_stream_client.h +15 -19
  121. data/src/core/config/config_vars.cc +152 -0
  122. data/src/core/config/config_vars.h +129 -0
  123. data/src/core/config/config_vars_non_generated.cc +49 -0
  124. data/src/core/config/core_configuration.cc +111 -0
  125. data/src/core/config/core_configuration.h +242 -0
  126. data/src/core/config/load_config.cc +78 -0
  127. data/src/core/config/load_config.h +54 -0
  128. data/src/core/credentials/call/call_credentials.h +157 -0
  129. data/src/core/credentials/call/call_creds_util.cc +97 -0
  130. data/src/core/credentials/call/call_creds_util.h +43 -0
  131. data/src/core/credentials/call/composite/composite_call_credentials.cc +115 -0
  132. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  133. data/src/core/credentials/call/external/aws_external_account_credentials.cc +528 -0
  134. data/src/core/credentials/call/external/aws_external_account_credentials.h +117 -0
  135. data/src/core/credentials/call/external/aws_request_signer.cc +230 -0
  136. data/src/core/credentials/call/external/aws_request_signer.h +72 -0
  137. data/src/core/credentials/call/external/external_account_credentials.cc +641 -0
  138. data/src/core/credentials/call/external/external_account_credentials.h +207 -0
  139. data/src/core/credentials/call/external/file_external_account_credentials.cc +174 -0
  140. data/src/core/credentials/call/external/file_external_account_credentials.h +80 -0
  141. data/src/core/credentials/call/external/url_external_account_credentials.cc +222 -0
  142. data/src/core/credentials/call/external/url_external_account_credentials.h +73 -0
  143. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +196 -0
  144. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
  145. data/src/core/credentials/call/iam/iam_credentials.cc +78 -0
  146. data/src/core/credentials/call/iam/iam_credentials.h +66 -0
  147. data/src/core/credentials/call/json_util.cc +69 -0
  148. data/src/core/credentials/call/json_util.h +43 -0
  149. data/src/core/credentials/call/jwt/json_token.cc +318 -0
  150. data/src/core/credentials/call/jwt/json_token.h +78 -0
  151. data/src/core/credentials/call/jwt/jwt_credentials.cc +181 -0
  152. data/src/core/credentials/call/jwt/jwt_credentials.h +106 -0
  153. data/src/core/credentials/call/jwt/jwt_verifier.cc +988 -0
  154. data/src/core/credentials/call/jwt/jwt_verifier.h +122 -0
  155. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +654 -0
  156. data/src/core/credentials/call/oauth2/oauth2_credentials.h +197 -0
  157. data/src/core/credentials/call/plugin/plugin_credentials.cc +201 -0
  158. data/src/core/credentials/call/plugin/plugin_credentials.h +123 -0
  159. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +304 -0
  160. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +181 -0
  161. data/src/core/credentials/transport/alts/alts_credentials.cc +116 -0
  162. data/src/core/credentials/transport/alts/alts_credentials.h +127 -0
  163. data/src/core/credentials/transport/alts/alts_security_connector.cc +303 -0
  164. data/src/core/credentials/transport/alts/alts_security_connector.h +78 -0
  165. data/src/core/credentials/transport/alts/check_gcp_environment.cc +71 -0
  166. data/src/core/credentials/transport/alts/check_gcp_environment.h +57 -0
  167. data/src/core/credentials/transport/alts/check_gcp_environment_linux.cc +67 -0
  168. data/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc +32 -0
  169. data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +101 -0
  170. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +123 -0
  171. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +45 -0
  172. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +74 -0
  173. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +55 -0
  174. data/src/core/credentials/transport/channel_creds_registry.h +126 -0
  175. data/src/core/credentials/transport/channel_creds_registry_init.cc +245 -0
  176. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  177. data/src/core/credentials/transport/composite/composite_channel_credentials.h +89 -0
  178. data/src/core/credentials/transport/fake/fake_credentials.cc +81 -0
  179. data/src/core/credentials/transport/fake/fake_credentials.h +92 -0
  180. data/src/core/credentials/transport/fake/fake_security_connector.cc +314 -0
  181. data/src/core/credentials/transport/fake/fake_security_connector.h +42 -0
  182. data/src/core/credentials/transport/google_default/credentials_generic.cc +38 -0
  183. data/src/core/credentials/transport/google_default/google_default_credentials.cc +442 -0
  184. data/src/core/credentials/transport/google_default/google_default_credentials.h +101 -0
  185. data/src/core/credentials/transport/insecure/insecure_credentials.cc +71 -0
  186. data/src/core/credentials/transport/insecure/insecure_credentials.h +61 -0
  187. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +118 -0
  188. data/src/core/credentials/transport/insecure/insecure_security_connector.h +102 -0
  189. data/src/core/credentials/transport/local/local_credentials.cc +68 -0
  190. data/src/core/credentials/transport/local/local_credentials.h +77 -0
  191. data/src/core/credentials/transport/local/local_security_connector.cc +306 -0
  192. data/src/core/credentials/transport/local/local_security_connector.h +62 -0
  193. data/src/core/credentials/transport/security_connector.cc +123 -0
  194. data/src/core/credentials/transport/security_connector.h +197 -0
  195. data/src/core/credentials/transport/ssl/ssl_credentials.cc +474 -0
  196. data/src/core/credentials/transport/ssl/ssl_credentials.h +144 -0
  197. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +403 -0
  198. data/src/core/credentials/transport/ssl/ssl_security_connector.h +81 -0
  199. data/src/core/credentials/transport/tls/certificate_provider_factory.h +69 -0
  200. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +50 -0
  201. data/src/core/credentials/transport/tls/certificate_provider_registry.h +75 -0
  202. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +337 -0
  203. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +215 -0
  204. data/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc +84 -0
  205. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +490 -0
  206. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +206 -0
  207. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +237 -0
  208. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +169 -0
  209. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +161 -0
  210. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +145 -0
  211. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +257 -0
  212. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.h +129 -0
  213. data/src/core/credentials/transport/tls/load_system_roots.h +35 -0
  214. data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +36 -0
  215. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +165 -0
  216. data/src/core/credentials/transport/tls/load_system_roots_supported.h +44 -0
  217. data/src/core/credentials/transport/tls/load_system_roots_windows.cc +85 -0
  218. data/src/core/credentials/transport/tls/ssl_utils.cc +628 -0
  219. data/src/core/credentials/transport/tls/ssl_utils.h +188 -0
  220. data/src/core/credentials/transport/tls/tls_credentials.cc +170 -0
  221. data/src/core/credentials/transport/tls/tls_credentials.h +75 -0
  222. data/src/core/credentials/transport/tls/tls_security_connector.cc +816 -0
  223. data/src/core/credentials/transport/tls/tls_security_connector.h +285 -0
  224. data/src/core/credentials/transport/tls/tls_utils.cc +127 -0
  225. data/src/core/credentials/transport/tls/tls_utils.h +50 -0
  226. data/src/core/credentials/transport/transport_credentials.cc +158 -0
  227. data/src/core/credentials/transport/transport_credentials.h +182 -0
  228. data/src/core/credentials/transport/xds/xds_credentials.cc +231 -0
  229. data/src/core/credentials/transport/xds/xds_credentials.h +110 -0
  230. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +30 -41
  231. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +11 -9
  232. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  233. data/src/core/ext/filters/census/grpc_context.cc +7 -10
  234. data/src/core/ext/filters/channel_idle/idle_filter_state.cc +1 -2
  235. data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -1
  236. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +53 -53
  237. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +22 -19
  238. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +33 -44
  239. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -12
  240. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +4 -5
  241. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +7 -10
  242. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +198 -0
  243. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +97 -0
  244. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +80 -0
  245. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +86 -0
  246. data/src/core/ext/filters/http/client/http_client_filter.cc +19 -17
  247. data/src/core/ext/filters/http/client/http_client_filter.h +12 -10
  248. data/src/core/ext/filters/http/client_authority_filter.cc +20 -23
  249. data/src/core/ext/filters/http/client_authority_filter.h +13 -10
  250. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -2
  251. data/src/core/ext/filters/http/message_compress/compression_filter.cc +74 -73
  252. data/src/core/ext/filters/http/message_compress/compression_filter.h +33 -24
  253. data/src/core/ext/filters/http/server/http_server_filter.cc +21 -23
  254. data/src/core/ext/filters/http/server/http_server_filter.h +11 -9
  255. data/src/core/ext/filters/message_size/message_size_filter.cc +53 -74
  256. data/src/core/ext/filters/message_size/message_size_filter.h +38 -35
  257. data/src/core/ext/filters/rbac/rbac_filter.cc +21 -26
  258. data/src/core/ext/filters/rbac/rbac_filter.h +13 -12
  259. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +19 -13
  260. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -5
  261. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +27 -34
  262. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +11 -9
  263. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +3 -4
  264. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +8 -10
  265. data/src/core/ext/transport/chttp2/alpn/alpn.cc +4 -5
  266. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -1
  267. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +88 -121
  268. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -15
  269. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1014 -387
  270. data/src/core/ext/transport/chttp2/server/chttp2_server.h +225 -12
  271. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +27 -39
  272. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -3
  273. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +10 -12
  274. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -3
  275. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +53 -0
  276. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +70 -0
  277. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +795 -642
  278. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -23
  279. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +4 -5
  280. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
  281. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
  282. data/src/core/ext/transport/chttp2/transport/flow_control.cc +12 -17
  283. data/src/core/ext/transport/chttp2/transport/flow_control.h +7 -12
  284. data/src/core/ext/transport/chttp2/transport/frame.cc +112 -74
  285. data/src/core/ext/transport/chttp2/transport/frame.h +50 -5
  286. data/src/core/ext/transport/chttp2/transport/frame_data.cc +23 -22
  287. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -5
  288. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -18
  289. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -3
  290. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +16 -21
  291. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -3
  292. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +25 -23
  293. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  294. data/src/core/ext/transport/chttp2/transport/frame_security.cc +80 -0
  295. data/src/core/ext/transport/chttp2/transport/frame_security.h +44 -0
  296. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +45 -28
  297. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -4
  298. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +31 -10
  299. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -4
  300. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +21 -22
  301. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +20 -17
  302. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -10
  303. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
  304. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -5
  305. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +8 -11
  306. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +113 -107
  307. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +12 -14
  308. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +45 -20
  309. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +30 -11
  310. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +24 -14
  311. data/src/core/ext/transport/chttp2/transport/http2_settings.h +14 -8
  312. data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
  313. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
  314. data/src/core/ext/transport/chttp2/transport/internal.h +87 -89
  315. data/src/core/ext/transport/chttp2/transport/legacy_frame.h +1 -0
  316. data/src/core/ext/transport/chttp2/transport/parsing.cc +177 -150
  317. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +4 -5
  318. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +1 -1
  319. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +6 -9
  320. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +4 -9
  321. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +35 -21
  322. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +8 -9
  323. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +20 -21
  324. data/src/core/ext/transport/chttp2/transport/stream_lists.h +65 -0
  325. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -6
  326. data/src/core/ext/transport/chttp2/transport/varint.h +2 -3
  327. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -4
  328. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -3
  329. data/src/core/ext/transport/chttp2/transport/writing.cc +186 -153
  330. data/src/core/ext/transport/inproc/inproc_transport.cc +156 -76
  331. data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
  332. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +140 -137
  333. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
  334. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +46 -15
  335. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +40 -18
  336. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +10 -4
  337. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +124 -92
  338. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +64 -46
  339. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +9 -4
  340. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +50 -15
  341. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +44 -22
  342. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +10 -4
  343. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +204 -69
  344. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +168 -90
  345. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +24 -4
  346. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +11 -5
  347. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +14 -4
  348. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +7 -4
  349. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +19 -6
  350. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +18 -8
  351. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +7 -4
  352. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +11 -10
  353. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +7 -1
  354. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +6 -4
  355. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +14 -13
  356. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +11 -5
  357. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +6 -4
  358. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +8 -7
  359. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +7 -1
  360. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +6 -4
  361. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +230 -167
  362. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +94 -81
  363. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +7 -4
  364. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +9 -6
  365. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +10 -4
  366. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +6 -4
  367. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +9 -8
  368. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +7 -1
  369. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +5 -4
  370. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +18 -8
  371. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +13 -6
  372. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +6 -4
  373. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +117 -60
  374. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +121 -55
  375. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +21 -4
  376. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +583 -295
  377. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +286 -170
  378. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +29 -4
  379. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +68 -41
  380. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +40 -26
  381. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +8 -4
  382. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +802 -416
  383. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +358 -231
  384. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +31 -4
  385. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +12 -7
  386. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +11 -5
  387. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +6 -4
  388. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +218 -74
  389. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +66 -39
  390. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +6 -4
  391. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +147 -57
  392. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +128 -66
  393. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +20 -4
  394. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +96 -56
  395. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +76 -42
  396. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +13 -4
  397. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +11 -6
  398. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +11 -5
  399. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +6 -4
  400. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +1020 -227
  401. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +390 -119
  402. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +41 -4
  403. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +121 -79
  404. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +78 -48
  405. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +12 -4
  406. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +8 -5
  407. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +10 -4
  408. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +6 -4
  409. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +9 -6
  410. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +10 -4
  411. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +6 -4
  412. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +11 -5
  413. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +14 -4
  414. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +7 -4
  415. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +236 -99
  416. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +129 -62
  417. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +19 -4
  418. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +273 -139
  419. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +121 -79
  420. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +14 -4
  421. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +13 -5
  422. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +11 -5
  423. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +6 -4
  424. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +22 -19
  425. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +15 -9
  426. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +6 -4
  427. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +419 -173
  428. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +197 -119
  429. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +21 -4
  430. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +10 -7
  431. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +14 -4
  432. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +7 -4
  433. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +15 -7
  434. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +15 -5
  435. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +7 -4
  436. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  437. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  438. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  439. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +241 -28
  440. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +77 -19
  441. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +13 -4
  442. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +50 -38
  443. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +27 -17
  444. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +7 -4
  445. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +11 -6
  446. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +11 -5
  447. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +6 -4
  448. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +52 -23
  449. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +37 -19
  450. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +9 -4
  451. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +134 -62
  452. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +82 -50
  453. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +12 -4
  454. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +305 -61
  455. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +90 -36
  456. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +12 -4
  457. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +8 -5
  458. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +10 -4
  459. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +6 -4
  460. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +267 -172
  461. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +130 -87
  462. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +15 -4
  463. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +150 -187
  464. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +85 -76
  465. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +11 -5
  466. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +178 -13
  467. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +46 -14
  468. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +6 -4
  469. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +14 -7
  470. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -6
  471. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +7 -4
  472. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +20 -15
  473. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +15 -9
  474. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +6 -4
  475. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +84 -55
  476. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +72 -38
  477. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +13 -4
  478. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +70 -22
  479. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +71 -29
  480. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +15 -4
  481. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +321 -50
  482. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +143 -65
  483. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +18 -4
  484. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +111 -65
  485. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +43 -29
  486. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +8 -4
  487. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +1541 -823
  488. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +769 -475
  489. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +67 -4
  490. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +33 -23
  491. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +26 -12
  492. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +8 -4
  493. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +103 -38
  494. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +97 -47
  495. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +17 -4
  496. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +118 -16
  497. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +43 -12
  498. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +8 -4
  499. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +9 -6
  500. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +10 -4
  501. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +6 -4
  502. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +12 -7
  503. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +17 -7
  504. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +7 -4
  505. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +10 -7
  506. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +10 -4
  507. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +6 -4
  508. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +27 -15
  509. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +16 -10
  510. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +6 -4
  511. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +8 -5
  512. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +10 -4
  513. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +6 -4
  514. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +32 -25
  515. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +25 -15
  516. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +7 -4
  517. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +5 -6
  518. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +3 -2
  519. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +5 -5
  520. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +26 -17
  521. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +22 -12
  522. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +7 -4
  523. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +30 -27
  524. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +20 -14
  525. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +6 -4
  526. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +513 -405
  527. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +218 -151
  528. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +21 -4
  529. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +5 -4
  530. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +7 -1
  531. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +6 -4
  532. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +24 -11
  533. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +33 -11
  534. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +10 -4
  535. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +103 -83
  536. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +54 -40
  537. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +8 -4
  538. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +444 -0
  539. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +135 -0
  540. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +38 -0
  541. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +72 -29
  542. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +34 -18
  543. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +7 -4
  544. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +63 -46
  545. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +29 -19
  546. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +7 -4
  547. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +16 -11
  548. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +19 -9
  549. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +7 -4
  550. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +604 -395
  551. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +303 -215
  552. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +26 -4
  553. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +8 -5
  554. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +10 -4
  555. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +6 -4
  556. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +83 -10
  557. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +28 -11
  558. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +6 -4
  559. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +34 -17
  560. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +40 -18
  561. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +10 -4
  562. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +6 -5
  563. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +7 -1
  564. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +6 -4
  565. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +45 -34
  566. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +22 -16
  567. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +6 -4
  568. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +8 -5
  569. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +10 -4
  570. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +6 -4
  571. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +105 -0
  572. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +51 -0
  573. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +32 -0
  574. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -4
  575. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +3 -1
  576. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +5 -4
  577. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +247 -108
  578. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +109 -63
  579. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +14 -4
  580. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +25 -12
  581. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +27 -13
  582. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +8 -4
  583. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +264 -113
  584. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +119 -80
  585. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +12 -4
  586. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +51 -13
  587. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +23 -11
  588. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +7 -4
  589. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +82 -44
  590. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +49 -31
  591. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +9 -4
  592. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +5 -4
  593. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +7 -1
  594. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +6 -4
  595. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +476 -163
  596. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +179 -96
  597. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +21 -4
  598. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +24 -14
  599. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +20 -10
  600. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +7 -4
  601. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +127 -85
  602. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +73 -51
  603. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +10 -4
  604. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +17 -14
  605. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +13 -7
  606. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +6 -4
  607. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +16 -6
  608. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +26 -8
  609. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +9 -4
  610. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +142 -0
  611. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +55 -0
  612. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +32 -0
  613. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -6
  614. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +16 -7
  615. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +6 -4
  616. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +10 -9
  617. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +23 -1
  618. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +10 -4
  619. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +22 -14
  620. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +17 -7
  621. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +7 -4
  622. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +13 -5
  623. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +11 -5
  624. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +6 -4
  625. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +9 -6
  626. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +10 -4
  627. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +6 -4
  628. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +8 -5
  629. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +10 -4
  630. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +6 -4
  631. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +23 -16
  632. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +27 -13
  633. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +8 -4
  634. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +5 -4
  635. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +11 -1
  636. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +7 -4
  637. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +51 -10
  638. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +30 -9
  639. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +7 -4
  640. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +14 -6
  641. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +15 -5
  642. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +7 -4
  643. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +30 -12
  644. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +32 -14
  645. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +9 -4
  646. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +24 -10
  647. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +40 -10
  648. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +12 -4
  649. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +41 -28
  650. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +37 -15
  651. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +10 -4
  652. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +12 -7
  653. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +19 -5
  654. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +8 -4
  655. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +5 -4
  656. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +3 -1
  657. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +5 -4
  658. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +6 -5
  659. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +7 -1
  660. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +6 -4
  661. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +8 -7
  662. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +11 -1
  663. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +7 -4
  664. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +11 -10
  665. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +15 -1
  666. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +8 -4
  667. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +14 -9
  668. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +15 -5
  669. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +7 -4
  670. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +5 -4
  671. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +3 -1
  672. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +5 -4
  673. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +8 -7
  674. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +7 -1
  675. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +6 -4
  676. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +12 -7
  677. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +11 -5
  678. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +6 -4
  679. data/src/core/ext/upb-gen/google/api/annotations.upb.h +17 -7
  680. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +5 -2
  681. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +5 -4
  682. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +213 -118
  683. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +139 -74
  684. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +18 -4
  685. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +576 -123
  686. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +213 -79
  687. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +23 -4
  688. data/src/core/ext/upb-gen/google/api/http.upb.h +81 -67
  689. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +44 -30
  690. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +8 -4
  691. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +12 -6
  692. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +10 -4
  693. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +6 -4
  694. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +8 -6
  695. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +7 -1
  696. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +6 -4
  697. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +873 -445
  698. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +465 -292
  699. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +57 -21
  700. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +8 -6
  701. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +7 -1
  702. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +6 -4
  703. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +6 -4
  704. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +7 -1
  705. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +6 -4
  706. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +40 -19
  707. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +32 -14
  708. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +9 -4
  709. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +8 -6
  710. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +7 -1
  711. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +6 -4
  712. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +15 -13
  713. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +39 -1
  714. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +14 -4
  715. data/src/core/ext/upb-gen/google/rpc/status.upb.h +12 -6
  716. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +10 -4
  717. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +6 -4
  718. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +27 -19
  719. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +15 -5
  720. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +7 -4
  721. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +205 -149
  722. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +112 -62
  723. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +17 -4
  724. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +14 -8
  725. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +15 -5
  726. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +7 -4
  727. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +8 -6
  728. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +11 -1
  729. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +7 -4
  730. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +53 -28
  731. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +62 -24
  732. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +14 -4
  733. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +36 -29
  734. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +21 -7
  735. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +8 -4
  736. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +140 -89
  737. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +77 -39
  738. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +14 -4
  739. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +69 -23
  740. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +31 -12
  741. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +8 -4
  742. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +19 -9
  743. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +13 -6
  744. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +6 -4
  745. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +6 -5
  746. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +4 -1
  747. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +5 -4
  748. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +19 -9
  749. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +13 -6
  750. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +6 -4
  751. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +18 -8
  752. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +13 -6
  753. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +6 -4
  754. data/src/core/ext/upb-gen/validate/validate.upb.h +632 -540
  755. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +302 -204
  756. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +29 -5
  757. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +69 -23
  758. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +31 -12
  759. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +8 -4
  760. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +19 -9
  761. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +13 -6
  762. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +6 -4
  763. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +6 -5
  764. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +4 -1
  765. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +5 -4
  766. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +46 -18
  767. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +32 -11
  768. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +9 -4
  769. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +18 -8
  770. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +13 -6
  771. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +6 -4
  772. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +6 -5
  773. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +7 -1
  774. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +6 -4
  775. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +9 -6
  776. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +10 -4
  777. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +6 -4
  778. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +16 -9
  779. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +18 -8
  780. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +7 -4
  781. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +19 -13
  782. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +14 -4
  783. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +7 -4
  784. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +9 -6
  785. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +10 -4
  786. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +6 -4
  787. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +19 -14
  788. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +14 -8
  789. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +6 -4
  790. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +33 -23
  791. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +20 -10
  792. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +7 -4
  793. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +11 -8
  794. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +10 -4
  795. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +6 -4
  796. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +53 -37
  797. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +24 -6
  798. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +9 -4
  799. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +8 -5
  800. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +10 -4
  801. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +6 -4
  802. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +16 -13
  803. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +13 -7
  804. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +6 -4
  805. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +13 -5
  806. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +17 -7
  807. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +7 -4
  808. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +5 -4
  809. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +7 -1
  810. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +6 -4
  811. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +22 -9
  812. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +19 -9
  813. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +7 -4
  814. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +101 -44
  815. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +88 -46
  816. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +15 -4
  817. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +44 -7
  818. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +48 -22
  819. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +11 -4
  820. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +9 -6
  821. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +14 -4
  822. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +7 -4
  823. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +18 -10
  824. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +17 -7
  825. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +7 -4
  826. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +17 -8
  827. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +19 -9
  828. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +7 -4
  829. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +12 -10
  830. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +15 -1
  831. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +8 -4
  832. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +9 -6
  833. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +10 -4
  834. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +6 -4
  835. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +2 -1
  836. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -4
  837. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +2 -1
  838. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -4
  839. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +2 -1
  840. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -4
  841. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +13 -11
  842. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -4
  843. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +2 -1
  844. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -4
  845. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +2 -1
  846. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -4
  847. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +2 -1
  848. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -4
  849. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +2 -1
  850. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -4
  851. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +2 -1
  852. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -4
  853. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +90 -82
  854. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -4
  855. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +2 -1
  856. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -4
  857. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +2 -1
  858. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -4
  859. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +2 -1
  860. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -4
  861. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +63 -61
  862. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -4
  863. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +223 -211
  864. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +10 -4
  865. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -1
  866. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -4
  867. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +419 -393
  868. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +10 -4
  869. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +2 -1
  870. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -4
  871. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +116 -106
  872. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -4
  873. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +2 -1
  874. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -4
  875. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +2 -1
  876. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -4
  877. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +2 -1
  878. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -4
  879. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +201 -147
  880. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +35 -4
  881. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +12 -12
  882. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -4
  883. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +2 -1
  884. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -4
  885. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +2 -1
  886. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -4
  887. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +2 -1
  888. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -4
  889. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +175 -165
  890. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -4
  891. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +199 -188
  892. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -4
  893. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +2 -1
  894. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -4
  895. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +2 -1
  896. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -4
  897. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +272 -255
  898. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -4
  899. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -1
  900. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -4
  901. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +2 -1
  902. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -4
  903. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  904. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  905. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +31 -20
  906. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +20 -4
  907. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -1
  908. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -4
  909. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -1
  910. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -4
  911. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -1
  912. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -4
  913. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +41 -37
  914. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -4
  915. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +124 -94
  916. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +10 -4
  917. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +2 -1
  918. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -4
  919. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +43 -40
  920. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -4
  921. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +60 -66
  922. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -9
  923. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +75 -56
  924. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -4
  925. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -1
  926. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -4
  927. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +2 -1
  928. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -4
  929. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +2 -1
  930. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -4
  931. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +51 -49
  932. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -4
  933. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +119 -97
  934. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +10 -4
  935. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +2 -1
  936. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -4
  937. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +922 -895
  938. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +15 -4
  939. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +2 -1
  940. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -4
  941. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +2 -1
  942. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -4
  943. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +32 -21
  944. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +10 -4
  945. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +20 -18
  946. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -4
  947. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -1
  948. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -4
  949. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +2 -1
  950. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -4
  951. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +2 -1
  952. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -4
  953. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +2 -1
  954. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -4
  955. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +2 -1
  956. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -4
  957. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +17 -19
  958. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -4
  959. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +2 -1
  960. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -4
  961. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +23 -21
  962. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -4
  963. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +147 -143
  964. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -4
  965. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -1
  966. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -4
  967. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -1
  968. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -4
  969. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -1
  970. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -4
  971. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +87 -0
  972. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +48 -0
  973. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +38 -34
  974. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -4
  975. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -1
  976. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -4
  977. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +2 -1
  978. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -4
  979. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +465 -459
  980. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -4
  981. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +2 -1
  982. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -4
  983. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +50 -0
  984. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +33 -0
  985. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -1
  986. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -4
  987. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +96 -88
  988. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +10 -4
  989. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -1
  990. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -4
  991. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +204 -192
  992. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -4
  993. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +21 -18
  994. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -4
  995. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +2 -1
  996. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -4
  997. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +2 -1
  998. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -4
  999. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +150 -136
  1000. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +10 -4
  1001. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -1
  1002. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -4
  1003. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +25 -23
  1004. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -4
  1005. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +2 -1
  1006. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -4
  1007. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +2 -1
  1008. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -4
  1009. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +41 -0
  1010. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +33 -0
  1011. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +28 -20
  1012. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -4
  1013. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  1014. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  1015. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +2 -1
  1016. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -4
  1017. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +2 -1
  1018. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -4
  1019. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +2 -1
  1020. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -4
  1021. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +2 -1
  1022. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -4
  1023. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +2 -1
  1024. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -4
  1025. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +2 -1
  1026. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -4
  1027. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +41 -34
  1028. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -4
  1029. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +2 -1
  1030. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -4
  1031. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +2 -1
  1032. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -4
  1033. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +2 -1
  1034. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -4
  1035. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -1
  1036. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -4
  1037. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +2 -1
  1038. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -4
  1039. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +2 -1
  1040. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -4
  1041. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +2 -1
  1042. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -4
  1043. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +2 -1
  1044. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -4
  1045. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +2 -1
  1046. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -4
  1047. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +2 -1
  1048. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -4
  1049. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +2 -1
  1050. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -4
  1051. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +2 -1
  1052. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -4
  1053. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +2 -1
  1054. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -4
  1055. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +2 -1
  1056. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -4
  1057. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +110 -108
  1058. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -4
  1059. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +103 -79
  1060. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +15 -4
  1061. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +2 -1
  1062. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -4
  1063. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +2 -1
  1064. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -4
  1065. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +2 -1
  1066. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -4
  1067. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +496 -458
  1068. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -4
  1069. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +2 -1
  1070. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -4
  1071. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +2 -1
  1072. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -4
  1073. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +2 -1
  1074. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -4
  1075. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +2 -1
  1076. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -4
  1077. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +2 -1
  1078. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -4
  1079. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +2 -1
  1080. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -4
  1081. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +2 -1
  1082. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -4
  1083. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +2 -1
  1084. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -4
  1085. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +2 -1
  1086. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -4
  1087. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +2 -1
  1088. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -4
  1089. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +2 -1
  1090. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -4
  1091. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +2 -1
  1092. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -4
  1093. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +2 -1
  1094. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -4
  1095. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +2 -1
  1096. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -4
  1097. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +2 -1
  1098. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -4
  1099. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +2 -1
  1100. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -4
  1101. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +2 -1
  1102. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -4
  1103. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +2 -1
  1104. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -4
  1105. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +2 -1
  1106. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -4
  1107. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +2 -1
  1108. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -4
  1109. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +2 -1
  1110. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -4
  1111. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +2 -1
  1112. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -4
  1113. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +2 -1
  1114. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -4
  1115. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +2 -1
  1116. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -4
  1117. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +2 -1
  1118. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -4
  1119. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +2 -1
  1120. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -4
  1121. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +2 -1
  1122. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -4
  1123. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +2 -1
  1124. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -4
  1125. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  1126. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  1127. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +2 -1
  1128. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -4
  1129. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +2 -1
  1130. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -4
  1131. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +2 -1
  1132. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -4
  1133. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +2 -1
  1134. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -4
  1135. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +2 -1
  1136. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -4
  1137. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +2 -1
  1138. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -4
  1139. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +2 -1
  1140. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -4
  1141. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +2 -1
  1142. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -4
  1143. data/src/core/filter/auth/auth_filters.h +233 -0
  1144. data/src/core/filter/auth/client_auth_filter.cc +310 -0
  1145. data/src/core/filter/auth/server_auth_filter.cc +208 -0
  1146. data/src/core/filter/blackboard.cc +33 -0
  1147. data/src/core/filter/blackboard.h +70 -0
  1148. data/src/core/filter/filter_args.h +112 -0
  1149. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +81 -0
  1150. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h +37 -0
  1151. data/src/core/handshaker/handshaker.cc +188 -0
  1152. data/src/core/handshaker/handshaker.h +170 -0
  1153. data/src/core/handshaker/handshaker_factory.h +89 -0
  1154. data/src/core/handshaker/handshaker_registry.cc +60 -0
  1155. data/src/core/handshaker/handshaker_registry.h +69 -0
  1156. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +357 -0
  1157. data/src/core/handshaker/http_connect/http_connect_handshaker.h +42 -0
  1158. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +296 -0
  1159. data/src/core/handshaker/http_connect/http_proxy_mapper.h +52 -0
  1160. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +57 -0
  1161. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +46 -0
  1162. data/src/core/handshaker/proxy_mapper.h +52 -0
  1163. data/src/core/handshaker/proxy_mapper_registry.cc +70 -0
  1164. data/src/core/handshaker/proxy_mapper_registry.h +74 -0
  1165. data/src/core/handshaker/security/secure_endpoint.cc +578 -0
  1166. data/src/core/handshaker/security/secure_endpoint.h +41 -0
  1167. data/src/core/handshaker/security/security_handshaker.cc +626 -0
  1168. data/src/core/handshaker/security/security_handshaker.h +45 -0
  1169. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +232 -0
  1170. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.h +39 -0
  1171. data/src/core/lib/address_utils/parse_address.cc +33 -44
  1172. data/src/core/lib/address_utils/parse_address.h +1 -3
  1173. data/src/core/lib/address_utils/sockaddr_utils.cc +22 -19
  1174. data/src/core/lib/address_utils/sockaddr_utils.h +0 -2
  1175. data/src/core/lib/channel/channel_args.cc +33 -39
  1176. data/src/core/lib/channel/channel_args.h +91 -59
  1177. data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
  1178. data/src/core/lib/channel/channel_args_preconditioning.h +2 -3
  1179. data/src/core/lib/channel/channel_stack.cc +19 -81
  1180. data/src/core/lib/channel/channel_stack.h +28 -65
  1181. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  1182. data/src/core/lib/channel/channel_stack_builder.h +1 -7
  1183. data/src/core/lib/channel/channel_stack_builder_impl.cc +6 -158
  1184. data/src/core/lib/channel/channel_stack_builder_impl.h +13 -3
  1185. data/src/core/lib/channel/connected_channel.cc +52 -709
  1186. data/src/core/lib/channel/promise_based_filter.cc +258 -333
  1187. data/src/core/lib/channel/promise_based_filter.h +268 -638
  1188. data/src/core/lib/compression/compression.cc +9 -11
  1189. data/src/core/lib/compression/compression_internal.cc +16 -19
  1190. data/src/core/lib/compression/compression_internal.h +5 -8
  1191. data/src/core/lib/compression/message_compress.cc +16 -18
  1192. data/src/core/lib/compression/message_compress.h +1 -2
  1193. data/src/core/lib/debug/trace.cc +48 -67
  1194. data/src/core/lib/debug/trace.h +2 -97
  1195. data/src/core/lib/debug/trace_flags.cc +243 -0
  1196. data/src/core/lib/debug/trace_flags.h +131 -0
  1197. data/src/core/lib/debug/trace_impl.h +125 -0
  1198. data/src/core/lib/event_engine/ares_resolver.cc +171 -100
  1199. data/src/core/lib/event_engine/ares_resolver.h +17 -28
  1200. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +16 -19
  1201. data/src/core/lib/event_engine/cf_engine/cf_engine.h +3 -5
  1202. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +53 -41
  1203. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +6 -10
  1204. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +3 -5
  1205. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +29 -36
  1206. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +7 -10
  1207. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +8 -12
  1208. data/src/core/lib/event_engine/channel_args_endpoint_config.h +7 -10
  1209. data/src/core/lib/event_engine/common_closures.h +3 -6
  1210. data/src/core/lib/event_engine/default_event_engine.cc +69 -43
  1211. data/src/core/lib/event_engine/default_event_engine.h +27 -37
  1212. data/src/core/lib/event_engine/default_event_engine_factory.cc +15 -22
  1213. data/src/core/lib/event_engine/default_event_engine_factory.h +4 -7
  1214. data/src/core/lib/event_engine/event_engine.cc +37 -9
  1215. data/src/core/lib/event_engine/event_engine_context.h +5 -4
  1216. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -4
  1217. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -5
  1218. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  1219. data/src/core/lib/event_engine/extensions/supports_fd.h +27 -6
  1220. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  1221. data/src/core/lib/event_engine/extensions/tcp_trace.h +40 -0
  1222. data/src/core/lib/event_engine/forkable.cc +14 -17
  1223. data/src/core/lib/event_engine/forkable.h +2 -17
  1224. data/src/core/lib/event_engine/grpc_polled_fd.h +4 -8
  1225. data/src/core/lib/event_engine/handle_containers.h +3 -7
  1226. data/src/core/lib/event_engine/memory_allocator_factory.h +3 -7
  1227. data/src/core/lib/event_engine/nameser.h +1 -1
  1228. data/src/core/lib/event_engine/poller.h +3 -6
  1229. data/src/core/lib/event_engine/posix.h +3 -6
  1230. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +32 -80
  1231. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +8 -12
  1232. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +31 -82
  1233. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +4 -8
  1234. data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -7
  1235. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +4 -7
  1236. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -4
  1237. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +5 -10
  1238. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +7 -10
  1239. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -5
  1240. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +9 -13
  1241. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -5
  1242. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +5 -8
  1243. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -5
  1244. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +116 -115
  1245. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +24 -27
  1246. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +94 -74
  1247. data/src/core/lib/event_engine/posix_engine/posix_engine.h +18 -19
  1248. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -6
  1249. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +30 -35
  1250. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +15 -17
  1251. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +55 -37
  1252. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +7 -7
  1253. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  1254. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +43 -49
  1255. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +12 -14
  1256. data/src/core/lib/event_engine/posix_engine/timer.cc +9 -12
  1257. data/src/core/lib/event_engine/posix_engine/timer.h +8 -13
  1258. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +4 -7
  1259. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -4
  1260. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +21 -32
  1261. data/src/core/lib/event_engine/posix_engine/timer_manager.h +8 -13
  1262. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +11 -18
  1263. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -30
  1264. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +5 -8
  1265. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -5
  1266. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +14 -9
  1267. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -5
  1268. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -4
  1269. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -5
  1270. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -4
  1271. data/src/core/lib/event_engine/query_extensions.h +5 -6
  1272. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +4 -9
  1273. data/src/core/lib/event_engine/resolved_address.cc +10 -11
  1274. data/src/core/lib/event_engine/resolved_address_internal.h +3 -6
  1275. data/src/core/lib/event_engine/shim.cc +13 -22
  1276. data/src/core/lib/event_engine/shim.h +13 -4
  1277. data/src/core/lib/event_engine/slice.cc +7 -11
  1278. data/src/core/lib/event_engine/slice_buffer.cc +4 -8
  1279. data/src/core/lib/event_engine/tcp_socket_utils.cc +27 -34
  1280. data/src/core/lib/event_engine/tcp_socket_utils.h +6 -9
  1281. data/src/core/lib/event_engine/thread_local.cc +4 -6
  1282. data/src/core/lib/event_engine/thread_local.h +3 -5
  1283. data/src/core/lib/event_engine/thread_pool/thread_count.cc +7 -12
  1284. data/src/core/lib/event_engine/thread_pool/thread_count.h +8 -24
  1285. data/src/core/lib/event_engine/thread_pool/thread_pool.h +3 -8
  1286. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +3 -6
  1287. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +63 -64
  1288. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +13 -20
  1289. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +52 -27
  1290. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +9 -11
  1291. data/src/core/lib/event_engine/time_util.cc +5 -8
  1292. data/src/core/lib/event_engine/time_util.h +3 -7
  1293. data/src/core/lib/event_engine/utils.cc +21 -10
  1294. data/src/core/lib/event_engine/utils.h +11 -8
  1295. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +160 -136
  1296. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +6 -10
  1297. data/src/core/lib/event_engine/windows/iocp.cc +26 -26
  1298. data/src/core/lib/event_engine/windows/iocp.h +4 -7
  1299. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +6 -10
  1300. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +2 -4
  1301. data/src/core/lib/event_engine/windows/win_socket.cc +60 -40
  1302. data/src/core/lib/event_engine/windows/win_socket.h +13 -14
  1303. data/src/core/lib/event_engine/windows/windows_endpoint.cc +65 -58
  1304. data/src/core/lib/event_engine/windows/windows_endpoint.h +4 -6
  1305. data/src/core/lib/event_engine/windows/windows_engine.cc +290 -140
  1306. data/src/core/lib/event_engine/windows/windows_engine.h +153 -39
  1307. data/src/core/lib/event_engine/windows/windows_listener.cc +34 -51
  1308. data/src/core/lib/event_engine/windows/windows_listener.h +15 -13
  1309. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +5 -7
  1310. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +4 -9
  1311. data/src/core/lib/event_engine/work_queue/work_queue.h +3 -7
  1312. data/src/core/lib/experiments/config.cc +59 -32
  1313. data/src/core/lib/experiments/config.h +55 -2
  1314. data/src/core/lib/experiments/experiments.cc +470 -360
  1315. data/src/core/lib/experiments/experiments.h +210 -147
  1316. data/src/core/lib/iomgr/buffer_list.cc +7 -8
  1317. data/src/core/lib/iomgr/buffer_list.h +23 -24
  1318. data/src/core/lib/iomgr/call_combiner.cc +42 -68
  1319. data/src/core/lib/iomgr/call_combiner.h +12 -17
  1320. data/src/core/lib/iomgr/cfstream_handle.cc +14 -22
  1321. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  1322. data/src/core/lib/iomgr/closure.cc +2 -2
  1323. data/src/core/lib/iomgr/closure.h +15 -22
  1324. data/src/core/lib/iomgr/combiner.cc +38 -53
  1325. data/src/core/lib/iomgr/combiner.h +2 -6
  1326. data/src/core/lib/iomgr/endpoint.cc +1 -7
  1327. data/src/core/lib/iomgr/endpoint.h +4 -6
  1328. data/src/core/lib/iomgr/endpoint_cfstream.cc +45 -76
  1329. data/src/core/lib/iomgr/endpoint_pair_posix.cc +50 -25
  1330. data/src/core/lib/iomgr/endpoint_pair_windows.cc +56 -22
  1331. data/src/core/lib/iomgr/error.cc +52 -78
  1332. data/src/core/lib/iomgr/error.h +8 -11
  1333. data/src/core/lib/iomgr/error_cfstream.cc +1 -3
  1334. data/src/core/lib/iomgr/ev_apple.cc +16 -24
  1335. data/src/core/lib/iomgr/ev_epoll1_linux.cc +94 -127
  1336. data/src/core/lib/iomgr/ev_poll_posix.cc +75 -62
  1337. data/src/core/lib/iomgr/ev_posix.cc +68 -60
  1338. data/src/core/lib/iomgr/ev_posix.h +9 -12
  1339. data/src/core/lib/iomgr/event_engine_shims/closure.cc +11 -16
  1340. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -3
  1341. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +36 -56
  1342. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
  1343. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +10 -16
  1344. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
  1345. data/src/core/lib/iomgr/exec_ctx.cc +15 -25
  1346. data/src/core/lib/iomgr/exec_ctx.h +21 -142
  1347. data/src/core/lib/iomgr/executor.cc +60 -70
  1348. data/src/core/lib/iomgr/executor.h +2 -2
  1349. data/src/core/lib/iomgr/fork_posix.cc +11 -15
  1350. data/src/core/lib/iomgr/fork_windows.cc +3 -2
  1351. data/src/core/lib/iomgr/internal_errqueue.cc +5 -6
  1352. data/src/core/lib/iomgr/iocp_windows.cc +16 -15
  1353. data/src/core/lib/iomgr/iocp_windows.h +0 -1
  1354. data/src/core/lib/iomgr/iomgr.cc +19 -26
  1355. data/src/core/lib/iomgr/iomgr.h +0 -1
  1356. data/src/core/lib/iomgr/iomgr_internal.cc +1 -2
  1357. data/src/core/lib/iomgr/iomgr_internal.h +0 -1
  1358. data/src/core/lib/iomgr/iomgr_posix.cc +2 -1
  1359. data/src/core/lib/iomgr/iomgr_windows.cc +7 -6
  1360. data/src/core/lib/iomgr/lockfree_event.cc +12 -21
  1361. data/src/core/lib/iomgr/lockfree_event.h +1 -2
  1362. data/src/core/lib/iomgr/nameser.h +1 -1
  1363. data/src/core/lib/iomgr/polling_entity.cc +18 -17
  1364. data/src/core/lib/iomgr/pollset.cc +2 -2
  1365. data/src/core/lib/iomgr/pollset.h +0 -3
  1366. data/src/core/lib/iomgr/pollset_set.cc +2 -2
  1367. data/src/core/lib/iomgr/pollset_set_windows.cc +0 -1
  1368. data/src/core/lib/iomgr/pollset_windows.cc +2 -6
  1369. data/src/core/lib/iomgr/pollset_windows.h +0 -1
  1370. data/src/core/lib/iomgr/port.h +2 -2
  1371. data/src/core/lib/iomgr/python_util.h +1 -2
  1372. data/src/core/lib/iomgr/resolve_address.cc +4 -7
  1373. data/src/core/lib/iomgr/resolve_address.h +3 -6
  1374. data/src/core/lib/iomgr/resolve_address_impl.h +0 -1
  1375. data/src/core/lib/iomgr/resolve_address_posix.cc +12 -23
  1376. data/src/core/lib/iomgr/resolve_address_windows.cc +9 -14
  1377. data/src/core/lib/iomgr/resolved_address.h +0 -1
  1378. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +5 -6
  1379. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  1380. data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
  1381. data/src/core/lib/iomgr/socket_mutator.cc +3 -5
  1382. data/src/core/lib/iomgr/socket_mutator.h +2 -4
  1383. data/src/core/lib/iomgr/socket_utils.h +0 -1
  1384. data/src/core/lib/iomgr/socket_utils_common_posix.cc +46 -52
  1385. data/src/core/lib/iomgr/socket_utils_linux.cc +1 -3
  1386. data/src/core/lib/iomgr/socket_utils_posix.cc +23 -14
  1387. data/src/core/lib/iomgr/socket_utils_posix.h +13 -4
  1388. data/src/core/lib/iomgr/socket_utils_windows.cc +1 -3
  1389. data/src/core/lib/iomgr/socket_windows.cc +11 -14
  1390. data/src/core/lib/iomgr/socket_windows.h +1 -2
  1391. data/src/core/lib/iomgr/tcp_client.cc +2 -2
  1392. data/src/core/lib/iomgr/tcp_client.h +1 -2
  1393. data/src/core/lib/iomgr/tcp_client_cfstream.cc +20 -29
  1394. data/src/core/lib/iomgr/tcp_client_posix.cc +33 -49
  1395. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  1396. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -12
  1397. data/src/core/lib/iomgr/tcp_posix.cc +176 -217
  1398. data/src/core/lib/iomgr/tcp_posix.h +10 -4
  1399. data/src/core/lib/iomgr/tcp_server.cc +2 -2
  1400. data/src/core/lib/iomgr/tcp_server.h +3 -4
  1401. data/src/core/lib/iomgr/tcp_server_posix.cc +71 -83
  1402. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
  1403. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +14 -21
  1404. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +13 -14
  1405. data/src/core/lib/iomgr/tcp_server_windows.cc +58 -55
  1406. data/src/core/lib/iomgr/tcp_windows.cc +38 -66
  1407. data/src/core/lib/iomgr/timer.cc +2 -2
  1408. data/src/core/lib/iomgr/timer.h +2 -3
  1409. data/src/core/lib/iomgr/timer_generic.cc +73 -106
  1410. data/src/core/lib/iomgr/timer_generic.h +0 -1
  1411. data/src/core/lib/iomgr/timer_heap.cc +4 -6
  1412. data/src/core/lib/iomgr/timer_manager.cc +28 -53
  1413. data/src/core/lib/iomgr/timer_manager.h +0 -1
  1414. data/src/core/lib/iomgr/unix_sockets_posix.cc +5 -6
  1415. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -3
  1416. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -4
  1417. data/src/core/lib/iomgr/vsock.cc +5 -8
  1418. data/src/core/lib/iomgr/vsock.h +1 -3
  1419. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -4
  1420. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +16 -9
  1421. data/src/core/lib/promise/activity.cc +6 -5
  1422. data/src/core/lib/promise/activity.h +86 -34
  1423. data/src/core/lib/promise/all_ok.h +83 -9
  1424. data/src/core/lib/promise/arena_promise.h +1 -3
  1425. data/src/core/lib/promise/cancel_callback.h +34 -6
  1426. data/src/core/lib/promise/context.h +18 -9
  1427. data/src/core/lib/promise/detail/basic_seq.h +33 -20
  1428. data/src/core/lib/promise/detail/join_state.h +555 -812
  1429. data/src/core/lib/promise/detail/promise_factory.h +122 -46
  1430. data/src/core/lib/promise/detail/promise_like.h +48 -13
  1431. data/src/core/lib/promise/detail/seq_state.h +1378 -2254
  1432. data/src/core/lib/promise/detail/status.h +36 -14
  1433. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -2
  1434. data/src/core/lib/promise/for_each.h +108 -41
  1435. data/src/core/lib/promise/if.h +67 -35
  1436. data/src/core/lib/promise/interceptor_list.h +31 -45
  1437. data/src/core/lib/promise/latch.h +39 -46
  1438. data/src/core/lib/promise/loop.h +83 -27
  1439. data/src/core/lib/promise/map.h +248 -21
  1440. data/src/core/lib/promise/observable.h +181 -0
  1441. data/src/core/lib/promise/party.cc +331 -154
  1442. data/src/core/lib/promise/party.h +395 -396
  1443. data/src/core/lib/promise/pipe.h +45 -68
  1444. data/src/core/lib/promise/poll.h +124 -41
  1445. data/src/core/lib/promise/prioritized_race.h +16 -22
  1446. data/src/core/lib/promise/promise.h +14 -9
  1447. data/src/core/lib/promise/race.h +12 -15
  1448. data/src/core/lib/promise/seq.h +98 -70
  1449. data/src/core/lib/promise/sleep.cc +7 -8
  1450. data/src/core/lib/promise/sleep.h +17 -5
  1451. data/src/core/lib/promise/status_flag.h +190 -56
  1452. data/src/core/lib/promise/try_join.h +156 -25
  1453. data/src/core/lib/promise/try_seq.h +152 -89
  1454. data/src/core/lib/resource_quota/api.cc +4 -7
  1455. data/src/core/lib/resource_quota/api.h +3 -5
  1456. data/src/core/lib/resource_quota/arena.cc +64 -87
  1457. data/src/core/lib/resource_quota/arena.h +224 -210
  1458. data/src/core/lib/resource_quota/connection_quota.cc +8 -10
  1459. data/src/core/lib/resource_quota/connection_quota.h +7 -4
  1460. data/src/core/lib/resource_quota/memory_quota.cc +100 -97
  1461. data/src/core/lib/resource_quota/memory_quota.h +31 -25
  1462. data/src/core/lib/resource_quota/periodic_update.cc +5 -5
  1463. data/src/core/lib/resource_quota/periodic_update.h +1 -3
  1464. data/src/core/lib/resource_quota/resource_quota.cc +2 -2
  1465. data/src/core/lib/resource_quota/resource_quota.h +6 -8
  1466. data/src/core/lib/resource_quota/thread_quota.cc +4 -4
  1467. data/src/core/lib/resource_quota/thread_quota.h +3 -4
  1468. data/src/core/lib/security/authorization/audit_logging.cc +10 -12
  1469. data/src/core/lib/security/authorization/audit_logging.h +3 -5
  1470. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  1471. data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -7
  1472. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -4
  1473. data/src/core/lib/security/authorization/evaluate_args.cc +15 -20
  1474. data/src/core/lib/security/authorization/evaluate_args.h +5 -7
  1475. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -5
  1476. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -3
  1477. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +25 -41
  1478. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +17 -16
  1479. data/src/core/lib/security/authorization/matchers.cc +5 -8
  1480. data/src/core/lib/security/authorization/matchers.h +4 -6
  1481. data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
  1482. data/src/core/lib/security/authorization/rbac_policy.h +5 -8
  1483. data/src/core/lib/security/authorization/stdout_logger.cc +7 -7
  1484. data/src/core/lib/security/authorization/stdout_logger.h +2 -3
  1485. data/src/core/lib/slice/percent_encoding.cc +4 -6
  1486. data/src/core/lib/slice/slice.cc +13 -15
  1487. data/src/core/lib/slice/slice.h +14 -11
  1488. data/src/core/lib/slice/slice_buffer.cc +20 -21
  1489. data/src/core/lib/slice/slice_buffer.h +4 -6
  1490. data/src/core/lib/slice/slice_internal.h +4 -7
  1491. data/src/core/lib/slice/slice_refcount.h +7 -15
  1492. data/src/core/lib/slice/slice_string_helpers.cc +3 -3
  1493. data/src/core/lib/slice/slice_string_helpers.h +1 -3
  1494. data/src/core/lib/surface/byte_buffer.cc +2 -4
  1495. data/src/core/lib/surface/byte_buffer_reader.cc +5 -7
  1496. data/src/core/lib/surface/call.cc +218 -4007
  1497. data/src/core/lib/surface/call.h +180 -103
  1498. data/src/core/lib/surface/call_details.cc +5 -5
  1499. data/src/core/lib/surface/call_log_batch.cc +7 -11
  1500. data/src/core/lib/surface/call_test_only.h +2 -4
  1501. data/src/core/lib/surface/call_utils.cc +231 -0
  1502. data/src/core/lib/surface/call_utils.h +492 -0
  1503. data/src/core/lib/surface/channel.cc +53 -59
  1504. data/src/core/lib/surface/channel.h +23 -22
  1505. data/src/core/lib/surface/channel_create.cc +31 -15
  1506. data/src/core/lib/surface/channel_create.h +3 -3
  1507. data/src/core/lib/surface/channel_init.cc +274 -271
  1508. data/src/core/lib/surface/channel_init.h +180 -121
  1509. data/src/core/lib/surface/channel_stack_type.cc +2 -2
  1510. data/src/core/lib/surface/completion_queue.cc +195 -171
  1511. data/src/core/lib/surface/completion_queue.h +4 -14
  1512. data/src/core/lib/surface/completion_queue_factory.cc +8 -9
  1513. data/src/core/lib/surface/completion_queue_factory.h +1 -2
  1514. data/src/core/lib/surface/connection_context.cc +77 -0
  1515. data/src/core/lib/surface/connection_context.h +156 -0
  1516. data/src/core/lib/surface/event_string.cc +9 -3
  1517. data/src/core/lib/surface/event_string.h +1 -2
  1518. data/src/core/lib/surface/filter_stack_call.cc +1167 -0
  1519. data/src/core/lib/surface/filter_stack_call.h +366 -0
  1520. data/src/core/lib/surface/init.cc +76 -33
  1521. data/src/core/lib/surface/init.h +5 -0
  1522. data/src/core/lib/surface/init_internally.cc +2 -2
  1523. data/src/core/lib/surface/init_internally.h +13 -2
  1524. data/src/core/lib/surface/lame_client.cc +21 -27
  1525. data/src/core/lib/surface/lame_client.h +9 -13
  1526. data/src/core/lib/surface/legacy_channel.cc +89 -69
  1527. data/src/core/lib/surface/legacy_channel.h +16 -27
  1528. data/src/core/lib/surface/metadata_array.cc +6 -7
  1529. data/src/core/lib/surface/validate_metadata.cc +4 -6
  1530. data/src/core/lib/surface/validate_metadata.h +3 -6
  1531. data/src/core/lib/surface/version.cc +3 -4
  1532. data/src/core/lib/transport/bdp_estimator.cc +14 -20
  1533. data/src/core/lib/transport/bdp_estimator.h +12 -18
  1534. data/src/core/lib/transport/call_final_info.cc +2 -2
  1535. data/src/core/lib/transport/call_final_info.h +3 -4
  1536. data/src/core/lib/transport/connectivity_state.cc +44 -54
  1537. data/src/core/lib/transport/connectivity_state.h +5 -11
  1538. data/src/core/lib/transport/error_utils.cc +68 -16
  1539. data/src/core/lib/transport/error_utils.h +4 -6
  1540. data/src/core/lib/transport/status_conversion.cc +17 -15
  1541. data/src/core/lib/transport/status_conversion.h +7 -7
  1542. data/src/core/lib/transport/timeout_encoding.cc +26 -27
  1543. data/src/core/lib/transport/timeout_encoding.h +3 -4
  1544. data/src/core/lib/transport/transport.cc +7 -14
  1545. data/src/core/lib/transport/transport.h +110 -99
  1546. data/src/core/lib/transport/transport_framing_endpoint_extension.h +47 -0
  1547. data/src/core/lib/transport/transport_op_string.cc +3 -6
  1548. data/src/core/load_balancing/address_filtering.cc +2 -4
  1549. data/src/core/load_balancing/address_filtering.h +2 -3
  1550. data/src/core/load_balancing/backend_metric_parser.cc +22 -30
  1551. data/src/core/load_balancing/backend_metric_parser.h +0 -2
  1552. data/src/core/load_balancing/child_policy_handler.cc +42 -46
  1553. data/src/core/load_balancing/child_policy_handler.h +2 -3
  1554. data/src/core/load_balancing/delegating_helper.h +6 -8
  1555. data/src/core/load_balancing/endpoint_list.cc +28 -22
  1556. data/src/core/load_balancing/endpoint_list.h +39 -28
  1557. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +35 -36
  1558. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +21 -7
  1559. data/src/core/load_balancing/grpclb/grpclb.cc +202 -254
  1560. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +2 -3
  1561. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
  1562. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +3 -5
  1563. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +4 -7
  1564. data/src/core/load_balancing/grpclb/load_balancer_api.cc +7 -11
  1565. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -6
  1566. data/src/core/load_balancing/health_check_client.cc +78 -131
  1567. data/src/core/load_balancing/health_check_client.h +1 -1
  1568. data/src/core/load_balancing/health_check_client_internal.h +13 -15
  1569. data/src/core/load_balancing/lb_policy.cc +11 -16
  1570. data/src/core/load_balancing/lb_policy.h +76 -51
  1571. data/src/core/load_balancing/lb_policy_factory.h +3 -4
  1572. data/src/core/load_balancing/lb_policy_registry.cc +17 -17
  1573. data/src/core/load_balancing/lb_policy_registry.h +3 -4
  1574. data/src/core/load_balancing/oob_backend_metric.cc +22 -29
  1575. data/src/core/load_balancing/oob_backend_metric.h +1 -1
  1576. data/src/core/load_balancing/oob_backend_metric_internal.h +6 -8
  1577. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +193 -249
  1578. data/src/core/load_balancing/outlier_detection/outlier_detection.h +8 -9
  1579. data/src/core/load_balancing/pick_first/pick_first.cc +434 -452
  1580. data/src/core/load_balancing/priority/priority.cc +115 -159
  1581. data/src/core/load_balancing/ring_hash/ring_hash.cc +285 -240
  1582. data/src/core/load_balancing/ring_hash/ring_hash.h +9 -17
  1583. data/src/core/load_balancing/rls/rls.cc +483 -576
  1584. data/src/core/load_balancing/rls/rls.h +97 -1
  1585. data/src/core/load_balancing/round_robin/round_robin.cc +93 -114
  1586. data/src/core/load_balancing/subchannel_interface.h +15 -5
  1587. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +11 -12
  1588. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +3 -4
  1589. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +180 -196
  1590. data/src/core/load_balancing/weighted_target/weighted_target.cc +87 -131
  1591. data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
  1592. data/src/core/load_balancing/xds/cds.cc +75 -103
  1593. data/src/core/load_balancing/xds/xds_cluster_impl.cc +202 -180
  1594. data/src/core/load_balancing/xds/xds_cluster_manager.cc +63 -104
  1595. data/src/core/load_balancing/xds/xds_override_host.cc +168 -277
  1596. data/src/core/load_balancing/xds/xds_override_host.h +5 -6
  1597. data/src/core/load_balancing/xds/xds_wrr_locality.cc +46 -59
  1598. data/src/core/plugin_registry/grpc_plugin_registry.cc +14 -17
  1599. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +7 -5
  1600. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +101 -79
  1601. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -2
  1602. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -5
  1603. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +6 -9
  1604. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +153 -134
  1605. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +176 -161
  1606. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +7 -18
  1607. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
  1608. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  1609. data/src/core/resolver/dns/dns_resolver_plugin.cc +11 -13
  1610. data/src/core/resolver/dns/dns_resolver_plugin.h +1 -1
  1611. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +66 -78
  1612. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +2 -3
  1613. data/src/core/resolver/dns/event_engine/service_config_helper.cc +8 -10
  1614. data/src/core/resolver/dns/native/dns_resolver.cc +22 -32
  1615. data/src/core/resolver/dns/native/dns_resolver.h +1 -1
  1616. data/src/core/resolver/endpoint_addresses.cc +5 -8
  1617. data/src/core/resolver/endpoint_addresses.h +3 -1
  1618. data/src/core/resolver/fake/fake_resolver.cc +20 -23
  1619. data/src/core/resolver/fake/fake_resolver.h +8 -10
  1620. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -43
  1621. data/src/core/resolver/polling_resolver.cc +44 -63
  1622. data/src/core/resolver/polling_resolver.h +9 -11
  1623. data/src/core/resolver/resolver.cc +3 -7
  1624. data/src/core/resolver/resolver.h +2 -8
  1625. data/src/core/resolver/resolver_factory.h +2 -3
  1626. data/src/core/resolver/resolver_registry.cc +14 -15
  1627. data/src/core/resolver/resolver_registry.h +2 -3
  1628. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +6 -8
  1629. data/src/core/resolver/xds/xds_config.cc +95 -0
  1630. data/src/core/resolver/xds/xds_config.h +108 -0
  1631. data/src/core/resolver/xds/xds_dependency_manager.cc +268 -344
  1632. data/src/core/resolver/xds/xds_dependency_manager.h +39 -94
  1633. data/src/core/resolver/xds/xds_resolver.cc +205 -232
  1634. data/src/core/resolver/xds/xds_resolver_attributes.h +6 -3
  1635. data/src/core/server/server.cc +2192 -0
  1636. data/src/core/server/server.h +718 -0
  1637. data/src/core/server/server_call_tracer_filter.cc +113 -0
  1638. data/src/core/server/server_call_tracer_filter.h +28 -0
  1639. data/src/core/server/server_config_selector.h +82 -0
  1640. data/src/core/server/server_config_selector_filter.cc +168 -0
  1641. data/src/core/server/server_config_selector_filter.h +33 -0
  1642. data/src/core/server/server_interface.h +45 -0
  1643. data/src/core/server/xds_channel_stack_modifier.cc +107 -0
  1644. data/src/core/server/xds_channel_stack_modifier.h +62 -0
  1645. data/src/core/server/xds_server_config_fetcher.cc +1318 -0
  1646. data/src/core/service_config/service_config.h +3 -6
  1647. data/src/core/service_config/service_config_call_data.h +20 -19
  1648. data/src/core/service_config/service_config_channel_arg_filter.cc +24 -33
  1649. data/src/core/service_config/service_config_impl.cc +12 -14
  1650. data/src/core/service_config/service_config_impl.h +6 -9
  1651. data/src/core/service_config/service_config_parser.cc +4 -9
  1652. data/src/core/service_config/service_config_parser.h +2 -4
  1653. data/src/core/telemetry/call_tracer.cc +384 -0
  1654. data/src/core/telemetry/call_tracer.h +264 -0
  1655. data/src/core/telemetry/histogram_view.cc +69 -0
  1656. data/src/core/telemetry/histogram_view.h +36 -0
  1657. data/src/core/telemetry/metrics.cc +198 -0
  1658. data/src/core/telemetry/metrics.h +575 -0
  1659. data/src/core/telemetry/stats.cc +67 -0
  1660. data/src/core/telemetry/stats.h +62 -0
  1661. data/src/core/telemetry/stats_data.cc +1004 -0
  1662. data/src/core/telemetry/stats_data.h +747 -0
  1663. data/src/core/telemetry/tcp_tracer.h +149 -0
  1664. data/src/core/transport/auth_context.cc +236 -0
  1665. data/src/core/transport/auth_context.h +140 -0
  1666. data/src/core/tsi/alts/crypt/aes_gcm.cc +4 -8
  1667. data/src/core/tsi/alts/crypt/gsec.cc +2 -4
  1668. data/src/core/tsi/alts/crypt/gsec.h +3 -5
  1669. data/src/core/tsi/alts/frame_protector/alts_counter.cc +2 -4
  1670. data/src/core/tsi/alts/frame_protector/alts_counter.h +2 -4
  1671. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +2 -4
  1672. data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -3
  1673. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +16 -19
  1674. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +0 -1
  1675. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
  1676. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
  1677. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +2 -3
  1678. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +2 -3
  1679. data/src/core/tsi/alts/frame_protector/frame_handler.cc +11 -13
  1680. data/src/core/tsi/alts/frame_protector/frame_handler.h +0 -1
  1681. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +80 -84
  1682. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
  1683. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -6
  1684. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +2 -3
  1685. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +90 -90
  1686. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -3
  1687. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +6 -5
  1688. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
  1689. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +17 -24
  1690. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +4 -6
  1691. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +17 -19
  1692. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +0 -1
  1693. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +12 -14
  1694. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +0 -1
  1695. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
  1696. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -14
  1697. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +3 -6
  1698. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +0 -1
  1699. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +13 -16
  1700. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +0 -1
  1701. data/src/core/tsi/fake_transport_security.cc +36 -34
  1702. data/src/core/tsi/local_transport_security.cc +9 -11
  1703. data/src/core/tsi/local_transport_security.h +1 -2
  1704. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +13 -15
  1705. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +7 -10
  1706. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -5
  1707. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -17
  1708. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +8 -10
  1709. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -7
  1710. data/src/core/tsi/ssl_transport_security.cc +155 -132
  1711. data/src/core/tsi/ssl_transport_security.h +5 -8
  1712. data/src/core/tsi/ssl_transport_security_utils.cc +86 -32
  1713. data/src/core/tsi/ssl_transport_security_utils.h +13 -5
  1714. data/src/core/tsi/ssl_types.h +0 -1
  1715. data/src/core/tsi/transport_security.cc +3 -9
  1716. data/src/core/tsi/transport_security.h +0 -3
  1717. data/src/core/tsi/transport_security_grpc.cc +2 -2
  1718. data/src/core/tsi/transport_security_grpc.h +1 -2
  1719. data/src/core/tsi/transport_security_interface.h +2 -7
  1720. data/src/core/util/alloc.cc +69 -0
  1721. data/src/core/util/alloc.h +28 -0
  1722. data/src/core/util/atomic_utils.h +47 -0
  1723. data/src/core/util/avl.h +324 -0
  1724. data/src/core/util/backoff.cc +57 -0
  1725. data/src/core/util/backoff.h +86 -0
  1726. data/src/core/util/bitset.h +224 -0
  1727. data/src/core/util/check_class_size.h +48 -0
  1728. data/src/core/util/chunked_vector.h +256 -0
  1729. data/src/core/util/construct_destruct.h +41 -0
  1730. data/src/core/util/cpp_impl_of.h +49 -0
  1731. data/src/core/util/crash.cc +40 -0
  1732. data/src/core/util/crash.h +36 -0
  1733. data/src/core/util/debug_location.h +106 -0
  1734. data/src/core/util/directory_reader.h +48 -0
  1735. data/src/core/util/down_cast.h +48 -0
  1736. data/src/core/util/dual_ref_counted.h +376 -0
  1737. data/src/core/util/dump_args.cc +54 -0
  1738. data/src/core/util/dump_args.h +114 -0
  1739. data/src/core/util/env.h +52 -0
  1740. data/src/core/util/event_log.cc +87 -0
  1741. data/src/core/util/event_log.h +79 -0
  1742. data/src/core/util/examine_stack.cc +43 -0
  1743. data/src/core/util/examine_stack.h +44 -0
  1744. data/src/core/util/fork.cc +241 -0
  1745. data/src/core/util/fork.h +98 -0
  1746. data/src/core/util/gcp_metadata_query.cc +132 -0
  1747. data/src/core/util/gcp_metadata_query.h +86 -0
  1748. data/src/core/util/gethostname.h +26 -0
  1749. data/src/core/util/gethostname_fallback.cc +30 -0
  1750. data/src/core/util/gethostname_host_name_max.cc +39 -0
  1751. data/src/core/util/gethostname_sysconf.cc +39 -0
  1752. data/src/core/util/glob.cc +70 -0
  1753. data/src/core/util/glob.h +29 -0
  1754. data/src/core/util/gpr_time.cc +266 -0
  1755. data/src/core/util/grpc_if_nametoindex.h +29 -0
  1756. data/src/core/util/grpc_if_nametoindex_posix.cc +41 -0
  1757. data/src/core/util/grpc_if_nametoindex_unsupported.cc +36 -0
  1758. data/src/core/util/host_port.cc +114 -0
  1759. data/src/core/util/host_port.h +57 -0
  1760. data/src/core/util/http_client/format_request.cc +134 -0
  1761. data/src/core/util/http_client/format_request.h +37 -0
  1762. data/src/core/util/http_client/httpcli.cc +427 -0
  1763. data/src/core/util/http_client/httpcli.h +279 -0
  1764. data/src/core/util/http_client/httpcli_security_connector.cc +210 -0
  1765. data/src/core/util/http_client/httpcli_ssl_credentials.h +38 -0
  1766. data/src/core/util/http_client/parser.cc +447 -0
  1767. data/src/core/util/http_client/parser.h +126 -0
  1768. data/src/core/util/if_list.h +4530 -0
  1769. data/src/core/util/iphone/cpu.cc +43 -0
  1770. data/src/core/util/json/json.h +29 -0
  1771. data/src/core/util/json/json_args.h +34 -0
  1772. data/src/core/util/json/json_channel_args.h +42 -0
  1773. data/src/core/util/json/json_object_loader.cc +215 -0
  1774. data/src/core/util/json/json_object_loader.h +644 -0
  1775. data/src/core/util/json/json_reader.cc +953 -0
  1776. data/src/core/util/json/json_reader.h +33 -0
  1777. data/src/core/util/json/json_util.cc +101 -0
  1778. data/src/core/util/json/json_util.h +163 -0
  1779. data/src/core/util/json/json_writer.cc +337 -0
  1780. data/src/core/util/json/json_writer.h +33 -0
  1781. data/src/core/util/latent_see.cc +163 -0
  1782. data/src/core/util/latent_see.h +334 -0
  1783. data/src/core/util/linux/cpu.cc +86 -0
  1784. data/src/core/util/linux/env.cc +61 -0
  1785. data/src/core/util/load_file.cc +87 -0
  1786. data/src/core/util/load_file.h +33 -0
  1787. data/src/core/util/log.cc +127 -0
  1788. data/src/core/util/lru_cache.h +122 -0
  1789. data/src/core/util/manual_constructor.h +145 -0
  1790. data/src/core/util/match.h +74 -0
  1791. data/src/core/util/matchers.cc +336 -0
  1792. data/src/core/util/matchers.h +162 -0
  1793. data/src/core/util/memory.h +52 -0
  1794. data/src/core/util/mpscq.cc +108 -0
  1795. data/src/core/util/mpscq.h +98 -0
  1796. data/src/core/util/msys/tmpfile.cc +57 -0
  1797. data/src/core/util/no_destruct.h +95 -0
  1798. data/src/core/util/notification.h +66 -0
  1799. data/src/core/util/orphanable.h +153 -0
  1800. data/src/core/util/overload.h +59 -0
  1801. data/src/core/util/packed_table.h +40 -0
  1802. data/src/core/util/per_cpu.cc +34 -0
  1803. data/src/core/util/per_cpu.h +102 -0
  1804. data/src/core/util/posix/cpu.cc +83 -0
  1805. data/src/core/util/posix/directory_reader.cc +82 -0
  1806. data/src/core/util/posix/env.cc +47 -0
  1807. data/src/core/util/posix/stat.cc +54 -0
  1808. data/src/core/util/posix/string.cc +71 -0
  1809. data/src/core/util/posix/sync.cc +157 -0
  1810. data/src/core/util/posix/thd.cc +243 -0
  1811. data/src/core/util/posix/time.cc +122 -0
  1812. data/src/core/util/posix/tmpfile.cc +71 -0
  1813. data/src/core/util/random_early_detection.cc +33 -0
  1814. data/src/core/util/random_early_detection.h +61 -0
  1815. data/src/core/util/ref_counted.h +403 -0
  1816. data/src/core/util/ref_counted_ptr.h +443 -0
  1817. data/src/core/util/ref_counted_string.cc +42 -0
  1818. data/src/core/util/ref_counted_string.h +159 -0
  1819. data/src/core/util/ring_buffer.h +122 -0
  1820. data/src/core/util/single_set_ptr.h +89 -0
  1821. data/src/core/util/sorted_pack.h +89 -0
  1822. data/src/core/util/spinlock.h +51 -0
  1823. data/src/core/util/stat.h +35 -0
  1824. data/src/core/util/status_helper.cc +450 -0
  1825. data/src/core/util/status_helper.h +143 -0
  1826. data/src/core/util/strerror.cc +40 -0
  1827. data/src/core/util/strerror.h +29 -0
  1828. data/src/core/util/string.cc +341 -0
  1829. data/src/core/util/string.h +110 -0
  1830. data/src/core/util/sync.cc +123 -0
  1831. data/src/core/util/sync.h +199 -0
  1832. data/src/core/util/sync_abseil.cc +106 -0
  1833. data/src/core/util/table.h +471 -0
  1834. data/src/core/util/tchar.cc +49 -0
  1835. data/src/core/util/tchar.h +33 -0
  1836. data/src/core/util/thd.h +193 -0
  1837. data/src/core/util/time.cc +240 -0
  1838. data/src/core/util/time.h +385 -0
  1839. data/src/core/util/time_averaged_stats.cc +60 -0
  1840. data/src/core/util/time_averaged_stats.h +79 -0
  1841. data/src/core/util/time_precise.cc +167 -0
  1842. data/src/core/util/time_precise.h +68 -0
  1843. data/src/core/util/time_util.cc +80 -0
  1844. data/src/core/util/time_util.h +41 -0
  1845. data/src/core/util/tmpfile.h +31 -0
  1846. data/src/core/util/type_list.h +88 -0
  1847. data/src/core/util/unique_ptr_with_bitset.h +86 -0
  1848. data/src/core/util/unique_type_name.h +123 -0
  1849. data/src/core/util/upb_utils.h +43 -0
  1850. data/src/core/util/uri.cc +378 -0
  1851. data/src/core/util/uri.h +112 -0
  1852. data/src/core/util/useful.h +153 -0
  1853. data/src/core/util/uuid_v4.cc +37 -0
  1854. data/src/core/util/uuid_v4.h +35 -0
  1855. data/src/core/util/validation_errors.cc +73 -0
  1856. data/src/core/util/validation_errors.h +144 -0
  1857. data/src/core/util/wait_for_single_owner.h +62 -0
  1858. data/src/core/util/windows/cpu.cc +34 -0
  1859. data/src/core/util/windows/directory_reader.cc +79 -0
  1860. data/src/core/util/windows/env.cc +56 -0
  1861. data/src/core/util/windows/stat.cc +50 -0
  1862. data/src/core/util/windows/string.cc +68 -0
  1863. data/src/core/util/windows/string_util.cc +53 -0
  1864. data/src/core/util/windows/sync.cc +121 -0
  1865. data/src/core/util/windows/thd.cc +182 -0
  1866. data/src/core/util/windows/time.cc +104 -0
  1867. data/src/core/util/windows/tmpfile.cc +66 -0
  1868. data/src/core/util/work_serializer.cc +298 -0
  1869. data/src/core/util/work_serializer.h +81 -0
  1870. data/src/core/util/xxhash_inline.h +29 -0
  1871. data/src/core/xds/grpc/certificate_provider_store.cc +148 -0
  1872. data/src/core/xds/grpc/certificate_provider_store.h +132 -0
  1873. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +136 -0
  1874. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +80 -0
  1875. data/src/core/xds/grpc/xds_audit_logger_registry.cc +123 -0
  1876. data/src/core/xds/grpc/xds_audit_logger_registry.h +67 -0
  1877. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +238 -0
  1878. data/src/core/xds/grpc/xds_bootstrap_grpc.h +167 -0
  1879. data/src/core/xds/grpc/xds_certificate_provider.cc +216 -0
  1880. data/src/core/xds/grpc/xds_certificate_provider.h +116 -0
  1881. data/src/core/xds/grpc/xds_client_grpc.cc +445 -0
  1882. data/src/core/xds/grpc/xds_client_grpc.h +117 -0
  1883. data/src/core/xds/grpc/xds_cluster.cc +79 -0
  1884. data/src/core/xds/grpc/xds_cluster.h +135 -0
  1885. data/src/core/xds/grpc/xds_cluster_parser.cc +773 -0
  1886. data/src/core/xds/grpc/xds_cluster_parser.h +61 -0
  1887. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +137 -0
  1888. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +96 -0
  1889. data/src/core/xds/grpc/xds_common_types.cc +103 -0
  1890. data/src/core/xds/grpc/xds_common_types.h +90 -0
  1891. data/src/core/xds/grpc/xds_common_types_parser.cc +501 -0
  1892. data/src/core/xds/grpc/xds_common_types_parser.h +77 -0
  1893. data/src/core/xds/grpc/xds_endpoint.cc +96 -0
  1894. data/src/core/xds/grpc/xds_endpoint.h +128 -0
  1895. data/src/core/xds/grpc/xds_endpoint_parser.cc +475 -0
  1896. data/src/core/xds/grpc/xds_endpoint_parser.h +47 -0
  1897. data/src/core/xds/grpc/xds_health_status.cc +73 -0
  1898. data/src/core/xds/grpc/xds_health_status.h +89 -0
  1899. data/src/core/xds/grpc/xds_http_fault_filter.cc +247 -0
  1900. data/src/core/xds/grpc/xds_http_fault_filter.h +63 -0
  1901. data/src/core/xds/grpc/xds_http_filter.h +134 -0
  1902. data/src/core/xds/grpc/xds_http_filter_registry.cc +122 -0
  1903. data/src/core/xds/grpc/xds_http_filter_registry.h +104 -0
  1904. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +141 -0
  1905. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
  1906. data/src/core/xds/grpc/xds_http_rbac_filter.cc +609 -0
  1907. data/src/core/xds/grpc/xds_http_rbac_filter.h +63 -0
  1908. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +230 -0
  1909. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +63 -0
  1910. data/src/core/xds/grpc/xds_lb_policy_registry.cc +365 -0
  1911. data/src/core/xds/grpc/xds_lb_policy_registry.h +70 -0
  1912. data/src/core/xds/grpc/xds_listener.cc +173 -0
  1913. data/src/core/xds/grpc/xds_listener.h +203 -0
  1914. data/src/core/xds/grpc/xds_listener_parser.cc +1000 -0
  1915. data/src/core/xds/grpc/xds_listener_parser.h +60 -0
  1916. data/src/core/xds/grpc/xds_metadata.cc +62 -0
  1917. data/src/core/xds/grpc/xds_metadata.h +158 -0
  1918. data/src/core/xds/grpc/xds_metadata_parser.cc +197 -0
  1919. data/src/core/xds/grpc/xds_metadata_parser.h +35 -0
  1920. data/src/core/xds/grpc/xds_route_config.cc +276 -0
  1921. data/src/core/xds/grpc/xds_route_config.h +220 -0
  1922. data/src/core/xds/grpc/xds_route_config_parser.cc +960 -0
  1923. data/src/core/xds/grpc/xds_route_config_parser.h +77 -0
  1924. data/src/core/xds/grpc/xds_routing.cc +297 -0
  1925. data/src/core/xds/grpc/xds_routing.h +112 -0
  1926. data/src/core/xds/grpc/xds_server_grpc.cc +193 -0
  1927. data/src/core/xds/grpc/xds_server_grpc.h +76 -0
  1928. data/src/core/xds/grpc/xds_server_grpc_interface.h +33 -0
  1929. data/src/core/xds/grpc/xds_transport_grpc.cc +392 -0
  1930. data/src/core/xds/grpc/xds_transport_grpc.h +151 -0
  1931. data/src/core/xds/xds_client/lrs_client.cc +1281 -0
  1932. data/src/core/xds/xds_client/lrs_client.h +394 -0
  1933. data/src/core/xds/xds_client/xds_api.cc +130 -0
  1934. data/src/core/xds/xds_client/xds_api.h +34 -0
  1935. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +63 -0
  1936. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +59 -0
  1937. data/src/core/xds/xds_client/xds_bootstrap.cc +47 -0
  1938. data/src/core/xds/xds_client/xds_bootstrap.h +110 -0
  1939. data/src/core/xds/xds_client/xds_channel_args.h +32 -0
  1940. data/src/core/xds/xds_client/xds_client.cc +2017 -0
  1941. data/src/core/xds/xds_client/xds_client.h +442 -0
  1942. data/src/core/xds/xds_client/xds_locality.h +102 -0
  1943. data/src/core/xds/xds_client/xds_metrics.h +41 -0
  1944. data/src/core/xds/xds_client/xds_resource_type.h +95 -0
  1945. data/src/core/xds/xds_client/xds_resource_type_impl.h +92 -0
  1946. data/src/core/xds/xds_client/xds_transport.h +104 -0
  1947. data/src/ruby/bin/math_pb.rb +1 -22
  1948. data/src/ruby/ext/grpc/extconf.rb +2 -1
  1949. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -3
  1950. data/src/ruby/ext/grpc/rb_call.c +15 -8
  1951. data/src/ruby/ext/grpc/rb_call_credentials.c +39 -32
  1952. data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
  1953. data/src/ruby/ext/grpc/rb_channel.c +42 -36
  1954. data/src/ruby/ext/grpc/rb_channel_args.c +4 -4
  1955. data/src/ruby/ext/grpc/rb_channel_credentials.c +5 -5
  1956. data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -2
  1957. data/src/ruby/ext/grpc/rb_completion_queue.c +18 -36
  1958. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  1959. data/src/ruby/ext/grpc/rb_compression_options.c +9 -10
  1960. data/src/ruby/ext/grpc/rb_event_thread.c +9 -9
  1961. data/src/ruby/ext/grpc/rb_grpc.c +16 -16
  1962. data/src/ruby/ext/grpc/rb_grpc.h +8 -1
  1963. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +136 -144
  1964. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +205 -216
  1965. data/src/ruby/ext/grpc/rb_server.c +47 -27
  1966. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -3
  1967. data/src/ruby/ext/grpc/rb_server_credentials.h +2 -2
  1968. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +5 -5
  1969. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +1 -2
  1970. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +5 -4
  1971. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +2 -2
  1972. data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
  1973. data/src/ruby/lib/grpc/logconfig.rb +13 -0
  1974. data/src/ruby/lib/grpc/version.rb +1 -1
  1975. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  1976. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  1977. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  1978. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  1979. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  1980. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  1981. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  1982. data/src/ruby/spec/call_spec.rb +53 -40
  1983. data/src/ruby/spec/channel_spec.rb +4 -2
  1984. data/src/ruby/spec/client_server_spec.rb +148 -507
  1985. data/src/ruby/spec/generic/active_call_spec.rb +64 -86
  1986. data/src/ruby/spec/generic/client_stub_spec.rb +20 -20
  1987. data/src/ruby/spec/logconfig_spec.rb +30 -0
  1988. data/src/ruby/spec/support/services.rb +3 -0
  1989. data/third_party/abseil-cpp/absl/algorithm/container.h +57 -18
  1990. data/third_party/abseil-cpp/absl/base/attributes.h +84 -0
  1991. data/third_party/abseil-cpp/absl/base/config.h +32 -51
  1992. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
  1993. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +3 -1
  1994. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +13 -3
  1995. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -12
  1996. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
  1997. data/third_party/abseil-cpp/absl/base/macros.h +48 -0
  1998. data/third_party/abseil-cpp/absl/base/no_destructor.h +35 -40
  1999. data/third_party/abseil-cpp/absl/base/nullability.h +33 -7
  2000. data/third_party/abseil-cpp/absl/base/optimization.h +11 -0
  2001. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  2002. data/third_party/abseil-cpp/absl/base/prefetch.h +1 -1
  2003. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +68 -12
  2004. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +60 -6
  2005. data/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  2006. data/third_party/abseil-cpp/absl/container/inlined_vector.h +13 -0
  2007. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +20 -11
  2008. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
  2009. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +34 -1
  2010. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
  2011. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
  2012. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
  2013. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
  2014. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +39 -35
  2015. data/third_party/abseil-cpp/absl/container/internal/layout.h +190 -74
  2016. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
  2017. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +334 -71
  2018. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1299 -458
  2019. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
  2020. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
  2021. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
  2022. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
  2023. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
  2024. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
  2025. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +18 -17
  2026. data/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  2027. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  2028. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  2029. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1057 -86
  2030. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
  2031. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  2032. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
  2033. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
  2034. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +8 -7
  2035. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +10 -7
  2036. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  2037. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  2038. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +11 -0
  2039. data/third_party/abseil-cpp/absl/flags/flag.h +2 -0
  2040. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +117 -30
  2041. data/third_party/abseil-cpp/absl/flags/internal/flag.h +192 -30
  2042. data/third_party/abseil-cpp/absl/flags/reflection.cc +10 -0
  2043. data/third_party/abseil-cpp/absl/functional/any_invocable.h +13 -3
  2044. data/third_party/abseil-cpp/absl/functional/bind_front.h +3 -2
  2045. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
  2046. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
  2047. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -1
  2048. data/third_party/abseil-cpp/absl/hash/internal/hash.h +13 -3
  2049. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +60 -28
  2050. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
  2051. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +3 -3
  2052. data/third_party/abseil-cpp/absl/log/check.h +209 -0
  2053. data/third_party/abseil-cpp/absl/log/globals.h +28 -15
  2054. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  2055. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +138 -0
  2056. data/third_party/abseil-cpp/absl/log/internal/check_op.h +462 -0
  2057. data/third_party/abseil-cpp/absl/log/internal/conditions.h +2 -2
  2058. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +23 -23
  2059. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +104 -47
  2060. data/third_party/abseil-cpp/absl/log/internal/log_message.h +23 -4
  2061. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -10
  2062. data/third_party/abseil-cpp/absl/log/internal/strip.h +36 -0
  2063. data/third_party/abseil-cpp/absl/log/log.h +5 -1
  2064. data/third_party/abseil-cpp/absl/log/log_sink.h +11 -4
  2065. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +3 -3
  2066. data/third_party/abseil-cpp/absl/meta/type_traits.h +138 -42
  2067. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -3
  2068. data/third_party/abseil-cpp/absl/numeric/int128.h +35 -5
  2069. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +14 -0
  2070. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +18 -0
  2071. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +6 -2
  2072. data/third_party/abseil-cpp/absl/random/beta_distribution.h +8 -8
  2073. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +9 -7
  2074. data/third_party/abseil-cpp/absl/random/distributions.h +11 -11
  2075. data/third_party/abseil-cpp/absl/random/seed_sequences.h +2 -0
  2076. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
  2077. data/third_party/abseil-cpp/absl/status/status.cc +0 -4
  2078. data/third_party/abseil-cpp/absl/status/status.h +4 -4
  2079. data/third_party/abseil-cpp/absl/status/statusor.h +108 -142
  2080. data/third_party/abseil-cpp/absl/strings/ascii.cc +32 -71
  2081. data/third_party/abseil-cpp/absl/strings/cord.cc +20 -15
  2082. data/third_party/abseil-cpp/absl/strings/cord.h +68 -7
  2083. data/third_party/abseil-cpp/absl/strings/escaping.cc +96 -21
  2084. data/third_party/abseil-cpp/absl/strings/escaping.h +25 -8
  2085. data/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
  2086. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +10 -0
  2087. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +29 -9
  2088. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
  2089. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
  2090. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
  2091. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
  2092. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
  2093. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
  2094. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
  2095. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
  2096. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +5 -1
  2097. data/third_party/abseil-cpp/absl/strings/numbers.cc +107 -333
  2098. data/third_party/abseil-cpp/absl/strings/numbers.h +12 -151
  2099. data/third_party/abseil-cpp/absl/strings/str_cat.cc +49 -142
  2100. data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -85
  2101. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -1
  2102. data/third_party/abseil-cpp/absl/strings/str_join.h +19 -5
  2103. data/third_party/abseil-cpp/absl/strings/str_split.h +2 -2
  2104. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
  2105. data/third_party/abseil-cpp/absl/strings/substitute.cc +4 -0
  2106. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
  2107. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
  2108. data/third_party/abseil-cpp/absl/synchronization/mutex.h +5 -4
  2109. data/third_party/abseil-cpp/absl/time/civil_time.h +2 -2
  2110. data/third_party/abseil-cpp/absl/time/clock.cc +15 -1
  2111. data/third_party/abseil-cpp/absl/time/duration.cc +58 -53
  2112. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  2113. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  2114. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -29
  2115. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
  2116. data/third_party/abseil-cpp/absl/time/time.h +73 -29
  2117. data/third_party/abseil-cpp/absl/types/compare.h +505 -0
  2118. data/third_party/abseil-cpp/absl/types/internal/optional.h +2 -2
  2119. data/third_party/abseil-cpp/absl/types/internal/variant.h +55 -67
  2120. data/third_party/abseil-cpp/absl/types/optional.h +15 -18
  2121. data/third_party/abseil-cpp/absl/types/span.h +3 -2
  2122. data/third_party/abseil-cpp/absl/types/variant.h +19 -24
  2123. data/third_party/abseil-cpp/absl/utility/utility.h +3 -41
  2124. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +243 -0
  2125. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc +53 -0
  2126. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc +47 -0
  2127. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc +42 -0
  2128. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc +109 -0
  2129. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc +43 -0
  2130. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +424 -0
  2131. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc +239 -0
  2132. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc +193 -0
  2133. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc +32 -0
  2134. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc +415 -0
  2135. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc +206 -0
  2136. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc +224 -0
  2137. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc +172 -0
  2138. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc +109 -0
  2139. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc +355 -0
  2140. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc +61 -0
  2141. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc +56 -0
  2142. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc +63 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc +52 -0
  2144. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -57
  2145. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc +241 -0
  2146. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +932 -0
  2147. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +669 -0
  2148. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc +164 -0
  2149. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc +276 -0
  2150. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +84 -0
  2151. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc +229 -0
  2152. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc +434 -0
  2153. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +119 -0
  2154. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc +658 -0
  2155. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc +268 -0
  2156. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +511 -0
  2157. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc +50 -0
  2158. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc +193 -0
  2159. data/third_party/boringssl-with-bazel/src/crypto/bio/file.cc +292 -0
  2160. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc +152 -0
  2161. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +13 -55
  2162. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.cc +446 -0
  2163. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc +59 -0
  2164. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +147 -0
  2165. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +133 -0
  2166. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc +169 -0
  2167. data/third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc +57 -0
  2168. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +423 -0
  2169. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc +118 -0
  2170. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc +53 -0
  2171. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc +266 -0
  2172. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +702 -0
  2173. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +912 -0
  2174. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +13 -13
  2175. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc +156 -0
  2176. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc +224 -0
  2177. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +36 -32
  2178. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +110 -0
  2179. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc +279 -0
  2180. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +845 -0
  2181. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc +341 -0
  2182. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc +198 -0
  2183. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc +51 -0
  2184. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc +417 -0
  2185. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc +54 -0
  2186. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc +599 -0
  2187. data/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc +85 -0
  2188. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +240 -0
  2189. data/third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc +476 -0
  2190. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc +631 -0
  2191. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +13 -13
  2192. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +73 -0
  2193. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +53 -0
  2194. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +60 -0
  2195. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +59 -0
  2196. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +92 -0
  2197. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +39 -0
  2198. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +53 -0
  2199. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +150 -0
  2200. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +13 -13
  2201. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +287 -0
  2202. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +181 -0
  2203. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc +2154 -0
  2204. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc +18 -0
  2205. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +13 -13
  2206. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +13 -13
  2207. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc +529 -0
  2208. data/third_party/boringssl-with-bazel/src/crypto/des/des.cc +829 -0
  2209. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +27 -69
  2210. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +124 -0
  2211. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +442 -0
  2212. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +306 -0
  2213. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +951 -0
  2214. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +379 -0
  2215. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +13 -13
  2216. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +570 -0
  2217. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc +96 -0
  2218. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +510 -0
  2219. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +78 -0
  2220. data/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc +73 -0
  2221. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +357 -0
  2222. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc +95 -0
  2223. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +810 -0
  2224. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +13 -13
  2225. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.cc +379 -0
  2226. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +471 -0
  2227. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +440 -0
  2228. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +20 -55
  2229. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc +153 -0
  2230. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc +142 -0
  2231. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +279 -0
  2232. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc +230 -0
  2233. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +286 -0
  2234. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc +103 -0
  2235. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +225 -0
  2236. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc +236 -0
  2237. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc +609 -0
  2238. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +198 -0
  2239. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc +109 -0
  2240. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +237 -0
  2241. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc +98 -0
  2242. data/third_party/boringssl-with-bazel/src/crypto/evp/print.cc +342 -0
  2243. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc +216 -0
  2244. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +114 -0
  2245. data/third_party/boringssl-with-bazel/src/crypto/ex_data.cc +141 -0
  2246. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +191 -0
  2247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc +1281 -0
  2248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cbc.cc.inc +130 -0
  2249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cfb.cc.inc +166 -0
  2250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc +100 -0
  2251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +604 -0
  2252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm_nohw.cc.inc +302 -0
  2253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +450 -75
  2254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +208 -0
  2255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +84 -0
  2256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc +53 -0
  2257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +89 -0
  2258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +282 -0
  2259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +729 -0
  2260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc +269 -0
  2261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +554 -0
  2262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc +374 -0
  2263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc +225 -0
  2264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc +159 -0
  2265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc +191 -0
  2266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +825 -0
  2267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc +87 -0
  2268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +1227 -0
  2269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +300 -0
  2270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +339 -0
  2271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc +582 -0
  2272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +52 -151
  2273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +108 -0
  2274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +430 -0
  2275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc +222 -0
  2276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +698 -0
  2277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +980 -0
  2278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc +260 -0
  2279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc +142 -0
  2280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +20 -17
  2281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +320 -0
  2282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +459 -0
  2283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc +295 -0
  2284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc +672 -0
  2285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +1242 -0
  2286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc +409 -0
  2287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +14 -68
  2288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc +288 -0
  2289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +26 -22
  2290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +203 -0
  2291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +443 -0
  2292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +13 -15
  2293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +250 -0
  2294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc +178 -0
  2295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +13 -55
  2296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +13 -47
  2297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc +226 -0
  2298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +91 -91
  2299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +986 -0
  2300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +501 -0
  2301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc +439 -0
  2302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc +104 -0
  2303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +19 -66
  2304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +306 -0
  2305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc +1163 -0
  2306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +15 -10
  2307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc +741 -0
  2308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +87 -25
  2309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc +749 -0
  2310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +13 -13
  2311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.cc.inc +179 -0
  2312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +284 -0
  2313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc +269 -0
  2314. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc +255 -0
  2315. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc +221 -0
  2316. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc +88 -0
  2317. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +278 -0
  2318. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +41 -24
  2319. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc +28 -0
  2320. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc +112 -0
  2321. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc +215 -0
  2322. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +70 -0
  2323. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/keccak.cc.inc +279 -0
  2324. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +1993 -0
  2325. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +1165 -0
  2326. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc +214 -0
  2327. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +19 -104
  2328. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +483 -0
  2329. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc +147 -0
  2330. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +13 -56
  2331. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +379 -0
  2332. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +983 -0
  2333. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1296 -0
  2334. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  2335. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +1042 -0
  2336. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +36 -36
  2337. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +327 -0
  2338. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +109 -74
  2339. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.cc.inc +390 -0
  2340. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc +299 -0
  2341. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  2342. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/address.h +119 -0
  2343. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.cc.inc +169 -0
  2344. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h +58 -0
  2345. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.cc.inc +161 -0
  2346. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h +70 -0
  2347. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/params.h +78 -0
  2348. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +329 -0
  2349. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc +173 -0
  2350. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h +85 -0
  2351. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.cc.inc +171 -0
  2352. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h +50 -0
  2353. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +13 -13
  2354. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  2355. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc +1095 -0
  2356. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc +2185 -0
  2357. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +13 -13
  2358. data/third_party/boringssl-with-bazel/src/crypto/internal.h +366 -459
  2359. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +14 -14
  2360. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc +869 -0
  2361. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +31 -75
  2362. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc +309 -0
  2363. data/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc +194 -0
  2364. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +37 -0
  2365. data/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc +243 -0
  2366. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +583 -0
  2367. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc +90 -0
  2368. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +152 -0
  2369. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +519 -0
  2370. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +18 -57
  2371. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc +80 -0
  2372. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +44 -0
  2373. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc +149 -0
  2374. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc +254 -0
  2375. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +741 -0
  2376. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc +45 -0
  2377. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc +208 -0
  2378. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc +141 -0
  2379. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc +22 -0
  2380. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc +22 -0
  2381. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +13 -13
  2382. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +193 -0
  2383. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +526 -0
  2384. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -54
  2385. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +275 -0
  2386. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +487 -0
  2387. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +1304 -0
  2388. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +13 -13
  2389. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc +314 -0
  2390. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc +310 -0
  2391. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc +850 -0
  2392. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +13 -13
  2393. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.cc +262 -0
  2394. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +65 -0
  2395. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +194 -0
  2396. data/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc +44 -0
  2397. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +60 -0
  2398. data/third_party/boringssl-with-bazel/src/crypto/rand/getrandom_fillin.h +64 -0
  2399. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +42 -0
  2400. data/third_party/boringssl-with-bazel/src/crypto/rand/passive.cc +178 -0
  2401. data/third_party/boringssl-with-bazel/src/crypto/rand/rand.cc +77 -0
  2402. data/third_party/boringssl-with-bazel/src/crypto/rand/sysrand_internal.h +37 -0
  2403. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +46 -0
  2404. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +328 -0
  2405. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +102 -0
  2406. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc +56 -0
  2407. data/third_party/boringssl-with-bazel/src/crypto/refcount.cc +59 -0
  2408. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +36 -0
  2409. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc +283 -0
  2410. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +531 -0
  2411. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc +19 -0
  2412. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc +27 -0
  2413. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  2414. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  2415. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  2416. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc +79 -0
  2417. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +113 -0
  2418. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +204 -0
  2419. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc +501 -0
  2420. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc +496 -0
  2421. data/third_party/boringssl-with-bazel/src/crypto/thread.cc +68 -0
  2422. data/third_party/boringssl-with-bazel/src/crypto/thread_none.cc +51 -0
  2423. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc +151 -0
  2424. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +240 -0
  2425. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +13 -13
  2426. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc +1656 -0
  2427. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc +685 -0
  2428. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc +1263 -0
  2429. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc +52 -0
  2430. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +97 -0
  2431. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc +74 -0
  2432. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc +136 -0
  2433. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +542 -0
  2434. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc +355 -0
  2435. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc +227 -0
  2436. data/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h +13 -55
  2437. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc +37 -0
  2438. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +17 -62
  2439. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc +185 -0
  2440. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc +796 -0
  2441. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc +364 -0
  2442. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc +103 -0
  2443. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc +203 -0
  2444. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc +287 -0
  2445. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc +79 -0
  2446. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc +181 -0
  2447. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc +31 -0
  2448. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc +593 -0
  2449. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc +95 -0
  2450. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc +102 -0
  2451. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +374 -0
  2452. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc +444 -0
  2453. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc +557 -0
  2454. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc +73 -0
  2455. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc +114 -0
  2456. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc +228 -0
  2457. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc +79 -0
  2458. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +164 -0
  2459. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc +81 -0
  2460. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc +304 -0
  2461. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc +514 -0
  2462. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc +89 -0
  2463. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc +101 -0
  2464. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc +109 -0
  2465. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc +183 -0
  2466. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc +590 -0
  2467. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc +131 -0
  2468. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc +1342 -0
  2469. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc +47 -0
  2470. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc +186 -0
  2471. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc +238 -0
  2472. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc +66 -0
  2473. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc +44 -0
  2474. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc +139 -0
  2475. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc +554 -0
  2476. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc +164 -0
  2477. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc +257 -0
  2478. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc +198 -0
  2479. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc +118 -0
  2480. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc +147 -0
  2481. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc +249 -0
  2482. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +1600 -0
  2483. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc +440 -0
  2484. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc +235 -0
  2485. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc +365 -0
  2486. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc +67 -0
  2487. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc +91 -0
  2488. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +107 -0
  2489. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc +318 -0
  2490. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc +55 -0
  2491. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc +342 -0
  2492. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc +36 -0
  2493. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +492 -0
  2494. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc +170 -0
  2495. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc +74 -0
  2496. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc +51 -0
  2497. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc +34 -0
  2498. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc +28 -0
  2499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +506 -0
  2500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +169 -0
  2501. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +1529 -0
  2502. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -13
  2503. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +13 -47
  2504. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +16 -76
  2505. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +14 -14
  2506. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +37 -63
  2507. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +13 -13
  2508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +248 -328
  2509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -55
  2510. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +13 -55
  2511. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  2512. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +98 -97
  2513. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +13 -13
  2514. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +13 -55
  2515. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +28 -130
  2516. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +13 -55
  2517. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +13 -13
  2518. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +43 -20
  2519. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +13 -55
  2520. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +13 -13
  2521. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +31 -59
  2522. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +13 -13
  2523. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +13 -55
  2524. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +13 -13
  2525. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +35 -25
  2526. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +13 -13
  2527. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +13 -13
  2528. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +13 -55
  2529. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +34 -56
  2530. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -56
  2531. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -61
  2532. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +13 -13
  2533. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +13 -13
  2534. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +14 -66
  2535. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +31 -72
  2536. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +14 -65
  2537. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +13 -51
  2538. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +13 -13
  2539. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +26 -107
  2540. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +39 -70
  2541. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +14 -55
  2542. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +28 -110
  2543. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +146 -0
  2544. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +13 -13
  2545. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +13 -55
  2546. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +21 -19
  2547. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +13 -13
  2548. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +13 -13
  2549. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +13 -13
  2550. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +13 -55
  2551. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +13 -55
  2552. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +13 -55
  2553. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +13 -55
  2554. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +130 -0
  2555. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +222 -0
  2556. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +30 -69
  2557. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +15 -57
  2558. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +13 -13
  2559. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +13 -13
  2560. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +13 -13
  2561. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +13 -13
  2562. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +13 -13
  2563. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +88 -117
  2564. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +13 -13
  2565. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +13 -13
  2566. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +13 -55
  2567. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +13 -13
  2568. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +13 -13
  2569. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +13 -13
  2570. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +32 -23
  2571. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +13 -55
  2572. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +13 -55
  2573. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +23 -63
  2574. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +13 -13
  2575. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +15 -15
  2576. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +15 -95
  2577. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +13 -13
  2578. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +174 -0
  2579. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +60 -32
  2580. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +13 -13
  2581. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +723 -369
  2582. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +15 -114
  2583. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +23 -58
  2584. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +36 -23
  2585. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +15 -57
  2586. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +13 -13
  2587. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +29 -158
  2588. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +15 -15
  2589. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +13 -55
  2590. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2951 -2520
  2591. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +13 -13
  2592. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +13 -13
  2593. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +13 -53
  2594. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +15 -14
  2595. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +684 -441
  2596. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +129 -168
  2597. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +177 -127
  2598. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +21 -127
  2599. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +112 -97
  2600. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +456 -222
  2601. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +57 -56
  2602. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +736 -530
  2603. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +67 -74
  2604. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +78 -160
  2605. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +283 -332
  2606. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +242 -324
  2607. data/third_party/boringssl-with-bazel/src/ssl/internal.h +1220 -648
  2608. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +88 -170
  2609. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +29 -160
  2610. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +39 -113
  2611. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +103 -111
  2612. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +52 -145
  2613. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +22 -24
  2614. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +155 -521
  2615. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +239 -373
  2616. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +609 -0
  2617. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +15 -111
  2618. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +129 -33
  2619. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +289 -389
  2620. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +147 -169
  2621. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +104 -247
  2622. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +17 -91
  2623. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +109 -157
  2624. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +48 -28
  2625. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +104 -301
  2626. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -176
  2627. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -69
  2628. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +187 -88
  2629. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +296 -163
  2630. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +290 -116
  2631. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +64 -117
  2632. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +55 -157
  2633. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  2634. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  2635. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  2636. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  2637. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  2638. data/third_party/upb/upb/base/internal/log2.h +3 -1
  2639. data/third_party/upb/upb/base/string_view.h +11 -1
  2640. data/third_party/upb/upb/hash/common.c +5 -1
  2641. data/third_party/upb/upb/json/decode.c +60 -13
  2642. data/third_party/upb/upb/json/decode.h +25 -3
  2643. data/third_party/upb/upb/json/encode.c +2 -2
  2644. data/third_party/upb/upb/lex/round_trip.c +10 -0
  2645. data/third_party/upb/upb/mem/alloc.h +5 -0
  2646. data/third_party/upb/upb/mem/arena.c +355 -125
  2647. data/third_party/upb/upb/mem/arena.h +66 -19
  2648. data/third_party/upb/upb/mem/arena.hpp +9 -21
  2649. data/third_party/upb/upb/mem/internal/arena.h +10 -9
  2650. data/third_party/upb/upb/message/accessors.c +6 -7
  2651. data/third_party/upb/upb/message/accessors.h +227 -376
  2652. data/third_party/upb/upb/message/array.c +26 -3
  2653. data/third_party/upb/upb/message/array.h +17 -9
  2654. data/third_party/upb/upb/message/compat.c +13 -16
  2655. data/third_party/upb/upb/message/compat.h +7 -6
  2656. data/third_party/upb/upb/message/copy.c +56 -48
  2657. data/third_party/upb/upb/message/internal/accessors.h +748 -57
  2658. data/third_party/upb/upb/message/internal/array.h +23 -15
  2659. data/third_party/upb/upb/message/internal/extension.c +34 -31
  2660. data/third_party/upb/upb/message/internal/extension.h +29 -16
  2661. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  2662. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  2663. data/third_party/upb/upb/message/internal/map.h +17 -3
  2664. data/third_party/upb/upb/message/internal/map_sorter.h +4 -4
  2665. data/third_party/upb/upb/message/internal/message.c +64 -29
  2666. data/third_party/upb/upb/message/internal/message.h +165 -24
  2667. data/third_party/upb/upb/message/internal/tagged_ptr.h +5 -5
  2668. data/third_party/upb/upb/message/internal/types.h +41 -1
  2669. data/third_party/upb/upb/message/map.c +25 -0
  2670. data/third_party/upb/upb/message/map.h +11 -7
  2671. data/third_party/upb/upb/message/map_sorter.c +20 -8
  2672. data/third_party/upb/upb/message/merge.c +38 -0
  2673. data/third_party/upb/upb/message/merge.h +26 -0
  2674. data/third_party/upb/upb/message/message.c +166 -35
  2675. data/third_party/upb/upb/message/message.h +74 -3
  2676. data/third_party/upb/upb/message/tagged_ptr.h +4 -8
  2677. data/third_party/upb/upb/message/value.h +35 -0
  2678. data/third_party/upb/upb/mini_descriptor/build_enum.c +4 -4
  2679. data/third_party/upb/upb/mini_descriptor/build_enum.h +6 -14
  2680. data/third_party/upb/upb/mini_descriptor/decode.c +114 -137
  2681. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  2682. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  2683. data/third_party/upb/upb/mini_descriptor/link.c +23 -21
  2684. data/third_party/upb/upb/mini_table/enum.h +2 -4
  2685. data/third_party/upb/upb/mini_table/extension.h +4 -12
  2686. data/third_party/upb/upb/mini_table/extension_registry.c +41 -11
  2687. data/third_party/upb/upb/mini_table/extension_registry.h +30 -6
  2688. data/third_party/upb/upb/mini_table/field.h +12 -38
  2689. data/third_party/upb/upb/mini_table/file.h +6 -19
  2690. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  2691. data/third_party/upb/upb/mini_table/internal/extension.h +18 -9
  2692. data/third_party/upb/upb/mini_table/internal/field.h +23 -23
  2693. data/third_party/upb/upb/mini_table/internal/file.h +7 -7
  2694. data/third_party/upb/upb/mini_table/internal/message.c +21 -1
  2695. data/third_party/upb/upb/mini_table/internal/message.h +80 -36
  2696. data/third_party/upb/upb/mini_table/internal/sub.h +9 -4
  2697. data/third_party/upb/upb/mini_table/message.c +21 -13
  2698. data/third_party/upb/upb/mini_table/message.h +23 -22
  2699. data/third_party/upb/upb/mini_table/sub.h +4 -12
  2700. data/third_party/upb/upb/port/atomic.h +134 -7
  2701. data/third_party/upb/upb/port/def.inc +238 -40
  2702. data/third_party/upb/upb/port/undef.inc +18 -1
  2703. data/third_party/upb/upb/reflection/common.h +1 -11
  2704. data/third_party/upb/upb/reflection/def.hpp +39 -0
  2705. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  2706. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  2707. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +19 -0
  2708. data/third_party/upb/upb/reflection/enum_def.c +5 -1
  2709. data/third_party/upb/upb/reflection/enum_def.h +1 -0
  2710. data/third_party/upb/upb/reflection/enum_value_def.c +3 -8
  2711. data/third_party/upb/upb/reflection/field_def.c +72 -46
  2712. data/third_party/upb/upb/reflection/field_def.h +4 -0
  2713. data/third_party/upb/upb/reflection/file_def.c +42 -9
  2714. data/third_party/upb/upb/reflection/file_def.h +3 -0
  2715. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  2716. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  2717. data/third_party/upb/upb/reflection/message.c +45 -25
  2718. data/third_party/upb/upb/reflection/message.h +5 -3
  2719. data/third_party/upb/upb/reflection/message_def.c +14 -9
  2720. data/third_party/upb/upb/reflection/method_def.h +8 -7
  2721. data/third_party/upb/upb/reflection/service_def.h +6 -5
  2722. data/third_party/upb/upb/text/encode.c +53 -401
  2723. data/third_party/upb/upb/text/encode.h +1 -11
  2724. data/third_party/upb/upb/text/internal/encode.c +199 -0
  2725. data/third_party/upb/upb/text/internal/encode.h +244 -0
  2726. data/third_party/upb/upb/text/options.h +22 -0
  2727. data/third_party/upb/upb/wire/decode.c +219 -138
  2728. data/third_party/upb/upb/wire/decode.h +19 -4
  2729. data/third_party/upb/upb/wire/encode.c +160 -84
  2730. data/third_party/upb/upb/wire/encode.h +14 -1
  2731. data/third_party/upb/upb/wire/eps_copy_input_stream.h +21 -23
  2732. data/third_party/upb/upb/wire/internal/decode_fast.c +28 -29
  2733. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  2734. data/third_party/upb/upb/wire/internal/reader.h +3 -3
  2735. data/third_party/upb/upb/wire/reader.c +1 -2
  2736. data/third_party/upb/upb/wire/reader.h +4 -8
  2737. data/third_party/utf8_range/utf8_range.c +15 -275
  2738. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  2739. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  2740. data/third_party/zlib/deflate.c +40 -15
  2741. data/third_party/zlib/deflate.h +33 -2
  2742. data/third_party/zlib/gzguts.h +2 -6
  2743. data/third_party/zlib/inflate.c +1 -1
  2744. data/third_party/zlib/inftrees.c +3 -3
  2745. data/third_party/zlib/inftrees.h +2 -2
  2746. data/third_party/zlib/trees.c +18 -4
  2747. data/third_party/zlib/zconf.h +1 -9
  2748. data/third_party/zlib/zlib.h +12 -12
  2749. data/third_party/zlib/zutil.h +4 -25
  2750. metadata +872 -764
  2751. data/include/grpc/grpc_cronet.h +0 -37
  2752. data/src/core/client_channel/client_channel_channelz.cc +0 -93
  2753. data/src/core/client_channel/client_channel_channelz.h +0 -85
  2754. data/src/core/client_channel/config_selector.cc +0 -60
  2755. data/src/core/client_channel/http_proxy_mapper.cc +0 -304
  2756. data/src/core/client_channel/http_proxy_mapper.h +0 -53
  2757. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
  2758. data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
  2759. data/src/core/ext/filters/server_config_selector/server_config_selector.h +0 -83
  2760. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +0 -171
  2761. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +0 -33
  2762. data/src/core/ext/gcp/metadata_query.cc +0 -136
  2763. data/src/core/ext/gcp/metadata_query.h +0 -87
  2764. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  2765. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  2766. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -44
  2767. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
  2768. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  2769. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -419
  2770. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -81
  2771. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -30
  2772. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -400
  2773. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -106
  2774. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -33
  2775. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -104
  2776. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -32
  2777. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -66
  2778. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -47
  2779. data/src/core/ext/xds/certificate_provider_store.cc +0 -155
  2780. data/src/core/ext/xds/certificate_provider_store.h +0 -134
  2781. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +0 -138
  2782. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +0 -82
  2783. data/src/core/ext/xds/upb_utils.h +0 -45
  2784. data/src/core/ext/xds/xds_api.cc +0 -572
  2785. data/src/core/ext/xds/xds_api.h +0 -189
  2786. data/src/core/ext/xds/xds_audit_logger_registry.cc +0 -123
  2787. data/src/core/ext/xds/xds_audit_logger_registry.h +0 -68
  2788. data/src/core/ext/xds/xds_bootstrap.cc +0 -38
  2789. data/src/core/ext/xds/xds_bootstrap.h +0 -88
  2790. data/src/core/ext/xds/xds_bootstrap_grpc.cc +0 -397
  2791. data/src/core/ext/xds/xds_bootstrap_grpc.h +0 -197
  2792. data/src/core/ext/xds/xds_certificate_provider.cc +0 -217
  2793. data/src/core/ext/xds/xds_certificate_provider.h +0 -116
  2794. data/src/core/ext/xds/xds_channel_args.h +0 -32
  2795. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -107
  2796. data/src/core/ext/xds/xds_channel_stack_modifier.h +0 -64
  2797. data/src/core/ext/xds/xds_client.cc +0 -2303
  2798. data/src/core/ext/xds/xds_client.h +0 -391
  2799. data/src/core/ext/xds/xds_client_grpc.cc +0 -410
  2800. data/src/core/ext/xds/xds_client_grpc.h +0 -110
  2801. data/src/core/ext/xds/xds_client_stats.cc +0 -173
  2802. data/src/core/ext/xds/xds_client_stats.h +0 -258
  2803. data/src/core/ext/xds/xds_cluster.cc +0 -795
  2804. data/src/core/ext/xds/xds_cluster.h +0 -145
  2805. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +0 -140
  2806. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +0 -97
  2807. data/src/core/ext/xds/xds_common_types.cc +0 -509
  2808. data/src/core/ext/xds/xds_common_types.h +0 -108
  2809. data/src/core/ext/xds/xds_endpoint.cc +0 -517
  2810. data/src/core/ext/xds/xds_endpoint.h +0 -150
  2811. data/src/core/ext/xds/xds_health_status.cc +0 -75
  2812. data/src/core/ext/xds/xds_health_status.h +0 -91
  2813. data/src/core/ext/xds/xds_http_fault_filter.cc +0 -238
  2814. data/src/core/ext/xds/xds_http_fault_filter.h +0 -58
  2815. data/src/core/ext/xds/xds_http_filters.cc +0 -117
  2816. data/src/core/ext/xds/xds_http_filters.h +0 -182
  2817. data/src/core/ext/xds/xds_http_rbac_filter.cc +0 -588
  2818. data/src/core/ext/xds/xds_http_rbac_filter.h +0 -58
  2819. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +0 -218
  2820. data/src/core/ext/xds/xds_http_stateful_session_filter.h +0 -58
  2821. data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -371
  2822. data/src/core/ext/xds/xds_lb_policy_registry.h +0 -71
  2823. data/src/core/ext/xds/xds_listener.cc +0 -1142
  2824. data/src/core/ext/xds/xds_listener.h +0 -236
  2825. data/src/core/ext/xds/xds_metrics.h +0 -39
  2826. data/src/core/ext/xds/xds_resource_type.h +0 -98
  2827. data/src/core/ext/xds/xds_resource_type_impl.h +0 -88
  2828. data/src/core/ext/xds/xds_route_config.cc +0 -1198
  2829. data/src/core/ext/xds/xds_route_config.h +0 -253
  2830. data/src/core/ext/xds/xds_routing.cc +0 -264
  2831. data/src/core/ext/xds/xds_routing.h +0 -106
  2832. data/src/core/ext/xds/xds_server_config_fetcher.cc +0 -1393
  2833. data/src/core/ext/xds/xds_transport.h +0 -89
  2834. data/src/core/ext/xds/xds_transport_grpc.cc +0 -350
  2835. data/src/core/ext/xds/xds_transport_grpc.h +0 -139
  2836. data/src/core/lib/avl/avl.h +0 -325
  2837. data/src/core/lib/backoff/backoff.cc +0 -47
  2838. data/src/core/lib/backoff/backoff.h +0 -89
  2839. data/src/core/lib/backoff/random_early_detection.cc +0 -33
  2840. data/src/core/lib/backoff/random_early_detection.h +0 -62
  2841. data/src/core/lib/channel/call_finalization.h +0 -88
  2842. data/src/core/lib/channel/call_tracer.cc +0 -364
  2843. data/src/core/lib/channel/call_tracer.h +0 -227
  2844. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  2845. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  2846. data/src/core/lib/channel/channel_trace.cc +0 -187
  2847. data/src/core/lib/channel/channel_trace.h +0 -138
  2848. data/src/core/lib/channel/channelz.cc +0 -610
  2849. data/src/core/lib/channel/channelz.h +0 -384
  2850. data/src/core/lib/channel/channelz_registry.cc +0 -281
  2851. data/src/core/lib/channel/channelz_registry.h +0 -102
  2852. data/src/core/lib/channel/context.h +0 -77
  2853. data/src/core/lib/channel/metrics.cc +0 -396
  2854. data/src/core/lib/channel/metrics.h +0 -406
  2855. data/src/core/lib/channel/server_call_tracer_filter.cc +0 -113
  2856. data/src/core/lib/channel/server_call_tracer_filter.h +0 -28
  2857. data/src/core/lib/channel/status_util.cc +0 -155
  2858. data/src/core/lib/channel/status_util.h +0 -81
  2859. data/src/core/lib/channel/tcp_tracer.h +0 -144
  2860. data/src/core/lib/config/config_vars.cc +0 -154
  2861. data/src/core/lib/config/config_vars.h +0 -131
  2862. data/src/core/lib/config/config_vars_non_generated.cc +0 -49
  2863. data/src/core/lib/config/core_configuration.cc +0 -111
  2864. data/src/core/lib/config/core_configuration.h +0 -244
  2865. data/src/core/lib/config/load_config.cc +0 -79
  2866. data/src/core/lib/config/load_config.h +0 -55
  2867. data/src/core/lib/debug/event_log.cc +0 -88
  2868. data/src/core/lib/debug/event_log.h +0 -81
  2869. data/src/core/lib/debug/histogram_view.cc +0 -69
  2870. data/src/core/lib/debug/histogram_view.h +0 -37
  2871. data/src/core/lib/debug/stats.cc +0 -68
  2872. data/src/core/lib/debug/stats.h +0 -64
  2873. data/src/core/lib/debug/stats_data.cc +0 -752
  2874. data/src/core/lib/debug/stats_data.h +0 -579
  2875. data/src/core/lib/event_engine/trace.cc +0 -25
  2876. data/src/core/lib/event_engine/trace.h +0 -49
  2877. data/src/core/lib/gpr/alloc.cc +0 -71
  2878. data/src/core/lib/gpr/alloc.h +0 -28
  2879. data/src/core/lib/gpr/android/log.cc +0 -79
  2880. data/src/core/lib/gpr/atm.cc +0 -35
  2881. data/src/core/lib/gpr/iphone/cpu.cc +0 -44
  2882. data/src/core/lib/gpr/linux/cpu.cc +0 -87
  2883. data/src/core/lib/gpr/linux/log.cc +0 -114
  2884. data/src/core/lib/gpr/log.cc +0 -166
  2885. data/src/core/lib/gpr/log_internal.h +0 -55
  2886. data/src/core/lib/gpr/msys/tmpfile.cc +0 -59
  2887. data/src/core/lib/gpr/posix/cpu.cc +0 -84
  2888. data/src/core/lib/gpr/posix/log.cc +0 -111
  2889. data/src/core/lib/gpr/posix/string.cc +0 -72
  2890. data/src/core/lib/gpr/posix/sync.cc +0 -159
  2891. data/src/core/lib/gpr/posix/time.cc +0 -122
  2892. data/src/core/lib/gpr/posix/tmpfile.cc +0 -71
  2893. data/src/core/lib/gpr/spinlock.h +0 -53
  2894. data/src/core/lib/gpr/string.cc +0 -344
  2895. data/src/core/lib/gpr/string.h +0 -112
  2896. data/src/core/lib/gpr/sync.cc +0 -124
  2897. data/src/core/lib/gpr/sync_abseil.cc +0 -110
  2898. data/src/core/lib/gpr/time.cc +0 -269
  2899. data/src/core/lib/gpr/time_precise.cc +0 -168
  2900. data/src/core/lib/gpr/time_precise.h +0 -69
  2901. data/src/core/lib/gpr/tmpfile.h +0 -32
  2902. data/src/core/lib/gpr/useful.h +0 -184
  2903. data/src/core/lib/gpr/windows/cpu.cc +0 -35
  2904. data/src/core/lib/gpr/windows/log.cc +0 -116
  2905. data/src/core/lib/gpr/windows/string.cc +0 -69
  2906. data/src/core/lib/gpr/windows/string_util.cc +0 -55
  2907. data/src/core/lib/gpr/windows/sync.cc +0 -122
  2908. data/src/core/lib/gpr/windows/time.cc +0 -105
  2909. data/src/core/lib/gpr/windows/tmpfile.cc +0 -68
  2910. data/src/core/lib/gprpp/atomic_utils.h +0 -47
  2911. data/src/core/lib/gprpp/bitset.h +0 -225
  2912. data/src/core/lib/gprpp/chunked_vector.h +0 -257
  2913. data/src/core/lib/gprpp/construct_destruct.h +0 -40
  2914. data/src/core/lib/gprpp/cpp_impl_of.h +0 -49
  2915. data/src/core/lib/gprpp/crash.cc +0 -43
  2916. data/src/core/lib/gprpp/crash.h +0 -37
  2917. data/src/core/lib/gprpp/debug_location.h +0 -99
  2918. data/src/core/lib/gprpp/directory_reader.h +0 -48
  2919. data/src/core/lib/gprpp/down_cast.h +0 -49
  2920. data/src/core/lib/gprpp/dual_ref_counted.h +0 -364
  2921. data/src/core/lib/gprpp/env.h +0 -53
  2922. data/src/core/lib/gprpp/examine_stack.cc +0 -43
  2923. data/src/core/lib/gprpp/examine_stack.h +0 -45
  2924. data/src/core/lib/gprpp/fork.cc +0 -242
  2925. data/src/core/lib/gprpp/fork.h +0 -98
  2926. data/src/core/lib/gprpp/host_port.cc +0 -114
  2927. data/src/core/lib/gprpp/host_port.h +0 -57
  2928. data/src/core/lib/gprpp/if_list.h +0 -4530
  2929. data/src/core/lib/gprpp/linux/env.cc +0 -62
  2930. data/src/core/lib/gprpp/load_file.cc +0 -78
  2931. data/src/core/lib/gprpp/load_file.h +0 -34
  2932. data/src/core/lib/gprpp/manual_constructor.h +0 -146
  2933. data/src/core/lib/gprpp/match.h +0 -75
  2934. data/src/core/lib/gprpp/memory.h +0 -53
  2935. data/src/core/lib/gprpp/mpscq.cc +0 -108
  2936. data/src/core/lib/gprpp/mpscq.h +0 -99
  2937. data/src/core/lib/gprpp/no_destruct.h +0 -95
  2938. data/src/core/lib/gprpp/notification.h +0 -67
  2939. data/src/core/lib/gprpp/orphanable.h +0 -153
  2940. data/src/core/lib/gprpp/overload.h +0 -59
  2941. data/src/core/lib/gprpp/packed_table.h +0 -40
  2942. data/src/core/lib/gprpp/per_cpu.cc +0 -35
  2943. data/src/core/lib/gprpp/per_cpu.h +0 -104
  2944. data/src/core/lib/gprpp/posix/directory_reader.cc +0 -82
  2945. data/src/core/lib/gprpp/posix/env.cc +0 -47
  2946. data/src/core/lib/gprpp/posix/stat.cc +0 -54
  2947. data/src/core/lib/gprpp/posix/thd.cc +0 -247
  2948. data/src/core/lib/gprpp/ref_counted.h +0 -394
  2949. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -445
  2950. data/src/core/lib/gprpp/ref_counted_string.cc +0 -44
  2951. data/src/core/lib/gprpp/ref_counted_string.h +0 -161
  2952. data/src/core/lib/gprpp/single_set_ptr.h +0 -87
  2953. data/src/core/lib/gprpp/sorted_pack.h +0 -89
  2954. data/src/core/lib/gprpp/stat.h +0 -36
  2955. data/src/core/lib/gprpp/status_helper.cc +0 -453
  2956. data/src/core/lib/gprpp/status_helper.h +0 -190
  2957. data/src/core/lib/gprpp/strerror.cc +0 -41
  2958. data/src/core/lib/gprpp/strerror.h +0 -29
  2959. data/src/core/lib/gprpp/sync.h +0 -200
  2960. data/src/core/lib/gprpp/table.h +0 -452
  2961. data/src/core/lib/gprpp/tchar.cc +0 -49
  2962. data/src/core/lib/gprpp/tchar.h +0 -33
  2963. data/src/core/lib/gprpp/thd.h +0 -195
  2964. data/src/core/lib/gprpp/time.cc +0 -242
  2965. data/src/core/lib/gprpp/time.h +0 -385
  2966. data/src/core/lib/gprpp/time_averaged_stats.cc +0 -60
  2967. data/src/core/lib/gprpp/time_averaged_stats.h +0 -79
  2968. data/src/core/lib/gprpp/time_util.cc +0 -81
  2969. data/src/core/lib/gprpp/time_util.h +0 -42
  2970. data/src/core/lib/gprpp/type_list.h +0 -32
  2971. data/src/core/lib/gprpp/unique_type_name.h +0 -104
  2972. data/src/core/lib/gprpp/uuid_v4.cc +0 -37
  2973. data/src/core/lib/gprpp/uuid_v4.h +0 -36
  2974. data/src/core/lib/gprpp/validation_errors.cc +0 -65
  2975. data/src/core/lib/gprpp/validation_errors.h +0 -134
  2976. data/src/core/lib/gprpp/windows/directory_reader.cc +0 -81
  2977. data/src/core/lib/gprpp/windows/env.cc +0 -56
  2978. data/src/core/lib/gprpp/windows/stat.cc +0 -50
  2979. data/src/core/lib/gprpp/windows/thd.cc +0 -182
  2980. data/src/core/lib/gprpp/work_serializer.cc +0 -558
  2981. data/src/core/lib/gprpp/work_serializer.h +0 -107
  2982. data/src/core/lib/gprpp/xxhash_inline.h +0 -29
  2983. data/src/core/lib/handshaker/proxy_mapper.h +0 -53
  2984. data/src/core/lib/handshaker/proxy_mapper_registry.cc +0 -71
  2985. data/src/core/lib/handshaker/proxy_mapper_registry.h +0 -75
  2986. data/src/core/lib/http/format_request.cc +0 -137
  2987. data/src/core/lib/http/format_request.h +0 -38
  2988. data/src/core/lib/http/httpcli.cc +0 -392
  2989. data/src/core/lib/http/httpcli.h +0 -268
  2990. data/src/core/lib/http/httpcli_security_connector.cc +0 -213
  2991. data/src/core/lib/http/httpcli_ssl_credentials.h +0 -39
  2992. data/src/core/lib/http/parser.cc +0 -451
  2993. data/src/core/lib/http/parser.h +0 -130
  2994. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  2995. data/src/core/lib/iomgr/gethostname.h +0 -26
  2996. data/src/core/lib/iomgr/gethostname_fallback.cc +0 -30
  2997. data/src/core/lib/iomgr/gethostname_host_name_max.cc +0 -40
  2998. data/src/core/lib/iomgr/gethostname_sysconf.cc +0 -40
  2999. data/src/core/lib/iomgr/grpc_if_nametoindex.h +0 -30
  3000. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +0 -43
  3001. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +0 -39
  3002. data/src/core/lib/json/json.h +0 -30
  3003. data/src/core/lib/json/json_args.h +0 -34
  3004. data/src/core/lib/json/json_channel_args.h +0 -42
  3005. data/src/core/lib/json/json_object_loader.cc +0 -216
  3006. data/src/core/lib/json/json_object_loader.h +0 -645
  3007. data/src/core/lib/json/json_reader.cc +0 -956
  3008. data/src/core/lib/json/json_reader.h +0 -34
  3009. data/src/core/lib/json/json_util.cc +0 -101
  3010. data/src/core/lib/json/json_util.h +0 -164
  3011. data/src/core/lib/json/json_writer.cc +0 -339
  3012. data/src/core/lib/json/json_writer.h +0 -33
  3013. data/src/core/lib/matchers/matchers.cc +0 -330
  3014. data/src/core/lib/matchers/matchers.h +0 -163
  3015. data/src/core/lib/promise/trace.cc +0 -20
  3016. data/src/core/lib/promise/trace.h +0 -24
  3017. data/src/core/lib/resource_quota/trace.cc +0 -19
  3018. data/src/core/lib/resource_quota/trace.h +0 -24
  3019. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +0 -70
  3020. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +0 -50
  3021. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -76
  3022. data/src/core/lib/security/context/security_context.cc +0 -329
  3023. data/src/core/lib/security/context/security_context.h +0 -181
  3024. data/src/core/lib/security/credentials/alts/alts_credentials.cc +0 -117
  3025. data/src/core/lib/security/credentials/alts/alts_credentials.h +0 -123
  3026. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -72
  3027. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +0 -57
  3028. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +0 -68
  3029. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +0 -34
  3030. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -103
  3031. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +0 -125
  3032. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +0 -46
  3033. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +0 -74
  3034. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +0 -56
  3035. data/src/core/lib/security/credentials/call_creds_util.cc +0 -97
  3036. data/src/core/lib/security/credentials/call_creds_util.h +0 -43
  3037. data/src/core/lib/security/credentials/channel_creds_registry.h +0 -127
  3038. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +0 -240
  3039. data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -171
  3040. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -133
  3041. data/src/core/lib/security/credentials/credentials.cc +0 -160
  3042. data/src/core/lib/security/credentials/credentials.h +0 -299
  3043. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +0 -532
  3044. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +0 -105
  3045. data/src/core/lib/security/credentials/external/aws_request_signer.cc +0 -231
  3046. data/src/core/lib/security/credentials/external/aws_request_signer.h +0 -72
  3047. data/src/core/lib/security/credentials/external/external_account_credentials.cc +0 -607
  3048. data/src/core/lib/security/credentials/external/external_account_credentials.h +0 -139
  3049. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -138
  3050. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +0 -59
  3051. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +0 -247
  3052. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +0 -75
  3053. data/src/core/lib/security/credentials/fake/fake_credentials.cc +0 -105
  3054. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -123
  3055. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +0 -40
  3056. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -447
  3057. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -99
  3058. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -83
  3059. data/src/core/lib/security/credentials/iam/iam_credentials.h +0 -65
  3060. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +0 -71
  3061. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +0 -61
  3062. data/src/core/lib/security/credentials/jwt/json_token.cc +0 -321
  3063. data/src/core/lib/security/credentials/jwt/json_token.h +0 -80
  3064. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +0 -188
  3065. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +0 -106
  3066. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -995
  3067. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +0 -124
  3068. data/src/core/lib/security/credentials/local/local_credentials.cc +0 -69
  3069. data/src/core/lib/security/credentials/local/local_credentials.h +0 -77
  3070. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +0 -753
  3071. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +0 -220
  3072. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -215
  3073. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +0 -125
  3074. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +0 -486
  3075. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -145
  3076. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -338
  3077. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +0 -216
  3078. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +0 -86
  3079. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -421
  3080. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -205
  3081. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -241
  3082. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -170
  3083. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +0 -163
  3084. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -144
  3085. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +0 -262
  3086. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +0 -133
  3087. data/src/core/lib/security/credentials/tls/tls_credentials.cc +0 -174
  3088. data/src/core/lib/security/credentials/tls/tls_credentials.h +0 -73
  3089. data/src/core/lib/security/credentials/tls/tls_utils.cc +0 -129
  3090. data/src/core/lib/security/credentials/tls/tls_utils.h +0 -51
  3091. data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -228
  3092. data/src/core/lib/security/credentials/xds/xds_credentials.h +0 -112
  3093. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +0 -308
  3094. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +0 -78
  3095. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -314
  3096. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -42
  3097. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -120
  3098. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +0 -103
  3099. data/src/core/lib/security/security_connector/load_system_roots.h +0 -36
  3100. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +0 -36
  3101. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +0 -167
  3102. data/src/core/lib/security/security_connector/load_system_roots_supported.h +0 -45
  3103. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +0 -87
  3104. data/src/core/lib/security/security_connector/local/local_security_connector.cc +0 -306
  3105. data/src/core/lib/security/security_connector/local/local_security_connector.h +0 -62
  3106. data/src/core/lib/security/security_connector/security_connector.cc +0 -127
  3107. data/src/core/lib/security/security_connector/security_connector.h +0 -200
  3108. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +0 -407
  3109. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +0 -82
  3110. data/src/core/lib/security/security_connector/ssl_utils.cc +0 -628
  3111. data/src/core/lib/security/security_connector/ssl_utils.h +0 -191
  3112. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +0 -829
  3113. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -286
  3114. data/src/core/lib/security/transport/auth_filters.h +0 -140
  3115. data/src/core/lib/security/transport/client_auth_filter.cc +0 -227
  3116. data/src/core/lib/security/transport/secure_endpoint.cc +0 -565
  3117. data/src/core/lib/security/transport/secure_endpoint.h +0 -43
  3118. data/src/core/lib/security/transport/security_handshaker.cc +0 -682
  3119. data/src/core/lib/security/transport/security_handshaker.h +0 -47
  3120. data/src/core/lib/security/transport/server_auth_filter.cc +0 -224
  3121. data/src/core/lib/security/transport/tsi_error.cc +0 -31
  3122. data/src/core/lib/security/transport/tsi_error.h +0 -30
  3123. data/src/core/lib/security/util/json_util.cc +0 -71
  3124. data/src/core/lib/security/util/json_util.h +0 -43
  3125. data/src/core/lib/slice/slice_refcount.cc +0 -20
  3126. data/src/core/lib/surface/api_trace.cc +0 -25
  3127. data/src/core/lib/surface/api_trace.h +0 -53
  3128. data/src/core/lib/surface/call_trace.h +0 -24
  3129. data/src/core/lib/surface/server.cc +0 -2030
  3130. data/src/core/lib/surface/server.h +0 -555
  3131. data/src/core/lib/surface/server_interface.h +0 -43
  3132. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  3133. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  3134. data/src/core/lib/transport/batch_builder.cc +0 -170
  3135. data/src/core/lib/transport/batch_builder.h +0 -476
  3136. data/src/core/lib/transport/call_filters.cc +0 -471
  3137. data/src/core/lib/transport/call_filters.h +0 -1799
  3138. data/src/core/lib/transport/call_size_estimator.cc +0 -41
  3139. data/src/core/lib/transport/call_size_estimator.h +0 -52
  3140. data/src/core/lib/transport/call_spine.cc +0 -107
  3141. data/src/core/lib/transport/call_spine.h +0 -434
  3142. data/src/core/lib/transport/custom_metadata.h +0 -30
  3143. data/src/core/lib/transport/endpoint_info_handshaker.cc +0 -80
  3144. data/src/core/lib/transport/endpoint_info_handshaker.h +0 -37
  3145. data/src/core/lib/transport/handshaker.cc +0 -229
  3146. data/src/core/lib/transport/handshaker.h +0 -165
  3147. data/src/core/lib/transport/handshaker_factory.h +0 -73
  3148. data/src/core/lib/transport/handshaker_registry.cc +0 -61
  3149. data/src/core/lib/transport/handshaker_registry.h +0 -69
  3150. data/src/core/lib/transport/http2_errors.h +0 -41
  3151. data/src/core/lib/transport/http_connect_handshaker.cc +0 -400
  3152. data/src/core/lib/transport/http_connect_handshaker.h +0 -42
  3153. data/src/core/lib/transport/message.cc +0 -45
  3154. data/src/core/lib/transport/message.h +0 -61
  3155. data/src/core/lib/transport/metadata.cc +0 -37
  3156. data/src/core/lib/transport/metadata.h +0 -78
  3157. data/src/core/lib/transport/metadata_batch.cc +0 -376
  3158. data/src/core/lib/transport/metadata_batch.h +0 -1518
  3159. data/src/core/lib/transport/metadata_compression_traits.h +0 -67
  3160. data/src/core/lib/transport/metadata_info.cc +0 -55
  3161. data/src/core/lib/transport/metadata_info.h +0 -85
  3162. data/src/core/lib/transport/parsed_metadata.cc +0 -35
  3163. data/src/core/lib/transport/parsed_metadata.h +0 -432
  3164. data/src/core/lib/transport/simple_slice_based_metadata.h +0 -54
  3165. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -244
  3166. data/src/core/lib/transport/tcp_connect_handshaker.h +0 -39
  3167. data/src/core/lib/uri/uri_parser.cc +0 -372
  3168. data/src/core/lib/uri/uri_parser.h +0 -101
  3169. data/src/core/resolver/binder/binder_resolver.cc +0 -154
  3170. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  3171. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  3172. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
  3173. data/third_party/boringssl-with-bazel/err_data.c +0 -1512
  3174. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +0 -284
  3175. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +0 -95
  3176. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -89
  3177. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +0 -84
  3178. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +0 -151
  3179. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +0 -85
  3180. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +0 -465
  3181. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +0 -279
  3182. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +0 -235
  3183. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +0 -74
  3184. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +0 -457
  3185. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +0 -245
  3186. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +0 -259
  3187. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +0 -214
  3188. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -183
  3189. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -397
  3190. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +0 -103
  3191. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +0 -98
  3192. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +0 -105
  3193. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +0 -94
  3194. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +0 -241
  3195. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +0 -973
  3196. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +0 -708
  3197. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +0 -212
  3198. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +0 -317
  3199. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -126
  3200. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +0 -268
  3201. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +0 -475
  3202. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +0 -731
  3203. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +0 -309
  3204. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +0 -544
  3205. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +0 -92
  3206. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -235
  3207. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +0 -319
  3208. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +0 -192
  3209. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +0 -480
  3210. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -102
  3211. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +0 -189
  3212. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +0 -133
  3213. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +0 -169
  3214. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +0 -57
  3215. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +0 -465
  3216. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +0 -158
  3217. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +0 -53
  3218. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +0 -266
  3219. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +0 -718
  3220. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +0 -926
  3221. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +0 -155
  3222. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -224
  3223. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +0 -127
  3224. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +0 -152
  3225. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +0 -284
  3226. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +0 -841
  3227. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -341
  3228. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +0 -246
  3229. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +0 -86
  3230. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +0 -463
  3231. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +0 -89
  3232. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +0 -598
  3233. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +0 -237
  3234. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +0 -514
  3235. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +0 -647
  3236. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  3237. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +0 -75
  3238. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -55
  3239. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -62
  3240. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -61
  3241. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +0 -93
  3242. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +0 -41
  3243. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -54
  3244. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -148
  3245. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -292
  3246. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +0 -242
  3247. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +0 -2157
  3248. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +0 -18
  3249. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +0 -523
  3250. data/third_party/boringssl-with-bazel/src/crypto/des/des.c +0 -871
  3251. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +0 -165
  3252. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +0 -480
  3253. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -265
  3254. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +0 -981
  3255. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -420
  3256. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +0 -572
  3257. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +0 -96
  3258. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +0 -508
  3259. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -78
  3260. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +0 -124
  3261. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +0 -265
  3262. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +0 -91
  3263. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +0 -882
  3264. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +0 -509
  3265. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +0 -547
  3266. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +0 -483
  3267. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +0 -308
  3268. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +0 -275
  3269. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +0 -302
  3270. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +0 -103
  3271. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +0 -224
  3272. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +0 -232
  3273. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +0 -646
  3274. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +0 -211
  3275. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +0 -109
  3276. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +0 -236
  3277. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +0 -146
  3278. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +0 -381
  3279. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +0 -209
  3280. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +0 -156
  3281. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +0 -237
  3282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -106
  3283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +0 -1281
  3284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +0 -242
  3285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +0 -124
  3286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -275
  3287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c +0 -310
  3288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -541
  3289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +0 -428
  3290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +0 -267
  3291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +0 -201
  3292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -234
  3293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +0 -909
  3294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +0 -87
  3295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +0 -1276
  3296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -397
  3297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +0 -328
  3298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +0 -624
  3299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c +0 -146
  3300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +0 -532
  3301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +0 -222
  3302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +0 -744
  3303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -1070
  3304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +0 -355
  3305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +0 -137
  3306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +0 -363
  3307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +0 -499
  3308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +0 -287
  3309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +0 -717
  3310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +0 -1463
  3311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c +0 -446
  3312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c +0 -322
  3313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +0 -245
  3314. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +0 -489
  3315. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +0 -288
  3316. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +0 -304
  3317. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c +0 -267
  3318. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +0 -1043
  3319. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -553
  3320. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +0 -491
  3321. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +0 -104
  3322. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +0 -359
  3323. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +0 -1163
  3324. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +0 -637
  3325. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +0 -749
  3326. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +0 -169
  3327. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +0 -336
  3328. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +0 -269
  3329. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +0 -255
  3330. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -264
  3331. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +0 -130
  3332. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +0 -372
  3333. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +0 -32
  3334. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +0 -112
  3335. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +0 -256
  3336. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +0 -240
  3337. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +0 -37
  3338. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +0 -284
  3339. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +0 -164
  3340. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +0 -200
  3341. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +0 -196
  3342. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +0 -743
  3343. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +0 -302
  3344. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -428
  3345. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +0 -87
  3346. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +0 -90
  3347. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +0 -220
  3348. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +0 -197
  3349. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +0 -67
  3350. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +0 -64
  3351. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -493
  3352. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -328
  3353. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -241
  3354. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +0 -423
  3355. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +0 -1038
  3356. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +0 -1337
  3357. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +0 -119
  3358. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +0 -1064
  3359. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +0 -331
  3360. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +0 -439
  3361. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +0 -359
  3362. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +0 -537
  3363. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +0 -211
  3364. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +0 -799
  3365. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +0 -2234
  3366. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +0 -70
  3367. data/third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c +0 -279
  3368. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +0 -844
  3369. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +0 -350
  3370. data/third_party/boringssl-with-bazel/src/crypto/mem.c +0 -600
  3371. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +0 -564
  3372. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +0 -122
  3373. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -243
  3374. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -294
  3375. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -789
  3376. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +0 -87
  3377. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -248
  3378. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -182
  3379. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -64
  3380. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -64
  3381. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +0 -193
  3382. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -523
  3383. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +0 -316
  3384. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -527
  3385. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +0 -1352
  3386. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +0 -314
  3387. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +0 -308
  3388. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +0 -847
  3389. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +0 -261
  3390. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +0 -57
  3391. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +0 -44
  3392. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +0 -52
  3393. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +0 -34
  3394. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +0 -158
  3395. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +0 -74
  3396. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +0 -38
  3397. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +0 -95
  3398. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +0 -98
  3399. data/third_party/boringssl-with-bazel/src/crypto/refcount.c +0 -59
  3400. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +0 -77
  3401. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +0 -324
  3402. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +0 -570
  3403. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +0 -22
  3404. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +0 -79
  3405. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  3406. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  3407. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  3408. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  3409. data/third_party/boringssl-with-bazel/src/crypto/spx/internal.h +0 -79
  3410. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  3411. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  3412. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  3413. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -139
  3414. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  3415. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  3416. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  3417. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  3418. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  3419. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  3420. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +0 -534
  3421. data/third_party/boringssl-with-bazel/src/crypto/thread.c +0 -110
  3422. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -51
  3423. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -150
  3424. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +0 -236
  3425. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +0 -1668
  3426. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +0 -687
  3427. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +0 -1267
  3428. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +0 -94
  3429. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +0 -136
  3430. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +0 -116
  3431. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +0 -178
  3432. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +0 -585
  3433. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +0 -407
  3434. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -269
  3435. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +0 -79
  3436. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +0 -227
  3437. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +0 -786
  3438. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +0 -397
  3439. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -145
  3440. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +0 -245
  3441. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -329
  3442. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +0 -121
  3443. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c +0 -221
  3444. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c +0 -73
  3445. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c +0 -634
  3446. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c +0 -135
  3447. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c +0 -141
  3448. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c +0 -416
  3449. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +0 -477
  3450. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +0 -598
  3451. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c +0 -112
  3452. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c +0 -154
  3453. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c +0 -270
  3454. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c +0 -122
  3455. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +0 -211
  3456. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c +0 -121
  3457. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +0 -342
  3458. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c +0 -555
  3459. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c +0 -81
  3460. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c +0 -142
  3461. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c +0 -150
  3462. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c +0 -224
  3463. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c +0 -624
  3464. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c +0 -170
  3465. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +0 -1357
  3466. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -89
  3467. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -227
  3468. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -280
  3469. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +0 -108
  3470. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +0 -86
  3471. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +0 -181
  3472. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -609
  3473. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +0 -206
  3474. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +0 -299
  3475. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +0 -240
  3476. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +0 -164
  3477. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +0 -189
  3478. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +0 -291
  3479. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -1655
  3480. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +0 -440
  3481. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +0 -277
  3482. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +0 -407
  3483. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +0 -109
  3484. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +0 -133
  3485. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +0 -149
  3486. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -356
  3487. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +0 -97
  3488. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +0 -384
  3489. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +0 -78
  3490. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +0 -527
  3491. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -210
  3492. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +0 -116
  3493. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +0 -93
  3494. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +0 -79
  3495. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +0 -70
  3496. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +0 -549
  3497. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +0 -209
  3498. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +0 -136
  3499. data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
  3500. data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
@@ -20,10 +20,19 @@
20
20
  // to use. A child policy that recognizes the name as a field of its
21
21
  // configuration will take further load balancing action on the request.
22
22
 
23
- #include <grpc/support/port_platform.h>
24
-
25
23
  #include "src/core/load_balancing/rls/rls.h"
26
24
 
25
+ #include <grpc/byte_buffer.h>
26
+ #include <grpc/byte_buffer_reader.h>
27
+ #include <grpc/event_engine/event_engine.h>
28
+ #include <grpc/grpc.h>
29
+ #include <grpc/impl/channel_arg_names.h>
30
+ #include <grpc/impl/connectivity_state.h>
31
+ #include <grpc/impl/propagation_bits.h>
32
+ #include <grpc/slice.h>
33
+ #include <grpc/status.h>
34
+ #include <grpc/support/json.h>
35
+ #include <grpc/support/port_platform.h>
27
36
  #include <inttypes.h>
28
37
  #include <stdlib.h>
29
38
  #include <string.h>
@@ -33,6 +42,7 @@
33
42
  #include <list>
34
43
  #include <map>
35
44
  #include <memory>
45
+ #include <optional>
36
46
  #include <random>
37
47
  #include <set>
38
48
  #include <string>
@@ -43,6 +53,8 @@
43
53
 
44
54
  #include "absl/base/thread_annotations.h"
45
55
  #include "absl/hash/hash.h"
56
+ #include "absl/log/check.h"
57
+ #include "absl/log/log.h"
46
58
  #include "absl/random/random.h"
47
59
  #include "absl/status/status.h"
48
60
  #include "absl/status/statusor.h"
@@ -50,49 +62,16 @@
50
62
  #include "absl/strings/str_format.h"
51
63
  #include "absl/strings/str_join.h"
52
64
  #include "absl/strings/string_view.h"
53
- #include "absl/types/optional.h"
54
- #include "upb/base/string_view.h"
55
- #include "upb/mem/arena.hpp"
56
-
57
- #include <grpc/byte_buffer.h>
58
- #include <grpc/byte_buffer_reader.h>
59
- #include <grpc/event_engine/event_engine.h>
60
- #include <grpc/grpc.h>
61
- #include <grpc/impl/channel_arg_names.h>
62
- #include <grpc/impl/connectivity_state.h>
63
- #include <grpc/impl/propagation_bits.h>
64
- #include <grpc/slice.h>
65
- #include <grpc/status.h>
66
- #include <grpc/support/json.h>
67
- #include <grpc/support/log.h>
68
-
65
+ #include "src/core/channelz/channelz.h"
69
66
  #include "src/core/client_channel/client_channel_filter.h"
70
- #include "src/core/lib/backoff/backoff.h"
67
+ #include "src/core/config/core_configuration.h"
68
+ #include "src/core/credentials/transport/fake/fake_credentials.h"
71
69
  #include "src/core/lib/channel/channel_args.h"
72
- #include "src/core/lib/channel/channelz.h"
73
- #include "src/core/lib/channel/metrics.h"
74
- #include "src/core/lib/config/core_configuration.h"
75
70
  #include "src/core/lib/debug/trace.h"
76
- #include "src/core/lib/gprpp/debug_location.h"
77
- #include "src/core/lib/gprpp/dual_ref_counted.h"
78
- #include "src/core/lib/gprpp/match.h"
79
- #include "src/core/lib/gprpp/orphanable.h"
80
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
81
- #include "src/core/lib/gprpp/status_helper.h"
82
- #include "src/core/lib/gprpp/sync.h"
83
- #include "src/core/lib/gprpp/time.h"
84
- #include "src/core/lib/gprpp/uuid_v4.h"
85
- #include "src/core/lib/gprpp/validation_errors.h"
86
- #include "src/core/lib/gprpp/work_serializer.h"
87
71
  #include "src/core/lib/iomgr/closure.h"
88
72
  #include "src/core/lib/iomgr/error.h"
89
73
  #include "src/core/lib/iomgr/exec_ctx.h"
90
74
  #include "src/core/lib/iomgr/pollset_set.h"
91
- #include "src/core/lib/json/json.h"
92
- #include "src/core/lib/json/json_args.h"
93
- #include "src/core/lib/json/json_object_loader.h"
94
- #include "src/core/lib/json/json_writer.h"
95
- #include "src/core/lib/security/credentials/fake/fake_credentials.h"
96
75
  #include "src/core/lib/slice/slice.h"
97
76
  #include "src/core/lib/slice/slice_internal.h"
98
77
  #include "src/core/lib/surface/call.h"
@@ -107,14 +86,32 @@
107
86
  #include "src/core/resolver/endpoint_addresses.h"
108
87
  #include "src/core/resolver/resolver_registry.h"
109
88
  #include "src/core/service_config/service_config_impl.h"
89
+ #include "src/core/telemetry/metrics.h"
90
+ #include "src/core/util/backoff.h"
91
+ #include "src/core/util/debug_location.h"
92
+ #include "src/core/util/dual_ref_counted.h"
93
+ #include "src/core/util/json/json.h"
94
+ #include "src/core/util/json/json_args.h"
95
+ #include "src/core/util/json/json_object_loader.h"
96
+ #include "src/core/util/json/json_writer.h"
97
+ #include "src/core/util/match.h"
98
+ #include "src/core/util/orphanable.h"
99
+ #include "src/core/util/ref_counted_ptr.h"
100
+ #include "src/core/util/status_helper.h"
101
+ #include "src/core/util/sync.h"
102
+ #include "src/core/util/time.h"
103
+ #include "src/core/util/upb_utils.h"
104
+ #include "src/core/util/uuid_v4.h"
105
+ #include "src/core/util/validation_errors.h"
106
+ #include "src/core/util/work_serializer.h"
110
107
  #include "src/proto/grpc/lookup/v1/rls.upb.h"
108
+ #include "upb/base/string_view.h"
109
+ #include "upb/mem/arena.hpp"
111
110
 
112
111
  using ::grpc_event_engine::experimental::EventEngine;
113
112
 
114
113
  namespace grpc_core {
115
114
 
116
- TraceFlag grpc_lb_rls_trace(false, "rls_lb");
117
-
118
115
  namespace {
119
116
 
120
117
  constexpr absl::string_view kMetricLabelRlsServerTarget =
@@ -128,26 +125,27 @@ constexpr absl::string_view kMetricLabelPickResult = "grpc.lb.pick_result";
128
125
  const auto kMetricCacheSize =
129
126
  GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
130
127
  "grpc.lb.rls.cache_size", "EXPERIMENTAL. Size of the RLS cache.", "By",
131
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
132
- kMetricLabelRlsInstanceUuid},
133
- {}, false);
128
+ false)
129
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
130
+ kMetricLabelRlsInstanceUuid)
131
+ .Build();
134
132
 
135
133
  const auto kMetricCacheEntries =
136
134
  GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
137
135
  "grpc.lb.rls.cache_entries",
138
- "EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}",
139
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
140
- kMetricLabelRlsInstanceUuid},
141
- {}, false);
136
+ "EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}", false)
137
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
138
+ kMetricLabelRlsInstanceUuid)
139
+ .Build();
142
140
 
143
141
  const auto kMetricDefaultTargetPicks =
144
142
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
145
143
  "grpc.lb.rls.default_target_picks",
146
144
  "EXPERIMENTAL. Number of LB picks sent to the default target.",
147
- "{pick}",
148
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
149
- kMetricRlsDataPlaneTarget, kMetricLabelPickResult},
150
- {}, false);
145
+ "{pick}", false)
146
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
147
+ kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
148
+ .Build();
151
149
 
152
150
  const auto kMetricTargetPicks =
153
151
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
@@ -156,26 +154,25 @@ const auto kMetricTargetPicks =
156
154
  "if the default target is also returned by the RLS server, RPCs sent "
157
155
  "to that target from the cache will be counted in this metric, not "
158
156
  "in grpc.rls.default_target_picks.",
159
- "{pick}",
160
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
161
- kMetricRlsDataPlaneTarget, kMetricLabelPickResult},
162
- {}, false);
157
+ "{pick}", false)
158
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
159
+ kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
160
+ .Build();
163
161
 
164
162
  const auto kMetricFailedPicks =
165
163
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
166
164
  "grpc.lb.rls.failed_picks",
167
165
  "EXPERIMENTAL. Number of LB picks failed due to either a failed RLS "
168
166
  "request or the RLS channel being throttled.",
169
- "{pick}", {kMetricLabelTarget, kMetricLabelRlsServerTarget}, {}, false);
167
+ "{pick}", false)
168
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget)
169
+ .Build();
170
170
 
171
- constexpr absl::string_view kRls = "rls_experimental";
172
171
  const char kGrpc[] = "grpc";
173
172
  const char* kRlsRequestPath = "/grpc.lookup.v1.RouteLookupService/RouteLookup";
174
173
  const char* kFakeTargetFieldValue = "fake_target_field_value";
175
174
  const char* kRlsHeaderKey = "x-google-rls-data";
176
175
 
177
- const Duration kDefaultLookupServiceTimeout = Duration::Seconds(10);
178
- const Duration kMaxMaxAge = Duration::Minutes(5);
179
176
  const Duration kMinExpirationTime = Duration::Seconds(5);
180
177
  const Duration kCacheBackoffInitial = Duration::Seconds(1);
181
178
  const double kCacheBackoffMultiplier = 1.6;
@@ -187,91 +184,12 @@ const int kDefaultThrottlePadding = 8;
187
184
  const Duration kCacheCleanupTimerInterval = Duration::Minutes(1);
188
185
  const int64_t kMaxCacheSizeBytes = 5 * 1024 * 1024;
189
186
 
190
- // Parsed RLS LB policy configuration.
191
- class RlsLbConfig final : public LoadBalancingPolicy::Config {
192
- public:
193
- struct KeyBuilder {
194
- std::map<std::string /*key*/, std::vector<std::string /*header*/>>
195
- header_keys;
196
- std::string host_key;
197
- std::string service_key;
198
- std::string method_key;
199
- std::map<std::string /*key*/, std::string /*value*/> constant_keys;
200
- };
201
- using KeyBuilderMap = std::unordered_map<std::string /*path*/, KeyBuilder>;
202
-
203
- struct RouteLookupConfig {
204
- KeyBuilderMap key_builder_map;
205
- std::string lookup_service;
206
- Duration lookup_service_timeout = kDefaultLookupServiceTimeout;
207
- Duration max_age = kMaxMaxAge;
208
- Duration stale_age = kMaxMaxAge;
209
- int64_t cache_size_bytes = 0;
210
- std::string default_target;
211
-
212
- static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
213
- void JsonPostLoad(const Json& json, const JsonArgs& args,
214
- ValidationErrors* errors);
215
- };
216
-
217
- RlsLbConfig() = default;
218
-
219
- RlsLbConfig(const RlsLbConfig&) = delete;
220
- RlsLbConfig& operator=(const RlsLbConfig&) = delete;
221
-
222
- RlsLbConfig(RlsLbConfig&& other) = delete;
223
- RlsLbConfig& operator=(RlsLbConfig&& other) = delete;
224
-
225
- absl::string_view name() const override { return kRls; }
226
-
227
- const KeyBuilderMap& key_builder_map() const {
228
- return route_lookup_config_.key_builder_map;
229
- }
230
- const std::string& lookup_service() const {
231
- return route_lookup_config_.lookup_service;
232
- }
233
- Duration lookup_service_timeout() const {
234
- return route_lookup_config_.lookup_service_timeout;
235
- }
236
- Duration max_age() const { return route_lookup_config_.max_age; }
237
- Duration stale_age() const { return route_lookup_config_.stale_age; }
238
- int64_t cache_size_bytes() const {
239
- return route_lookup_config_.cache_size_bytes;
240
- }
241
- const std::string& default_target() const {
242
- return route_lookup_config_.default_target;
243
- }
244
- const std::string& rls_channel_service_config() const {
245
- return rls_channel_service_config_;
246
- }
247
- const Json& child_policy_config() const { return child_policy_config_; }
248
- const std::string& child_policy_config_target_field_name() const {
249
- return child_policy_config_target_field_name_;
250
- }
251
- RefCountedPtr<LoadBalancingPolicy::Config>
252
- default_child_policy_parsed_config() const {
253
- return default_child_policy_parsed_config_;
254
- }
255
-
256
- static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
257
- void JsonPostLoad(const Json& json, const JsonArgs&,
258
- ValidationErrors* errors);
259
-
260
- private:
261
- RouteLookupConfig route_lookup_config_;
262
- std::string rls_channel_service_config_;
263
- Json child_policy_config_;
264
- std::string child_policy_config_target_field_name_;
265
- RefCountedPtr<LoadBalancingPolicy::Config>
266
- default_child_policy_parsed_config_;
267
- };
268
-
269
187
  // RLS LB policy.
270
188
  class RlsLb final : public LoadBalancingPolicy {
271
189
  public:
272
190
  explicit RlsLb(Args args);
273
191
 
274
- absl::string_view name() const override { return kRls; }
192
+ absl::string_view name() const override { return RlsLbConfig::Name(); }
275
193
  absl::Status UpdateLocked(UpdateArgs args) override;
276
194
  void ExitIdleLocked() override;
277
195
  void ResetBackoffLocked() override;
@@ -288,17 +206,16 @@ class RlsLb final : public LoadBalancingPolicy {
288
206
  template <typename H>
289
207
  friend H AbslHashValue(H h, const RequestKey& key) {
290
208
  std::hash<std::string> string_hasher;
291
- for (auto& kv : key.key_map) {
292
- h = H::combine(std::move(h), string_hasher(kv.first),
293
- string_hasher(kv.second));
209
+ for (auto& [key, value] : key.key_map) {
210
+ h = H::combine(std::move(h), string_hasher(key), string_hasher(value));
294
211
  }
295
212
  return h;
296
213
  }
297
214
 
298
215
  size_t Size() const {
299
216
  size_t size = sizeof(RequestKey);
300
- for (auto& kv : key_map) {
301
- size += kv.first.length() + kv.second.length();
217
+ for (auto& [key, value] : key_map) {
218
+ size += key.length() + value.length();
302
219
  }
303
220
  return size;
304
221
  }
@@ -313,12 +230,12 @@ class RlsLb final : public LoadBalancingPolicy {
313
230
  struct ResponseInfo {
314
231
  absl::Status status;
315
232
  std::vector<std::string> targets;
316
- std::string header_data;
233
+ grpc_event_engine::experimental::Slice header_data;
317
234
 
318
235
  std::string ToString() const {
319
236
  return absl::StrFormat("{status=%s, targets=[%s], header_data=\"%s\"}",
320
237
  status.ToString(), absl::StrJoin(targets, ","),
321
- header_data);
238
+ header_data.as_string_view());
322
239
  }
323
240
  };
324
241
 
@@ -351,7 +268,8 @@ class RlsLb final : public LoadBalancingPolicy {
351
268
  // is called after releasing it.
352
269
  //
353
270
  // Both methods grab the data they need from the parent object.
354
- void StartUpdate() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
271
+ void StartUpdate(OrphanablePtr<ChildPolicyHandler>* child_policy_to_delete)
272
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
355
273
  absl::Status MaybeFinishUpdate() ABSL_LOCKS_EXCLUDED(&RlsLb::mu_);
356
274
 
357
275
  void ExitIdleLocked() {
@@ -395,14 +313,14 @@ class RlsLb final : public LoadBalancingPolicy {
395
313
  };
396
314
 
397
315
  // Note: We are forced to disable lock analysis here because
398
- // Orphan() is called by Unref() which is called by RefCountedPtr<>, which
316
+ // Orphaned() is called by Unref() which is called by RefCountedPtr<>, which
399
317
  // cannot have lock annotations for this particular caller.
400
318
  void Orphaned() override ABSL_NO_THREAD_SAFETY_ANALYSIS;
401
319
 
402
320
  RefCountedPtr<RlsLb> lb_policy_;
403
321
  std::string target_;
404
322
 
405
- bool is_shutdown_ = false;
323
+ bool is_shutdown_ = false; // Protected by WorkSerializer
406
324
 
407
325
  OrphanablePtr<ChildPolicyHandler> child_policy_;
408
326
  RefCountedPtr<LoadBalancingPolicy::Config> pending_config_;
@@ -462,7 +380,7 @@ class RlsLb final : public LoadBalancingPolicy {
462
380
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_) {
463
381
  return data_expiration_time_;
464
382
  }
465
- const std::string& header_data() const
383
+ const grpc_event_engine::experimental::Slice& header_data() const
466
384
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_) {
467
385
  return header_data_;
468
386
  }
@@ -483,7 +401,8 @@ class RlsLb final : public LoadBalancingPolicy {
483
401
  size_t Size() const ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
484
402
 
485
403
  // Pick subchannel for request based on the entry's state.
486
- PickResult Pick(PickArgs args) ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
404
+ PickResult Pick(PickArgs args, absl::string_view lookup_service)
405
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
487
406
 
488
407
  // If the cache entry is in backoff state, resets the backoff and, if
489
408
  // applicable, its backoff timer. The method does not update the LB
@@ -501,16 +420,29 @@ class RlsLb final : public LoadBalancingPolicy {
501
420
  // Returns a list of child policy wrappers on which FinishUpdate()
502
421
  // needs to be called after releasing the lock.
503
422
  std::vector<ChildPolicyWrapper*> OnRlsResponseLocked(
504
- ResponseInfo response, std::unique_ptr<BackOff> backoff_state)
423
+ ResponseInfo response, std::unique_ptr<BackOff> backoff_state,
424
+ OrphanablePtr<ChildPolicyHandler>* child_policy_to_delete)
505
425
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
506
426
 
507
427
  // Moves entry to the end of the LRU list.
508
428
  void MarkUsed() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
509
429
 
430
+ // Takes entries from child_policy_wrappers_ and appends them to the end
431
+ // of \a child_policy_wrappers.
432
+ void TakeChildPolicyWrappers(
433
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>* child_policy_wrappers)
434
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_) {
435
+ child_policy_wrappers->insert(
436
+ child_policy_wrappers->end(),
437
+ std::make_move_iterator(child_policy_wrappers_.begin()),
438
+ std::make_move_iterator(child_policy_wrappers_.end()));
439
+ child_policy_wrappers_.clear();
440
+ }
441
+
510
442
  private:
511
443
  class BackoffTimer final : public InternallyRefCounted<BackoffTimer> {
512
444
  public:
513
- BackoffTimer(RefCountedPtr<Entry> entry, Timestamp backoff_time);
445
+ BackoffTimer(RefCountedPtr<Entry> entry, Duration delay);
514
446
 
515
447
  // Note: We are forced to disable lock analysis here because
516
448
  // Orphan() is called by OrphanablePtr<>, which cannot have lock
@@ -521,7 +453,7 @@ class RlsLb final : public LoadBalancingPolicy {
521
453
  void OnBackoffTimerLocked();
522
454
 
523
455
  RefCountedPtr<Entry> entry_;
524
- absl::optional<EventEngine::TaskHandle> backoff_timer_task_handle_
456
+ std::optional<EventEngine::TaskHandle> backoff_timer_task_handle_
525
457
  ABSL_GUARDED_BY(&RlsLb::mu_);
526
458
  };
527
459
 
@@ -541,7 +473,8 @@ class RlsLb final : public LoadBalancingPolicy {
541
473
  // RLS response states
542
474
  std::vector<RefCountedPtr<ChildPolicyWrapper>> child_policy_wrappers_
543
475
  ABSL_GUARDED_BY(&RlsLb::mu_);
544
- std::string header_data_ ABSL_GUARDED_BY(&RlsLb::mu_);
476
+ grpc_event_engine::experimental::Slice header_data_
477
+ ABSL_GUARDED_BY(&RlsLb::mu_);
545
478
  Timestamp data_expiration_time_ ABSL_GUARDED_BY(&RlsLb::mu_) =
546
479
  Timestamp::InfPast();
547
480
  Timestamp stale_time_ ABSL_GUARDED_BY(&RlsLb::mu_) = Timestamp::InfPast();
@@ -563,19 +496,24 @@ class RlsLb final : public LoadBalancingPolicy {
563
496
  // the caller. Otherwise, the entry found is returned to the caller. The
564
497
  // entry returned to the user is considered recently used and its order in
565
498
  // the LRU list of the cache is updated.
566
- Entry* FindOrInsert(const RequestKey& key)
499
+ Entry* FindOrInsert(const RequestKey& key,
500
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>*
501
+ child_policy_wrappers_to_delete)
567
502
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
568
503
 
569
504
  // Resizes the cache. If the new cache size is greater than the current size
570
505
  // of the cache, do nothing. Otherwise, evict the oldest entries that
571
506
  // exceed the new size limit of the cache.
572
- void Resize(size_t bytes) ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
507
+ void Resize(size_t bytes, std::vector<RefCountedPtr<ChildPolicyWrapper>>*
508
+ child_policy_wrappers_to_delete)
509
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
573
510
 
574
511
  // Resets backoff of all the cache entries.
575
512
  void ResetAllBackoff() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
576
513
 
577
514
  // Shutdown the cache; clean-up and orphan all the stored cache entries.
578
- void Shutdown() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
515
+ GRPC_MUST_USE_RESULT std::vector<RefCountedPtr<ChildPolicyWrapper>>
516
+ Shutdown() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
579
517
 
580
518
  void ReportMetricsLocked(CallbackMetricReporter& reporter)
581
519
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
@@ -591,7 +529,9 @@ class RlsLb final : public LoadBalancingPolicy {
591
529
 
592
530
  // Evicts oversized cache elements when the current size is greater than
593
531
  // the specified limit.
594
- void MaybeShrinkSize(size_t bytes)
532
+ void MaybeShrinkSize(size_t bytes,
533
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>*
534
+ child_policy_wrappers_to_delete)
595
535
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&RlsLb::mu_);
596
536
 
597
537
  RlsLb* lb_policy_;
@@ -602,7 +542,7 @@ class RlsLb final : public LoadBalancingPolicy {
602
542
  std::list<RequestKey> lru_list_ ABSL_GUARDED_BY(&RlsLb::mu_);
603
543
  std::unordered_map<RequestKey, OrphanablePtr<Entry>, absl::Hash<RequestKey>>
604
544
  map_ ABSL_GUARDED_BY(&RlsLb::mu_);
605
- absl::optional<EventEngine::TaskHandle> cleanup_timer_handle_;
545
+ std::optional<EventEngine::TaskHandle> cleanup_timer_handle_;
606
546
  };
607
547
 
608
548
  // Channel for communicating with the RLS server.
@@ -684,7 +624,7 @@ class RlsLb final : public LoadBalancingPolicy {
684
624
  RefCountedPtr<RlsLb> lb_policy_;
685
625
  bool is_shutdown_ = false;
686
626
 
687
- OrphanablePtr<Channel> channel_;
627
+ RefCountedPtr<Channel> channel_;
688
628
  RefCountedPtr<channelz::ChannelNode> parent_channelz_node_;
689
629
  StateWatcher* watcher_ = nullptr;
690
630
  Throttle throttle_ ABSL_GUARDED_BY(&RlsLb::mu_);
@@ -700,7 +640,7 @@ class RlsLb final : public LoadBalancingPolicy {
700
640
  RefCountedPtr<RlsChannel> rls_channel,
701
641
  std::unique_ptr<BackOff> backoff_state,
702
642
  grpc_lookup_v1_RouteLookupRequest_Reason reason,
703
- std::string stale_header_data);
643
+ grpc_event_engine::experimental::Slice stale_header_data);
704
644
  ~RlsRequest() override;
705
645
 
706
646
  // Shuts down the request. If the request is still in flight, it is
@@ -728,7 +668,7 @@ class RlsLb final : public LoadBalancingPolicy {
728
668
  RefCountedPtr<RlsChannel> rls_channel_;
729
669
  std::unique_ptr<BackOff> backoff_state_;
730
670
  grpc_lookup_v1_RouteLookupRequest_Reason reason_;
731
- std::string stale_header_data_;
671
+ grpc_event_engine::experimental::Slice stale_header_data_;
732
672
 
733
673
  // RLS call state.
734
674
  Timestamp deadline_;
@@ -745,18 +685,17 @@ class RlsLb final : public LoadBalancingPolicy {
745
685
 
746
686
  void ShutdownLocked() override;
747
687
 
748
- // Returns a new picker to the channel to trigger reprocessing of
749
- // pending picks. Schedules the actual picker update on the ExecCtx
750
- // to be run later, so it's safe to invoke this while holding the lock.
688
+ // Schedules a call to UpdatePickerLocked() on the WorkSerializer.
689
+ // The call will be run asynchronously, so it's safe to invoke this
690
+ // while holding the lock.
751
691
  void UpdatePickerAsync();
752
- // Hops into work serializer and calls UpdatePickerLocked().
753
- static void UpdatePickerCallback(void* arg, grpc_error_handle error);
754
692
  // Updates the picker in the work serializer.
755
693
  void UpdatePickerLocked() ABSL_LOCKS_EXCLUDED(&mu_);
756
694
 
757
- void MaybeExportPickCount(
758
- GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
759
- absl::string_view target, const PickResult& pick_result);
695
+ template <typename HandleType>
696
+ void MaybeExportPickCount(HandleType handle, absl::string_view target,
697
+ absl::string_view lookup_service,
698
+ const PickResult& pick_result);
760
699
 
761
700
  const std::string instance_uuid_;
762
701
 
@@ -794,8 +733,7 @@ class RlsLb final : public LoadBalancingPolicy {
794
733
  RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
795
734
  std::string target)
796
735
  : DualRefCounted<ChildPolicyWrapper>(
797
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "ChildPolicyWrapper"
798
- : nullptr),
736
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "ChildPolicyWrapper" : nullptr),
799
737
  lb_policy_(std::move(lb_policy)),
800
738
  target_(std::move(target)),
801
739
  picker_(MakeRefCounted<QueuePicker>(nullptr)) {
@@ -803,10 +741,9 @@ RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
803
741
  }
804
742
 
805
743
  void RlsLb::ChildPolicyWrapper::Orphaned() {
806
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
807
- gpr_log(GPR_INFO, "[rlslb %p] ChildPolicyWrapper=%p [%s]: shutdown",
808
- lb_policy_.get(), this, target_.c_str());
809
- }
744
+ GRPC_TRACE_LOG(rls_lb, INFO)
745
+ << "[rlslb " << lb_policy_.get() << "] ChildPolicyWrapper=" << this
746
+ << " [" << target_ << "]: shutdown";
810
747
  is_shutdown_ = true;
811
748
  lb_policy_->child_policy_map_.erase(target_);
812
749
  if (child_policy_ != nullptr) {
@@ -817,13 +754,13 @@ void RlsLb::ChildPolicyWrapper::Orphaned() {
817
754
  picker_.reset();
818
755
  }
819
756
 
820
- absl::optional<Json> InsertOrUpdateChildPolicyField(const std::string& field,
821
- const std::string& value,
822
- const Json& config,
823
- ValidationErrors* errors) {
757
+ std::optional<Json> InsertOrUpdateChildPolicyField(const std::string& field,
758
+ const std::string& value,
759
+ const Json& config,
760
+ ValidationErrors* errors) {
824
761
  if (config.type() != Json::Type::kArray) {
825
762
  errors->AddError("is not an array");
826
- return absl::nullopt;
763
+ return std::nullopt;
827
764
  }
828
765
  const size_t original_num_errors = errors->size();
829
766
  Json::Array array;
@@ -832,59 +769,50 @@ absl::optional<Json> InsertOrUpdateChildPolicyField(const std::string& field,
832
769
  ValidationErrors::ScopedField json_field(errors, absl::StrCat("[", i, "]"));
833
770
  if (child_json.type() != Json::Type::kObject) {
834
771
  errors->AddError("is not an object");
772
+ } else if (const Json::Object& child = child_json.object();
773
+ child.size() != 1) {
774
+ errors->AddError("child policy object contains more than one field");
835
775
  } else {
836
- const Json::Object& child = child_json.object();
837
- if (child.size() != 1) {
838
- errors->AddError("child policy object contains more than one field");
776
+ const auto& [child_name, child_config_json] = *child.begin();
777
+ ValidationErrors::ScopedField json_field(
778
+ errors, absl::StrCat("[\"", child_name, "\"]"));
779
+ if (child_config_json.type() != Json::Type::kObject) {
780
+ errors->AddError("child policy config is not an object");
839
781
  } else {
840
- const std::string& child_name = child.begin()->first;
841
- ValidationErrors::ScopedField json_field(
842
- errors, absl::StrCat("[\"", child_name, "\"]"));
843
- const Json& child_config_json = child.begin()->second;
844
- if (child_config_json.type() != Json::Type::kObject) {
845
- errors->AddError("child policy config is not an object");
846
- } else {
847
- Json::Object child_config = child_config_json.object();
848
- child_config[field] = Json::FromString(value);
849
- array.emplace_back(Json::FromObject(
850
- {{child_name, Json::FromObject(std::move(child_config))}}));
851
- }
782
+ Json::Object child_config = child_config_json.object();
783
+ child_config[field] = Json::FromString(value);
784
+ array.emplace_back(Json::FromObject(
785
+ {{child_name, Json::FromObject(std::move(child_config))}}));
852
786
  }
853
787
  }
854
788
  }
855
- if (errors->size() != original_num_errors) return absl::nullopt;
789
+ if (errors->size() != original_num_errors) return std::nullopt;
856
790
  return Json::FromArray(std::move(array));
857
791
  }
858
792
 
859
- void RlsLb::ChildPolicyWrapper::StartUpdate() {
793
+ void RlsLb::ChildPolicyWrapper::StartUpdate(
794
+ OrphanablePtr<ChildPolicyHandler>* child_policy_to_delete) {
860
795
  ValidationErrors errors;
861
796
  auto child_policy_config = InsertOrUpdateChildPolicyField(
862
797
  lb_policy_->config_->child_policy_config_target_field_name(), target_,
863
798
  lb_policy_->config_->child_policy_config(), &errors);
864
- GPR_ASSERT(child_policy_config.has_value());
865
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
866
- gpr_log(
867
- GPR_INFO,
868
- "[rlslb %p] ChildPolicyWrapper=%p [%s]: validating update, config: %s",
869
- lb_policy_.get(), this, target_.c_str(),
870
- JsonDump(*child_policy_config).c_str());
871
- }
799
+ CHECK(child_policy_config.has_value());
800
+ GRPC_TRACE_LOG(rls_lb, INFO)
801
+ << "[rlslb " << lb_policy_.get() << "] ChildPolicyWrapper=" << this
802
+ << " [" << target_
803
+ << "]: validating update, config: " << JsonDump(*child_policy_config);
872
804
  auto config =
873
805
  CoreConfiguration::Get().lb_policy_registry().ParseLoadBalancingConfig(
874
806
  *child_policy_config);
875
807
  // Returned RLS target fails the validation.
876
808
  if (!config.ok()) {
877
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
878
- gpr_log(GPR_INFO,
879
- "[rlslb %p] ChildPolicyWrapper=%p [%s]: config failed to parse: "
880
- "%s",
881
- lb_policy_.get(), this, target_.c_str(),
882
- config.status().ToString().c_str());
883
- }
809
+ GRPC_TRACE_LOG(rls_lb, INFO)
810
+ << "[rlslb " << lb_policy_.get() << "] ChildPolicyWrapper=" << this
811
+ << " [" << target_ << "]: config failed to parse: " << config.status();
884
812
  pending_config_.reset();
885
813
  picker_ = MakeRefCounted<TransientFailurePicker>(
886
814
  absl::UnavailableError(config.status().message()));
887
- child_policy_.reset();
815
+ *child_policy_to_delete = std::move(child_policy_);
888
816
  } else {
889
817
  pending_config_ = std::move(*config);
890
818
  }
@@ -902,23 +830,19 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
902
830
  WeakRef(DEBUG_LOCATION, "ChildPolicyHelper"));
903
831
  create_args.args = lb_policy_->channel_args_;
904
832
  child_policy_ = MakeOrphanable<ChildPolicyHandler>(std::move(create_args),
905
- &grpc_lb_rls_trace);
906
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
907
- gpr_log(GPR_INFO,
908
- "[rlslb %p] ChildPolicyWrapper=%p [%s], created new child policy "
909
- "handler %p",
910
- lb_policy_.get(), this, target_.c_str(), child_policy_.get());
911
- }
833
+ &rls_lb_trace);
834
+ GRPC_TRACE_LOG(rls_lb, INFO)
835
+ << "[rlslb " << lb_policy_.get() << "] ChildPolicyWrapper=" << this
836
+ << " [" << target_ << "], created new child policy handler "
837
+ << child_policy_.get();
912
838
  grpc_pollset_set_add_pollset_set(child_policy_->interested_parties(),
913
839
  lb_policy_->interested_parties());
914
840
  }
915
841
  // Send the child the updated config.
916
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
917
- gpr_log(GPR_INFO,
918
- "[rlslb %p] ChildPolicyWrapper=%p [%s], updating child policy "
919
- "handler %p",
920
- lb_policy_.get(), this, target_.c_str(), child_policy_.get());
921
- }
842
+ GRPC_TRACE_LOG(rls_lb, INFO)
843
+ << "[rlslb " << lb_policy_.get() << "] ChildPolicyWrapper=" << this
844
+ << " [" << target_ << "], updating child policy handler "
845
+ << child_policy_.get();
922
846
  UpdateArgs update_args;
923
847
  update_args.config = std::move(pending_config_);
924
848
  update_args.addresses = lb_policy_->addresses_;
@@ -933,17 +857,15 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
933
857
  void RlsLb::ChildPolicyWrapper::ChildPolicyHelper::UpdateState(
934
858
  grpc_connectivity_state state, const absl::Status& status,
935
859
  RefCountedPtr<SubchannelPicker> picker) {
936
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
937
- gpr_log(GPR_INFO,
938
- "[rlslb %p] ChildPolicyWrapper=%p [%s] ChildPolicyHelper=%p: "
939
- "UpdateState(state=%s, status=%s, picker=%p)",
940
- wrapper_->lb_policy_.get(), wrapper_.get(),
941
- wrapper_->target_.c_str(), this, ConnectivityStateName(state),
942
- status.ToString().c_str(), picker.get());
943
- }
860
+ GRPC_TRACE_LOG(rls_lb, INFO)
861
+ << "[rlslb " << wrapper_->lb_policy_.get()
862
+ << "] ChildPolicyWrapper=" << wrapper_.get() << " [" << wrapper_->target_
863
+ << "] ChildPolicyHelper=" << this
864
+ << ": UpdateState(state=" << ConnectivityStateName(state)
865
+ << ", status=" << status << ", picker=" << picker.get() << ")";
866
+ if (wrapper_->is_shutdown_) return;
944
867
  {
945
868
  MutexLock lock(&wrapper_->lb_policy_->mu_);
946
- if (wrapper_->is_shutdown_) return;
947
869
  // TODO(roth): It looks like this ignores subsequent TF updates that
948
870
  // might change the status used to fail picks, which seems wrong.
949
871
  if (wrapper_->connectivity_state_ == GRPC_CHANNEL_TRANSIENT_FAILURE &&
@@ -951,9 +873,10 @@ void RlsLb::ChildPolicyWrapper::ChildPolicyHelper::UpdateState(
951
873
  return;
952
874
  }
953
875
  wrapper_->connectivity_state_ = state;
954
- GPR_DEBUG_ASSERT(picker != nullptr);
876
+ DCHECK(picker != nullptr);
955
877
  if (picker != nullptr) {
956
- wrapper_->picker_ = std::move(picker);
878
+ // We want to unref the picker after we release the lock.
879
+ wrapper_->picker_.swap(picker);
957
880
  }
958
881
  }
959
882
  wrapper_->lb_policy_->UpdatePickerLocked();
@@ -974,7 +897,7 @@ std::map<std::string, std::string> BuildKeyMap(
974
897
  if (it == key_builder_map.end()) {
975
898
  // Didn't find exact match, try method wildcard.
976
899
  last_slash_pos = path.rfind('/');
977
- GPR_DEBUG_ASSERT(last_slash_pos != path.npos);
900
+ DCHECK(last_slash_pos != path.npos);
978
901
  if (GPR_UNLIKELY(last_slash_pos == path.npos)) return {};
979
902
  std::string service(path.substr(0, last_slash_pos + 1));
980
903
  it = key_builder_map.find(service);
@@ -984,12 +907,10 @@ std::map<std::string, std::string> BuildKeyMap(
984
907
  // Construct key map using key builder.
985
908
  std::map<std::string, std::string> key_map;
986
909
  // Add header keys.
987
- for (const auto& p : key_builder->header_keys) {
988
- const std::string& key = p.first;
989
- const std::vector<std::string>& header_names = p.second;
910
+ for (const auto& [key, header_names] : key_builder->header_keys) {
990
911
  for (const std::string& header_name : header_names) {
991
912
  std::string buffer;
992
- absl::optional<absl::string_view> value =
913
+ std::optional<absl::string_view> value =
993
914
  initial_metadata->Lookup(header_name, &buffer);
994
915
  if (value.has_value()) {
995
916
  key_map[key] = std::string(*value);
@@ -1008,7 +929,7 @@ std::map<std::string, std::string> BuildKeyMap(
1008
929
  if (!key_builder->service_key.empty()) {
1009
930
  if (last_slash_pos == path.npos) {
1010
931
  last_slash_pos = path.rfind('/');
1011
- GPR_DEBUG_ASSERT(last_slash_pos != path.npos);
932
+ DCHECK(last_slash_pos != path.npos);
1012
933
  if (GPR_UNLIKELY(last_slash_pos == path.npos)) return {};
1013
934
  }
1014
935
  key_map[key_builder->service_key] =
@@ -1018,7 +939,7 @@ std::map<std::string, std::string> BuildKeyMap(
1018
939
  if (!key_builder->method_key.empty()) {
1019
940
  if (last_slash_pos == path.npos) {
1020
941
  last_slash_pos = path.rfind('/');
1021
- GPR_DEBUG_ASSERT(last_slash_pos != path.npos);
942
+ DCHECK(last_slash_pos != path.npos);
1022
943
  if (GPR_UNLIKELY(last_slash_pos == path.npos)) return {};
1023
944
  }
1024
945
  key_map[key_builder->method_key] =
@@ -1041,10 +962,9 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1041
962
  BuildKeyMap(config_->key_builder_map(), args.path,
1042
963
  lb_policy_->channel_control_helper()->GetAuthority(),
1043
964
  args.initial_metadata)};
1044
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1045
- gpr_log(GPR_INFO, "[rlslb %p] picker=%p: request keys: %s",
1046
- lb_policy_.get(), this, key.ToString().c_str());
1047
- }
965
+ GRPC_TRACE_LOG(rls_lb, INFO)
966
+ << "[rlslb " << lb_policy_.get() << "] picker=" << this
967
+ << ": request keys: " << key.ToString();
1048
968
  Timestamp now = Timestamp::Now();
1049
969
  MutexLock lock(&lb_policy_->mu_);
1050
970
  if (lb_policy_->is_shutdown_) {
@@ -1079,11 +999,10 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1079
999
  if (entry != nullptr) {
1080
1000
  // If the entry has non-expired data, use it.
1081
1001
  if (entry->data_expiration_time() >= now) {
1082
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1083
- gpr_log(GPR_INFO, "[rlslb %p] picker=%p: using cache entry %p",
1084
- lb_policy_.get(), this, entry);
1085
- }
1086
- return entry->Pick(args);
1002
+ GRPC_TRACE_LOG(rls_lb, INFO)
1003
+ << "[rlslb " << lb_policy_.get() << "] picker=" << this
1004
+ << ": using cache entry " << entry;
1005
+ return entry->Pick(args, config_->lookup_service());
1087
1006
  }
1088
1007
  // If the entry is in backoff, then use the default target if set,
1089
1008
  // or else fail the pick.
@@ -1095,29 +1014,27 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1095
1014
  }
1096
1015
  }
1097
1016
  // RLS call pending. Queue the pick.
1098
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1099
- gpr_log(GPR_INFO, "[rlslb %p] picker=%p: RLS request pending; queuing pick",
1100
- lb_policy_.get(), this);
1101
- }
1017
+ GRPC_TRACE_LOG(rls_lb, INFO)
1018
+ << "[rlslb " << lb_policy_.get() << "] picker=" << this
1019
+ << ": RLS request pending; queuing pick";
1102
1020
  return PickResult::Queue();
1103
1021
  }
1104
1022
 
1105
1023
  LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
1106
1024
  const char* reason, PickArgs args, absl::Status status) {
1107
1025
  if (default_child_policy_ != nullptr) {
1108
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1109
- gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; using default target",
1110
- lb_policy_.get(), this, reason);
1111
- }
1026
+ GRPC_TRACE_LOG(rls_lb, INFO)
1027
+ << "[rlslb " << lb_policy_.get() << "] picker=" << this << ": "
1028
+ << reason << "; using default target";
1112
1029
  auto pick_result = default_child_policy_->Pick(args);
1113
1030
  lb_policy_->MaybeExportPickCount(kMetricDefaultTargetPicks,
1114
- config_->default_target(), pick_result);
1031
+ config_->default_target(),
1032
+ config_->lookup_service(), pick_result);
1115
1033
  return pick_result;
1116
1034
  }
1117
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1118
- gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; failing pick",
1119
- lb_policy_.get(), this, reason);
1120
- }
1035
+ GRPC_TRACE_LOG(rls_lb, INFO)
1036
+ << "[rlslb " << lb_policy_.get() << "] picker=" << this << ": " << reason
1037
+ << "; failing pick";
1121
1038
  auto& stats_plugins =
1122
1039
  lb_policy_->channel_control_helper()->GetStatsPluginGroup();
1123
1040
  stats_plugins.AddCounter(kMetricFailedPicks, 1,
@@ -1132,18 +1049,15 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
1132
1049
  //
1133
1050
 
1134
1051
  RlsLb::Cache::Entry::BackoffTimer::BackoffTimer(RefCountedPtr<Entry> entry,
1135
- Timestamp backoff_time)
1052
+ Duration delay)
1136
1053
  : entry_(std::move(entry)) {
1137
1054
  backoff_timer_task_handle_ =
1138
1055
  entry_->lb_policy_->channel_control_helper()->GetEventEngine()->RunAfter(
1139
- backoff_time - Timestamp::Now(),
1140
- [self = Ref(DEBUG_LOCATION, "BackoffTimer")]() mutable {
1141
- ApplicationCallbackExecCtx callback_exec_ctx;
1056
+ delay, [self = Ref(DEBUG_LOCATION, "BackoffTimer")]() mutable {
1142
1057
  ExecCtx exec_ctx;
1143
1058
  auto self_ptr = self.get();
1144
1059
  self_ptr->entry_->lb_policy_->work_serializer()->Run(
1145
- [self = std::move(self)]() { self->OnBackoffTimerLocked(); },
1146
- DEBUG_LOCATION);
1060
+ [self = std::move(self)]() { self->OnBackoffTimerLocked(); });
1147
1061
  });
1148
1062
  }
1149
1063
 
@@ -1151,12 +1065,12 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
1151
1065
  if (backoff_timer_task_handle_.has_value() &&
1152
1066
  entry_->lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
1153
1067
  *backoff_timer_task_handle_)) {
1154
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1155
- gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer canceled",
1156
- entry_->lb_policy_.get(), entry_.get(),
1157
- entry_->is_shutdown_ ? "(shut down)"
1158
- : entry_->lru_iterator_->ToString().c_str());
1159
- }
1068
+ GRPC_TRACE_LOG(rls_lb, INFO)
1069
+ << "[rlslb " << entry_->lb_policy_.get()
1070
+ << "] cache entry=" << entry_.get() << " "
1071
+ << (entry_->is_shutdown_ ? "(shut down)"
1072
+ : entry_->lru_iterator_->ToString())
1073
+ << ", backoff timer canceled";
1160
1074
  }
1161
1075
  backoff_timer_task_handle_.reset();
1162
1076
  Unref(DEBUG_LOCATION, "Orphan");
@@ -1165,12 +1079,12 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
1165
1079
  void RlsLb::Cache::Entry::BackoffTimer::OnBackoffTimerLocked() {
1166
1080
  {
1167
1081
  MutexLock lock(&entry_->lb_policy_->mu_);
1168
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1169
- gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer fired",
1170
- entry_->lb_policy_.get(), entry_.get(),
1171
- entry_->is_shutdown_ ? "(shut down)"
1172
- : entry_->lru_iterator_->ToString().c_str());
1173
- }
1082
+ GRPC_TRACE_LOG(rls_lb, INFO)
1083
+ << "[rlslb " << entry_->lb_policy_.get()
1084
+ << "] cache entry=" << entry_.get() << " "
1085
+ << (entry_->is_shutdown_ ? "(shut down)"
1086
+ : entry_->lru_iterator_->ToString())
1087
+ << ", backoff timer fired";
1174
1088
  // Skip the update if Orphaned
1175
1089
  if (!backoff_timer_task_handle_.has_value()) return;
1176
1090
  backoff_timer_task_handle_.reset();
@@ -1195,8 +1109,8 @@ std::unique_ptr<BackOff> MakeCacheEntryBackoff() {
1195
1109
 
1196
1110
  RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
1197
1111
  const RequestKey& key)
1198
- : InternallyRefCounted<Entry>(
1199
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "CacheEntry" : nullptr),
1112
+ : InternallyRefCounted<Entry>(GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "CacheEntry"
1113
+ : nullptr),
1200
1114
  lb_policy_(std::move(lb_policy)),
1201
1115
  backoff_state_(MakeCacheEntryBackoff()),
1202
1116
  min_expiration_time_(Timestamp::Now() + kMinExpirationTime),
@@ -1204,29 +1118,30 @@ RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
1204
1118
  lb_policy_->cache_.lru_list_.end(), key)) {}
1205
1119
 
1206
1120
  void RlsLb::Cache::Entry::Orphan() {
1207
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1208
- gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s: cache entry evicted",
1209
- lb_policy_.get(), this, lru_iterator_->ToString().c_str());
1210
- }
1121
+ // We should be holding RlsLB::mu_.
1122
+ GRPC_TRACE_LOG(rls_lb, INFO)
1123
+ << "[rlslb " << lb_policy_.get() << "] cache entry=" << this << " "
1124
+ << lru_iterator_->ToString() << ": cache entry evicted";
1211
1125
  is_shutdown_ = true;
1212
1126
  lb_policy_->cache_.lru_list_.erase(lru_iterator_);
1213
1127
  lru_iterator_ = lb_policy_->cache_.lru_list_.end(); // Just in case.
1128
+ CHECK(child_policy_wrappers_.empty());
1214
1129
  backoff_state_.reset();
1215
1130
  if (backoff_timer_ != nullptr) {
1216
1131
  backoff_timer_.reset();
1217
1132
  lb_policy_->UpdatePickerAsync();
1218
1133
  }
1219
- child_policy_wrappers_.clear();
1220
1134
  Unref(DEBUG_LOCATION, "Orphan");
1221
1135
  }
1222
1136
 
1223
1137
  size_t RlsLb::Cache::Entry::Size() const {
1224
1138
  // lru_iterator_ is not valid once we're shut down.
1225
- GPR_ASSERT(!is_shutdown_);
1139
+ CHECK(!is_shutdown_);
1226
1140
  return lb_policy_->cache_.EntrySizeForKey(*lru_iterator_);
1227
1141
  }
1228
1142
 
1229
- LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
1143
+ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(
1144
+ PickArgs args, absl::string_view lookup_service) {
1230
1145
  size_t i = 0;
1231
1146
  ChildPolicyWrapper* child_policy_wrapper = nullptr;
1232
1147
  // Skip targets before the last one that are in state TRANSIENT_FAILURE.
@@ -1235,42 +1150,37 @@ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
1235
1150
  if (child_policy_wrapper->connectivity_state() ==
1236
1151
  GRPC_CHANNEL_TRANSIENT_FAILURE &&
1237
1152
  i < child_policy_wrappers_.size() - 1) {
1238
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1239
- gpr_log(GPR_INFO,
1240
- "[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR
1241
- " of %" PRIuPTR ") in state TRANSIENT_FAILURE; skipping",
1242
- lb_policy_.get(), this, lru_iterator_->ToString().c_str(),
1243
- child_policy_wrapper->target().c_str(), i,
1244
- child_policy_wrappers_.size());
1245
- }
1153
+ GRPC_TRACE_LOG(rls_lb, INFO)
1154
+ << "[rlslb " << lb_policy_.get() << "] cache entry=" << this << " "
1155
+ << lru_iterator_->ToString() << ": target "
1156
+ << child_policy_wrapper->target() << " (" << i << " of "
1157
+ << child_policy_wrappers_.size()
1158
+ << ") in state TRANSIENT_FAILURE; skipping";
1246
1159
  continue;
1247
1160
  }
1248
1161
  break;
1249
1162
  }
1250
1163
  // Child policy not in TRANSIENT_FAILURE or is the last target in
1251
1164
  // the list, so delegate.
1252
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1253
- gpr_log(GPR_INFO,
1254
- "[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR " of %" PRIuPTR
1255
- ") in state %s; delegating",
1256
- lb_policy_.get(), this, lru_iterator_->ToString().c_str(),
1257
- child_policy_wrapper->target().c_str(), i,
1258
- child_policy_wrappers_.size(),
1259
- ConnectivityStateName(child_policy_wrapper->connectivity_state()));
1260
- }
1165
+ GRPC_TRACE_LOG(rls_lb, INFO)
1166
+ << "[rlslb " << lb_policy_.get() << "] cache entry=" << this << " "
1167
+ << lru_iterator_->ToString() << ": target "
1168
+ << child_policy_wrapper->target() << " (" << i << " of "
1169
+ << child_policy_wrappers_.size() << ") in state "
1170
+ << ConnectivityStateName(child_policy_wrapper->connectivity_state())
1171
+ << "; delegating";
1172
+ auto pick_result = child_policy_wrapper->Pick(args);
1173
+ lb_policy_->MaybeExportPickCount(kMetricTargetPicks,
1174
+ child_policy_wrapper->target(),
1175
+ lookup_service, pick_result);
1261
1176
  // Add header data.
1262
- // Note that even if the target we're using is in TRANSIENT_FAILURE,
1263
- // the pick might still succeed (e.g., if the child is ring_hash), so
1264
- // we need to pass the right header info down in all cases.
1265
1177
  if (!header_data_.empty()) {
1266
- char* copied_header_data =
1267
- static_cast<char*>(args.call_state->Alloc(header_data_.length() + 1));
1268
- strcpy(copied_header_data, header_data_.c_str());
1269
- args.initial_metadata->Add(kRlsHeaderKey, copied_header_data);
1178
+ auto* complete_pick =
1179
+ std::get_if<PickResult::Complete>(&pick_result.result);
1180
+ if (complete_pick != nullptr) {
1181
+ complete_pick->metadata_mutations.Set(kRlsHeaderKey, header_data_.Ref());
1182
+ }
1270
1183
  }
1271
- auto pick_result = child_policy_wrapper->Pick(args);
1272
- lb_policy_->MaybeExportPickCount(kMetricTargetPicks,
1273
- child_policy_wrapper->target(), pick_result);
1274
1184
  return pick_result;
1275
1185
  }
1276
1186
 
@@ -1298,7 +1208,8 @@ void RlsLb::Cache::Entry::MarkUsed() {
1298
1208
 
1299
1209
  std::vector<RlsLb::ChildPolicyWrapper*>
1300
1210
  RlsLb::Cache::Entry::OnRlsResponseLocked(
1301
- ResponseInfo response, std::unique_ptr<BackOff> backoff_state) {
1211
+ ResponseInfo response, std::unique_ptr<BackOff> backoff_state,
1212
+ OrphanablePtr<ChildPolicyHandler>* child_policy_to_delete) {
1302
1213
  // Move the entry to the end of the LRU list.
1303
1214
  MarkUsed();
1304
1215
  // If the request failed, store the failed status and update the
@@ -1310,11 +1221,12 @@ RlsLb::Cache::Entry::OnRlsResponseLocked(
1310
1221
  } else {
1311
1222
  backoff_state_ = MakeCacheEntryBackoff();
1312
1223
  }
1313
- backoff_time_ = backoff_state_->NextAttemptTime();
1314
- Timestamp now = Timestamp::Now();
1315
- backoff_expiration_time_ = now + (backoff_time_ - now) * 2;
1224
+ const Duration delay = backoff_state_->NextAttemptDelay();
1225
+ const Timestamp now = Timestamp::Now();
1226
+ backoff_time_ = now + delay;
1227
+ backoff_expiration_time_ = now + delay * 2;
1316
1228
  backoff_timer_ = MakeOrphanable<BackoffTimer>(
1317
- Ref(DEBUG_LOCATION, "BackoffTimer"), backoff_time_);
1229
+ Ref(DEBUG_LOCATION, "BackoffTimer"), delay);
1318
1230
  lb_policy_->UpdatePickerAsync();
1319
1231
  return {};
1320
1232
  }
@@ -1359,7 +1271,7 @@ RlsLb::Cache::Entry::OnRlsResponseLocked(
1359
1271
  if (it == lb_policy_->child_policy_map_.end()) {
1360
1272
  auto new_child = MakeRefCounted<ChildPolicyWrapper>(
1361
1273
  lb_policy_.Ref(DEBUG_LOCATION, "ChildPolicyWrapper"), target);
1362
- new_child->StartUpdate();
1274
+ new_child->StartUpdate(child_policy_to_delete);
1363
1275
  child_policies_to_finish_update.push_back(new_child.get());
1364
1276
  new_child_policy_wrappers.emplace_back(std::move(new_child));
1365
1277
  } else {
@@ -1396,58 +1308,64 @@ RlsLb::Cache::Entry* RlsLb::Cache::Find(const RequestKey& key) {
1396
1308
  return it->second.get();
1397
1309
  }
1398
1310
 
1399
- RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(const RequestKey& key) {
1311
+ RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(
1312
+ const RequestKey& key, std::vector<RefCountedPtr<ChildPolicyWrapper>>*
1313
+ child_policy_wrappers_to_delete) {
1400
1314
  auto it = map_.find(key);
1401
1315
  // If not found, create new entry.
1402
1316
  if (it == map_.end()) {
1403
1317
  size_t entry_size = EntrySizeForKey(key);
1404
- MaybeShrinkSize(size_limit_ - std::min(size_limit_, entry_size));
1318
+ MaybeShrinkSize(size_limit_ - std::min(size_limit_, entry_size),
1319
+ child_policy_wrappers_to_delete);
1405
1320
  Entry* entry = new Entry(
1406
1321
  lb_policy_->RefAsSubclass<RlsLb>(DEBUG_LOCATION, "CacheEntry"), key);
1407
1322
  map_.emplace(key, OrphanablePtr<Entry>(entry));
1408
1323
  size_ += entry_size;
1409
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1410
- gpr_log(GPR_INFO, "[rlslb %p] key=%s: cache entry added, entry=%p",
1411
- lb_policy_, key.ToString().c_str(), entry);
1412
- }
1324
+ GRPC_TRACE_LOG(rls_lb, INFO)
1325
+ << "[rlslb " << lb_policy_ << "] key=" << key.ToString()
1326
+ << ": cache entry added, entry=" << entry;
1413
1327
  return entry;
1414
1328
  }
1415
1329
  // Entry found, so use it.
1416
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1417
- gpr_log(GPR_INFO, "[rlslb %p] key=%s: found cache entry %p", lb_policy_,
1418
- key.ToString().c_str(), it->second.get());
1419
- }
1330
+ GRPC_TRACE_LOG(rls_lb, INFO)
1331
+ << "[rlslb " << lb_policy_ << "] key=" << key.ToString()
1332
+ << ": found cache entry " << it->second.get();
1420
1333
  it->second->MarkUsed();
1421
1334
  return it->second.get();
1422
1335
  }
1423
1336
 
1424
- void RlsLb::Cache::Resize(size_t bytes) {
1425
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1426
- gpr_log(GPR_INFO, "[rlslb %p] resizing cache to %" PRIuPTR " bytes",
1427
- lb_policy_, bytes);
1428
- }
1337
+ void RlsLb::Cache::Resize(size_t bytes,
1338
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>*
1339
+ child_policy_wrappers_to_delete) {
1340
+ GRPC_TRACE_LOG(rls_lb, INFO)
1341
+ << "[rlslb " << lb_policy_ << "] resizing cache to " << bytes << " bytes";
1429
1342
  size_limit_ = bytes;
1430
- MaybeShrinkSize(size_limit_);
1343
+ MaybeShrinkSize(size_limit_, child_policy_wrappers_to_delete);
1431
1344
  }
1432
1345
 
1433
1346
  void RlsLb::Cache::ResetAllBackoff() {
1434
- for (auto& p : map_) {
1435
- p.second->ResetBackoff();
1347
+ for (auto& [_, entry] : map_) {
1348
+ entry->ResetBackoff();
1436
1349
  }
1437
1350
  lb_policy_->UpdatePickerAsync();
1438
1351
  }
1439
1352
 
1440
- void RlsLb::Cache::Shutdown() {
1353
+ std::vector<RefCountedPtr<RlsLb::ChildPolicyWrapper>> RlsLb::Cache::Shutdown() {
1354
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>
1355
+ child_policy_wrappers_to_delete;
1356
+ for (auto& [_, entry] : map_) {
1357
+ entry->TakeChildPolicyWrappers(&child_policy_wrappers_to_delete);
1358
+ }
1441
1359
  map_.clear();
1442
1360
  lru_list_.clear();
1443
1361
  if (cleanup_timer_handle_.has_value() &&
1444
1362
  lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
1445
1363
  *cleanup_timer_handle_)) {
1446
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1447
- gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer canceled", lb_policy_);
1448
- }
1364
+ GRPC_TRACE_LOG(rls_lb, INFO)
1365
+ << "[rlslb " << lb_policy_ << "] cache cleanup timer canceled";
1449
1366
  }
1450
1367
  cleanup_timer_handle_.reset();
1368
+ return child_policy_wrappers_to_delete;
1451
1369
  }
1452
1370
 
1453
1371
  void RlsLb::Cache::ReportMetricsLocked(CallbackMetricReporter& reporter) {
@@ -1469,27 +1387,28 @@ void RlsLb::Cache::StartCleanupTimer() {
1469
1387
  kCacheCleanupTimerInterval,
1470
1388
  [this, lb_policy = lb_policy_->Ref(DEBUG_LOCATION,
1471
1389
  "CacheCleanupTimer")]() mutable {
1472
- ApplicationCallbackExecCtx callback_exec_ctx;
1473
1390
  ExecCtx exec_ctx;
1474
1391
  lb_policy_->work_serializer()->Run(
1475
1392
  [this, lb_policy = std::move(lb_policy)]() {
1476
1393
  // The lb_policy ref is held until the callback completes
1477
1394
  OnCleanupTimer();
1478
- },
1479
- DEBUG_LOCATION);
1395
+ });
1480
1396
  });
1481
1397
  }
1482
1398
 
1483
1399
  void RlsLb::Cache::OnCleanupTimer() {
1484
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1485
- gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer fired", lb_policy_);
1486
- }
1400
+ GRPC_TRACE_LOG(rls_lb, INFO)
1401
+ << "[rlslb " << lb_policy_ << "] cache cleanup timer fired";
1402
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>
1403
+ child_policy_wrappers_to_delete;
1487
1404
  MutexLock lock(&lb_policy_->mu_);
1488
1405
  if (!cleanup_timer_handle_.has_value()) return;
1489
1406
  if (lb_policy_->is_shutdown_) return;
1490
1407
  for (auto it = map_.begin(); it != map_.end();) {
1491
- if (GPR_UNLIKELY(it->second->ShouldRemove() && it->second->CanEvict())) {
1492
- size_ -= it->second->Size();
1408
+ auto& entry = it->second;
1409
+ if (GPR_UNLIKELY(entry->ShouldRemove() && entry->CanEvict())) {
1410
+ size_ -= entry->Size();
1411
+ entry->TakeChildPolicyWrappers(&child_policy_wrappers_to_delete);
1493
1412
  it = map_.erase(it);
1494
1413
  } else {
1495
1414
  ++it;
@@ -1503,26 +1422,26 @@ size_t RlsLb::Cache::EntrySizeForKey(const RequestKey& key) {
1503
1422
  return (key.Size() * 2) + sizeof(Entry);
1504
1423
  }
1505
1424
 
1506
- void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
1425
+ void RlsLb::Cache::MaybeShrinkSize(
1426
+ size_t bytes, std::vector<RefCountedPtr<ChildPolicyWrapper>>*
1427
+ child_policy_wrappers_to_delete) {
1507
1428
  while (size_ > bytes) {
1508
1429
  auto lru_it = lru_list_.begin();
1509
1430
  if (GPR_UNLIKELY(lru_it == lru_list_.end())) break;
1510
1431
  auto map_it = map_.find(*lru_it);
1511
- GPR_ASSERT(map_it != map_.end());
1512
- if (!map_it->second->CanEvict()) break;
1513
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1514
- gpr_log(GPR_INFO, "[rlslb %p] LRU eviction: removing entry %p %s",
1515
- lb_policy_, map_it->second.get(), lru_it->ToString().c_str());
1516
- }
1517
- size_ -= map_it->second->Size();
1432
+ CHECK(map_it != map_.end());
1433
+ auto& entry = map_it->second;
1434
+ if (!entry->CanEvict()) break;
1435
+ GRPC_TRACE_LOG(rls_lb, INFO)
1436
+ << "[rlslb " << lb_policy_ << "] LRU eviction: removing entry "
1437
+ << entry.get() << " " << lru_it->ToString();
1438
+ size_ -= entry->Size();
1439
+ entry->TakeChildPolicyWrappers(child_policy_wrappers_to_delete);
1518
1440
  map_.erase(map_it);
1519
1441
  }
1520
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1521
- gpr_log(GPR_INFO,
1522
- "[rlslb %p] LRU pass complete: desired size=%" PRIuPTR
1523
- " size=%" PRIuPTR,
1524
- lb_policy_, bytes, size_);
1525
- }
1442
+ GRPC_TRACE_LOG(rls_lb, INFO)
1443
+ << "[rlslb " << lb_policy_
1444
+ << "] LRU pass complete: desired size=" << bytes << " size=" << size_;
1526
1445
  }
1527
1446
 
1528
1447
  //
@@ -1532,13 +1451,10 @@ void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
1532
1451
  void RlsLb::RlsChannel::StateWatcher::OnConnectivityStateChange(
1533
1452
  grpc_connectivity_state new_state, const absl::Status& status) {
1534
1453
  auto* lb_policy = rls_channel_->lb_policy_.get();
1535
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1536
- gpr_log(GPR_INFO,
1537
- "[rlslb %p] RlsChannel=%p StateWatcher=%p: "
1538
- "state changed to %s (%s)",
1539
- lb_policy, rls_channel_.get(), this,
1540
- ConnectivityStateName(new_state), status.ToString().c_str());
1541
- }
1454
+ GRPC_TRACE_LOG(rls_lb, INFO)
1455
+ << "[rlslb " << lb_policy << "] RlsChannel=" << rls_channel_.get()
1456
+ << " StateWatcher=" << this << ": state changed to "
1457
+ << ConnectivityStateName(new_state) << " (" << status << ")";
1542
1458
  if (rls_channel_->is_shutdown_) return;
1543
1459
  MutexLock lock(&lb_policy->mu_);
1544
1460
  if (new_state == GRPC_CHANNEL_READY && was_transient_failure_) {
@@ -1597,7 +1513,7 @@ void RlsLb::RlsChannel::Throttle::RegisterResponse(bool success) {
1597
1513
 
1598
1514
  RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1599
1515
  : InternallyRefCounted<RlsChannel>(
1600
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "RlsChannel" : nullptr),
1516
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsChannel" : nullptr),
1601
1517
  lb_policy_(std::move(lb_policy)) {
1602
1518
  // Get channel creds from parent channel.
1603
1519
  // Note that we are using the "unsafe" channel creds here, which do
@@ -1614,7 +1530,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1614
1530
  // (This is ugly, but it seems better than propagating all channel args
1615
1531
  // from the parent channel by default and then having a giant
1616
1532
  // exclude list of args to strip out, like we do in grpclb.)
1617
- absl::optional<absl::string_view> fake_security_expected_targets =
1533
+ std::optional<absl::string_view> fake_security_expected_targets =
1618
1534
  lb_policy_->channel_args_.GetString(
1619
1535
  GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS);
1620
1536
  if (fake_security_expected_targets.has_value()) {
@@ -1631,11 +1547,10 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1631
1547
  channel_.reset(Channel::FromC(
1632
1548
  grpc_channel_create(lb_policy_->config_->lookup_service().c_str(),
1633
1549
  creds.get(), args.ToC().get())));
1634
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1635
- gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p: created channel %p for %s",
1636
- lb_policy_.get(), this, channel_.get(),
1637
- lb_policy_->config_->lookup_service().c_str());
1638
- }
1550
+ GRPC_TRACE_LOG(rls_lb, INFO)
1551
+ << "[rlslb " << lb_policy_.get() << "] RlsChannel=" << this
1552
+ << ": created channel " << channel_.get() << " for "
1553
+ << lb_policy_->config_->lookup_service();
1639
1554
  if (channel_ != nullptr) {
1640
1555
  // Set up channelz linkage.
1641
1556
  channelz::ChannelNode* child_channelz_node = channel_->channelz_node();
@@ -1654,16 +1569,15 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1654
1569
  }
1655
1570
 
1656
1571
  void RlsLb::RlsChannel::Orphan() {
1657
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1658
- gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p, channel=%p: shutdown",
1659
- lb_policy_.get(), this, channel_.get());
1660
- }
1572
+ GRPC_TRACE_LOG(rls_lb, INFO)
1573
+ << "[rlslb " << lb_policy_.get() << "] RlsChannel=" << this
1574
+ << ", channel=" << channel_.get() << ": shutdown";
1661
1575
  is_shutdown_ = true;
1662
1576
  if (channel_ != nullptr) {
1663
1577
  // Remove channelz linkage.
1664
1578
  if (parent_channelz_node_ != nullptr) {
1665
1579
  channelz::ChannelNode* child_channelz_node = channel_->channelz_node();
1666
- GPR_ASSERT(child_channelz_node != nullptr);
1580
+ CHECK_NE(child_channelz_node, nullptr);
1667
1581
  parent_channelz_node_->RemoveChildChannel(child_channelz_node->uuid());
1668
1582
  }
1669
1583
  // Stop connectivity watch.
@@ -1681,11 +1595,11 @@ void RlsLb::RlsChannel::StartRlsCall(const RequestKey& key,
1681
1595
  std::unique_ptr<BackOff> backoff_state;
1682
1596
  grpc_lookup_v1_RouteLookupRequest_Reason reason =
1683
1597
  grpc_lookup_v1_RouteLookupRequest_REASON_MISS;
1684
- std::string stale_header_data;
1598
+ grpc_event_engine::experimental::Slice stale_header_data;
1685
1599
  if (stale_entry != nullptr) {
1686
1600
  backoff_state = stale_entry->TakeBackoffState();
1687
1601
  reason = grpc_lookup_v1_RouteLookupRequest_REASON_STALE;
1688
- stale_header_data = stale_entry->header_data();
1602
+ stale_header_data = stale_entry->header_data().Ref();
1689
1603
  }
1690
1604
  lb_policy_->request_map_.emplace(
1691
1605
  key, MakeOrphanable<RlsRequest>(
@@ -1699,7 +1613,7 @@ void RlsLb::RlsChannel::ReportResponseLocked(bool response_succeeded) {
1699
1613
  }
1700
1614
 
1701
1615
  void RlsLb::RlsChannel::ResetBackoff() {
1702
- GPR_DEBUG_ASSERT(channel_ != nullptr);
1616
+ DCHECK(channel_ != nullptr);
1703
1617
  channel_->ResetConnectionBackoff();
1704
1618
  }
1705
1619
 
@@ -1707,24 +1621,23 @@ void RlsLb::RlsChannel::ResetBackoff() {
1707
1621
  // RlsLb::RlsRequest
1708
1622
  //
1709
1623
 
1710
- RlsLb::RlsRequest::RlsRequest(RefCountedPtr<RlsLb> lb_policy, RequestKey key,
1711
- RefCountedPtr<RlsChannel> rls_channel,
1712
- std::unique_ptr<BackOff> backoff_state,
1713
- grpc_lookup_v1_RouteLookupRequest_Reason reason,
1714
- std::string stale_header_data)
1624
+ RlsLb::RlsRequest::RlsRequest(
1625
+ RefCountedPtr<RlsLb> lb_policy, RequestKey key,
1626
+ RefCountedPtr<RlsChannel> rls_channel,
1627
+ std::unique_ptr<BackOff> backoff_state,
1628
+ grpc_lookup_v1_RouteLookupRequest_Reason reason,
1629
+ grpc_event_engine::experimental::Slice stale_header_data)
1715
1630
  : InternallyRefCounted<RlsRequest>(
1716
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "RlsRequest" : nullptr),
1631
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsRequest" : nullptr),
1717
1632
  lb_policy_(std::move(lb_policy)),
1718
1633
  key_(std::move(key)),
1719
1634
  rls_channel_(std::move(rls_channel)),
1720
1635
  backoff_state_(std::move(backoff_state)),
1721
1636
  reason_(reason),
1722
1637
  stale_header_data_(std::move(stale_header_data)) {
1723
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1724
- gpr_log(GPR_INFO,
1725
- "[rlslb %p] rls_request=%p: RLS request created for key %s",
1726
- lb_policy_.get(), this, key_.ToString().c_str());
1727
- }
1638
+ GRPC_TRACE_LOG(rls_lb, INFO)
1639
+ << "[rlslb " << lb_policy_.get() << "] rls_request=" << this
1640
+ << ": RLS request created for key " << key_.ToString();
1728
1641
  GRPC_CLOSURE_INIT(&call_complete_cb_, OnRlsCallComplete, this, nullptr);
1729
1642
  ExecCtx::Run(
1730
1643
  DEBUG_LOCATION,
@@ -1733,14 +1646,13 @@ RlsLb::RlsRequest::RlsRequest(RefCountedPtr<RlsLb> lb_policy, RequestKey key,
1733
1646
  absl::OkStatus());
1734
1647
  }
1735
1648
 
1736
- RlsLb::RlsRequest::~RlsRequest() { GPR_ASSERT(call_ == nullptr); }
1649
+ RlsLb::RlsRequest::~RlsRequest() { CHECK_EQ(call_, nullptr); }
1737
1650
 
1738
1651
  void RlsLb::RlsRequest::Orphan() {
1739
1652
  if (call_ != nullptr) {
1740
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1741
- gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: cancelling RLS call",
1742
- lb_policy_.get(), this, key_.ToString().c_str());
1743
- }
1653
+ GRPC_TRACE_LOG(rls_lb, INFO)
1654
+ << "[rlslb " << lb_policy_.get() << "] rls_request=" << this << " "
1655
+ << key_.ToString() << ": cancelling RLS call";
1744
1656
  grpc_call_cancel_internal(call_);
1745
1657
  }
1746
1658
  Unref(DEBUG_LOCATION, "Orphan");
@@ -1748,12 +1660,10 @@ void RlsLb::RlsRequest::Orphan() {
1748
1660
 
1749
1661
  void RlsLb::RlsRequest::StartCall(void* arg, grpc_error_handle /*error*/) {
1750
1662
  auto* request = static_cast<RlsRequest*>(arg);
1751
- request->lb_policy_->work_serializer()->Run(
1752
- [request]() {
1753
- request->StartCallLocked();
1754
- request->Unref(DEBUG_LOCATION, "StartCall");
1755
- },
1756
- DEBUG_LOCATION);
1663
+ request->lb_policy_->work_serializer()->Run([request]() {
1664
+ request->StartCallLocked();
1665
+ request->Unref(DEBUG_LOCATION, "StartCall");
1666
+ });
1757
1667
  }
1758
1668
 
1759
1669
  void RlsLb::RlsRequest::StartCallLocked() {
@@ -1768,7 +1678,7 @@ void RlsLb::RlsRequest::StartCallLocked() {
1768
1678
  call_ = rls_channel_->channel()->CreateCall(
1769
1679
  /*parent_call=*/nullptr, GRPC_PROPAGATE_DEFAULTS, /*cq=*/nullptr,
1770
1680
  lb_policy_->interested_parties(),
1771
- Slice::FromStaticString(kRlsRequestPath), /*authority=*/absl::nullopt,
1681
+ Slice::FromStaticString(kRlsRequestPath), /*authority=*/std::nullopt,
1772
1682
  deadline_, /*registered_method=*/true);
1773
1683
  grpc_op ops[6];
1774
1684
  memset(ops, 0, sizeof(ops));
@@ -1796,28 +1706,24 @@ void RlsLb::RlsRequest::StartCallLocked() {
1796
1706
  Ref(DEBUG_LOCATION, "OnRlsCallComplete").release();
1797
1707
  auto call_error = grpc_call_start_batch_and_execute(
1798
1708
  call_, ops, static_cast<size_t>(op - ops), &call_complete_cb_);
1799
- GPR_ASSERT(call_error == GRPC_CALL_OK);
1709
+ CHECK_EQ(call_error, GRPC_CALL_OK);
1800
1710
  }
1801
1711
 
1802
1712
  void RlsLb::RlsRequest::OnRlsCallComplete(void* arg, grpc_error_handle error) {
1803
1713
  auto* request = static_cast<RlsRequest*>(arg);
1804
- request->lb_policy_->work_serializer()->Run(
1805
- [request, error]() {
1806
- request->OnRlsCallCompleteLocked(error);
1807
- request->Unref(DEBUG_LOCATION, "OnRlsCallComplete");
1808
- },
1809
- DEBUG_LOCATION);
1714
+ request->lb_policy_->work_serializer()->Run([request, error]() {
1715
+ request->OnRlsCallCompleteLocked(error);
1716
+ request->Unref(DEBUG_LOCATION, "OnRlsCallComplete");
1717
+ });
1810
1718
  }
1811
1719
 
1812
1720
  void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
1813
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1721
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1814
1722
  std::string status_message(StringViewFromSlice(status_details_recv_));
1815
- gpr_log(GPR_INFO,
1816
- "[rlslb %p] rls_request=%p %s, error=%s, status={%d, %s} RLS call "
1817
- "response received",
1818
- lb_policy_.get(), this, key_.ToString().c_str(),
1819
- StatusToString(error).c_str(), status_recv_,
1820
- status_message.c_str());
1723
+ LOG(INFO) << "[rlslb " << lb_policy_.get() << "] rls_request=" << this
1724
+ << " " << key_.ToString() << ", error=" << StatusToString(error)
1725
+ << ", status={" << status_recv_ << ", " << status_message << "}"
1726
+ << " RLS call response received";
1821
1727
  }
1822
1728
  // Parse response.
1823
1729
  ResponseInfo response;
@@ -1843,27 +1749,37 @@ void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
1843
1749
  grpc_call_unref(call_);
1844
1750
  call_ = nullptr;
1845
1751
  // Return result to cache.
1846
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1847
- gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: response info: %s",
1848
- lb_policy_.get(), this, key_.ToString().c_str(),
1849
- response.ToString().c_str());
1850
- }
1752
+ GRPC_TRACE_LOG(rls_lb, INFO)
1753
+ << "[rlslb " << lb_policy_.get() << "] rls_request=" << this << " "
1754
+ << key_.ToString() << ": response info: " << response.ToString();
1851
1755
  std::vector<ChildPolicyWrapper*> child_policies_to_finish_update;
1756
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>
1757
+ child_policy_wrappers_to_delete;
1758
+ OrphanablePtr<ChildPolicyHandler> child_policy_to_delete;
1852
1759
  {
1853
1760
  MutexLock lock(&lb_policy_->mu_);
1854
1761
  if (lb_policy_->is_shutdown_) return;
1855
1762
  rls_channel_->ReportResponseLocked(response.status.ok());
1856
- Cache::Entry* cache_entry = lb_policy_->cache_.FindOrInsert(key_);
1763
+ Cache::Entry* cache_entry =
1764
+ lb_policy_->cache_.FindOrInsert(key_, &child_policy_wrappers_to_delete);
1857
1765
  child_policies_to_finish_update = cache_entry->OnRlsResponseLocked(
1858
- std::move(response), std::move(backoff_state_));
1766
+ std::move(response), std::move(backoff_state_),
1767
+ &child_policy_to_delete);
1859
1768
  lb_policy_->request_map_.erase(key_);
1860
1769
  }
1861
1770
  // Now that we've released the lock, finish the update on any newly
1862
1771
  // created child policies.
1863
1772
  for (ChildPolicyWrapper* child : child_policies_to_finish_update) {
1864
- // TODO(roth): If the child reports an error with the update, we
1865
- // need to propagate that back to the resolver somehow.
1866
- (void)child->MaybeFinishUpdate();
1773
+ // If the child policy returns a non-OK status, request re-resolution.
1774
+ // Note that this will initially cause fixed backoff delay in the
1775
+ // resolver instead of exponential delay. However, once the
1776
+ // resolver returns the initial re-resolution, we will be able to
1777
+ // return non-OK from UpdateLocked(), which will trigger
1778
+ // exponential backoff instead.
1779
+ absl::Status status = child->MaybeFinishUpdate();
1780
+ if (!status.ok()) {
1781
+ lb_policy_->channel_control_helper()->RequestReresolution();
1782
+ }
1867
1783
  }
1868
1784
  }
1869
1785
 
@@ -1873,17 +1789,16 @@ grpc_byte_buffer* RlsLb::RlsRequest::MakeRequestProto() {
1873
1789
  grpc_lookup_v1_RouteLookupRequest_new(arena.ptr());
1874
1790
  grpc_lookup_v1_RouteLookupRequest_set_target_type(
1875
1791
  req, upb_StringView_FromDataAndSize(kGrpc, sizeof(kGrpc) - 1));
1876
- for (const auto& kv : key_.key_map) {
1792
+ for (const auto& [key, value] : key_.key_map) {
1877
1793
  grpc_lookup_v1_RouteLookupRequest_key_map_set(
1878
- req, upb_StringView_FromDataAndSize(kv.first.data(), kv.first.size()),
1879
- upb_StringView_FromDataAndSize(kv.second.data(), kv.second.size()),
1794
+ req, upb_StringView_FromDataAndSize(key.data(), key.size()),
1795
+ upb_StringView_FromDataAndSize(value.data(), value.size()),
1880
1796
  arena.ptr());
1881
1797
  }
1882
1798
  grpc_lookup_v1_RouteLookupRequest_set_reason(req, reason_);
1883
1799
  if (!stale_header_data_.empty()) {
1884
1800
  grpc_lookup_v1_RouteLookupRequest_set_stale_header_data(
1885
- req, upb_StringView_FromDataAndSize(stale_header_data_.data(),
1886
- stale_header_data_.size()));
1801
+ req, StdStringToUpbString(stale_header_data_.as_string_view()));
1887
1802
  }
1888
1803
  size_t len;
1889
1804
  char* buf =
@@ -1926,7 +1841,8 @@ RlsLb::ResponseInfo RlsLb::RlsRequest::ParseResponseProto() {
1926
1841
  upb_StringView header_data_strview =
1927
1842
  grpc_lookup_v1_RouteLookupResponse_header_data(response);
1928
1843
  response_info.header_data =
1929
- std::string(header_data_strview.data, header_data_strview.size);
1844
+ grpc_event_engine::experimental::Slice::FromCopiedBuffer(
1845
+ header_data_strview.data, header_data_strview.size);
1930
1846
  return response_info;
1931
1847
  }
1932
1848
 
@@ -1947,17 +1863,8 @@ RlsLb::RlsLb(Args args)
1947
1863
  instance_uuid_(channel_args()
1948
1864
  .GetOwnedString(GRPC_ARG_TEST_ONLY_RLS_INSTANCE_ID)
1949
1865
  .value_or(GenerateUUID())),
1950
- cache_(this),
1951
- registered_metric_callback_(
1952
- channel_control_helper()->GetStatsPluginGroup().RegisterCallback(
1953
- [this](CallbackMetricReporter& reporter) {
1954
- MutexLock lock(&mu_);
1955
- cache_.ReportMetricsLocked(reporter);
1956
- },
1957
- {kMetricCacheSize, kMetricCacheEntries})) {
1958
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1959
- gpr_log(GPR_INFO, "[rlslb %p] policy created", this);
1960
- }
1866
+ cache_(this) {
1867
+ GRPC_TRACE_LOG(rls_lb, INFO) << "[rlslb " << this << "] policy created";
1961
1868
  }
1962
1869
 
1963
1870
  bool EndpointsEqual(
@@ -1982,18 +1889,16 @@ bool EndpointsEqual(
1982
1889
  }
1983
1890
 
1984
1891
  absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
1985
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1986
- gpr_log(GPR_INFO, "[rlslb %p] policy updated", this);
1987
- }
1892
+ GRPC_TRACE_LOG(rls_lb, INFO) << "[rlslb " << this << "] policy updated";
1988
1893
  update_in_progress_ = true;
1989
1894
  // Swap out config.
1990
1895
  RefCountedPtr<RlsLbConfig> old_config = std::move(config_);
1991
1896
  config_ = args.config.TakeAsSubclass<RlsLbConfig>();
1992
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) &&
1897
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb) &&
1993
1898
  (old_config == nullptr ||
1994
1899
  old_config->child_policy_config() != config_->child_policy_config())) {
1995
- gpr_log(GPR_INFO, "[rlslb %p] updated child policy config: %s", this,
1996
- JsonDump(config_->child_policy_config()).c_str());
1900
+ LOG(INFO) << "[rlslb " << this << "] updated child policy config: "
1901
+ << JsonDump(config_->child_policy_config());
1997
1902
  }
1998
1903
  // Swap out addresses.
1999
1904
  // If the new address list is an error and we have an existing address list,
@@ -2017,31 +1922,28 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2017
1922
  if (old_config == nullptr ||
2018
1923
  config_->default_target() != old_config->default_target()) {
2019
1924
  if (config_->default_target().empty()) {
2020
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2021
- gpr_log(GPR_INFO, "[rlslb %p] unsetting default target", this);
2022
- }
1925
+ GRPC_TRACE_LOG(rls_lb, INFO)
1926
+ << "[rlslb " << this << "] unsetting default target";
2023
1927
  default_child_policy_.reset();
1928
+ } else if (auto it = child_policy_map_.find(config_->default_target());
1929
+ it == child_policy_map_.end()) {
1930
+ GRPC_TRACE_LOG(rls_lb, INFO)
1931
+ << "[rlslb " << this << "] creating new default target";
1932
+ default_child_policy_ = MakeRefCounted<ChildPolicyWrapper>(
1933
+ RefAsSubclass<RlsLb>(DEBUG_LOCATION, "ChildPolicyWrapper"),
1934
+ config_->default_target());
1935
+ created_default_child = true;
2024
1936
  } else {
2025
- auto it = child_policy_map_.find(config_->default_target());
2026
- if (it == child_policy_map_.end()) {
2027
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2028
- gpr_log(GPR_INFO, "[rlslb %p] creating new default target", this);
2029
- }
2030
- default_child_policy_ = MakeRefCounted<ChildPolicyWrapper>(
2031
- RefAsSubclass<RlsLb>(DEBUG_LOCATION, "ChildPolicyWrapper"),
2032
- config_->default_target());
2033
- created_default_child = true;
2034
- } else {
2035
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2036
- gpr_log(GPR_INFO,
2037
- "[rlslb %p] using existing child for default target", this);
2038
- }
2039
- default_child_policy_ =
2040
- it->second->Ref(DEBUG_LOCATION, "DefaultChildPolicy");
2041
- }
1937
+ GRPC_TRACE_LOG(rls_lb, INFO)
1938
+ << "[rlslb " << this << "] using existing child for default target";
1939
+ default_child_policy_ =
1940
+ it->second->Ref(DEBUG_LOCATION, "DefaultChildPolicy");
2042
1941
  }
2043
1942
  }
2044
1943
  // Now grab the lock to swap out the state it guards.
1944
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>
1945
+ child_policy_wrappers_to_delete;
1946
+ OrphanablePtr<ChildPolicyHandler> child_policy_to_delete;
2045
1947
  {
2046
1948
  MutexLock lock(&mu_);
2047
1949
  // Swap out RLS channel if needed.
@@ -2053,42 +1955,37 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2053
1955
  // Resize cache if needed.
2054
1956
  if (old_config == nullptr ||
2055
1957
  config_->cache_size_bytes() != old_config->cache_size_bytes()) {
2056
- cache_.Resize(static_cast<size_t>(config_->cache_size_bytes()));
1958
+ cache_.Resize(static_cast<size_t>(config_->cache_size_bytes()),
1959
+ &child_policy_wrappers_to_delete);
2057
1960
  }
2058
1961
  // Start update of child policies if needed.
2059
1962
  if (update_child_policies) {
2060
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2061
- gpr_log(GPR_INFO, "[rlslb %p] starting child policy updates", this);
2062
- }
2063
- for (auto& p : child_policy_map_) {
2064
- p.second->StartUpdate();
1963
+ GRPC_TRACE_LOG(rls_lb, INFO)
1964
+ << "[rlslb " << this << "] starting child policy updates";
1965
+ for (auto& [_, child] : child_policy_map_) {
1966
+ child->StartUpdate(&child_policy_to_delete);
2065
1967
  }
2066
1968
  } else if (created_default_child) {
2067
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2068
- gpr_log(GPR_INFO, "[rlslb %p] starting default child policy update",
2069
- this);
2070
- }
2071
- default_child_policy_->StartUpdate();
1969
+ GRPC_TRACE_LOG(rls_lb, INFO)
1970
+ << "[rlslb " << this << "] starting default child policy update";
1971
+ default_child_policy_->StartUpdate(&child_policy_to_delete);
2072
1972
  }
2073
1973
  }
2074
1974
  // Now that we've released the lock, finish update of child policies.
2075
1975
  std::vector<std::string> errors;
2076
1976
  if (update_child_policies) {
2077
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2078
- gpr_log(GPR_INFO, "[rlslb %p] finishing child policy updates", this);
2079
- }
2080
- for (auto& p : child_policy_map_) {
2081
- absl::Status status = p.second->MaybeFinishUpdate();
1977
+ GRPC_TRACE_LOG(rls_lb, INFO)
1978
+ << "[rlslb " << this << "] finishing child policy updates";
1979
+ for (auto& [name, child] : child_policy_map_) {
1980
+ absl::Status status = child->MaybeFinishUpdate();
2082
1981
  if (!status.ok()) {
2083
1982
  errors.emplace_back(
2084
- absl::StrCat("target ", p.first, ": ", status.ToString()));
1983
+ absl::StrCat("target ", name, ": ", status.ToString()));
2085
1984
  }
2086
1985
  }
2087
1986
  } else if (created_default_child) {
2088
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2089
- gpr_log(GPR_INFO, "[rlslb %p] finishing default child policy update",
2090
- this);
2091
- }
1987
+ GRPC_TRACE_LOG(rls_lb, INFO)
1988
+ << "[rlslb " << this << "] finishing default child policy update";
2092
1989
  absl::Status status = default_child_policy_->MaybeFinishUpdate();
2093
1990
  if (!status.ok()) {
2094
1991
  errors.emplace_back(absl::StrCat("target ", config_->default_target(),
@@ -2096,6 +1993,20 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2096
1993
  }
2097
1994
  }
2098
1995
  update_in_progress_ = false;
1996
+ // On the initial update only, we set the gauge metric callback. We
1997
+ // can't do this before the initial update, because otherwise the
1998
+ // callback could be invoked before we've set state that we need for
1999
+ // the label values (e.g., we'd add metrics with empty string for the
2000
+ // RLS server name).
2001
+ if (registered_metric_callback_ == nullptr) {
2002
+ registered_metric_callback_ =
2003
+ channel_control_helper()->GetStatsPluginGroup().RegisterCallback(
2004
+ [this](CallbackMetricReporter& reporter) {
2005
+ MutexLock lock(&mu_);
2006
+ cache_.ReportMetricsLocked(reporter);
2007
+ },
2008
+ Duration::Seconds(5), kMetricCacheSize, kMetricCacheEntries);
2009
+ }
2099
2010
  // In principle, we need to update the picker here only if the config
2100
2011
  // fields used by the picker have changed. However, it seems fragile
2101
2012
  // to check individual fields, since the picker logic could change in
@@ -2113,8 +2024,8 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2113
2024
 
2114
2025
  void RlsLb::ExitIdleLocked() {
2115
2026
  MutexLock lock(&mu_);
2116
- for (auto& child_entry : child_policy_map_) {
2117
- child_entry.second->ExitIdleLocked();
2027
+ for (auto& [_, child] : child_policy_map_) {
2028
+ child->ExitIdleLocked();
2118
2029
  }
2119
2030
  }
2120
2031
 
@@ -2124,47 +2035,36 @@ void RlsLb::ResetBackoffLocked() {
2124
2035
  rls_channel_->ResetBackoff();
2125
2036
  cache_.ResetAllBackoff();
2126
2037
  }
2127
- for (auto& child : child_policy_map_) {
2128
- child.second->ResetBackoffLocked();
2038
+ for (auto& [_, child] : child_policy_map_) {
2039
+ child->ResetBackoffLocked();
2129
2040
  }
2130
2041
  }
2131
2042
 
2132
2043
  void RlsLb::ShutdownLocked() {
2133
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2134
- gpr_log(GPR_INFO, "[rlslb %p] policy shutdown", this);
2135
- }
2044
+ GRPC_TRACE_LOG(rls_lb, INFO) << "[rlslb " << this << "] policy shutdown";
2136
2045
  registered_metric_callback_.reset();
2137
- MutexLock lock(&mu_);
2138
- is_shutdown_ = true;
2139
- config_.reset(DEBUG_LOCATION, "ShutdownLocked");
2046
+ RefCountedPtr<ChildPolicyWrapper> child_policy_to_delete;
2047
+ std::vector<RefCountedPtr<ChildPolicyWrapper>>
2048
+ child_policy_wrappers_to_delete;
2049
+ OrphanablePtr<RlsChannel> rls_channel_to_delete;
2050
+ {
2051
+ MutexLock lock(&mu_);
2052
+ is_shutdown_ = true;
2053
+ config_.reset(DEBUG_LOCATION, "ShutdownLocked");
2054
+ child_policy_wrappers_to_delete = cache_.Shutdown();
2055
+ request_map_.clear();
2056
+ rls_channel_to_delete = std::move(rls_channel_);
2057
+ child_policy_to_delete = std::move(default_child_policy_);
2058
+ }
2140
2059
  channel_args_ = ChannelArgs();
2141
- cache_.Shutdown();
2142
- request_map_.clear();
2143
- rls_channel_.reset();
2144
- default_child_policy_.reset();
2145
2060
  }
2146
2061
 
2147
2062
  void RlsLb::UpdatePickerAsync() {
2148
- // Run via the ExecCtx, since the caller may be holding the lock, and
2149
- // we don't want to be doing that when we hop into the WorkSerializer,
2150
- // in case the WorkSerializer callback happens to run inline.
2151
- ExecCtx::Run(
2152
- DEBUG_LOCATION,
2153
- GRPC_CLOSURE_CREATE(UpdatePickerCallback,
2154
- Ref(DEBUG_LOCATION, "UpdatePickerCallback").release(),
2155
- grpc_schedule_on_exec_ctx),
2156
- absl::OkStatus());
2157
- }
2158
-
2159
- void RlsLb::UpdatePickerCallback(void* arg, grpc_error_handle /*error*/) {
2160
- auto* rls_lb = static_cast<RlsLb*>(arg);
2161
- rls_lb->work_serializer()->Run(
2162
- [rls_lb]() {
2163
- RefCountedPtr<RlsLb> lb_policy(rls_lb);
2164
- lb_policy->UpdatePickerLocked();
2165
- lb_policy.reset(DEBUG_LOCATION, "UpdatePickerCallback");
2166
- },
2167
- DEBUG_LOCATION);
2063
+ work_serializer()->Run([self = RefAsSubclass<RlsLb>(
2064
+ DEBUG_LOCATION, "UpdatePickerAsync")]() mutable {
2065
+ self->UpdatePickerLocked();
2066
+ self.reset(DEBUG_LOCATION, "UpdatePickerAsync");
2067
+ });
2168
2068
  }
2169
2069
 
2170
2070
  void RlsLb::UpdatePickerLocked() {
@@ -2174,9 +2074,7 @@ void RlsLb::UpdatePickerLocked() {
2174
2074
  // all children. This avoids unnecessary picker churn while an update
2175
2075
  // is being propagated to our children.
2176
2076
  if (update_in_progress_) return;
2177
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2178
- gpr_log(GPR_INFO, "[rlslb %p] updating picker", this);
2179
- }
2077
+ GRPC_TRACE_LOG(rls_lb, INFO) << "[rlslb " << this << "] updating picker";
2180
2078
  grpc_connectivity_state state = GRPC_CHANNEL_IDLE;
2181
2079
  if (!child_policy_map_.empty()) {
2182
2080
  state = GRPC_CHANNEL_TRANSIENT_FAILURE;
@@ -2185,13 +2083,11 @@ void RlsLb::UpdatePickerLocked() {
2185
2083
  {
2186
2084
  MutexLock lock(&mu_);
2187
2085
  if (is_shutdown_) return;
2188
- for (auto& p : child_policy_map_) {
2189
- grpc_connectivity_state child_state = p.second->connectivity_state();
2190
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2191
- gpr_log(GPR_INFO, "[rlslb %p] target %s in state %s", this,
2192
- p.second->target().c_str(),
2193
- ConnectivityStateName(child_state));
2194
- }
2086
+ for (auto& [_, child] : child_policy_map_) {
2087
+ grpc_connectivity_state child_state = child->connectivity_state();
2088
+ GRPC_TRACE_LOG(rls_lb, INFO)
2089
+ << "[rlslb " << this << "] target " << child->target()
2090
+ << " in state " << ConnectivityStateName(child_state);
2195
2091
  if (child_state == GRPC_CHANNEL_READY) {
2196
2092
  state = GRPC_CHANNEL_READY;
2197
2093
  break;
@@ -2210,10 +2106,8 @@ void RlsLb::UpdatePickerLocked() {
2210
2106
  }
2211
2107
  }
2212
2108
  }
2213
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2214
- gpr_log(GPR_INFO, "[rlslb %p] reporting state %s", this,
2215
- ConnectivityStateName(state));
2216
- }
2109
+ GRPC_TRACE_LOG(rls_lb, INFO) << "[rlslb " << this << "] reporting state "
2110
+ << ConnectivityStateName(state);
2217
2111
  absl::Status status;
2218
2112
  if (state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
2219
2113
  status = absl::UnavailableError("no children available");
@@ -2223,9 +2117,10 @@ void RlsLb::UpdatePickerLocked() {
2223
2117
  MakeRefCounted<Picker>(RefAsSubclass<RlsLb>(DEBUG_LOCATION, "Picker")));
2224
2118
  }
2225
2119
 
2226
- void RlsLb::MaybeExportPickCount(
2227
- GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
2228
- absl::string_view target, const PickResult& pick_result) {
2120
+ template <typename HandleType>
2121
+ void RlsLb::MaybeExportPickCount(HandleType handle, absl::string_view target,
2122
+ absl::string_view lookup_service,
2123
+ const PickResult& pick_result) {
2229
2124
  absl::string_view pick_result_string = Match(
2230
2125
  pick_result.result,
2231
2126
  [](const LoadBalancingPolicy::PickResult::Complete&) {
@@ -2236,15 +2131,14 @@ void RlsLb::MaybeExportPickCount(
2236
2131
  [](const LoadBalancingPolicy::PickResult::Drop&) { return "drop"; });
2237
2132
  if (pick_result_string.empty()) return; // Don't report queued picks.
2238
2133
  auto& stats_plugins = channel_control_helper()->GetStatsPluginGroup();
2239
- stats_plugins.AddCounter(
2240
- handle, 1,
2241
- {channel_control_helper()->GetTarget(), config_->lookup_service(), target,
2242
- pick_result_string},
2243
- {});
2134
+ stats_plugins.AddCounter(handle, 1,
2135
+ {channel_control_helper()->GetTarget(),
2136
+ lookup_service, target, pick_result_string},
2137
+ {});
2244
2138
  }
2245
2139
 
2246
2140
  //
2247
- // RlsLbFactory
2141
+ // RlsLbConfig
2248
2142
  //
2249
2143
 
2250
2144
  struct GrpcKeyBuilder {
@@ -2264,7 +2158,7 @@ struct GrpcKeyBuilder {
2264
2158
  struct NameMatcher {
2265
2159
  std::string key;
2266
2160
  std::vector<std::string> names;
2267
- absl::optional<bool> required_match;
2161
+ std::optional<bool> required_match;
2268
2162
 
2269
2163
  static const JsonLoaderInterface* JsonLoader(const JsonArgs&) {
2270
2164
  static const auto* loader =
@@ -2310,9 +2204,9 @@ struct GrpcKeyBuilder {
2310
2204
  };
2311
2205
 
2312
2206
  struct ExtraKeys {
2313
- absl::optional<std::string> host_key;
2314
- absl::optional<std::string> service_key;
2315
- absl::optional<std::string> method_key;
2207
+ std::optional<std::string> host_key;
2208
+ std::optional<std::string> service_key;
2209
+ std::optional<std::string> method_key;
2316
2210
 
2317
2211
  static const JsonLoaderInterface* JsonLoader(const JsonArgs&) {
2318
2212
  static const auto* loader =
@@ -2326,7 +2220,7 @@ struct GrpcKeyBuilder {
2326
2220
 
2327
2221
  void JsonPostLoad(const Json&, const JsonArgs&, ValidationErrors* errors) {
2328
2222
  auto check_field = [&](const std::string& field_name,
2329
- absl::optional<std::string>* struct_field) {
2223
+ std::optional<std::string>* struct_field) {
2330
2224
  ValidationErrors::ScopedField field(errors,
2331
2225
  absl::StrCat(".", field_name));
2332
2226
  if (struct_field->has_value() && (*struct_field)->empty()) {
@@ -2387,9 +2281,9 @@ struct GrpcKeyBuilder {
2387
2281
  duplicate_key_check_func(header.key,
2388
2282
  absl::StrCat(".headers[", i, "].key"));
2389
2283
  }
2390
- for (const auto& p : constant_keys) {
2391
- duplicate_key_check_func(
2392
- p.first, absl::StrCat(".constantKeys[\"", p.first, "\"]"));
2284
+ for (const auto& [key, value] : constant_keys) {
2285
+ duplicate_key_check_func(key,
2286
+ absl::StrCat(".constantKeys[\"", key, "\"]"));
2393
2287
  }
2394
2288
  if (extra_keys.host_key.has_value()) {
2395
2289
  duplicate_key_check_func(*extra_keys.host_key, ".extraKeys.host");
@@ -2403,6 +2297,8 @@ struct GrpcKeyBuilder {
2403
2297
  }
2404
2298
  };
2405
2299
 
2300
+ } // namespace
2301
+
2406
2302
  const JsonLoaderInterface* RlsLbConfig::RouteLookupConfig::JsonLoader(
2407
2303
  const JsonArgs&) {
2408
2304
  static const auto* loader =
@@ -2467,14 +2363,18 @@ void RlsLbConfig::RouteLookupConfig::JsonPostLoad(const Json& json,
2467
2363
  errors->AddError("must be valid gRPC target URI");
2468
2364
  }
2469
2365
  }
2470
- // Clamp maxAge to the max allowed value.
2471
- if (max_age > kMaxMaxAge) max_age = kMaxMaxAge;
2472
2366
  // If staleAge is set, then maxAge must also be set.
2473
- if (json.object().find("staleAge") != json.object().end() &&
2474
- json.object().find("maxAge") == json.object().end()) {
2367
+ const bool stale_age_set =
2368
+ json.object().find("staleAge") != json.object().end();
2369
+ const bool max_age_set = json.object().find("maxAge") != json.object().end();
2370
+ if (stale_age_set && !max_age_set) {
2475
2371
  ValidationErrors::ScopedField field(errors, ".maxAge");
2476
2372
  errors->AddError("must be set if staleAge is set");
2477
2373
  }
2374
+ // Clamp staleAge to the max allowed value.
2375
+ if (stale_age > kMaxMaxAge) stale_age = kMaxMaxAge;
2376
+ // If staleAge is not set, clamp maxAge to the max allowed value.
2377
+ if (!stale_age_set && max_age > kMaxMaxAge) max_age = kMaxMaxAge;
2478
2378
  // Ignore staleAge if greater than or equal to maxAge.
2479
2379
  if (stale_age >= max_age) stale_age = max_age;
2480
2380
  // Validate cacheSizeBytes.
@@ -2516,6 +2416,7 @@ void RlsLbConfig::JsonPostLoad(const Json& json, const JsonArgs&,
2516
2416
  // Parse routeLookupChannelServiceConfig.
2517
2417
  auto it = json.object().find("routeLookupChannelServiceConfig");
2518
2418
  if (it != json.object().end()) {
2419
+ rls_channel_service_config_ = JsonDump(it->second);
2519
2420
  ValidationErrors::ScopedField field(errors,
2520
2421
  ".routeLookupChannelServiceConfig");
2521
2422
  // Don't need to save the result here, just need the errors (if any).
@@ -2574,9 +2475,15 @@ void RlsLbConfig::JsonPostLoad(const Json& json, const JsonArgs&,
2574
2475
  }
2575
2476
  }
2576
2477
 
2478
+ //
2479
+ // RlsLbFactory
2480
+ //
2481
+
2482
+ namespace {
2483
+
2577
2484
  class RlsLbFactory final : public LoadBalancingPolicyFactory {
2578
2485
  public:
2579
- absl::string_view name() const override { return kRls; }
2486
+ absl::string_view name() const override { return RlsLbConfig::Name(); }
2580
2487
 
2581
2488
  OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
2582
2489
  LoadBalancingPolicy::Args args) const override {
@@ -2586,7 +2493,7 @@ class RlsLbFactory final : public LoadBalancingPolicyFactory {
2586
2493
  absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
2587
2494
  ParseLoadBalancingConfig(const Json& json) const override {
2588
2495
  return LoadFromJson<RefCountedPtr<RlsLbConfig>>(
2589
- json, JsonArgs(), "errors validing RLS LB policy config");
2496
+ json, JsonArgs(), "errors validating RLS LB policy config");
2590
2497
  }
2591
2498
  };
2592
2499