grpc 1.63.0 → 1.71.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 (3339) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +415 -416
  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 +10 -7
  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/src/core/call/request_buffer.cc +224 -0
  37. data/src/core/call/request_buffer.h +192 -0
  38. data/src/core/channelz/channel_trace.cc +180 -0
  39. data/src/core/channelz/channel_trace.h +138 -0
  40. data/src/core/channelz/channelz.cc +670 -0
  41. data/src/core/channelz/channelz.h +402 -0
  42. data/src/core/channelz/channelz_registry.cc +274 -0
  43. data/src/core/channelz/channelz_registry.h +101 -0
  44. data/src/core/client_channel/backup_poller.cc +25 -16
  45. data/src/core/client_channel/client_channel.cc +1415 -0
  46. data/src/core/client_channel/client_channel.h +245 -0
  47. data/src/core/client_channel/client_channel_args.h +21 -0
  48. data/src/core/client_channel/client_channel_factory.cc +2 -2
  49. data/src/core/client_channel/client_channel_factory.h +1 -2
  50. data/src/core/client_channel/client_channel_filter.cc +436 -1030
  51. data/src/core/client_channel/client_channel_filter.h +34 -87
  52. data/src/core/client_channel/client_channel_internal.h +26 -11
  53. data/src/core/client_channel/client_channel_plugin.cc +4 -18
  54. data/src/core/client_channel/client_channel_service_config.cc +3 -4
  55. data/src/core/client_channel/client_channel_service_config.h +13 -15
  56. data/src/core/client_channel/config_selector.h +25 -25
  57. data/src/core/client_channel/connector.h +4 -4
  58. data/src/core/client_channel/direct_channel.cc +83 -0
  59. data/src/core/client_channel/direct_channel.h +101 -0
  60. data/src/core/client_channel/dynamic_filters.cc +19 -16
  61. data/src/core/client_channel/dynamic_filters.h +9 -10
  62. data/src/core/client_channel/global_subchannel_pool.cc +2 -2
  63. data/src/core/client_channel/global_subchannel_pool.h +2 -3
  64. data/src/core/client_channel/lb_metadata.cc +119 -0
  65. data/src/core/client_channel/lb_metadata.h +55 -0
  66. data/src/core/client_channel/load_balanced_call_destination.cc +273 -0
  67. data/src/core/client_channel/load_balanced_call_destination.h +48 -0
  68. data/src/core/client_channel/local_subchannel_pool.cc +6 -7
  69. data/src/core/client_channel/local_subchannel_pool.h +1 -1
  70. data/src/core/client_channel/retry_filter.cc +9 -18
  71. data/src/core/client_channel/retry_filter.h +10 -18
  72. data/src/core/client_channel/retry_filter_legacy_call_data.cc +224 -335
  73. data/src/core/client_channel/retry_filter_legacy_call_data.h +18 -21
  74. data/src/core/client_channel/retry_interceptor.cc +408 -0
  75. data/src/core/client_channel/retry_interceptor.h +157 -0
  76. data/src/core/client_channel/retry_service_config.cc +11 -14
  77. data/src/core/client_channel/retry_service_config.h +22 -11
  78. data/src/core/client_channel/retry_throttle.cc +34 -20
  79. data/src/core/client_channel/retry_throttle.h +6 -9
  80. data/src/core/client_channel/subchannel.cc +333 -247
  81. data/src/core/client_channel/subchannel.h +52 -45
  82. data/src/core/client_channel/subchannel_interface_internal.h +1 -1
  83. data/src/core/client_channel/subchannel_pool_interface.cc +1 -5
  84. data/src/core/client_channel/subchannel_pool_interface.h +4 -7
  85. data/src/core/client_channel/subchannel_stream_client.cc +47 -62
  86. data/src/core/client_channel/subchannel_stream_client.h +13 -17
  87. data/src/core/config/config_vars.cc +152 -0
  88. data/src/core/config/config_vars.h +129 -0
  89. data/src/core/config/config_vars_non_generated.cc +49 -0
  90. data/src/core/config/core_configuration.cc +111 -0
  91. data/src/core/config/core_configuration.h +242 -0
  92. data/src/core/config/load_config.cc +78 -0
  93. data/src/core/config/load_config.h +54 -0
  94. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +29 -40
  95. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +11 -9
  96. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  97. data/src/core/ext/filters/census/grpc_context.cc +7 -10
  98. data/src/core/ext/filters/channel_idle/idle_filter_state.cc +1 -2
  99. data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -1
  100. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +45 -48
  101. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +22 -19
  102. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +31 -42
  103. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -12
  104. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +3 -4
  105. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +7 -10
  106. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +198 -0
  107. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +97 -0
  108. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +80 -0
  109. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +86 -0
  110. data/src/core/ext/filters/http/client/http_client_filter.cc +19 -17
  111. data/src/core/ext/filters/http/client/http_client_filter.h +11 -9
  112. data/src/core/ext/filters/http/client_authority_filter.cc +18 -21
  113. data/src/core/ext/filters/http/client_authority_filter.h +13 -10
  114. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -2
  115. data/src/core/ext/filters/http/message_compress/compression_filter.cc +73 -72
  116. data/src/core/ext/filters/http/message_compress/compression_filter.h +32 -23
  117. data/src/core/ext/filters/http/server/http_server_filter.cc +20 -22
  118. data/src/core/ext/filters/http/server/http_server_filter.h +11 -9
  119. data/src/core/ext/filters/message_size/message_size_filter.cc +52 -73
  120. data/src/core/ext/filters/message_size/message_size_filter.h +38 -35
  121. data/src/core/ext/filters/rbac/rbac_filter.cc +19 -24
  122. data/src/core/ext/filters/rbac/rbac_filter.h +13 -12
  123. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +19 -13
  124. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -5
  125. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +26 -33
  126. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +11 -9
  127. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +3 -4
  128. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +8 -10
  129. data/src/core/ext/transport/chttp2/alpn/alpn.cc +4 -5
  130. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -1
  131. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +85 -118
  132. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -15
  133. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1008 -384
  134. data/src/core/ext/transport/chttp2/server/chttp2_server.h +221 -12
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +27 -39
  136. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -3
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +10 -12
  138. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -3
  139. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +53 -0
  140. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +72 -0
  141. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +750 -598
  142. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -23
  143. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -2
  144. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
  145. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
  146. data/src/core/ext/transport/chttp2/transport/flow_control.cc +12 -17
  147. data/src/core/ext/transport/chttp2/transport/flow_control.h +7 -12
  148. data/src/core/ext/transport/chttp2/transport/frame.cc +27 -10
  149. data/src/core/ext/transport/chttp2/transport/frame.h +14 -5
  150. data/src/core/ext/transport/chttp2/transport/frame_data.cc +21 -22
  151. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -5
  152. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -18
  153. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -3
  154. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +16 -21
  155. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -3
  156. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
  157. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  158. data/src/core/ext/transport/chttp2/transport/frame_security.cc +80 -0
  159. data/src/core/ext/transport/chttp2/transport/frame_security.h +44 -0
  160. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +41 -26
  161. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -4
  162. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +31 -10
  163. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -4
  164. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +21 -22
  165. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +18 -15
  166. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -10
  167. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
  168. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -5
  169. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +7 -10
  170. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +111 -105
  171. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +11 -13
  172. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +45 -20
  173. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +28 -9
  174. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +15 -7
  175. data/src/core/ext/transport/chttp2/transport/http2_settings.h +12 -6
  176. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
  177. data/src/core/ext/transport/chttp2/transport/internal.h +86 -85
  178. data/src/core/ext/transport/chttp2/transport/legacy_frame.h +1 -0
  179. data/src/core/ext/transport/chttp2/transport/parsing.cc +147 -133
  180. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +4 -5
  181. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +1 -1
  182. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +6 -9
  183. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +4 -9
  184. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +35 -21
  185. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +8 -9
  186. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +20 -21
  187. data/src/core/ext/transport/chttp2/transport/stream_lists.h +65 -0
  188. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -6
  189. data/src/core/ext/transport/chttp2/transport/varint.h +2 -3
  190. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -4
  191. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -3
  192. data/src/core/ext/transport/chttp2/transport/writing.cc +182 -150
  193. data/src/core/ext/transport/inproc/inproc_transport.cc +156 -76
  194. data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
  195. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +139 -136
  196. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
  197. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +46 -15
  198. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +40 -18
  199. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +10 -4
  200. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +59 -27
  201. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +36 -18
  202. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +9 -4
  203. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +50 -15
  204. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +44 -22
  205. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +10 -4
  206. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +190 -55
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +162 -84
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +24 -4
  209. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +11 -5
  210. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +14 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +7 -4
  212. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +19 -6
  213. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +18 -8
  214. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +7 -4
  215. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +11 -10
  216. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +7 -1
  217. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +6 -4
  218. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +8 -7
  219. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +7 -1
  220. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +6 -4
  221. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +8 -7
  222. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +7 -1
  223. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +6 -4
  224. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +145 -82
  225. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +40 -27
  226. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +7 -4
  227. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +9 -6
  228. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +10 -4
  229. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +6 -4
  230. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +9 -8
  231. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +7 -1
  232. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +5 -4
  233. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +18 -8
  234. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +13 -6
  235. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +6 -4
  236. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +91 -34
  237. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +114 -48
  238. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +21 -4
  239. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +544 -254
  240. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +265 -149
  241. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +29 -4
  242. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +41 -14
  243. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +31 -17
  244. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +8 -4
  245. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +529 -141
  246. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +270 -143
  247. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +31 -4
  248. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +12 -7
  249. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +11 -5
  250. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +6 -4
  251. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +171 -27
  252. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +54 -27
  253. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +6 -4
  254. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +127 -35
  255. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +125 -63
  256. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +20 -4
  257. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +67 -27
  258. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +60 -26
  259. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +13 -4
  260. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +11 -6
  261. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +11 -5
  262. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +6 -4
  263. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +871 -72
  264. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +346 -75
  265. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +41 -4
  266. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +67 -25
  267. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +57 -27
  268. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +12 -4
  269. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +8 -5
  270. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +10 -4
  271. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +6 -4
  272. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +9 -6
  273. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +10 -4
  274. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +6 -4
  275. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +11 -5
  276. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +14 -4
  277. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +7 -4
  278. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +201 -62
  279. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +120 -53
  280. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +19 -4
  281. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +196 -62
  282. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +95 -53
  283. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +14 -4
  284. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +13 -5
  285. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +11 -5
  286. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +6 -4
  287. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +10 -7
  288. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +10 -4
  289. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +6 -4
  290. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +322 -76
  291. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +162 -84
  292. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +21 -4
  293. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +10 -7
  294. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +14 -4
  295. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +7 -4
  296. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +15 -7
  297. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +15 -5
  298. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +7 -4
  299. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  300. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  301. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  302. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +244 -31
  303. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +79 -21
  304. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +13 -4
  305. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +23 -11
  306. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +17 -7
  307. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +7 -4
  308. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +11 -6
  309. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +11 -5
  310. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +6 -4
  311. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +42 -11
  312. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +35 -17
  313. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +9 -4
  314. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +106 -34
  315. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +69 -37
  316. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +12 -4
  317. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +281 -37
  318. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +81 -27
  319. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +12 -4
  320. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +8 -5
  321. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +10 -4
  322. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +6 -4
  323. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +142 -47
  324. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +90 -47
  325. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +15 -4
  326. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +92 -129
  327. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +66 -57
  328. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +11 -5
  329. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +178 -13
  330. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +46 -14
  331. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +6 -4
  332. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +14 -7
  333. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -6
  334. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +7 -4
  335. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +14 -9
  336. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +11 -5
  337. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +6 -4
  338. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +51 -22
  339. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +58 -24
  340. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +13 -4
  341. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +70 -22
  342. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +71 -29
  343. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +15 -4
  344. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +311 -38
  345. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +141 -63
  346. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +18 -4
  347. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +61 -13
  348. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +33 -19
  349. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +8 -4
  350. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +961 -237
  351. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +567 -273
  352. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +67 -4
  353. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +20 -10
  354. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +22 -8
  355. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +8 -4
  356. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +100 -35
  357. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +95 -45
  358. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +17 -4
  359. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +118 -16
  360. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +43 -12
  361. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +8 -4
  362. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +9 -6
  363. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +10 -4
  364. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +6 -4
  365. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +12 -7
  366. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +17 -7
  367. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +7 -4
  368. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +10 -7
  369. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +10 -4
  370. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +6 -4
  371. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +20 -8
  372. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +13 -7
  373. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +6 -4
  374. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +8 -5
  375. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +10 -4
  376. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +6 -4
  377. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +17 -10
  378. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +18 -8
  379. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +7 -4
  380. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +5 -6
  381. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +3 -2
  382. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +5 -5
  383. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +19 -10
  384. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +19 -9
  385. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +7 -4
  386. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +14 -11
  387. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -4
  388. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +6 -4
  389. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +216 -102
  390. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +124 -57
  391. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +21 -4
  392. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +5 -4
  393. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +7 -1
  394. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +6 -4
  395. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +24 -11
  396. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +33 -11
  397. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +10 -4
  398. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +42 -22
  399. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -13
  400. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +8 -4
  401. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +444 -0
  402. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +135 -0
  403. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +38 -0
  404. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +56 -13
  405. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +29 -13
  406. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +7 -4
  407. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +29 -12
  408. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +20 -10
  409. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +7 -4
  410. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +13 -8
  411. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +17 -7
  412. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +7 -4
  413. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +343 -134
  414. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +209 -121
  415. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +26 -4
  416. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +8 -5
  417. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +10 -4
  418. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +6 -4
  419. 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
  420. 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
  421. 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
  422. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +31 -14
  423. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +39 -17
  424. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +10 -4
  425. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +6 -5
  426. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +7 -1
  427. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +6 -4
  428. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +22 -11
  429. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +14 -8
  430. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +6 -4
  431. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +8 -5
  432. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +10 -4
  433. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +6 -4
  434. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +105 -0
  435. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +51 -0
  436. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +32 -0
  437. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -4
  438. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +3 -1
  439. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +5 -4
  440. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +170 -31
  441. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +83 -37
  442. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +14 -4
  443. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +25 -12
  444. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +27 -13
  445. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +8 -4
  446. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +214 -63
  447. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +100 -61
  448. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +12 -4
  449. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +51 -13
  450. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +23 -11
  451. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +7 -4
  452. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +58 -20
  453. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +44 -26
  454. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +9 -4
  455. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +5 -4
  456. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +7 -1
  457. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +6 -4
  458. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +373 -58
  459. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +144 -61
  460. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +21 -4
  461. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +18 -8
  462. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +18 -8
  463. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +7 -4
  464. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +67 -25
  465. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +47 -25
  466. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +10 -4
  467. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +10 -7
  468. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +10 -4
  469. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +6 -4
  470. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +16 -6
  471. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +26 -8
  472. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +9 -4
  473. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +142 -0
  474. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +55 -0
  475. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +32 -0
  476. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -6
  477. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +16 -7
  478. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +6 -4
  479. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +10 -9
  480. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +23 -1
  481. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +10 -4
  482. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +16 -8
  483. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +15 -5
  484. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +7 -4
  485. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +13 -5
  486. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +11 -5
  487. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +6 -4
  488. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +9 -6
  489. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +10 -4
  490. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +6 -4
  491. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +8 -5
  492. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +10 -4
  493. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +6 -4
  494. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +16 -9
  495. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +24 -10
  496. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +8 -4
  497. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +5 -4
  498. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +11 -1
  499. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +7 -4
  500. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +51 -10
  501. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +30 -9
  502. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +7 -4
  503. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +14 -6
  504. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +15 -5
  505. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +7 -4
  506. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +30 -12
  507. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +32 -14
  508. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +9 -4
  509. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +24 -10
  510. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +40 -10
  511. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +12 -4
  512. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +30 -17
  513. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +33 -11
  514. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +10 -4
  515. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +12 -7
  516. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +19 -5
  517. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +8 -4
  518. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +5 -4
  519. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +3 -1
  520. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +5 -4
  521. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +6 -5
  522. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +7 -1
  523. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +6 -4
  524. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +8 -7
  525. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +11 -1
  526. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +7 -4
  527. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +11 -10
  528. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +15 -1
  529. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +8 -4
  530. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +14 -9
  531. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +15 -5
  532. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +7 -4
  533. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +5 -4
  534. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +3 -1
  535. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +5 -4
  536. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +8 -7
  537. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +7 -1
  538. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +6 -4
  539. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +12 -7
  540. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +11 -5
  541. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +6 -4
  542. data/src/core/ext/upb-gen/google/api/annotations.upb.h +17 -7
  543. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +5 -2
  544. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +5 -4
  545. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +135 -36
  546. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +121 -56
  547. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +18 -4
  548. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +525 -69
  549. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +202 -68
  550. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +23 -4
  551. data/src/core/ext/upb-gen/google/api/http.upb.h +30 -16
  552. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -8
  553. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +8 -4
  554. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +12 -6
  555. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +10 -4
  556. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +6 -4
  557. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +8 -6
  558. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +7 -1
  559. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +6 -4
  560. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +583 -181
  561. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +376 -215
  562. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +56 -21
  563. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +8 -6
  564. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +7 -1
  565. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +6 -4
  566. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +6 -4
  567. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +7 -1
  568. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +6 -4
  569. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +33 -10
  570. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +32 -14
  571. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +9 -4
  572. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +8 -6
  573. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +7 -1
  574. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +6 -4
  575. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +15 -13
  576. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +39 -1
  577. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +14 -4
  578. data/src/core/ext/upb-gen/google/rpc/status.upb.h +12 -6
  579. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +10 -4
  580. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +6 -4
  581. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +19 -10
  582. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +15 -5
  583. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +7 -4
  584. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +98 -39
  585. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +87 -37
  586. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +17 -4
  587. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +14 -8
  588. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +15 -5
  589. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +7 -4
  590. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +8 -6
  591. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +11 -1
  592. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +7 -4
  593. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +47 -22
  594. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +58 -20
  595. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +14 -4
  596. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +16 -8
  597. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +18 -4
  598. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +8 -4
  599. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +72 -19
  600. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +60 -22
  601. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +14 -4
  602. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +69 -23
  603. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +31 -12
  604. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +8 -4
  605. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +19 -9
  606. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +13 -6
  607. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +6 -4
  608. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +6 -5
  609. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +4 -1
  610. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +5 -4
  611. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +19 -9
  612. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +13 -6
  613. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +6 -4
  614. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +18 -8
  615. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +13 -6
  616. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +6 -4
  617. data/src/core/ext/upb-gen/validate/validate.upb.h +264 -172
  618. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +185 -87
  619. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +29 -5
  620. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +69 -23
  621. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +31 -12
  622. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +8 -4
  623. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +19 -9
  624. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +13 -6
  625. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +6 -4
  626. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +6 -5
  627. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +4 -1
  628. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +5 -4
  629. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +46 -18
  630. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +32 -11
  631. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +9 -4
  632. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +18 -8
  633. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +13 -6
  634. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +6 -4
  635. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +6 -5
  636. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +7 -1
  637. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +6 -4
  638. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +9 -6
  639. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +10 -4
  640. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +6 -4
  641. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +16 -9
  642. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +18 -8
  643. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +7 -4
  644. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +11 -4
  645. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +14 -4
  646. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +7 -4
  647. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +9 -6
  648. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +10 -4
  649. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +6 -4
  650. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +12 -7
  651. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +11 -5
  652. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +6 -4
  653. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +21 -11
  654. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +18 -8
  655. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +7 -4
  656. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +11 -8
  657. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +10 -4
  658. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +6 -4
  659. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +29 -10
  660. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +24 -6
  661. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +9 -4
  662. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +8 -5
  663. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +10 -4
  664. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +6 -4
  665. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +9 -6
  666. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +10 -4
  667. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +6 -4
  668. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +13 -5
  669. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +17 -7
  670. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +7 -4
  671. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +5 -4
  672. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +7 -1
  673. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +6 -4
  674. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +19 -6
  675. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +18 -8
  676. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +7 -4
  677. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +81 -22
  678. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +85 -43
  679. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +15 -4
  680. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +44 -7
  681. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +48 -22
  682. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +11 -4
  683. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +9 -6
  684. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +14 -4
  685. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +7 -4
  686. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +18 -10
  687. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +17 -7
  688. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +7 -4
  689. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +17 -8
  690. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +19 -9
  691. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +7 -4
  692. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +12 -10
  693. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +15 -1
  694. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +8 -4
  695. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +9 -6
  696. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +10 -4
  697. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +6 -4
  698. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +2 -1
  699. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -4
  700. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +2 -1
  701. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -4
  702. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +2 -1
  703. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -4
  704. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +13 -11
  705. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -4
  706. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +2 -1
  707. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -4
  708. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +2 -1
  709. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -4
  710. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +2 -1
  711. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -4
  712. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +2 -1
  713. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -4
  714. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +2 -1
  715. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -4
  716. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +90 -82
  717. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -4
  718. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +2 -1
  719. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -4
  720. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +2 -1
  721. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -4
  722. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +2 -1
  723. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -4
  724. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +63 -61
  725. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -4
  726. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +223 -211
  727. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +10 -4
  728. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -1
  729. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -4
  730. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +419 -393
  731. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +10 -4
  732. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +2 -1
  733. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -4
  734. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +116 -106
  735. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -4
  736. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +2 -1
  737. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -4
  738. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +2 -1
  739. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -4
  740. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +2 -1
  741. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -4
  742. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +201 -147
  743. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +35 -4
  744. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +12 -12
  745. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -4
  746. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +2 -1
  747. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -4
  748. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +2 -1
  749. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -4
  750. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +2 -1
  751. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -4
  752. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +175 -165
  753. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -4
  754. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +199 -188
  755. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -4
  756. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +2 -1
  757. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -4
  758. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +2 -1
  759. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -4
  760. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +272 -255
  761. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -4
  762. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -1
  763. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -4
  764. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +2 -1
  765. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -4
  766. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  767. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  768. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +31 -20
  769. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +20 -4
  770. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -1
  771. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -4
  772. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -1
  773. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -4
  774. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -1
  775. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -4
  776. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +41 -37
  777. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -4
  778. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +124 -94
  779. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +10 -4
  780. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +2 -1
  781. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -4
  782. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +43 -40
  783. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -4
  784. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +60 -66
  785. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -9
  786. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +75 -56
  787. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -4
  788. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -1
  789. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -4
  790. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +2 -1
  791. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -4
  792. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +2 -1
  793. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -4
  794. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +51 -49
  795. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -4
  796. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +119 -97
  797. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +10 -4
  798. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +2 -1
  799. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -4
  800. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +922 -895
  801. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +15 -4
  802. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +2 -1
  803. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -4
  804. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +2 -1
  805. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -4
  806. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +32 -21
  807. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +10 -4
  808. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +20 -18
  809. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -4
  810. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -1
  811. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -4
  812. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +2 -1
  813. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -4
  814. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +2 -1
  815. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -4
  816. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +2 -1
  817. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -4
  818. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +2 -1
  819. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -4
  820. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +17 -19
  821. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -4
  822. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +2 -1
  823. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -4
  824. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +23 -21
  825. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -4
  826. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +147 -143
  827. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -4
  828. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -1
  829. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -4
  830. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -1
  831. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -4
  832. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -1
  833. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -4
  834. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +87 -0
  835. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +48 -0
  836. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +38 -34
  837. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -4
  838. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -1
  839. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -4
  840. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +2 -1
  841. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -4
  842. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +465 -459
  843. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -4
  844. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +2 -1
  845. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -4
  846. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +50 -0
  847. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +33 -0
  848. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -1
  849. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -4
  850. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +96 -88
  851. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +10 -4
  852. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -1
  853. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -4
  854. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +204 -192
  855. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -4
  856. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +21 -18
  857. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -4
  858. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +2 -1
  859. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -4
  860. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +2 -1
  861. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -4
  862. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +150 -136
  863. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +10 -4
  864. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -1
  865. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -4
  866. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +25 -23
  867. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -4
  868. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +2 -1
  869. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -4
  870. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +2 -1
  871. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -4
  872. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +41 -0
  873. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +33 -0
  874. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +28 -20
  875. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -4
  876. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  877. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  878. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +2 -1
  879. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -4
  880. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +2 -1
  881. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -4
  882. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +2 -1
  883. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -4
  884. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +2 -1
  885. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -4
  886. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +2 -1
  887. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -4
  888. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +2 -1
  889. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -4
  890. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +41 -34
  891. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -4
  892. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +2 -1
  893. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -4
  894. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +2 -1
  895. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -4
  896. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +2 -1
  897. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -4
  898. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -1
  899. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -4
  900. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +2 -1
  901. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -4
  902. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +2 -1
  903. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -4
  904. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +2 -1
  905. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -4
  906. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +2 -1
  907. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -4
  908. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +2 -1
  909. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -4
  910. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +2 -1
  911. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -4
  912. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +2 -1
  913. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -4
  914. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +2 -1
  915. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -4
  916. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +2 -1
  917. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -4
  918. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +2 -1
  919. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -4
  920. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +110 -108
  921. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -4
  922. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +103 -79
  923. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +15 -4
  924. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +2 -1
  925. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -4
  926. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +2 -1
  927. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -4
  928. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +2 -1
  929. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -4
  930. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +485 -458
  931. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -4
  932. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +2 -1
  933. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -4
  934. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +2 -1
  935. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -4
  936. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +2 -1
  937. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -4
  938. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +2 -1
  939. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -4
  940. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +2 -1
  941. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -4
  942. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +2 -1
  943. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -4
  944. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +2 -1
  945. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -4
  946. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +2 -1
  947. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -4
  948. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +2 -1
  949. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -4
  950. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +2 -1
  951. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -4
  952. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +2 -1
  953. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -4
  954. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +2 -1
  955. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -4
  956. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +2 -1
  957. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -4
  958. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +2 -1
  959. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -4
  960. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +2 -1
  961. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -4
  962. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +2 -1
  963. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -4
  964. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +2 -1
  965. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -4
  966. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +2 -1
  967. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -4
  968. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +2 -1
  969. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -4
  970. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +2 -1
  971. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -4
  972. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +2 -1
  973. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -4
  974. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +2 -1
  975. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -4
  976. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +2 -1
  977. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -4
  978. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +2 -1
  979. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -4
  980. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +2 -1
  981. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -4
  982. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +2 -1
  983. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -4
  984. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +2 -1
  985. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -4
  986. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +2 -1
  987. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -4
  988. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  989. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  990. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +2 -1
  991. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -4
  992. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +2 -1
  993. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -4
  994. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +2 -1
  995. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -4
  996. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +2 -1
  997. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -4
  998. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +2 -1
  999. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -4
  1000. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +2 -1
  1001. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -4
  1002. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +2 -1
  1003. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -4
  1004. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +2 -1
  1005. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -4
  1006. data/src/core/filter/blackboard.cc +33 -0
  1007. data/src/core/filter/blackboard.h +70 -0
  1008. data/src/core/filter/filter_args.h +112 -0
  1009. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +81 -0
  1010. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h +37 -0
  1011. data/src/core/handshaker/handshaker.cc +196 -0
  1012. data/src/core/handshaker/handshaker.h +170 -0
  1013. data/src/core/handshaker/handshaker_factory.h +89 -0
  1014. data/src/core/handshaker/handshaker_registry.cc +60 -0
  1015. data/src/core/handshaker/handshaker_registry.h +69 -0
  1016. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +357 -0
  1017. data/src/core/handshaker/http_connect/http_connect_handshaker.h +42 -0
  1018. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +296 -0
  1019. data/src/core/handshaker/http_connect/http_proxy_mapper.h +52 -0
  1020. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +57 -0
  1021. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +46 -0
  1022. data/src/core/handshaker/proxy_mapper.h +52 -0
  1023. data/src/core/handshaker/proxy_mapper_registry.cc +70 -0
  1024. data/src/core/handshaker/proxy_mapper_registry.h +74 -0
  1025. data/src/core/handshaker/security/secure_endpoint.cc +578 -0
  1026. data/src/core/handshaker/security/secure_endpoint.h +41 -0
  1027. data/src/core/handshaker/security/security_handshaker.cc +626 -0
  1028. data/src/core/handshaker/security/security_handshaker.h +45 -0
  1029. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +232 -0
  1030. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.h +39 -0
  1031. data/src/core/lib/address_utils/parse_address.cc +33 -44
  1032. data/src/core/lib/address_utils/parse_address.h +1 -3
  1033. data/src/core/lib/address_utils/sockaddr_utils.cc +22 -19
  1034. data/src/core/lib/address_utils/sockaddr_utils.h +0 -2
  1035. data/src/core/lib/channel/channel_args.cc +33 -39
  1036. data/src/core/lib/channel/channel_args.h +42 -29
  1037. data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
  1038. data/src/core/lib/channel/channel_args_preconditioning.h +2 -3
  1039. data/src/core/lib/channel/channel_stack.cc +19 -81
  1040. data/src/core/lib/channel/channel_stack.h +27 -63
  1041. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  1042. data/src/core/lib/channel/channel_stack_builder.h +1 -7
  1043. data/src/core/lib/channel/channel_stack_builder_impl.cc +5 -157
  1044. data/src/core/lib/channel/channel_stack_builder_impl.h +13 -3
  1045. data/src/core/lib/channel/connected_channel.cc +50 -707
  1046. data/src/core/lib/channel/promise_based_filter.cc +258 -333
  1047. data/src/core/lib/channel/promise_based_filter.h +265 -635
  1048. data/src/core/lib/channel/status_util.cc +2 -4
  1049. data/src/core/lib/channel/status_util.h +1 -2
  1050. data/src/core/lib/compression/compression.cc +9 -11
  1051. data/src/core/lib/compression/compression_internal.cc +16 -19
  1052. data/src/core/lib/compression/compression_internal.h +5 -8
  1053. data/src/core/lib/compression/message_compress.cc +16 -18
  1054. data/src/core/lib/compression/message_compress.h +1 -2
  1055. data/src/core/lib/debug/trace.cc +48 -67
  1056. data/src/core/lib/debug/trace.h +2 -97
  1057. data/src/core/lib/debug/trace_flags.cc +245 -0
  1058. data/src/core/lib/debug/trace_flags.h +132 -0
  1059. data/src/core/lib/debug/trace_impl.h +125 -0
  1060. data/src/core/lib/event_engine/ares_resolver.cc +171 -100
  1061. data/src/core/lib/event_engine/ares_resolver.h +17 -28
  1062. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +16 -19
  1063. data/src/core/lib/event_engine/cf_engine/cf_engine.h +3 -5
  1064. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +53 -41
  1065. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +6 -10
  1066. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +3 -5
  1067. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +29 -36
  1068. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +7 -10
  1069. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +8 -12
  1070. data/src/core/lib/event_engine/channel_args_endpoint_config.h +7 -10
  1071. data/src/core/lib/event_engine/common_closures.h +3 -6
  1072. data/src/core/lib/event_engine/default_event_engine.cc +69 -43
  1073. data/src/core/lib/event_engine/default_event_engine.h +27 -37
  1074. data/src/core/lib/event_engine/default_event_engine_factory.cc +9 -16
  1075. data/src/core/lib/event_engine/default_event_engine_factory.h +3 -6
  1076. data/src/core/lib/event_engine/event_engine.cc +37 -9
  1077. data/src/core/lib/event_engine/event_engine_context.h +5 -4
  1078. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -4
  1079. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -5
  1080. data/src/core/lib/event_engine/extensions/supports_fd.h +27 -6
  1081. data/src/core/lib/event_engine/extensions/tcp_trace.h +40 -0
  1082. data/src/core/lib/event_engine/forkable.cc +14 -17
  1083. data/src/core/lib/event_engine/forkable.h +2 -17
  1084. data/src/core/lib/event_engine/grpc_polled_fd.h +4 -8
  1085. data/src/core/lib/event_engine/handle_containers.h +3 -7
  1086. data/src/core/lib/event_engine/memory_allocator_factory.h +3 -7
  1087. data/src/core/lib/event_engine/nameser.h +1 -1
  1088. data/src/core/lib/event_engine/poller.h +3 -6
  1089. data/src/core/lib/event_engine/posix.h +3 -6
  1090. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +32 -80
  1091. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +8 -12
  1092. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +31 -82
  1093. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +4 -8
  1094. data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -7
  1095. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +4 -7
  1096. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -4
  1097. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +5 -10
  1098. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +7 -10
  1099. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -5
  1100. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +9 -13
  1101. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -5
  1102. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +5 -8
  1103. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -5
  1104. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +116 -113
  1105. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +24 -27
  1106. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +93 -71
  1107. data/src/core/lib/event_engine/posix_engine/posix_engine.h +18 -19
  1108. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -6
  1109. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +30 -35
  1110. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +15 -17
  1111. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +29 -37
  1112. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +3 -7
  1113. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +51 -46
  1114. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +12 -14
  1115. data/src/core/lib/event_engine/posix_engine/timer.cc +9 -12
  1116. data/src/core/lib/event_engine/posix_engine/timer.h +8 -13
  1117. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +4 -7
  1118. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -4
  1119. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +21 -32
  1120. data/src/core/lib/event_engine/posix_engine/timer_manager.h +8 -13
  1121. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +11 -18
  1122. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -30
  1123. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +5 -8
  1124. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -5
  1125. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +4 -7
  1126. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -5
  1127. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -4
  1128. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -5
  1129. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -4
  1130. data/src/core/lib/event_engine/query_extensions.h +5 -6
  1131. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +4 -9
  1132. data/src/core/lib/event_engine/resolved_address.cc +10 -11
  1133. data/src/core/lib/event_engine/resolved_address_internal.h +3 -6
  1134. data/src/core/lib/event_engine/shim.cc +5 -7
  1135. data/src/core/lib/event_engine/shim.h +2 -4
  1136. data/src/core/lib/event_engine/slice.cc +7 -11
  1137. data/src/core/lib/event_engine/slice_buffer.cc +4 -8
  1138. data/src/core/lib/event_engine/tcp_socket_utils.cc +27 -34
  1139. data/src/core/lib/event_engine/tcp_socket_utils.h +6 -9
  1140. data/src/core/lib/event_engine/thread_local.cc +4 -6
  1141. data/src/core/lib/event_engine/thread_local.h +3 -5
  1142. data/src/core/lib/event_engine/thread_pool/thread_count.cc +7 -12
  1143. data/src/core/lib/event_engine/thread_pool/thread_count.h +8 -24
  1144. data/src/core/lib/event_engine/thread_pool/thread_pool.h +3 -8
  1145. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +3 -6
  1146. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +49 -58
  1147. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +11 -19
  1148. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +52 -27
  1149. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +9 -11
  1150. data/src/core/lib/event_engine/time_util.cc +5 -8
  1151. data/src/core/lib/event_engine/time_util.h +3 -7
  1152. data/src/core/lib/event_engine/utils.cc +21 -10
  1153. data/src/core/lib/event_engine/utils.h +11 -8
  1154. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +160 -136
  1155. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +6 -10
  1156. data/src/core/lib/event_engine/windows/iocp.cc +26 -26
  1157. data/src/core/lib/event_engine/windows/iocp.h +4 -7
  1158. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +6 -10
  1159. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +2 -4
  1160. data/src/core/lib/event_engine/windows/win_socket.cc +49 -40
  1161. data/src/core/lib/event_engine/windows/win_socket.h +10 -14
  1162. data/src/core/lib/event_engine/windows/windows_endpoint.cc +60 -48
  1163. data/src/core/lib/event_engine/windows/windows_endpoint.h +4 -6
  1164. data/src/core/lib/event_engine/windows/windows_engine.cc +248 -140
  1165. data/src/core/lib/event_engine/windows/windows_engine.h +145 -37
  1166. data/src/core/lib/event_engine/windows/windows_listener.cc +31 -47
  1167. data/src/core/lib/event_engine/windows/windows_listener.h +6 -9
  1168. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +5 -7
  1169. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +4 -9
  1170. data/src/core/lib/event_engine/work_queue/work_queue.h +3 -7
  1171. data/src/core/lib/experiments/config.cc +59 -32
  1172. data/src/core/lib/experiments/config.h +55 -2
  1173. data/src/core/lib/experiments/experiments.cc +323 -366
  1174. data/src/core/lib/experiments/experiments.h +153 -147
  1175. data/src/core/lib/iomgr/buffer_list.cc +7 -8
  1176. data/src/core/lib/iomgr/buffer_list.h +23 -24
  1177. data/src/core/lib/iomgr/call_combiner.cc +42 -68
  1178. data/src/core/lib/iomgr/call_combiner.h +12 -17
  1179. data/src/core/lib/iomgr/cfstream_handle.cc +14 -22
  1180. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  1181. data/src/core/lib/iomgr/closure.cc +2 -2
  1182. data/src/core/lib/iomgr/closure.h +15 -22
  1183. data/src/core/lib/iomgr/combiner.cc +38 -53
  1184. data/src/core/lib/iomgr/combiner.h +2 -6
  1185. data/src/core/lib/iomgr/endpoint.cc +1 -7
  1186. data/src/core/lib/iomgr/endpoint.h +4 -6
  1187. data/src/core/lib/iomgr/endpoint_cfstream.cc +45 -76
  1188. data/src/core/lib/iomgr/endpoint_pair_posix.cc +8 -10
  1189. data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -17
  1190. data/src/core/lib/iomgr/error.cc +26 -36
  1191. data/src/core/lib/iomgr/error.h +8 -11
  1192. data/src/core/lib/iomgr/error_cfstream.cc +1 -3
  1193. data/src/core/lib/iomgr/ev_apple.cc +16 -24
  1194. data/src/core/lib/iomgr/ev_epoll1_linux.cc +81 -126
  1195. data/src/core/lib/iomgr/ev_poll_posix.cc +62 -62
  1196. data/src/core/lib/iomgr/ev_posix.cc +68 -60
  1197. data/src/core/lib/iomgr/ev_posix.h +9 -12
  1198. data/src/core/lib/iomgr/event_engine_shims/closure.cc +11 -16
  1199. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -3
  1200. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +36 -56
  1201. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
  1202. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +10 -16
  1203. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
  1204. data/src/core/lib/iomgr/exec_ctx.cc +15 -25
  1205. data/src/core/lib/iomgr/exec_ctx.h +21 -142
  1206. data/src/core/lib/iomgr/executor.cc +60 -70
  1207. data/src/core/lib/iomgr/executor.h +2 -2
  1208. data/src/core/lib/iomgr/fork_posix.cc +11 -15
  1209. data/src/core/lib/iomgr/fork_windows.cc +3 -2
  1210. data/src/core/lib/iomgr/internal_errqueue.cc +5 -6
  1211. data/src/core/lib/iomgr/iocp_windows.cc +16 -15
  1212. data/src/core/lib/iomgr/iocp_windows.h +0 -1
  1213. data/src/core/lib/iomgr/iomgr.cc +19 -26
  1214. data/src/core/lib/iomgr/iomgr.h +0 -1
  1215. data/src/core/lib/iomgr/iomgr_internal.cc +1 -2
  1216. data/src/core/lib/iomgr/iomgr_internal.h +0 -1
  1217. data/src/core/lib/iomgr/iomgr_posix.cc +2 -1
  1218. data/src/core/lib/iomgr/iomgr_windows.cc +7 -6
  1219. data/src/core/lib/iomgr/lockfree_event.cc +12 -21
  1220. data/src/core/lib/iomgr/lockfree_event.h +1 -2
  1221. data/src/core/lib/iomgr/nameser.h +1 -1
  1222. data/src/core/lib/iomgr/polling_entity.cc +17 -11
  1223. data/src/core/lib/iomgr/pollset.cc +2 -2
  1224. data/src/core/lib/iomgr/pollset.h +0 -3
  1225. data/src/core/lib/iomgr/pollset_set.cc +2 -2
  1226. data/src/core/lib/iomgr/pollset_set_windows.cc +0 -1
  1227. data/src/core/lib/iomgr/pollset_windows.cc +2 -6
  1228. data/src/core/lib/iomgr/pollset_windows.h +0 -1
  1229. data/src/core/lib/iomgr/port.h +2 -2
  1230. data/src/core/lib/iomgr/python_util.h +1 -2
  1231. data/src/core/lib/iomgr/resolve_address.cc +4 -7
  1232. data/src/core/lib/iomgr/resolve_address.h +3 -6
  1233. data/src/core/lib/iomgr/resolve_address_impl.h +0 -1
  1234. data/src/core/lib/iomgr/resolve_address_posix.cc +12 -23
  1235. data/src/core/lib/iomgr/resolve_address_windows.cc +9 -14
  1236. data/src/core/lib/iomgr/resolved_address.h +0 -1
  1237. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +5 -6
  1238. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  1239. data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
  1240. data/src/core/lib/iomgr/socket_mutator.cc +3 -5
  1241. data/src/core/lib/iomgr/socket_mutator.h +2 -4
  1242. data/src/core/lib/iomgr/socket_utils.h +0 -1
  1243. data/src/core/lib/iomgr/socket_utils_common_posix.cc +45 -52
  1244. data/src/core/lib/iomgr/socket_utils_linux.cc +1 -3
  1245. data/src/core/lib/iomgr/socket_utils_posix.cc +5 -7
  1246. data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
  1247. data/src/core/lib/iomgr/socket_utils_windows.cc +1 -3
  1248. data/src/core/lib/iomgr/socket_windows.cc +11 -14
  1249. data/src/core/lib/iomgr/socket_windows.h +1 -2
  1250. data/src/core/lib/iomgr/tcp_client.cc +2 -2
  1251. data/src/core/lib/iomgr/tcp_client.h +1 -2
  1252. data/src/core/lib/iomgr/tcp_client_cfstream.cc +12 -20
  1253. data/src/core/lib/iomgr/tcp_client_posix.cc +24 -36
  1254. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -12
  1255. data/src/core/lib/iomgr/tcp_posix.cc +127 -195
  1256. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  1257. data/src/core/lib/iomgr/tcp_server.cc +2 -2
  1258. data/src/core/lib/iomgr/tcp_server.h +3 -4
  1259. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -82
  1260. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
  1261. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +13 -17
  1262. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +13 -14
  1263. data/src/core/lib/iomgr/tcp_server_windows.cc +34 -42
  1264. data/src/core/lib/iomgr/tcp_windows.cc +38 -66
  1265. data/src/core/lib/iomgr/timer.cc +2 -2
  1266. data/src/core/lib/iomgr/timer.h +2 -3
  1267. data/src/core/lib/iomgr/timer_generic.cc +73 -106
  1268. data/src/core/lib/iomgr/timer_generic.h +0 -1
  1269. data/src/core/lib/iomgr/timer_heap.cc +4 -6
  1270. data/src/core/lib/iomgr/timer_manager.cc +28 -53
  1271. data/src/core/lib/iomgr/timer_manager.h +0 -1
  1272. data/src/core/lib/iomgr/unix_sockets_posix.cc +5 -6
  1273. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -3
  1274. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -4
  1275. data/src/core/lib/iomgr/vsock.cc +5 -8
  1276. data/src/core/lib/iomgr/vsock.h +1 -3
  1277. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -4
  1278. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
  1279. data/src/core/lib/promise/activity.cc +6 -5
  1280. data/src/core/lib/promise/activity.h +86 -34
  1281. data/src/core/lib/promise/all_ok.h +52 -9
  1282. data/src/core/lib/promise/arena_promise.h +1 -3
  1283. data/src/core/lib/promise/cancel_callback.h +34 -6
  1284. data/src/core/lib/promise/context.h +18 -9
  1285. data/src/core/lib/promise/detail/basic_seq.h +33 -20
  1286. data/src/core/lib/promise/detail/join_state.h +555 -812
  1287. data/src/core/lib/promise/detail/promise_factory.h +122 -46
  1288. data/src/core/lib/promise/detail/promise_like.h +48 -13
  1289. data/src/core/lib/promise/detail/seq_state.h +1378 -2254
  1290. data/src/core/lib/promise/detail/status.h +36 -14
  1291. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -2
  1292. data/src/core/lib/promise/for_each.h +108 -41
  1293. data/src/core/lib/promise/if.h +67 -35
  1294. data/src/core/lib/promise/interceptor_list.h +31 -45
  1295. data/src/core/lib/promise/latch.h +39 -46
  1296. data/src/core/lib/promise/loop.h +80 -27
  1297. data/src/core/lib/promise/map.h +185 -21
  1298. data/src/core/lib/promise/observable.h +181 -0
  1299. data/src/core/lib/promise/party.cc +331 -154
  1300. data/src/core/lib/promise/party.h +391 -396
  1301. data/src/core/lib/promise/pipe.h +45 -68
  1302. data/src/core/lib/promise/poll.h +122 -41
  1303. data/src/core/lib/promise/prioritized_race.h +16 -22
  1304. data/src/core/lib/promise/promise.h +13 -8
  1305. data/src/core/lib/promise/race.h +12 -15
  1306. data/src/core/lib/promise/seq.h +98 -70
  1307. data/src/core/lib/promise/sleep.cc +7 -8
  1308. data/src/core/lib/promise/sleep.h +17 -5
  1309. data/src/core/lib/promise/status_flag.h +178 -56
  1310. data/src/core/lib/promise/try_join.h +156 -25
  1311. data/src/core/lib/promise/try_seq.h +152 -89
  1312. data/src/core/lib/resource_quota/api.cc +4 -7
  1313. data/src/core/lib/resource_quota/api.h +3 -5
  1314. data/src/core/lib/resource_quota/arena.cc +64 -87
  1315. data/src/core/lib/resource_quota/arena.h +224 -210
  1316. data/src/core/lib/resource_quota/connection_quota.cc +8 -10
  1317. data/src/core/lib/resource_quota/connection_quota.h +7 -4
  1318. data/src/core/lib/resource_quota/memory_quota.cc +100 -97
  1319. data/src/core/lib/resource_quota/memory_quota.h +31 -25
  1320. data/src/core/lib/resource_quota/periodic_update.cc +5 -5
  1321. data/src/core/lib/resource_quota/periodic_update.h +1 -3
  1322. data/src/core/lib/resource_quota/resource_quota.cc +2 -2
  1323. data/src/core/lib/resource_quota/resource_quota.h +6 -8
  1324. data/src/core/lib/resource_quota/thread_quota.cc +4 -4
  1325. data/src/core/lib/resource_quota/thread_quota.h +3 -4
  1326. data/src/core/lib/security/authorization/audit_logging.cc +10 -12
  1327. data/src/core/lib/security/authorization/audit_logging.h +3 -5
  1328. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  1329. data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -7
  1330. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -4
  1331. data/src/core/lib/security/authorization/evaluate_args.cc +14 -19
  1332. data/src/core/lib/security/authorization/evaluate_args.h +4 -6
  1333. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -5
  1334. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -3
  1335. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +24 -40
  1336. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +16 -15
  1337. data/src/core/lib/security/authorization/matchers.cc +5 -8
  1338. data/src/core/lib/security/authorization/matchers.h +4 -6
  1339. data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
  1340. data/src/core/lib/security/authorization/rbac_policy.h +5 -8
  1341. data/src/core/lib/security/authorization/stdout_logger.cc +7 -7
  1342. data/src/core/lib/security/authorization/stdout_logger.h +2 -3
  1343. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +7 -8
  1344. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
  1345. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -1
  1346. data/src/core/lib/security/context/security_context.cc +51 -49
  1347. data/src/core/lib/security/context/security_context.h +46 -17
  1348. data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -7
  1349. data/src/core/lib/security/credentials/alts/alts_credentials.h +11 -7
  1350. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -5
  1351. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +1 -2
  1352. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +3 -5
  1353. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +3 -5
  1354. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -7
  1355. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
  1356. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
  1357. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
  1358. data/src/core/lib/security/credentials/call_creds_util.cc +8 -8
  1359. data/src/core/lib/security/credentials/call_creds_util.h +2 -2
  1360. data/src/core/lib/security/credentials/channel_creds_registry.h +5 -6
  1361. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +14 -13
  1362. data/src/core/lib/security/credentials/composite/composite_credentials.cc +18 -21
  1363. data/src/core/lib/security/credentials/composite/composite_credentials.h +9 -8
  1364. data/src/core/lib/security/credentials/credentials.cc +20 -20
  1365. data/src/core/lib/security/credentials/credentials.h +13 -14
  1366. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +336 -340
  1367. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +58 -46
  1368. data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -5
  1369. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  1370. data/src/core/lib/security/credentials/external/external_account_credentials.cc +408 -374
  1371. data/src/core/lib/security/credentials/external/external_account_credentials.h +127 -59
  1372. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +89 -53
  1373. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +30 -9
  1374. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +103 -129
  1375. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +20 -22
  1376. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -4
  1377. data/src/core/lib/security/credentials/fake/fake_credentials.h +10 -9
  1378. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +195 -0
  1379. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
  1380. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -7
  1381. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +62 -79
  1382. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -7
  1383. data/src/core/lib/security/credentials/iam/iam_credentials.cc +10 -15
  1384. data/src/core/lib/security/credentials/iam/iam_credentials.h +8 -7
  1385. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  1386. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
  1387. data/src/core/lib/security/credentials/jwt/json_token.cc +28 -31
  1388. data/src/core/lib/security/credentials/jwt/json_token.h +2 -4
  1389. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +25 -32
  1390. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -11
  1391. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +80 -88
  1392. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -5
  1393. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  1394. data/src/core/lib/security/credentials/local/local_credentials.h +5 -5
  1395. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +203 -303
  1396. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +50 -73
  1397. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +22 -36
  1398. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +11 -13
  1399. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +49 -61
  1400. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -9
  1401. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +40 -41
  1402. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +16 -17
  1403. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +0 -2
  1404. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +127 -58
  1405. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +18 -17
  1406. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -12
  1407. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +9 -10
  1408. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +27 -29
  1409. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -1
  1410. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +6 -11
  1411. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +7 -11
  1412. data/src/core/lib/security/credentials/tls/tls_credentials.cc +22 -26
  1413. data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -5
  1414. data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -7
  1415. data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
  1416. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +304 -0
  1417. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +181 -0
  1418. data/src/core/lib/security/credentials/xds/xds_credentials.cc +22 -19
  1419. data/src/core/lib/security/credentials/xds/xds_credentials.h +7 -9
  1420. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +36 -41
  1421. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
  1422. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +31 -31
  1423. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +3 -3
  1424. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -10
  1425. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +5 -6
  1426. data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
  1427. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -10
  1428. data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
  1429. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +4 -6
  1430. data/src/core/lib/security/security_connector/local/local_security_connector.cc +36 -36
  1431. data/src/core/lib/security/security_connector/local/local_security_connector.h +3 -3
  1432. data/src/core/lib/security/security_connector/security_connector.cc +11 -15
  1433. data/src/core/lib/security/security_connector/security_connector.h +8 -11
  1434. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +28 -32
  1435. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -5
  1436. data/src/core/lib/security/security_connector/ssl_utils.cc +42 -42
  1437. data/src/core/lib/security/security_connector/ssl_utils.h +6 -9
  1438. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +58 -71
  1439. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +19 -20
  1440. data/src/core/lib/security/transport/auth_filters.h +114 -22
  1441. data/src/core/lib/security/transport/client_auth_filter.cc +115 -33
  1442. data/src/core/lib/security/transport/server_auth_filter.cc +22 -39
  1443. data/src/core/lib/security/util/json_util.cc +4 -6
  1444. data/src/core/lib/security/util/json_util.h +1 -1
  1445. data/src/core/lib/slice/percent_encoding.cc +4 -6
  1446. data/src/core/lib/slice/slice.cc +13 -15
  1447. data/src/core/lib/slice/slice.h +8 -11
  1448. data/src/core/lib/slice/slice_buffer.cc +20 -21
  1449. data/src/core/lib/slice/slice_buffer.h +4 -6
  1450. data/src/core/lib/slice/slice_internal.h +4 -7
  1451. data/src/core/lib/slice/slice_refcount.h +7 -15
  1452. data/src/core/lib/slice/slice_string_helpers.cc +3 -3
  1453. data/src/core/lib/slice/slice_string_helpers.h +1 -3
  1454. data/src/core/lib/surface/byte_buffer.cc +2 -4
  1455. data/src/core/lib/surface/byte_buffer_reader.cc +5 -7
  1456. data/src/core/lib/surface/call.cc +201 -3992
  1457. data/src/core/lib/surface/call.h +180 -103
  1458. data/src/core/lib/surface/call_details.cc +5 -5
  1459. data/src/core/lib/surface/call_log_batch.cc +7 -11
  1460. data/src/core/lib/surface/call_test_only.h +2 -4
  1461. data/src/core/lib/surface/call_utils.cc +231 -0
  1462. data/src/core/lib/surface/call_utils.h +492 -0
  1463. data/src/core/lib/surface/channel.cc +53 -59
  1464. data/src/core/lib/surface/channel.h +23 -22
  1465. data/src/core/lib/surface/channel_create.cc +31 -15
  1466. data/src/core/lib/surface/channel_create.h +3 -3
  1467. data/src/core/lib/surface/channel_init.cc +274 -271
  1468. data/src/core/lib/surface/channel_init.h +179 -120
  1469. data/src/core/lib/surface/channel_stack_type.cc +2 -2
  1470. data/src/core/lib/surface/client_call.cc +456 -0
  1471. data/src/core/lib/surface/client_call.h +192 -0
  1472. data/src/core/lib/surface/completion_queue.cc +119 -155
  1473. data/src/core/lib/surface/completion_queue.h +4 -14
  1474. data/src/core/lib/surface/completion_queue_factory.cc +8 -9
  1475. data/src/core/lib/surface/completion_queue_factory.h +1 -2
  1476. data/src/core/lib/surface/connection_context.cc +77 -0
  1477. data/src/core/lib/surface/connection_context.h +156 -0
  1478. data/src/core/lib/surface/event_string.cc +9 -3
  1479. data/src/core/lib/surface/event_string.h +1 -2
  1480. data/src/core/lib/surface/filter_stack_call.cc +1154 -0
  1481. data/src/core/lib/surface/filter_stack_call.h +366 -0
  1482. data/src/core/lib/surface/init.cc +74 -30
  1483. data/src/core/lib/surface/init.h +5 -0
  1484. data/src/core/lib/surface/init_internally.cc +2 -2
  1485. data/src/core/lib/surface/init_internally.h +13 -2
  1486. data/src/core/lib/surface/lame_client.cc +20 -26
  1487. data/src/core/lib/surface/lame_client.h +9 -13
  1488. data/src/core/lib/surface/legacy_channel.cc +78 -62
  1489. data/src/core/lib/surface/legacy_channel.h +16 -27
  1490. data/src/core/lib/surface/metadata_array.cc +6 -7
  1491. data/src/core/lib/surface/server_call.cc +259 -0
  1492. data/src/core/lib/surface/server_call.h +169 -0
  1493. data/src/core/lib/surface/validate_metadata.cc +4 -6
  1494. data/src/core/lib/surface/validate_metadata.h +3 -6
  1495. data/src/core/lib/surface/version.cc +3 -4
  1496. data/src/core/lib/transport/bdp_estimator.cc +14 -20
  1497. data/src/core/lib/transport/bdp_estimator.h +12 -18
  1498. data/src/core/lib/transport/call_arena_allocator.cc +27 -0
  1499. data/src/core/lib/transport/call_arena_allocator.h +91 -0
  1500. data/src/core/lib/transport/call_destination.h +76 -0
  1501. data/src/core/lib/transport/call_filters.cc +70 -393
  1502. data/src/core/lib/transport/call_filters.h +885 -736
  1503. data/src/core/lib/transport/call_final_info.cc +2 -2
  1504. data/src/core/lib/transport/call_final_info.h +3 -4
  1505. data/src/core/lib/transport/call_spine.cc +63 -80
  1506. data/src/core/lib/transport/call_spine.h +412 -244
  1507. data/src/core/lib/transport/call_state.cc +39 -0
  1508. data/src/core/lib/transport/call_state.h +1154 -0
  1509. data/src/core/lib/transport/connectivity_state.cc +44 -54
  1510. data/src/core/lib/transport/connectivity_state.h +5 -11
  1511. data/src/core/lib/transport/error_utils.cc +3 -5
  1512. data/src/core/lib/transport/error_utils.h +2 -4
  1513. data/src/core/lib/transport/http2_errors.h +5 -3
  1514. data/src/core/lib/transport/interception_chain.cc +155 -0
  1515. data/src/core/lib/transport/interception_chain.h +282 -0
  1516. data/src/core/lib/transport/message.cc +3 -4
  1517. data/src/core/lib/transport/message.h +5 -0
  1518. data/src/core/lib/transport/metadata.cc +29 -5
  1519. data/src/core/lib/transport/metadata.h +125 -2
  1520. data/src/core/lib/transport/metadata_batch.cc +14 -7
  1521. data/src/core/lib/transport/metadata_batch.h +183 -33
  1522. data/src/core/lib/transport/metadata_compression_traits.h +2 -3
  1523. data/src/core/lib/transport/metadata_info.cc +2 -2
  1524. data/src/core/lib/transport/metadata_info.h +1 -1
  1525. data/src/core/lib/transport/parsed_metadata.cc +2 -2
  1526. data/src/core/lib/transport/parsed_metadata.h +2 -5
  1527. data/src/core/lib/transport/simple_slice_based_metadata.h +0 -1
  1528. data/src/core/lib/transport/status_conversion.cc +2 -2
  1529. data/src/core/lib/transport/status_conversion.h +2 -3
  1530. data/src/core/lib/transport/timeout_encoding.cc +26 -27
  1531. data/src/core/lib/transport/timeout_encoding.h +3 -4
  1532. data/src/core/lib/transport/transport.cc +7 -14
  1533. data/src/core/lib/transport/transport.h +106 -95
  1534. data/src/core/lib/transport/transport_framing_endpoint_extension.h +47 -0
  1535. data/src/core/lib/transport/transport_op_string.cc +2 -5
  1536. data/src/core/load_balancing/address_filtering.cc +2 -4
  1537. data/src/core/load_balancing/address_filtering.h +2 -3
  1538. data/src/core/load_balancing/backend_metric_parser.cc +22 -30
  1539. data/src/core/load_balancing/backend_metric_parser.h +0 -2
  1540. data/src/core/load_balancing/child_policy_handler.cc +42 -46
  1541. data/src/core/load_balancing/child_policy_handler.h +2 -3
  1542. data/src/core/load_balancing/delegating_helper.h +6 -8
  1543. data/src/core/load_balancing/endpoint_list.cc +28 -22
  1544. data/src/core/load_balancing/endpoint_list.h +39 -28
  1545. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +34 -35
  1546. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +21 -7
  1547. data/src/core/load_balancing/grpclb/grpclb.cc +201 -252
  1548. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +2 -3
  1549. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
  1550. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +3 -5
  1551. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +4 -7
  1552. data/src/core/load_balancing/grpclb/load_balancer_api.cc +7 -11
  1553. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -6
  1554. data/src/core/load_balancing/health_check_client.cc +78 -131
  1555. data/src/core/load_balancing/health_check_client.h +1 -1
  1556. data/src/core/load_balancing/health_check_client_internal.h +13 -15
  1557. data/src/core/load_balancing/lb_policy.cc +11 -16
  1558. data/src/core/load_balancing/lb_policy.h +76 -51
  1559. data/src/core/load_balancing/lb_policy_factory.h +3 -4
  1560. data/src/core/load_balancing/lb_policy_registry.cc +17 -17
  1561. data/src/core/load_balancing/lb_policy_registry.h +3 -4
  1562. data/src/core/load_balancing/oob_backend_metric.cc +22 -29
  1563. data/src/core/load_balancing/oob_backend_metric.h +1 -1
  1564. data/src/core/load_balancing/oob_backend_metric_internal.h +6 -8
  1565. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +193 -249
  1566. data/src/core/load_balancing/outlier_detection/outlier_detection.h +8 -9
  1567. data/src/core/load_balancing/pick_first/pick_first.cc +1255 -318
  1568. data/src/core/load_balancing/priority/priority.cc +115 -159
  1569. data/src/core/load_balancing/ring_hash/ring_hash.cc +285 -240
  1570. data/src/core/load_balancing/ring_hash/ring_hash.h +9 -17
  1571. data/src/core/load_balancing/rls/rls.cc +457 -544
  1572. data/src/core/load_balancing/rls/rls.h +97 -1
  1573. data/src/core/load_balancing/round_robin/round_robin.cc +93 -114
  1574. data/src/core/load_balancing/subchannel_interface.h +15 -5
  1575. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +11 -12
  1576. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +3 -4
  1577. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +180 -196
  1578. data/src/core/load_balancing/weighted_target/weighted_target.cc +86 -130
  1579. data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
  1580. data/src/core/load_balancing/xds/cds.cc +72 -93
  1581. data/src/core/load_balancing/xds/xds_cluster_impl.cc +201 -179
  1582. data/src/core/load_balancing/xds/xds_cluster_manager.cc +63 -104
  1583. data/src/core/load_balancing/xds/xds_override_host.cc +168 -277
  1584. data/src/core/load_balancing/xds/xds_override_host.h +5 -6
  1585. data/src/core/load_balancing/xds/xds_wrr_locality.cc +46 -59
  1586. data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -17
  1587. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +7 -3
  1588. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +100 -76
  1589. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -2
  1590. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -5
  1591. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +6 -9
  1592. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +153 -134
  1593. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +176 -161
  1594. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -18
  1595. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
  1596. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  1597. data/src/core/resolver/dns/dns_resolver_plugin.cc +11 -13
  1598. data/src/core/resolver/dns/dns_resolver_plugin.h +1 -1
  1599. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +66 -78
  1600. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +2 -3
  1601. data/src/core/resolver/dns/event_engine/service_config_helper.cc +8 -10
  1602. data/src/core/resolver/dns/native/dns_resolver.cc +22 -32
  1603. data/src/core/resolver/dns/native/dns_resolver.h +1 -1
  1604. data/src/core/resolver/endpoint_addresses.cc +5 -8
  1605. data/src/core/resolver/endpoint_addresses.h +3 -1
  1606. data/src/core/resolver/fake/fake_resolver.cc +20 -23
  1607. data/src/core/resolver/fake/fake_resolver.h +8 -10
  1608. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -43
  1609. data/src/core/resolver/polling_resolver.cc +44 -63
  1610. data/src/core/resolver/polling_resolver.h +9 -11
  1611. data/src/core/resolver/resolver.cc +3 -7
  1612. data/src/core/resolver/resolver.h +2 -8
  1613. data/src/core/resolver/resolver_factory.h +2 -3
  1614. data/src/core/resolver/resolver_registry.cc +14 -15
  1615. data/src/core/resolver/resolver_registry.h +2 -3
  1616. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +6 -8
  1617. data/src/core/resolver/xds/xds_config.cc +95 -0
  1618. data/src/core/resolver/xds/xds_config.h +108 -0
  1619. data/src/core/resolver/xds/xds_dependency_manager.cc +263 -344
  1620. data/src/core/resolver/xds/xds_dependency_manager.h +39 -94
  1621. data/src/core/resolver/xds/xds_resolver.cc +203 -230
  1622. data/src/core/resolver/xds/xds_resolver_attributes.h +6 -3
  1623. data/src/core/server/server.cc +2189 -0
  1624. data/src/core/server/server.h +718 -0
  1625. data/src/core/server/server_call_tracer_filter.cc +113 -0
  1626. data/src/core/server/server_call_tracer_filter.h +28 -0
  1627. data/src/core/server/server_config_selector.h +82 -0
  1628. data/src/core/server/server_config_selector_filter.cc +168 -0
  1629. data/src/core/server/server_config_selector_filter.h +33 -0
  1630. data/src/core/server/server_interface.h +45 -0
  1631. data/src/core/server/xds_channel_stack_modifier.cc +107 -0
  1632. data/src/core/server/xds_channel_stack_modifier.h +62 -0
  1633. data/src/core/server/xds_server_config_fetcher.cc +1318 -0
  1634. data/src/core/service_config/service_config.h +3 -6
  1635. data/src/core/service_config/service_config_call_data.h +20 -19
  1636. data/src/core/service_config/service_config_channel_arg_filter.cc +24 -33
  1637. data/src/core/service_config/service_config_impl.cc +12 -14
  1638. data/src/core/service_config/service_config_impl.h +6 -9
  1639. data/src/core/service_config/service_config_parser.cc +4 -9
  1640. data/src/core/service_config/service_config_parser.h +2 -4
  1641. data/src/core/telemetry/call_tracer.cc +386 -0
  1642. data/src/core/telemetry/call_tracer.h +264 -0
  1643. data/src/core/telemetry/histogram_view.cc +69 -0
  1644. data/src/core/telemetry/histogram_view.h +36 -0
  1645. data/src/core/telemetry/metrics.cc +180 -0
  1646. data/src/core/telemetry/metrics.h +563 -0
  1647. data/src/core/telemetry/stats.cc +67 -0
  1648. data/src/core/telemetry/stats.h +62 -0
  1649. data/src/core/telemetry/stats_data.cc +931 -0
  1650. data/src/core/telemetry/stats_data.h +705 -0
  1651. data/src/core/telemetry/tcp_tracer.h +143 -0
  1652. data/src/core/tsi/alts/crypt/aes_gcm.cc +4 -8
  1653. data/src/core/tsi/alts/crypt/gsec.cc +2 -4
  1654. data/src/core/tsi/alts/crypt/gsec.h +3 -5
  1655. data/src/core/tsi/alts/frame_protector/alts_counter.cc +2 -4
  1656. data/src/core/tsi/alts/frame_protector/alts_counter.h +2 -4
  1657. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +2 -4
  1658. data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -3
  1659. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +16 -19
  1660. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +0 -1
  1661. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
  1662. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
  1663. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +2 -3
  1664. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +2 -3
  1665. data/src/core/tsi/alts/frame_protector/frame_handler.cc +11 -13
  1666. data/src/core/tsi/alts/frame_protector/frame_handler.h +0 -1
  1667. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +80 -84
  1668. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
  1669. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -6
  1670. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +2 -3
  1671. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +90 -90
  1672. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
  1673. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +6 -5
  1674. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
  1675. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +17 -24
  1676. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +4 -6
  1677. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +17 -19
  1678. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +0 -1
  1679. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +12 -14
  1680. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +0 -1
  1681. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
  1682. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -14
  1683. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +3 -6
  1684. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +0 -1
  1685. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +13 -16
  1686. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +0 -1
  1687. data/src/core/tsi/fake_transport_security.cc +36 -34
  1688. data/src/core/tsi/local_transport_security.cc +9 -11
  1689. data/src/core/tsi/local_transport_security.h +1 -2
  1690. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +13 -15
  1691. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +7 -10
  1692. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -5
  1693. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -17
  1694. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +8 -10
  1695. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -7
  1696. data/src/core/tsi/ssl_transport_security.cc +154 -131
  1697. data/src/core/tsi/ssl_transport_security.h +5 -8
  1698. data/src/core/tsi/ssl_transport_security_utils.cc +86 -32
  1699. data/src/core/tsi/ssl_transport_security_utils.h +13 -5
  1700. data/src/core/tsi/ssl_types.h +0 -1
  1701. data/src/core/tsi/transport_security.cc +3 -9
  1702. data/src/core/tsi/transport_security.h +0 -3
  1703. data/src/core/tsi/transport_security_grpc.cc +2 -2
  1704. data/src/core/tsi/transport_security_grpc.h +1 -2
  1705. data/src/core/tsi/transport_security_interface.h +2 -7
  1706. data/src/core/util/alloc.cc +69 -0
  1707. data/src/core/util/alloc.h +28 -0
  1708. data/src/core/util/atomic_utils.h +47 -0
  1709. data/src/core/util/avl.h +324 -0
  1710. data/src/core/util/backoff.cc +57 -0
  1711. data/src/core/util/backoff.h +86 -0
  1712. data/src/core/util/bitset.h +224 -0
  1713. data/src/core/util/chunked_vector.h +256 -0
  1714. data/src/core/util/construct_destruct.h +41 -0
  1715. data/src/core/util/cpp_impl_of.h +49 -0
  1716. data/src/core/util/crash.cc +40 -0
  1717. data/src/core/util/crash.h +36 -0
  1718. data/src/core/util/debug_location.h +106 -0
  1719. data/src/core/util/directory_reader.h +48 -0
  1720. data/src/core/util/down_cast.h +48 -0
  1721. data/src/core/util/dual_ref_counted.h +376 -0
  1722. data/src/core/util/dump_args.cc +54 -0
  1723. data/src/core/util/dump_args.h +114 -0
  1724. data/src/core/util/env.h +52 -0
  1725. data/src/core/util/event_log.cc +87 -0
  1726. data/src/core/util/event_log.h +79 -0
  1727. data/src/core/util/examine_stack.cc +43 -0
  1728. data/src/core/util/examine_stack.h +44 -0
  1729. data/src/core/util/fork.cc +241 -0
  1730. data/src/core/util/fork.h +98 -0
  1731. data/src/core/util/gcp_metadata_query.cc +132 -0
  1732. data/src/core/util/gcp_metadata_query.h +86 -0
  1733. data/src/core/util/gethostname.h +26 -0
  1734. data/src/core/util/gethostname_fallback.cc +30 -0
  1735. data/src/core/util/gethostname_host_name_max.cc +39 -0
  1736. data/src/core/util/gethostname_sysconf.cc +39 -0
  1737. data/src/core/util/glob.cc +70 -0
  1738. data/src/core/util/glob.h +29 -0
  1739. data/src/core/util/gpr_time.cc +266 -0
  1740. data/src/core/util/grpc_if_nametoindex.h +29 -0
  1741. data/src/core/util/grpc_if_nametoindex_posix.cc +41 -0
  1742. data/src/core/util/grpc_if_nametoindex_unsupported.cc +36 -0
  1743. data/src/core/util/host_port.cc +114 -0
  1744. data/src/core/util/host_port.h +57 -0
  1745. data/src/core/util/http_client/format_request.cc +134 -0
  1746. data/src/core/util/http_client/format_request.h +37 -0
  1747. data/src/core/util/http_client/httpcli.cc +427 -0
  1748. data/src/core/util/http_client/httpcli.h +279 -0
  1749. data/src/core/util/http_client/httpcli_security_connector.cc +210 -0
  1750. data/src/core/util/http_client/httpcli_ssl_credentials.h +38 -0
  1751. data/src/core/util/http_client/parser.cc +447 -0
  1752. data/src/core/util/http_client/parser.h +126 -0
  1753. data/src/core/util/if_list.h +4530 -0
  1754. data/src/core/util/iphone/cpu.cc +43 -0
  1755. data/src/core/util/json/json.h +29 -0
  1756. data/src/core/util/json/json_args.h +34 -0
  1757. data/src/core/util/json/json_channel_args.h +42 -0
  1758. data/src/core/util/json/json_object_loader.cc +215 -0
  1759. data/src/core/util/json/json_object_loader.h +644 -0
  1760. data/src/core/util/json/json_reader.cc +953 -0
  1761. data/src/core/util/json/json_reader.h +33 -0
  1762. data/src/core/util/json/json_util.cc +101 -0
  1763. data/src/core/util/json/json_util.h +163 -0
  1764. data/src/core/util/json/json_writer.cc +337 -0
  1765. data/src/core/util/json/json_writer.h +33 -0
  1766. data/src/core/util/latent_see.cc +163 -0
  1767. data/src/core/util/latent_see.h +334 -0
  1768. data/src/core/util/linux/cpu.cc +86 -0
  1769. data/src/core/util/linux/env.cc +61 -0
  1770. data/src/core/util/load_file.cc +75 -0
  1771. data/src/core/util/load_file.h +33 -0
  1772. data/src/core/util/log.cc +127 -0
  1773. data/src/core/util/lru_cache.h +122 -0
  1774. data/src/core/util/manual_constructor.h +145 -0
  1775. data/src/core/util/match.h +74 -0
  1776. data/src/core/util/matchers.cc +336 -0
  1777. data/src/core/util/matchers.h +162 -0
  1778. data/src/core/util/memory.h +52 -0
  1779. data/src/core/util/mpscq.cc +108 -0
  1780. data/src/core/util/mpscq.h +98 -0
  1781. data/src/core/util/msys/tmpfile.cc +57 -0
  1782. data/src/core/util/no_destruct.h +95 -0
  1783. data/src/core/util/notification.h +66 -0
  1784. data/src/core/util/orphanable.h +153 -0
  1785. data/src/core/util/overload.h +59 -0
  1786. data/src/core/util/packed_table.h +40 -0
  1787. data/src/core/util/per_cpu.cc +34 -0
  1788. data/src/core/util/per_cpu.h +102 -0
  1789. data/src/core/util/posix/cpu.cc +83 -0
  1790. data/src/core/util/posix/directory_reader.cc +82 -0
  1791. data/src/core/util/posix/env.cc +47 -0
  1792. data/src/core/util/posix/stat.cc +54 -0
  1793. data/src/core/util/posix/string.cc +71 -0
  1794. data/src/core/util/posix/sync.cc +157 -0
  1795. data/src/core/util/posix/thd.cc +243 -0
  1796. data/src/core/util/posix/time.cc +122 -0
  1797. data/src/core/util/posix/tmpfile.cc +71 -0
  1798. data/src/core/util/random_early_detection.cc +33 -0
  1799. data/src/core/util/random_early_detection.h +61 -0
  1800. data/src/core/util/ref_counted.h +403 -0
  1801. data/src/core/util/ref_counted_ptr.h +443 -0
  1802. data/src/core/util/ref_counted_string.cc +42 -0
  1803. data/src/core/util/ref_counted_string.h +159 -0
  1804. data/src/core/util/ring_buffer.h +122 -0
  1805. data/src/core/util/single_set_ptr.h +89 -0
  1806. data/src/core/util/sorted_pack.h +89 -0
  1807. data/src/core/util/spinlock.h +51 -0
  1808. data/src/core/util/stat.h +35 -0
  1809. data/src/core/util/status_helper.cc +427 -0
  1810. data/src/core/util/status_helper.h +160 -0
  1811. data/src/core/util/strerror.cc +40 -0
  1812. data/src/core/util/strerror.h +29 -0
  1813. data/src/core/util/string.cc +341 -0
  1814. data/src/core/util/string.h +110 -0
  1815. data/src/core/util/sync.cc +123 -0
  1816. data/src/core/util/sync.h +199 -0
  1817. data/src/core/util/sync_abseil.cc +106 -0
  1818. data/src/core/util/table.h +471 -0
  1819. data/src/core/util/tchar.cc +49 -0
  1820. data/src/core/util/tchar.h +33 -0
  1821. data/src/core/util/thd.h +193 -0
  1822. data/src/core/util/time.cc +240 -0
  1823. data/src/core/util/time.h +385 -0
  1824. data/src/core/util/time_averaged_stats.cc +60 -0
  1825. data/src/core/util/time_averaged_stats.h +79 -0
  1826. data/src/core/util/time_precise.cc +167 -0
  1827. data/src/core/util/time_precise.h +68 -0
  1828. data/src/core/util/time_util.cc +80 -0
  1829. data/src/core/util/time_util.h +41 -0
  1830. data/src/core/util/tmpfile.h +31 -0
  1831. data/src/core/util/type_list.h +88 -0
  1832. data/src/core/util/unique_ptr_with_bitset.h +86 -0
  1833. data/src/core/util/unique_type_name.h +123 -0
  1834. data/src/core/util/upb_utils.h +43 -0
  1835. data/src/core/util/uri.cc +378 -0
  1836. data/src/core/util/uri.h +112 -0
  1837. data/src/core/util/useful.h +153 -0
  1838. data/src/core/util/uuid_v4.cc +37 -0
  1839. data/src/core/util/uuid_v4.h +35 -0
  1840. data/src/core/util/validation_errors.cc +73 -0
  1841. data/src/core/util/validation_errors.h +144 -0
  1842. data/src/core/util/wait_for_single_owner.h +62 -0
  1843. data/src/core/util/windows/cpu.cc +34 -0
  1844. data/src/core/util/windows/directory_reader.cc +79 -0
  1845. data/src/core/util/windows/env.cc +56 -0
  1846. data/src/core/util/windows/stat.cc +50 -0
  1847. data/src/core/util/windows/string.cc +68 -0
  1848. data/src/core/util/windows/string_util.cc +53 -0
  1849. data/src/core/util/windows/sync.cc +121 -0
  1850. data/src/core/util/windows/thd.cc +182 -0
  1851. data/src/core/util/windows/time.cc +104 -0
  1852. data/src/core/util/windows/tmpfile.cc +66 -0
  1853. data/src/core/util/work_serializer.cc +298 -0
  1854. data/src/core/util/work_serializer.h +81 -0
  1855. data/src/core/util/xxhash_inline.h +29 -0
  1856. data/src/core/xds/grpc/certificate_provider_store.cc +148 -0
  1857. data/src/core/xds/grpc/certificate_provider_store.h +132 -0
  1858. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +136 -0
  1859. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +80 -0
  1860. data/src/core/xds/grpc/xds_audit_logger_registry.cc +123 -0
  1861. data/src/core/xds/grpc/xds_audit_logger_registry.h +67 -0
  1862. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +235 -0
  1863. data/src/core/xds/grpc/xds_bootstrap_grpc.h +167 -0
  1864. data/src/core/xds/grpc/xds_certificate_provider.cc +216 -0
  1865. data/src/core/xds/grpc/xds_certificate_provider.h +116 -0
  1866. data/src/core/xds/grpc/xds_client_grpc.cc +444 -0
  1867. data/src/core/xds/grpc/xds_client_grpc.h +115 -0
  1868. data/src/core/xds/grpc/xds_cluster.cc +79 -0
  1869. data/src/core/xds/grpc/xds_cluster.h +135 -0
  1870. data/src/core/xds/grpc/xds_cluster_parser.cc +772 -0
  1871. data/src/core/xds/grpc/xds_cluster_parser.h +61 -0
  1872. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +137 -0
  1873. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +96 -0
  1874. data/src/core/xds/grpc/xds_common_types.cc +103 -0
  1875. data/src/core/xds/grpc/xds_common_types.h +90 -0
  1876. data/src/core/xds/grpc/xds_common_types_parser.cc +501 -0
  1877. data/src/core/xds/grpc/xds_common_types_parser.h +77 -0
  1878. data/src/core/xds/grpc/xds_endpoint.cc +96 -0
  1879. data/src/core/xds/grpc/xds_endpoint.h +128 -0
  1880. data/src/core/xds/grpc/xds_endpoint_parser.cc +475 -0
  1881. data/src/core/xds/grpc/xds_endpoint_parser.h +47 -0
  1882. data/src/core/xds/grpc/xds_health_status.cc +73 -0
  1883. data/src/core/xds/grpc/xds_health_status.h +89 -0
  1884. data/src/core/xds/grpc/xds_http_fault_filter.cc +247 -0
  1885. data/src/core/xds/grpc/xds_http_fault_filter.h +63 -0
  1886. data/src/core/xds/grpc/xds_http_filter.h +134 -0
  1887. data/src/core/xds/grpc/xds_http_filter_registry.cc +122 -0
  1888. data/src/core/xds/grpc/xds_http_filter_registry.h +104 -0
  1889. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +141 -0
  1890. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
  1891. data/src/core/xds/grpc/xds_http_rbac_filter.cc +609 -0
  1892. data/src/core/xds/grpc/xds_http_rbac_filter.h +63 -0
  1893. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +230 -0
  1894. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +63 -0
  1895. data/src/core/xds/grpc/xds_lb_policy_registry.cc +365 -0
  1896. data/src/core/xds/grpc/xds_lb_policy_registry.h +70 -0
  1897. data/src/core/xds/grpc/xds_listener.cc +173 -0
  1898. data/src/core/xds/grpc/xds_listener.h +203 -0
  1899. data/src/core/xds/grpc/xds_listener_parser.cc +1000 -0
  1900. data/src/core/xds/grpc/xds_listener_parser.h +60 -0
  1901. data/src/core/xds/grpc/xds_metadata.cc +62 -0
  1902. data/src/core/xds/grpc/xds_metadata.h +158 -0
  1903. data/src/core/xds/grpc/xds_metadata_parser.cc +197 -0
  1904. data/src/core/xds/grpc/xds_metadata_parser.h +35 -0
  1905. data/src/core/xds/grpc/xds_route_config.cc +276 -0
  1906. data/src/core/xds/grpc/xds_route_config.h +220 -0
  1907. data/src/core/xds/grpc/xds_route_config_parser.cc +960 -0
  1908. data/src/core/xds/grpc/xds_route_config_parser.h +77 -0
  1909. data/src/core/xds/grpc/xds_routing.cc +297 -0
  1910. data/src/core/xds/grpc/xds_routing.h +112 -0
  1911. data/src/core/xds/grpc/xds_server_grpc.cc +181 -0
  1912. data/src/core/xds/grpc/xds_server_grpc.h +66 -0
  1913. data/src/core/xds/grpc/xds_server_grpc_interface.h +33 -0
  1914. data/src/core/xds/grpc/xds_transport_grpc.cc +392 -0
  1915. data/src/core/xds/grpc/xds_transport_grpc.h +149 -0
  1916. data/src/core/xds/xds_client/lrs_client.cc +1280 -0
  1917. data/src/core/xds/xds_client/lrs_client.h +394 -0
  1918. data/src/core/xds/xds_client/xds_api.cc +130 -0
  1919. data/src/core/xds/xds_client/xds_api.h +34 -0
  1920. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +63 -0
  1921. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +59 -0
  1922. data/src/core/xds/xds_client/xds_bootstrap.cc +47 -0
  1923. data/src/core/xds/xds_client/xds_bootstrap.h +95 -0
  1924. data/src/core/xds/xds_client/xds_channel_args.h +32 -0
  1925. data/src/core/xds/xds_client/xds_client.cc +2015 -0
  1926. data/src/core/xds/xds_client/xds_client.h +440 -0
  1927. data/src/core/xds/xds_client/xds_locality.h +102 -0
  1928. data/src/core/xds/xds_client/xds_metrics.h +41 -0
  1929. data/src/core/xds/xds_client/xds_resource_type.h +96 -0
  1930. data/src/core/xds/xds_client/xds_resource_type_impl.h +92 -0
  1931. data/src/core/xds/xds_client/xds_transport.h +104 -0
  1932. data/src/ruby/bin/math_pb.rb +1 -22
  1933. data/src/ruby/ext/grpc/extconf.rb +2 -1
  1934. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -3
  1935. data/src/ruby/ext/grpc/rb_call.c +15 -8
  1936. data/src/ruby/ext/grpc/rb_call_credentials.c +39 -32
  1937. data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
  1938. data/src/ruby/ext/grpc/rb_channel.c +42 -36
  1939. data/src/ruby/ext/grpc/rb_channel_args.c +4 -4
  1940. data/src/ruby/ext/grpc/rb_channel_credentials.c +5 -5
  1941. data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -2
  1942. data/src/ruby/ext/grpc/rb_completion_queue.c +18 -36
  1943. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  1944. data/src/ruby/ext/grpc/rb_compression_options.c +9 -10
  1945. data/src/ruby/ext/grpc/rb_event_thread.c +9 -9
  1946. data/src/ruby/ext/grpc/rb_grpc.c +16 -16
  1947. data/src/ruby/ext/grpc/rb_grpc.h +8 -1
  1948. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +136 -144
  1949. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +205 -216
  1950. data/src/ruby/ext/grpc/rb_server.c +47 -27
  1951. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -3
  1952. data/src/ruby/ext/grpc/rb_server_credentials.h +2 -2
  1953. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +5 -5
  1954. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +1 -2
  1955. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +5 -4
  1956. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +2 -2
  1957. data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
  1958. data/src/ruby/lib/grpc/logconfig.rb +13 -0
  1959. data/src/ruby/lib/grpc/version.rb +1 -1
  1960. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  1961. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  1962. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  1963. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  1964. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  1965. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  1966. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  1967. data/src/ruby/spec/call_spec.rb +53 -40
  1968. data/src/ruby/spec/channel_spec.rb +4 -2
  1969. data/src/ruby/spec/client_server_spec.rb +148 -507
  1970. data/src/ruby/spec/generic/active_call_spec.rb +64 -86
  1971. data/src/ruby/spec/generic/client_stub_spec.rb +20 -20
  1972. data/src/ruby/spec/logconfig_spec.rb +30 -0
  1973. data/src/ruby/spec/support/services.rb +3 -0
  1974. data/third_party/abseil-cpp/absl/algorithm/container.h +57 -18
  1975. data/third_party/abseil-cpp/absl/base/attributes.h +84 -0
  1976. data/third_party/abseil-cpp/absl/base/config.h +32 -51
  1977. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
  1978. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +3 -1
  1979. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +13 -3
  1980. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -12
  1981. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
  1982. data/third_party/abseil-cpp/absl/base/macros.h +48 -0
  1983. data/third_party/abseil-cpp/absl/base/no_destructor.h +35 -40
  1984. data/third_party/abseil-cpp/absl/base/nullability.h +33 -7
  1985. data/third_party/abseil-cpp/absl/base/optimization.h +11 -0
  1986. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1987. data/third_party/abseil-cpp/absl/base/prefetch.h +1 -1
  1988. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +68 -12
  1989. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +60 -6
  1990. data/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  1991. data/third_party/abseil-cpp/absl/container/inlined_vector.h +13 -0
  1992. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +20 -11
  1993. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
  1994. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +34 -1
  1995. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
  1996. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
  1997. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
  1998. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
  1999. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +39 -35
  2000. data/third_party/abseil-cpp/absl/container/internal/layout.h +190 -74
  2001. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
  2002. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +334 -71
  2003. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1299 -458
  2004. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
  2005. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
  2006. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
  2007. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
  2008. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
  2009. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
  2010. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +18 -17
  2011. data/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  2012. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  2013. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  2014. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1057 -86
  2015. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
  2016. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  2017. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
  2018. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
  2019. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +8 -7
  2020. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +10 -7
  2021. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  2022. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  2023. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +11 -0
  2024. data/third_party/abseil-cpp/absl/flags/flag.h +2 -0
  2025. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +117 -30
  2026. data/third_party/abseil-cpp/absl/flags/internal/flag.h +192 -30
  2027. data/third_party/abseil-cpp/absl/flags/reflection.cc +10 -0
  2028. data/third_party/abseil-cpp/absl/functional/any_invocable.h +13 -3
  2029. data/third_party/abseil-cpp/absl/functional/bind_front.h +3 -2
  2030. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
  2031. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
  2032. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -1
  2033. data/third_party/abseil-cpp/absl/hash/internal/hash.h +13 -3
  2034. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +60 -28
  2035. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
  2036. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +3 -3
  2037. data/third_party/abseil-cpp/absl/log/check.h +209 -0
  2038. data/third_party/abseil-cpp/absl/log/globals.h +28 -15
  2039. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  2040. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +138 -0
  2041. data/third_party/abseil-cpp/absl/log/internal/check_op.h +462 -0
  2042. data/third_party/abseil-cpp/absl/log/internal/conditions.h +2 -2
  2043. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +23 -23
  2044. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +104 -47
  2045. data/third_party/abseil-cpp/absl/log/internal/log_message.h +23 -4
  2046. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -10
  2047. data/third_party/abseil-cpp/absl/log/internal/strip.h +36 -0
  2048. data/third_party/abseil-cpp/absl/log/log.h +5 -1
  2049. data/third_party/abseil-cpp/absl/log/log_sink.h +11 -4
  2050. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +3 -3
  2051. data/third_party/abseil-cpp/absl/meta/type_traits.h +138 -42
  2052. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -3
  2053. data/third_party/abseil-cpp/absl/numeric/int128.h +35 -5
  2054. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +14 -0
  2055. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +18 -0
  2056. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +6 -2
  2057. data/third_party/abseil-cpp/absl/random/beta_distribution.h +8 -8
  2058. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +9 -7
  2059. data/third_party/abseil-cpp/absl/random/distributions.h +11 -11
  2060. data/third_party/abseil-cpp/absl/random/seed_sequences.h +2 -0
  2061. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
  2062. data/third_party/abseil-cpp/absl/status/status.cc +0 -4
  2063. data/third_party/abseil-cpp/absl/status/status.h +4 -4
  2064. data/third_party/abseil-cpp/absl/status/statusor.h +108 -142
  2065. data/third_party/abseil-cpp/absl/strings/ascii.cc +32 -71
  2066. data/third_party/abseil-cpp/absl/strings/cord.cc +20 -15
  2067. data/third_party/abseil-cpp/absl/strings/cord.h +68 -7
  2068. data/third_party/abseil-cpp/absl/strings/escaping.cc +96 -21
  2069. data/third_party/abseil-cpp/absl/strings/escaping.h +25 -8
  2070. data/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
  2071. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +10 -0
  2072. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +29 -9
  2073. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
  2074. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
  2075. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
  2076. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
  2077. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
  2078. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
  2079. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
  2080. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
  2081. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +5 -1
  2082. data/third_party/abseil-cpp/absl/strings/numbers.cc +107 -333
  2083. data/third_party/abseil-cpp/absl/strings/numbers.h +12 -151
  2084. data/third_party/abseil-cpp/absl/strings/str_cat.cc +49 -142
  2085. data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -85
  2086. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -1
  2087. data/third_party/abseil-cpp/absl/strings/str_join.h +19 -5
  2088. data/third_party/abseil-cpp/absl/strings/str_split.h +2 -2
  2089. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
  2090. data/third_party/abseil-cpp/absl/strings/substitute.cc +4 -0
  2091. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
  2092. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
  2093. data/third_party/abseil-cpp/absl/synchronization/mutex.h +5 -4
  2094. data/third_party/abseil-cpp/absl/time/civil_time.h +2 -2
  2095. data/third_party/abseil-cpp/absl/time/clock.cc +15 -1
  2096. data/third_party/abseil-cpp/absl/time/duration.cc +58 -53
  2097. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  2098. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  2099. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -29
  2100. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
  2101. data/third_party/abseil-cpp/absl/time/time.h +73 -29
  2102. data/third_party/abseil-cpp/absl/types/compare.h +505 -0
  2103. data/third_party/abseil-cpp/absl/types/internal/optional.h +2 -2
  2104. data/third_party/abseil-cpp/absl/types/internal/variant.h +55 -67
  2105. data/third_party/abseil-cpp/absl/types/optional.h +15 -18
  2106. data/third_party/abseil-cpp/absl/types/span.h +3 -2
  2107. data/third_party/abseil-cpp/absl/types/variant.h +19 -24
  2108. data/third_party/abseil-cpp/absl/utility/utility.h +3 -41
  2109. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +243 -0
  2110. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc +53 -0
  2111. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc +47 -0
  2112. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc +42 -0
  2113. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc +109 -0
  2114. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc +43 -0
  2115. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +424 -0
  2116. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc +239 -0
  2117. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc +193 -0
  2118. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc +32 -0
  2119. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc +415 -0
  2120. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc +206 -0
  2121. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc +224 -0
  2122. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc +172 -0
  2123. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc +109 -0
  2124. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc +355 -0
  2125. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc +61 -0
  2126. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc +56 -0
  2127. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc +63 -0
  2128. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc +52 -0
  2129. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -57
  2130. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc +241 -0
  2131. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +932 -0
  2132. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +669 -0
  2133. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc +164 -0
  2134. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc +276 -0
  2135. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +84 -0
  2136. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc +229 -0
  2137. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc +434 -0
  2138. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +119 -0
  2139. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc +658 -0
  2140. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc +268 -0
  2141. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +511 -0
  2142. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc +50 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc +193 -0
  2144. data/third_party/boringssl-with-bazel/src/crypto/bio/file.cc +292 -0
  2145. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc +152 -0
  2146. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +13 -55
  2147. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.cc +446 -0
  2148. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc +59 -0
  2149. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +147 -0
  2150. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +133 -0
  2151. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc +169 -0
  2152. data/third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc +57 -0
  2153. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +423 -0
  2154. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc +118 -0
  2155. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc +53 -0
  2156. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc +266 -0
  2157. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +702 -0
  2158. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +912 -0
  2159. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +13 -13
  2160. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc +156 -0
  2161. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc +224 -0
  2162. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +36 -32
  2163. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +110 -0
  2164. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc +279 -0
  2165. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +845 -0
  2166. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc +341 -0
  2167. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc +198 -0
  2168. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc +51 -0
  2169. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc +417 -0
  2170. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc +54 -0
  2171. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc +599 -0
  2172. data/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc +85 -0
  2173. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +240 -0
  2174. data/third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc +476 -0
  2175. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc +631 -0
  2176. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +13 -13
  2177. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +75 -0
  2178. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +55 -0
  2179. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +62 -0
  2180. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +61 -0
  2181. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +94 -0
  2182. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +41 -0
  2183. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +54 -0
  2184. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +151 -0
  2185. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +13 -13
  2186. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +287 -0
  2187. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +183 -0
  2188. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc +2154 -0
  2189. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc +18 -0
  2190. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +13 -13
  2191. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +13 -13
  2192. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc +529 -0
  2193. data/third_party/boringssl-with-bazel/src/crypto/des/des.cc +829 -0
  2194. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +27 -69
  2195. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +124 -0
  2196. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +442 -0
  2197. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +306 -0
  2198. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +951 -0
  2199. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +379 -0
  2200. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +13 -13
  2201. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +570 -0
  2202. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc +96 -0
  2203. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +510 -0
  2204. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +78 -0
  2205. data/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc +73 -0
  2206. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +357 -0
  2207. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc +95 -0
  2208. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +810 -0
  2209. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +13 -13
  2210. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.cc +379 -0
  2211. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +471 -0
  2212. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +440 -0
  2213. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +20 -55
  2214. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc +153 -0
  2215. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc +142 -0
  2216. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +279 -0
  2217. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc +230 -0
  2218. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +286 -0
  2219. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc +103 -0
  2220. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +225 -0
  2221. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc +236 -0
  2222. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc +609 -0
  2223. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +198 -0
  2224. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc +109 -0
  2225. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +237 -0
  2226. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc +98 -0
  2227. data/third_party/boringssl-with-bazel/src/crypto/evp/print.cc +342 -0
  2228. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc +216 -0
  2229. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +114 -0
  2230. data/third_party/boringssl-with-bazel/src/crypto/ex_data.cc +141 -0
  2231. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +191 -0
  2232. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc +1281 -0
  2233. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cbc.cc.inc +130 -0
  2234. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cfb.cc.inc +166 -0
  2235. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc +100 -0
  2236. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +604 -0
  2237. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm_nohw.cc.inc +302 -0
  2238. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +450 -75
  2239. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +208 -0
  2240. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +84 -0
  2241. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc +53 -0
  2242. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +89 -0
  2243. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +282 -0
  2244. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +729 -0
  2245. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc +269 -0
  2246. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +554 -0
  2247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc +374 -0
  2248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc +225 -0
  2249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc +159 -0
  2250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc +191 -0
  2251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +825 -0
  2252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc +87 -0
  2253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +1227 -0
  2254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +300 -0
  2255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +339 -0
  2256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc +582 -0
  2257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +52 -151
  2258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +108 -0
  2259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +430 -0
  2260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc +222 -0
  2261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +698 -0
  2262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +980 -0
  2263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc +260 -0
  2264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc +142 -0
  2265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +20 -17
  2266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +320 -0
  2267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +459 -0
  2268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc +295 -0
  2269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc +672 -0
  2270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +1242 -0
  2271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc +409 -0
  2272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +14 -68
  2273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc +288 -0
  2274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +26 -22
  2275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +203 -0
  2276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +443 -0
  2277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +13 -15
  2278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +250 -0
  2279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc +178 -0
  2280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +13 -55
  2281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +13 -47
  2282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc +226 -0
  2283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +91 -91
  2284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +986 -0
  2285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +501 -0
  2286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc +439 -0
  2287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc +104 -0
  2288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +19 -66
  2289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +306 -0
  2290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc +1163 -0
  2291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +15 -10
  2292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc +741 -0
  2293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +87 -25
  2294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc +749 -0
  2295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +13 -13
  2296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.cc.inc +179 -0
  2297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +284 -0
  2298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc +269 -0
  2299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc +255 -0
  2300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc +221 -0
  2301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc +88 -0
  2302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +278 -0
  2303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +41 -24
  2304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc +28 -0
  2305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc +112 -0
  2306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc +215 -0
  2307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +70 -0
  2308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/keccak.cc.inc +279 -0
  2309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +1993 -0
  2310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +1165 -0
  2311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc +214 -0
  2312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +19 -104
  2313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +483 -0
  2314. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc +147 -0
  2315. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +13 -56
  2316. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +379 -0
  2317. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +983 -0
  2318. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1296 -0
  2319. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  2320. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +1042 -0
  2321. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +36 -36
  2322. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +327 -0
  2323. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +109 -74
  2324. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.cc.inc +390 -0
  2325. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc +299 -0
  2326. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  2327. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/address.h +119 -0
  2328. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.cc.inc +169 -0
  2329. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h +58 -0
  2330. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.cc.inc +161 -0
  2331. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h +70 -0
  2332. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/params.h +78 -0
  2333. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +329 -0
  2334. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc +173 -0
  2335. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h +85 -0
  2336. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.cc.inc +171 -0
  2337. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h +50 -0
  2338. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +13 -13
  2339. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  2340. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc +1095 -0
  2341. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc +2185 -0
  2342. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +13 -13
  2343. data/third_party/boringssl-with-bazel/src/crypto/internal.h +346 -456
  2344. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +14 -14
  2345. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc +869 -0
  2346. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +31 -75
  2347. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc +309 -0
  2348. data/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc +194 -0
  2349. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +37 -0
  2350. data/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc +243 -0
  2351. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +583 -0
  2352. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc +90 -0
  2353. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +152 -0
  2354. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +519 -0
  2355. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +18 -57
  2356. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc +80 -0
  2357. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +44 -0
  2358. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc +149 -0
  2359. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc +254 -0
  2360. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +741 -0
  2361. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc +45 -0
  2362. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc +208 -0
  2363. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc +141 -0
  2364. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc +22 -0
  2365. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc +22 -0
  2366. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +13 -13
  2367. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +193 -0
  2368. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +526 -0
  2369. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -54
  2370. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +275 -0
  2371. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +487 -0
  2372. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +1304 -0
  2373. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +13 -13
  2374. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc +314 -0
  2375. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc +310 -0
  2376. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc +850 -0
  2377. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +13 -13
  2378. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.cc +262 -0
  2379. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +65 -0
  2380. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +194 -0
  2381. data/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc +44 -0
  2382. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +60 -0
  2383. data/third_party/boringssl-with-bazel/src/crypto/rand/getrandom_fillin.h +64 -0
  2384. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +42 -0
  2385. data/third_party/boringssl-with-bazel/src/crypto/rand/passive.cc +178 -0
  2386. data/third_party/boringssl-with-bazel/src/crypto/rand/rand.cc +77 -0
  2387. data/third_party/boringssl-with-bazel/src/crypto/rand/sysrand_internal.h +37 -0
  2388. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +46 -0
  2389. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +328 -0
  2390. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +102 -0
  2391. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc +56 -0
  2392. data/third_party/boringssl-with-bazel/src/crypto/refcount.cc +59 -0
  2393. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +36 -0
  2394. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc +283 -0
  2395. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +531 -0
  2396. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc +19 -0
  2397. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc +27 -0
  2398. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  2399. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  2400. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  2401. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc +79 -0
  2402. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +113 -0
  2403. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +204 -0
  2404. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc +501 -0
  2405. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc +496 -0
  2406. data/third_party/boringssl-with-bazel/src/crypto/thread.cc +68 -0
  2407. data/third_party/boringssl-with-bazel/src/crypto/thread_none.cc +51 -0
  2408. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc +151 -0
  2409. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +240 -0
  2410. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +13 -13
  2411. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc +1656 -0
  2412. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc +685 -0
  2413. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc +1263 -0
  2414. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc +52 -0
  2415. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +97 -0
  2416. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc +74 -0
  2417. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc +136 -0
  2418. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +542 -0
  2419. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc +355 -0
  2420. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc +227 -0
  2421. data/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h +13 -55
  2422. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc +37 -0
  2423. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +17 -62
  2424. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc +185 -0
  2425. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc +796 -0
  2426. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc +364 -0
  2427. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc +103 -0
  2428. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc +203 -0
  2429. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc +287 -0
  2430. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc +79 -0
  2431. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc +181 -0
  2432. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc +31 -0
  2433. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc +593 -0
  2434. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc +95 -0
  2435. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc +102 -0
  2436. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +374 -0
  2437. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc +444 -0
  2438. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc +557 -0
  2439. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc +73 -0
  2440. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc +114 -0
  2441. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc +228 -0
  2442. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc +79 -0
  2443. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +164 -0
  2444. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc +81 -0
  2445. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc +304 -0
  2446. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc +514 -0
  2447. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc +89 -0
  2448. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc +101 -0
  2449. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc +109 -0
  2450. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc +183 -0
  2451. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc +590 -0
  2452. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc +131 -0
  2453. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc +1342 -0
  2454. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc +47 -0
  2455. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc +186 -0
  2456. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc +238 -0
  2457. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc +66 -0
  2458. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc +44 -0
  2459. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc +139 -0
  2460. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc +554 -0
  2461. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc +164 -0
  2462. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc +257 -0
  2463. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc +198 -0
  2464. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc +118 -0
  2465. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc +147 -0
  2466. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc +249 -0
  2467. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +1600 -0
  2468. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc +440 -0
  2469. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc +235 -0
  2470. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc +365 -0
  2471. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc +67 -0
  2472. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc +91 -0
  2473. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +107 -0
  2474. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc +318 -0
  2475. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc +55 -0
  2476. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc +342 -0
  2477. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc +36 -0
  2478. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +492 -0
  2479. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc +170 -0
  2480. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc +74 -0
  2481. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc +51 -0
  2482. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc +34 -0
  2483. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc +28 -0
  2484. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +506 -0
  2485. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +169 -0
  2486. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +1529 -0
  2487. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -13
  2488. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +13 -47
  2489. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +13 -51
  2490. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +14 -14
  2491. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +37 -63
  2492. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +13 -13
  2493. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +248 -328
  2494. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -55
  2495. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +13 -55
  2496. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  2497. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +98 -97
  2498. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +13 -13
  2499. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +13 -55
  2500. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +28 -130
  2501. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +13 -55
  2502. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +13 -13
  2503. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +43 -20
  2504. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +13 -55
  2505. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +13 -13
  2506. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +31 -59
  2507. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +13 -13
  2508. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +13 -55
  2509. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +13 -13
  2510. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +35 -25
  2511. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +13 -13
  2512. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +13 -13
  2513. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +13 -55
  2514. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +34 -56
  2515. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -56
  2516. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -61
  2517. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +13 -13
  2518. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +13 -13
  2519. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +14 -66
  2520. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +31 -72
  2521. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +14 -65
  2522. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +13 -51
  2523. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +13 -13
  2524. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +26 -107
  2525. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +39 -70
  2526. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +14 -55
  2527. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +28 -110
  2528. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +146 -0
  2529. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +13 -13
  2530. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +13 -55
  2531. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +21 -19
  2532. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +13 -13
  2533. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +13 -13
  2534. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +13 -13
  2535. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +13 -55
  2536. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +13 -55
  2537. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +13 -55
  2538. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +13 -55
  2539. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +130 -0
  2540. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +222 -0
  2541. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +30 -69
  2542. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +15 -57
  2543. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +13 -13
  2544. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +13 -13
  2545. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +13 -13
  2546. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +13 -13
  2547. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +13 -13
  2548. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +88 -117
  2549. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +13 -13
  2550. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +13 -13
  2551. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +13 -55
  2552. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +13 -13
  2553. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +13 -13
  2554. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +13 -13
  2555. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +32 -23
  2556. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +13 -55
  2557. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +13 -55
  2558. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +23 -63
  2559. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +13 -13
  2560. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +15 -15
  2561. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +15 -95
  2562. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +13 -13
  2563. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +174 -0
  2564. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +60 -32
  2565. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +13 -13
  2566. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +723 -369
  2567. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +15 -114
  2568. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +23 -58
  2569. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +36 -23
  2570. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +15 -57
  2571. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +13 -13
  2572. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +29 -158
  2573. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +15 -15
  2574. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +13 -55
  2575. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2951 -2520
  2576. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +13 -13
  2577. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +13 -13
  2578. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +13 -53
  2579. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +15 -14
  2580. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +684 -441
  2581. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +129 -168
  2582. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +177 -127
  2583. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +21 -127
  2584. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +112 -97
  2585. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +456 -222
  2586. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +57 -56
  2587. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +740 -530
  2588. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +67 -74
  2589. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +78 -160
  2590. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +283 -332
  2591. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +242 -324
  2592. data/third_party/boringssl-with-bazel/src/ssl/internal.h +1213 -648
  2593. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +88 -170
  2594. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +29 -160
  2595. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +39 -113
  2596. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +103 -111
  2597. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +52 -145
  2598. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +22 -24
  2599. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +155 -521
  2600. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +239 -373
  2601. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +608 -0
  2602. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +15 -111
  2603. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +129 -33
  2604. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +289 -389
  2605. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +147 -169
  2606. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +104 -247
  2607. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +17 -91
  2608. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +109 -157
  2609. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +48 -28
  2610. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +104 -301
  2611. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -176
  2612. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -69
  2613. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +187 -88
  2614. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +296 -163
  2615. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +290 -116
  2616. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +64 -117
  2617. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +55 -157
  2618. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  2619. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  2620. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  2621. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  2622. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  2623. data/third_party/upb/upb/base/string_view.h +1 -1
  2624. data/third_party/upb/upb/json/decode.c +60 -13
  2625. data/third_party/upb/upb/json/decode.h +26 -3
  2626. data/third_party/upb/upb/json/encode.c +2 -2
  2627. data/third_party/upb/upb/lex/round_trip.c +10 -0
  2628. data/third_party/upb/upb/mem/arena.c +80 -4
  2629. data/third_party/upb/upb/mem/arena.h +20 -9
  2630. data/third_party/upb/upb/mem/arena.hpp +5 -1
  2631. data/third_party/upb/upb/mem/internal/arena.h +11 -8
  2632. data/third_party/upb/upb/message/accessors.c +6 -7
  2633. data/third_party/upb/upb/message/accessors.h +186 -376
  2634. data/third_party/upb/upb/message/array.c +26 -3
  2635. data/third_party/upb/upb/message/array.h +17 -9
  2636. data/third_party/upb/upb/message/compat.c +5 -5
  2637. data/third_party/upb/upb/message/compat.h +3 -3
  2638. data/third_party/upb/upb/message/copy.c +23 -20
  2639. data/third_party/upb/upb/message/internal/accessors.h +617 -55
  2640. data/third_party/upb/upb/message/internal/array.h +23 -15
  2641. data/third_party/upb/upb/message/internal/compare_unknown.c +289 -0
  2642. data/third_party/upb/upb/message/internal/compare_unknown.h +49 -0
  2643. data/third_party/upb/upb/message/internal/extension.c +12 -12
  2644. data/third_party/upb/upb/message/internal/extension.h +9 -12
  2645. data/third_party/upb/upb/message/internal/map.h +15 -0
  2646. data/third_party/upb/upb/message/internal/map_sorter.h +4 -5
  2647. data/third_party/upb/upb/message/internal/message.c +22 -6
  2648. data/third_party/upb/upb/message/internal/message.h +11 -0
  2649. data/third_party/upb/upb/message/internal/tagged_ptr.h +5 -5
  2650. data/third_party/upb/upb/message/internal/types.h +41 -1
  2651. data/third_party/upb/upb/message/map.c +25 -0
  2652. data/third_party/upb/upb/message/map.h +11 -7
  2653. data/third_party/upb/upb/message/merge.c +38 -0
  2654. data/third_party/upb/upb/message/merge.h +26 -0
  2655. data/third_party/upb/upb/message/message.c +83 -4
  2656. data/third_party/upb/upb/message/message.h +16 -1
  2657. data/third_party/upb/upb/message/tagged_ptr.h +4 -8
  2658. data/third_party/upb/upb/message/value.h +26 -0
  2659. data/third_party/upb/upb/mini_descriptor/build_enum.c +3 -3
  2660. data/third_party/upb/upb/mini_descriptor/build_enum.h +6 -14
  2661. data/third_party/upb/upb/mini_descriptor/decode.c +19 -3
  2662. data/third_party/upb/upb/mini_descriptor/link.c +23 -21
  2663. data/third_party/upb/upb/mini_table/enum.h +2 -4
  2664. data/third_party/upb/upb/mini_table/extension.h +4 -12
  2665. data/third_party/upb/upb/mini_table/extension_registry.c +18 -0
  2666. data/third_party/upb/upb/mini_table/extension_registry.h +17 -0
  2667. data/third_party/upb/upb/mini_table/field.h +12 -38
  2668. data/third_party/upb/upb/mini_table/file.h +6 -19
  2669. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  2670. data/third_party/upb/upb/mini_table/internal/extension.h +18 -9
  2671. data/third_party/upb/upb/mini_table/internal/field.h +23 -23
  2672. data/third_party/upb/upb/mini_table/internal/file.h +7 -7
  2673. data/third_party/upb/upb/mini_table/internal/message.c +21 -1
  2674. data/third_party/upb/upb/mini_table/internal/message.h +80 -36
  2675. data/third_party/upb/upb/mini_table/internal/sub.h +9 -4
  2676. data/third_party/upb/upb/mini_table/message.h +23 -22
  2677. data/third_party/upb/upb/mini_table/sub.h +4 -12
  2678. data/third_party/upb/upb/port/def.inc +108 -12
  2679. data/third_party/upb/upb/port/undef.inc +8 -1
  2680. data/third_party/upb/upb/reflection/common.h +1 -11
  2681. data/third_party/upb/upb/reflection/def.hpp +35 -0
  2682. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  2683. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +19 -0
  2684. data/third_party/upb/upb/reflection/enum_def.c +5 -1
  2685. data/third_party/upb/upb/reflection/enum_def.h +1 -0
  2686. data/third_party/upb/upb/reflection/enum_value_def.c +3 -8
  2687. data/third_party/upb/upb/reflection/field_def.c +72 -46
  2688. data/third_party/upb/upb/reflection/field_def.h +4 -0
  2689. data/third_party/upb/upb/reflection/file_def.c +30 -4
  2690. data/third_party/upb/upb/reflection/file_def.h +3 -0
  2691. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  2692. data/third_party/upb/upb/reflection/message.c +26 -9
  2693. data/third_party/upb/upb/reflection/message.h +2 -2
  2694. data/third_party/upb/upb/reflection/message_def.c +14 -9
  2695. data/third_party/upb/upb/reflection/method_def.h +8 -7
  2696. data/third_party/upb/upb/reflection/service_def.h +6 -5
  2697. data/third_party/upb/upb/text/encode.c +53 -389
  2698. data/third_party/upb/upb/text/encode.h +1 -11
  2699. data/third_party/upb/upb/text/internal/encode.c +180 -0
  2700. data/third_party/upb/upb/text/internal/encode.h +240 -0
  2701. data/third_party/upb/upb/text/options.h +22 -0
  2702. data/third_party/upb/upb/wire/decode.c +160 -94
  2703. data/third_party/upb/upb/wire/decode.h +15 -2
  2704. data/third_party/upb/upb/wire/encode.c +89 -48
  2705. data/third_party/upb/upb/wire/encode.h +12 -1
  2706. data/third_party/upb/upb/wire/eps_copy_input_stream.h +3 -3
  2707. data/third_party/upb/upb/wire/internal/decode_fast.c +28 -29
  2708. data/third_party/upb/upb/wire/internal/reader.h +3 -3
  2709. data/third_party/upb/upb/wire/reader.c +1 -2
  2710. data/third_party/upb/upb/wire/reader.h +4 -8
  2711. metadata +737 -639
  2712. data/src/core/client_channel/client_channel_channelz.cc +0 -93
  2713. data/src/core/client_channel/client_channel_channelz.h +0 -85
  2714. data/src/core/client_channel/config_selector.cc +0 -60
  2715. data/src/core/client_channel/http_proxy_mapper.cc +0 -304
  2716. data/src/core/client_channel/http_proxy_mapper.h +0 -53
  2717. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
  2718. data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
  2719. data/src/core/ext/filters/server_config_selector/server_config_selector.h +0 -83
  2720. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +0 -171
  2721. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +0 -33
  2722. data/src/core/ext/gcp/metadata_query.cc +0 -136
  2723. data/src/core/ext/gcp/metadata_query.h +0 -87
  2724. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  2725. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  2726. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -44
  2727. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
  2728. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  2729. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -419
  2730. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -81
  2731. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -30
  2732. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -400
  2733. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -106
  2734. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -33
  2735. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -104
  2736. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -32
  2737. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -66
  2738. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -47
  2739. data/src/core/ext/xds/certificate_provider_store.cc +0 -155
  2740. data/src/core/ext/xds/certificate_provider_store.h +0 -134
  2741. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +0 -138
  2742. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +0 -82
  2743. data/src/core/ext/xds/upb_utils.h +0 -45
  2744. data/src/core/ext/xds/xds_api.cc +0 -572
  2745. data/src/core/ext/xds/xds_api.h +0 -189
  2746. data/src/core/ext/xds/xds_audit_logger_registry.cc +0 -123
  2747. data/src/core/ext/xds/xds_audit_logger_registry.h +0 -68
  2748. data/src/core/ext/xds/xds_bootstrap.cc +0 -38
  2749. data/src/core/ext/xds/xds_bootstrap.h +0 -88
  2750. data/src/core/ext/xds/xds_bootstrap_grpc.cc +0 -397
  2751. data/src/core/ext/xds/xds_bootstrap_grpc.h +0 -197
  2752. data/src/core/ext/xds/xds_certificate_provider.cc +0 -217
  2753. data/src/core/ext/xds/xds_certificate_provider.h +0 -116
  2754. data/src/core/ext/xds/xds_channel_args.h +0 -32
  2755. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -107
  2756. data/src/core/ext/xds/xds_channel_stack_modifier.h +0 -64
  2757. data/src/core/ext/xds/xds_client.cc +0 -2303
  2758. data/src/core/ext/xds/xds_client.h +0 -391
  2759. data/src/core/ext/xds/xds_client_grpc.cc +0 -410
  2760. data/src/core/ext/xds/xds_client_grpc.h +0 -110
  2761. data/src/core/ext/xds/xds_client_stats.cc +0 -173
  2762. data/src/core/ext/xds/xds_client_stats.h +0 -258
  2763. data/src/core/ext/xds/xds_cluster.cc +0 -795
  2764. data/src/core/ext/xds/xds_cluster.h +0 -145
  2765. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +0 -140
  2766. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +0 -97
  2767. data/src/core/ext/xds/xds_common_types.cc +0 -509
  2768. data/src/core/ext/xds/xds_common_types.h +0 -108
  2769. data/src/core/ext/xds/xds_endpoint.cc +0 -517
  2770. data/src/core/ext/xds/xds_endpoint.h +0 -150
  2771. data/src/core/ext/xds/xds_health_status.cc +0 -75
  2772. data/src/core/ext/xds/xds_health_status.h +0 -91
  2773. data/src/core/ext/xds/xds_http_fault_filter.cc +0 -238
  2774. data/src/core/ext/xds/xds_http_fault_filter.h +0 -58
  2775. data/src/core/ext/xds/xds_http_filters.cc +0 -117
  2776. data/src/core/ext/xds/xds_http_filters.h +0 -182
  2777. data/src/core/ext/xds/xds_http_rbac_filter.cc +0 -588
  2778. data/src/core/ext/xds/xds_http_rbac_filter.h +0 -58
  2779. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +0 -218
  2780. data/src/core/ext/xds/xds_http_stateful_session_filter.h +0 -58
  2781. data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -371
  2782. data/src/core/ext/xds/xds_lb_policy_registry.h +0 -71
  2783. data/src/core/ext/xds/xds_listener.cc +0 -1142
  2784. data/src/core/ext/xds/xds_listener.h +0 -236
  2785. data/src/core/ext/xds/xds_metrics.h +0 -39
  2786. data/src/core/ext/xds/xds_resource_type.h +0 -98
  2787. data/src/core/ext/xds/xds_resource_type_impl.h +0 -88
  2788. data/src/core/ext/xds/xds_route_config.cc +0 -1198
  2789. data/src/core/ext/xds/xds_route_config.h +0 -253
  2790. data/src/core/ext/xds/xds_routing.cc +0 -264
  2791. data/src/core/ext/xds/xds_routing.h +0 -106
  2792. data/src/core/ext/xds/xds_server_config_fetcher.cc +0 -1393
  2793. data/src/core/ext/xds/xds_transport.h +0 -89
  2794. data/src/core/ext/xds/xds_transport_grpc.cc +0 -350
  2795. data/src/core/ext/xds/xds_transport_grpc.h +0 -139
  2796. data/src/core/lib/avl/avl.h +0 -325
  2797. data/src/core/lib/backoff/backoff.cc +0 -47
  2798. data/src/core/lib/backoff/backoff.h +0 -89
  2799. data/src/core/lib/backoff/random_early_detection.cc +0 -33
  2800. data/src/core/lib/backoff/random_early_detection.h +0 -62
  2801. data/src/core/lib/channel/call_tracer.cc +0 -364
  2802. data/src/core/lib/channel/call_tracer.h +0 -227
  2803. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  2804. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  2805. data/src/core/lib/channel/channel_trace.cc +0 -187
  2806. data/src/core/lib/channel/channel_trace.h +0 -138
  2807. data/src/core/lib/channel/channelz.cc +0 -610
  2808. data/src/core/lib/channel/channelz.h +0 -384
  2809. data/src/core/lib/channel/channelz_registry.cc +0 -281
  2810. data/src/core/lib/channel/channelz_registry.h +0 -102
  2811. data/src/core/lib/channel/context.h +0 -77
  2812. data/src/core/lib/channel/metrics.cc +0 -396
  2813. data/src/core/lib/channel/metrics.h +0 -406
  2814. data/src/core/lib/channel/server_call_tracer_filter.cc +0 -113
  2815. data/src/core/lib/channel/server_call_tracer_filter.h +0 -28
  2816. data/src/core/lib/channel/tcp_tracer.h +0 -144
  2817. data/src/core/lib/config/config_vars.cc +0 -154
  2818. data/src/core/lib/config/config_vars.h +0 -131
  2819. data/src/core/lib/config/config_vars_non_generated.cc +0 -49
  2820. data/src/core/lib/config/core_configuration.cc +0 -111
  2821. data/src/core/lib/config/core_configuration.h +0 -244
  2822. data/src/core/lib/config/load_config.cc +0 -79
  2823. data/src/core/lib/config/load_config.h +0 -55
  2824. data/src/core/lib/debug/event_log.cc +0 -88
  2825. data/src/core/lib/debug/event_log.h +0 -81
  2826. data/src/core/lib/debug/histogram_view.cc +0 -69
  2827. data/src/core/lib/debug/histogram_view.h +0 -37
  2828. data/src/core/lib/debug/stats.cc +0 -68
  2829. data/src/core/lib/debug/stats.h +0 -64
  2830. data/src/core/lib/debug/stats_data.cc +0 -752
  2831. data/src/core/lib/debug/stats_data.h +0 -579
  2832. data/src/core/lib/event_engine/trace.cc +0 -25
  2833. data/src/core/lib/event_engine/trace.h +0 -49
  2834. data/src/core/lib/gpr/alloc.cc +0 -71
  2835. data/src/core/lib/gpr/alloc.h +0 -28
  2836. data/src/core/lib/gpr/android/log.cc +0 -79
  2837. data/src/core/lib/gpr/atm.cc +0 -35
  2838. data/src/core/lib/gpr/iphone/cpu.cc +0 -44
  2839. data/src/core/lib/gpr/linux/cpu.cc +0 -87
  2840. data/src/core/lib/gpr/linux/log.cc +0 -114
  2841. data/src/core/lib/gpr/log.cc +0 -166
  2842. data/src/core/lib/gpr/log_internal.h +0 -55
  2843. data/src/core/lib/gpr/msys/tmpfile.cc +0 -59
  2844. data/src/core/lib/gpr/posix/cpu.cc +0 -84
  2845. data/src/core/lib/gpr/posix/log.cc +0 -111
  2846. data/src/core/lib/gpr/posix/string.cc +0 -72
  2847. data/src/core/lib/gpr/posix/sync.cc +0 -159
  2848. data/src/core/lib/gpr/posix/time.cc +0 -122
  2849. data/src/core/lib/gpr/posix/tmpfile.cc +0 -71
  2850. data/src/core/lib/gpr/spinlock.h +0 -53
  2851. data/src/core/lib/gpr/string.cc +0 -344
  2852. data/src/core/lib/gpr/string.h +0 -112
  2853. data/src/core/lib/gpr/sync.cc +0 -124
  2854. data/src/core/lib/gpr/sync_abseil.cc +0 -110
  2855. data/src/core/lib/gpr/time.cc +0 -269
  2856. data/src/core/lib/gpr/time_precise.cc +0 -168
  2857. data/src/core/lib/gpr/time_precise.h +0 -69
  2858. data/src/core/lib/gpr/tmpfile.h +0 -32
  2859. data/src/core/lib/gpr/useful.h +0 -184
  2860. data/src/core/lib/gpr/windows/cpu.cc +0 -35
  2861. data/src/core/lib/gpr/windows/log.cc +0 -116
  2862. data/src/core/lib/gpr/windows/string.cc +0 -69
  2863. data/src/core/lib/gpr/windows/string_util.cc +0 -55
  2864. data/src/core/lib/gpr/windows/sync.cc +0 -122
  2865. data/src/core/lib/gpr/windows/time.cc +0 -105
  2866. data/src/core/lib/gpr/windows/tmpfile.cc +0 -68
  2867. data/src/core/lib/gprpp/atomic_utils.h +0 -47
  2868. data/src/core/lib/gprpp/bitset.h +0 -225
  2869. data/src/core/lib/gprpp/chunked_vector.h +0 -257
  2870. data/src/core/lib/gprpp/construct_destruct.h +0 -40
  2871. data/src/core/lib/gprpp/cpp_impl_of.h +0 -49
  2872. data/src/core/lib/gprpp/crash.cc +0 -43
  2873. data/src/core/lib/gprpp/crash.h +0 -37
  2874. data/src/core/lib/gprpp/debug_location.h +0 -99
  2875. data/src/core/lib/gprpp/directory_reader.h +0 -48
  2876. data/src/core/lib/gprpp/down_cast.h +0 -49
  2877. data/src/core/lib/gprpp/dual_ref_counted.h +0 -364
  2878. data/src/core/lib/gprpp/env.h +0 -53
  2879. data/src/core/lib/gprpp/examine_stack.cc +0 -43
  2880. data/src/core/lib/gprpp/examine_stack.h +0 -45
  2881. data/src/core/lib/gprpp/fork.cc +0 -242
  2882. data/src/core/lib/gprpp/fork.h +0 -98
  2883. data/src/core/lib/gprpp/host_port.cc +0 -114
  2884. data/src/core/lib/gprpp/host_port.h +0 -57
  2885. data/src/core/lib/gprpp/if_list.h +0 -4530
  2886. data/src/core/lib/gprpp/linux/env.cc +0 -62
  2887. data/src/core/lib/gprpp/load_file.cc +0 -78
  2888. data/src/core/lib/gprpp/load_file.h +0 -34
  2889. data/src/core/lib/gprpp/manual_constructor.h +0 -146
  2890. data/src/core/lib/gprpp/match.h +0 -75
  2891. data/src/core/lib/gprpp/memory.h +0 -53
  2892. data/src/core/lib/gprpp/mpscq.cc +0 -108
  2893. data/src/core/lib/gprpp/mpscq.h +0 -99
  2894. data/src/core/lib/gprpp/no_destruct.h +0 -95
  2895. data/src/core/lib/gprpp/notification.h +0 -67
  2896. data/src/core/lib/gprpp/orphanable.h +0 -153
  2897. data/src/core/lib/gprpp/overload.h +0 -59
  2898. data/src/core/lib/gprpp/packed_table.h +0 -40
  2899. data/src/core/lib/gprpp/per_cpu.cc +0 -35
  2900. data/src/core/lib/gprpp/per_cpu.h +0 -104
  2901. data/src/core/lib/gprpp/posix/directory_reader.cc +0 -82
  2902. data/src/core/lib/gprpp/posix/env.cc +0 -47
  2903. data/src/core/lib/gprpp/posix/stat.cc +0 -54
  2904. data/src/core/lib/gprpp/posix/thd.cc +0 -247
  2905. data/src/core/lib/gprpp/ref_counted.h +0 -394
  2906. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -445
  2907. data/src/core/lib/gprpp/ref_counted_string.cc +0 -44
  2908. data/src/core/lib/gprpp/ref_counted_string.h +0 -161
  2909. data/src/core/lib/gprpp/single_set_ptr.h +0 -87
  2910. data/src/core/lib/gprpp/sorted_pack.h +0 -89
  2911. data/src/core/lib/gprpp/stat.h +0 -36
  2912. data/src/core/lib/gprpp/status_helper.cc +0 -453
  2913. data/src/core/lib/gprpp/status_helper.h +0 -190
  2914. data/src/core/lib/gprpp/strerror.cc +0 -41
  2915. data/src/core/lib/gprpp/strerror.h +0 -29
  2916. data/src/core/lib/gprpp/sync.h +0 -200
  2917. data/src/core/lib/gprpp/table.h +0 -452
  2918. data/src/core/lib/gprpp/tchar.cc +0 -49
  2919. data/src/core/lib/gprpp/tchar.h +0 -33
  2920. data/src/core/lib/gprpp/thd.h +0 -195
  2921. data/src/core/lib/gprpp/time.cc +0 -242
  2922. data/src/core/lib/gprpp/time.h +0 -385
  2923. data/src/core/lib/gprpp/time_averaged_stats.cc +0 -60
  2924. data/src/core/lib/gprpp/time_averaged_stats.h +0 -79
  2925. data/src/core/lib/gprpp/time_util.cc +0 -81
  2926. data/src/core/lib/gprpp/time_util.h +0 -42
  2927. data/src/core/lib/gprpp/type_list.h +0 -32
  2928. data/src/core/lib/gprpp/unique_type_name.h +0 -104
  2929. data/src/core/lib/gprpp/uuid_v4.cc +0 -37
  2930. data/src/core/lib/gprpp/uuid_v4.h +0 -36
  2931. data/src/core/lib/gprpp/validation_errors.cc +0 -65
  2932. data/src/core/lib/gprpp/validation_errors.h +0 -134
  2933. data/src/core/lib/gprpp/windows/directory_reader.cc +0 -81
  2934. data/src/core/lib/gprpp/windows/env.cc +0 -56
  2935. data/src/core/lib/gprpp/windows/stat.cc +0 -50
  2936. data/src/core/lib/gprpp/windows/thd.cc +0 -182
  2937. data/src/core/lib/gprpp/work_serializer.cc +0 -558
  2938. data/src/core/lib/gprpp/work_serializer.h +0 -107
  2939. data/src/core/lib/gprpp/xxhash_inline.h +0 -29
  2940. data/src/core/lib/handshaker/proxy_mapper.h +0 -53
  2941. data/src/core/lib/handshaker/proxy_mapper_registry.cc +0 -71
  2942. data/src/core/lib/handshaker/proxy_mapper_registry.h +0 -75
  2943. data/src/core/lib/http/format_request.cc +0 -137
  2944. data/src/core/lib/http/format_request.h +0 -38
  2945. data/src/core/lib/http/httpcli.cc +0 -392
  2946. data/src/core/lib/http/httpcli.h +0 -268
  2947. data/src/core/lib/http/httpcli_security_connector.cc +0 -213
  2948. data/src/core/lib/http/httpcli_ssl_credentials.h +0 -39
  2949. data/src/core/lib/http/parser.cc +0 -451
  2950. data/src/core/lib/http/parser.h +0 -130
  2951. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  2952. data/src/core/lib/iomgr/gethostname.h +0 -26
  2953. data/src/core/lib/iomgr/gethostname_fallback.cc +0 -30
  2954. data/src/core/lib/iomgr/gethostname_host_name_max.cc +0 -40
  2955. data/src/core/lib/iomgr/gethostname_sysconf.cc +0 -40
  2956. data/src/core/lib/iomgr/grpc_if_nametoindex.h +0 -30
  2957. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +0 -43
  2958. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +0 -39
  2959. data/src/core/lib/json/json.h +0 -30
  2960. data/src/core/lib/json/json_args.h +0 -34
  2961. data/src/core/lib/json/json_channel_args.h +0 -42
  2962. data/src/core/lib/json/json_object_loader.cc +0 -216
  2963. data/src/core/lib/json/json_object_loader.h +0 -645
  2964. data/src/core/lib/json/json_reader.cc +0 -956
  2965. data/src/core/lib/json/json_reader.h +0 -34
  2966. data/src/core/lib/json/json_util.cc +0 -101
  2967. data/src/core/lib/json/json_util.h +0 -164
  2968. data/src/core/lib/json/json_writer.cc +0 -339
  2969. data/src/core/lib/json/json_writer.h +0 -33
  2970. data/src/core/lib/matchers/matchers.cc +0 -330
  2971. data/src/core/lib/matchers/matchers.h +0 -163
  2972. data/src/core/lib/promise/trace.cc +0 -20
  2973. data/src/core/lib/promise/trace.h +0 -24
  2974. data/src/core/lib/resource_quota/trace.cc +0 -19
  2975. data/src/core/lib/resource_quota/trace.h +0 -24
  2976. data/src/core/lib/security/transport/secure_endpoint.cc +0 -565
  2977. data/src/core/lib/security/transport/secure_endpoint.h +0 -43
  2978. data/src/core/lib/security/transport/security_handshaker.cc +0 -682
  2979. data/src/core/lib/security/transport/security_handshaker.h +0 -47
  2980. data/src/core/lib/security/transport/tsi_error.cc +0 -31
  2981. data/src/core/lib/security/transport/tsi_error.h +0 -30
  2982. data/src/core/lib/slice/slice_refcount.cc +0 -20
  2983. data/src/core/lib/surface/api_trace.cc +0 -25
  2984. data/src/core/lib/surface/api_trace.h +0 -53
  2985. data/src/core/lib/surface/call_trace.h +0 -24
  2986. data/src/core/lib/surface/server.cc +0 -2030
  2987. data/src/core/lib/surface/server.h +0 -555
  2988. data/src/core/lib/surface/server_interface.h +0 -43
  2989. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  2990. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  2991. data/src/core/lib/transport/batch_builder.cc +0 -170
  2992. data/src/core/lib/transport/batch_builder.h +0 -476
  2993. data/src/core/lib/transport/call_size_estimator.cc +0 -41
  2994. data/src/core/lib/transport/call_size_estimator.h +0 -52
  2995. data/src/core/lib/transport/endpoint_info_handshaker.cc +0 -80
  2996. data/src/core/lib/transport/endpoint_info_handshaker.h +0 -37
  2997. data/src/core/lib/transport/handshaker.cc +0 -229
  2998. data/src/core/lib/transport/handshaker.h +0 -165
  2999. data/src/core/lib/transport/handshaker_factory.h +0 -73
  3000. data/src/core/lib/transport/handshaker_registry.cc +0 -61
  3001. data/src/core/lib/transport/handshaker_registry.h +0 -69
  3002. data/src/core/lib/transport/http_connect_handshaker.cc +0 -400
  3003. data/src/core/lib/transport/http_connect_handshaker.h +0 -42
  3004. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -244
  3005. data/src/core/lib/transport/tcp_connect_handshaker.h +0 -39
  3006. data/src/core/lib/uri/uri_parser.cc +0 -372
  3007. data/src/core/lib/uri/uri_parser.h +0 -101
  3008. data/src/core/resolver/binder/binder_resolver.cc +0 -154
  3009. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  3010. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  3011. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
  3012. data/third_party/boringssl-with-bazel/err_data.c +0 -1512
  3013. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +0 -284
  3014. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +0 -95
  3015. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -89
  3016. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +0 -84
  3017. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +0 -151
  3018. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +0 -85
  3019. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +0 -465
  3020. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +0 -279
  3021. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +0 -235
  3022. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +0 -74
  3023. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +0 -457
  3024. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +0 -245
  3025. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +0 -259
  3026. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +0 -214
  3027. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -183
  3028. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -397
  3029. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +0 -103
  3030. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +0 -98
  3031. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +0 -105
  3032. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +0 -94
  3033. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +0 -241
  3034. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +0 -973
  3035. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +0 -708
  3036. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +0 -212
  3037. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +0 -317
  3038. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -126
  3039. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +0 -268
  3040. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +0 -475
  3041. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +0 -731
  3042. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +0 -309
  3043. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +0 -544
  3044. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +0 -92
  3045. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -235
  3046. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +0 -319
  3047. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +0 -192
  3048. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +0 -480
  3049. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -102
  3050. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +0 -189
  3051. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +0 -133
  3052. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +0 -169
  3053. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +0 -57
  3054. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +0 -465
  3055. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +0 -158
  3056. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +0 -53
  3057. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +0 -266
  3058. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +0 -718
  3059. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +0 -926
  3060. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +0 -155
  3061. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -224
  3062. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +0 -127
  3063. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +0 -152
  3064. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +0 -284
  3065. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +0 -841
  3066. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -341
  3067. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +0 -246
  3068. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +0 -86
  3069. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +0 -463
  3070. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +0 -89
  3071. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +0 -598
  3072. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +0 -237
  3073. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +0 -514
  3074. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +0 -647
  3075. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  3076. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +0 -75
  3077. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -55
  3078. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -62
  3079. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -61
  3080. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +0 -93
  3081. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +0 -41
  3082. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -54
  3083. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -148
  3084. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -292
  3085. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +0 -242
  3086. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +0 -2157
  3087. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +0 -18
  3088. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +0 -523
  3089. data/third_party/boringssl-with-bazel/src/crypto/des/des.c +0 -871
  3090. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +0 -165
  3091. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +0 -480
  3092. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -265
  3093. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +0 -981
  3094. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -420
  3095. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +0 -572
  3096. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +0 -96
  3097. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +0 -508
  3098. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -78
  3099. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +0 -124
  3100. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +0 -265
  3101. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +0 -91
  3102. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +0 -882
  3103. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +0 -509
  3104. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +0 -547
  3105. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +0 -483
  3106. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +0 -308
  3107. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +0 -275
  3108. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +0 -302
  3109. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +0 -103
  3110. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +0 -224
  3111. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +0 -232
  3112. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +0 -646
  3113. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +0 -211
  3114. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +0 -109
  3115. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +0 -236
  3116. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +0 -146
  3117. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +0 -381
  3118. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +0 -209
  3119. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +0 -156
  3120. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +0 -237
  3121. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -106
  3122. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +0 -1281
  3123. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +0 -242
  3124. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +0 -124
  3125. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -275
  3126. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c +0 -310
  3127. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -541
  3128. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +0 -428
  3129. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +0 -267
  3130. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +0 -201
  3131. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -234
  3132. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +0 -909
  3133. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +0 -87
  3134. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +0 -1276
  3135. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -397
  3136. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +0 -328
  3137. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +0 -624
  3138. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c +0 -146
  3139. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +0 -532
  3140. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +0 -222
  3141. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +0 -744
  3142. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -1070
  3143. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +0 -355
  3144. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +0 -137
  3145. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +0 -363
  3146. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +0 -499
  3147. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +0 -287
  3148. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +0 -717
  3149. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +0 -1463
  3150. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c +0 -446
  3151. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c +0 -322
  3152. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +0 -245
  3153. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +0 -489
  3154. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +0 -288
  3155. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +0 -304
  3156. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c +0 -267
  3157. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +0 -1043
  3158. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -553
  3159. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +0 -491
  3160. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +0 -104
  3161. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +0 -359
  3162. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +0 -1163
  3163. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +0 -637
  3164. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +0 -749
  3165. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +0 -169
  3166. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +0 -336
  3167. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +0 -269
  3168. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +0 -255
  3169. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -264
  3170. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +0 -130
  3171. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +0 -372
  3172. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +0 -32
  3173. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +0 -112
  3174. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +0 -256
  3175. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +0 -240
  3176. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +0 -37
  3177. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +0 -284
  3178. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +0 -164
  3179. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +0 -200
  3180. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +0 -196
  3181. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +0 -743
  3182. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +0 -302
  3183. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -428
  3184. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +0 -87
  3185. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +0 -90
  3186. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +0 -220
  3187. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +0 -197
  3188. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +0 -67
  3189. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +0 -64
  3190. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -493
  3191. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -328
  3192. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -241
  3193. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +0 -423
  3194. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +0 -1038
  3195. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +0 -1337
  3196. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +0 -119
  3197. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +0 -1064
  3198. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +0 -331
  3199. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +0 -439
  3200. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +0 -359
  3201. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +0 -537
  3202. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +0 -211
  3203. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +0 -799
  3204. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +0 -2234
  3205. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +0 -70
  3206. data/third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c +0 -279
  3207. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +0 -844
  3208. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +0 -350
  3209. data/third_party/boringssl-with-bazel/src/crypto/mem.c +0 -600
  3210. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +0 -564
  3211. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +0 -122
  3212. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -243
  3213. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -294
  3214. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -789
  3215. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +0 -87
  3216. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -248
  3217. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -182
  3218. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -64
  3219. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -64
  3220. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +0 -193
  3221. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -523
  3222. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +0 -316
  3223. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -527
  3224. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +0 -1352
  3225. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +0 -314
  3226. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +0 -308
  3227. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +0 -847
  3228. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +0 -261
  3229. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +0 -57
  3230. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +0 -44
  3231. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +0 -52
  3232. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +0 -34
  3233. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +0 -158
  3234. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +0 -74
  3235. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +0 -38
  3236. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +0 -95
  3237. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +0 -98
  3238. data/third_party/boringssl-with-bazel/src/crypto/refcount.c +0 -59
  3239. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +0 -77
  3240. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +0 -324
  3241. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +0 -570
  3242. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +0 -22
  3243. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +0 -79
  3244. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  3245. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  3246. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  3247. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  3248. data/third_party/boringssl-with-bazel/src/crypto/spx/internal.h +0 -79
  3249. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  3250. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  3251. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  3252. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -139
  3253. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  3254. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  3255. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  3256. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  3257. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  3258. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  3259. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +0 -534
  3260. data/third_party/boringssl-with-bazel/src/crypto/thread.c +0 -110
  3261. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -51
  3262. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -150
  3263. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +0 -236
  3264. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +0 -1668
  3265. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +0 -687
  3266. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +0 -1267
  3267. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +0 -94
  3268. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +0 -136
  3269. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +0 -116
  3270. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +0 -178
  3271. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +0 -585
  3272. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +0 -407
  3273. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -269
  3274. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +0 -79
  3275. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +0 -227
  3276. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +0 -786
  3277. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +0 -397
  3278. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -145
  3279. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +0 -245
  3280. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -329
  3281. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +0 -121
  3282. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c +0 -221
  3283. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c +0 -73
  3284. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c +0 -634
  3285. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c +0 -135
  3286. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c +0 -141
  3287. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c +0 -416
  3288. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +0 -477
  3289. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +0 -598
  3290. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c +0 -112
  3291. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c +0 -154
  3292. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c +0 -270
  3293. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c +0 -122
  3294. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +0 -211
  3295. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c +0 -121
  3296. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +0 -342
  3297. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c +0 -555
  3298. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c +0 -81
  3299. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c +0 -142
  3300. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c +0 -150
  3301. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c +0 -224
  3302. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c +0 -624
  3303. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c +0 -170
  3304. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +0 -1357
  3305. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -89
  3306. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -227
  3307. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -280
  3308. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +0 -108
  3309. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +0 -86
  3310. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +0 -181
  3311. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -609
  3312. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +0 -206
  3313. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +0 -299
  3314. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +0 -240
  3315. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +0 -164
  3316. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +0 -189
  3317. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +0 -291
  3318. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -1655
  3319. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +0 -440
  3320. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +0 -277
  3321. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +0 -407
  3322. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +0 -109
  3323. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +0 -133
  3324. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +0 -149
  3325. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -356
  3326. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +0 -97
  3327. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +0 -384
  3328. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +0 -78
  3329. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +0 -527
  3330. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -210
  3331. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +0 -116
  3332. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +0 -93
  3333. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +0 -79
  3334. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +0 -70
  3335. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +0 -549
  3336. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +0 -209
  3337. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +0 -136
  3338. data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
  3339. data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
@@ -14,22 +14,32 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #include <grpc/support/port_platform.h>
18
-
19
17
  #include "src/core/client_channel/client_channel_filter.h"
20
18
 
19
+ #include <grpc/event_engine/event_engine.h>
20
+ #include <grpc/impl/channel_arg_names.h>
21
+ #include <grpc/slice.h>
22
+ #include <grpc/status.h>
23
+ #include <grpc/support/json.h>
24
+ #include <grpc/support/port_platform.h>
25
+ #include <grpc/support/string_util.h>
26
+ #include <grpc/support/time.h>
21
27
  #include <inttypes.h>
22
28
  #include <limits.h>
23
29
 
24
30
  #include <algorithm>
25
31
  #include <functional>
26
32
  #include <new>
33
+ #include <optional>
27
34
  #include <set>
28
35
  #include <type_traits>
29
36
  #include <utility>
37
+ #include <variant>
30
38
  #include <vector>
31
39
 
32
40
  #include "absl/cleanup/cleanup.h"
41
+ #include "absl/log/check.h"
42
+ #include "absl/log/log.h"
33
43
  #include "absl/status/status.h"
34
44
  #include "absl/status/statusor.h"
35
45
  #include "absl/strings/cord.h"
@@ -37,51 +47,30 @@
37
47
  #include "absl/strings/str_cat.h"
38
48
  #include "absl/strings/str_join.h"
39
49
  #include "absl/strings/string_view.h"
40
- #include "absl/types/optional.h"
41
- #include "absl/types/variant.h"
42
-
43
- #include <grpc/event_engine/event_engine.h>
44
- #include <grpc/impl/channel_arg_names.h>
45
- #include <grpc/slice.h>
46
- #include <grpc/status.h>
47
- #include <grpc/support/json.h>
48
- #include <grpc/support/log.h>
49
- #include <grpc/support/string_util.h>
50
- #include <grpc/support/time.h>
51
-
50
+ #include "src/core/channelz/channel_trace.h"
52
51
  #include "src/core/client_channel/backup_poller.h"
53
- #include "src/core/client_channel/client_channel_channelz.h"
54
52
  #include "src/core/client_channel/client_channel_internal.h"
55
53
  #include "src/core/client_channel/client_channel_service_config.h"
56
54
  #include "src/core/client_channel/config_selector.h"
57
55
  #include "src/core/client_channel/dynamic_filters.h"
58
56
  #include "src/core/client_channel/global_subchannel_pool.h"
57
+ #include "src/core/client_channel/lb_metadata.h"
59
58
  #include "src/core/client_channel/local_subchannel_pool.h"
60
59
  #include "src/core/client_channel/retry_filter.h"
61
60
  #include "src/core/client_channel/subchannel.h"
62
61
  #include "src/core/client_channel/subchannel_interface_internal.h"
63
- #include "src/core/ext/filters/deadline/deadline_filter.h"
62
+ #include "src/core/config/core_configuration.h"
63
+ #include "src/core/handshaker/proxy_mapper_registry.h"
64
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
64
65
  #include "src/core/lib/channel/channel_args.h"
65
66
  #include "src/core/lib/channel/channel_stack.h"
66
- #include "src/core/lib/channel/channel_trace.h"
67
67
  #include "src/core/lib/channel/status_util.h"
68
- #include "src/core/lib/config/core_configuration.h"
69
68
  #include "src/core/lib/debug/trace.h"
70
69
  #include "src/core/lib/experiments/experiments.h"
71
- #include "src/core/lib/gpr/useful.h"
72
- #include "src/core/lib/gprpp/crash.h"
73
- #include "src/core/lib/gprpp/debug_location.h"
74
- #include "src/core/lib/gprpp/manual_constructor.h"
75
- #include "src/core/lib/gprpp/status_helper.h"
76
- #include "src/core/lib/gprpp/sync.h"
77
- #include "src/core/lib/gprpp/unique_type_name.h"
78
- #include "src/core/lib/gprpp/work_serializer.h"
79
- #include "src/core/lib/handshaker/proxy_mapper_registry.h"
80
70
  #include "src/core/lib/iomgr/exec_ctx.h"
81
71
  #include "src/core/lib/iomgr/polling_entity.h"
82
72
  #include "src/core/lib/iomgr/pollset_set.h"
83
73
  #include "src/core/lib/iomgr/resolved_address.h"
84
- #include "src/core/lib/json/json.h"
85
74
  #include "src/core/lib/promise/cancel_callback.h"
86
75
  #include "src/core/lib/promise/context.h"
87
76
  #include "src/core/lib/promise/latch.h"
@@ -105,6 +94,15 @@
105
94
  #include "src/core/resolver/resolver_registry.h"
106
95
  #include "src/core/service_config/service_config_call_data.h"
107
96
  #include "src/core/service_config/service_config_impl.h"
97
+ #include "src/core/util/crash.h"
98
+ #include "src/core/util/debug_location.h"
99
+ #include "src/core/util/json/json.h"
100
+ #include "src/core/util/manual_constructor.h"
101
+ #include "src/core/util/status_helper.h"
102
+ #include "src/core/util/sync.h"
103
+ #include "src/core/util/unique_type_name.h"
104
+ #include "src/core/util/useful.h"
105
+ #include "src/core/util/work_serializer.h"
108
106
 
109
107
  //
110
108
  // Client channel filter
@@ -114,10 +112,6 @@ namespace grpc_core {
114
112
 
115
113
  using internal::ClientChannelMethodParsedConfig;
116
114
 
117
- TraceFlag grpc_client_channel_trace(false, "client_channel");
118
- TraceFlag grpc_client_channel_call_trace(false, "client_channel_call");
119
- TraceFlag grpc_client_channel_lb_call_trace(false, "client_channel_lb_call");
120
-
121
115
  //
122
116
  // ClientChannelFilter::CallData definition
123
117
  //
@@ -145,14 +139,14 @@ class ClientChannelFilter::CallData {
145
139
  // Checks whether a resolver result is available. The following
146
140
  // outcomes are possible:
147
141
  // - No resolver result is available yet. The call will be queued and
148
- // absl::nullopt will be returned. Later, when a resolver result
142
+ // std::nullopt will be returned. Later, when a resolver result
149
143
  // becomes available, RetryCheckResolutionLocked() will be called.
150
144
  // - The resolver has returned a transient failure. If the call is
151
145
  // not wait_for_ready, a non-OK status will be returned. (If the
152
146
  // call *is* wait_for_ready, it will be queued instead.)
153
147
  // - There is a valid resolver result. The service config will be
154
148
  // stored in the call context and an OK status will be returned.
155
- absl::optional<absl::Status> CheckResolution(bool was_queued);
149
+ std::optional<absl::Status> CheckResolution(bool was_queued);
156
150
 
157
151
  private:
158
152
  // Accessors for data stored in the subclass.
@@ -160,7 +154,6 @@ class ClientChannelFilter::CallData {
160
154
  virtual Arena* arena() const = 0;
161
155
  virtual grpc_polling_entity* pollent() = 0;
162
156
  virtual grpc_metadata_batch* send_initial_metadata() = 0;
163
- virtual grpc_call_context_element* call_context() const = 0;
164
157
 
165
158
  // Helper function for CheckResolution(). Returns true if the call
166
159
  // can continue (i.e., there is a valid resolution result, or there is
@@ -210,22 +203,19 @@ class ClientChannelFilter::FilterBasedCallData final
210
203
  const grpc_call_element_args& args);
211
204
  ~FilterBasedCallData() override;
212
205
 
213
- grpc_call_element* elem() const { return deadline_state_.elem; }
214
- grpc_call_stack* owning_call() const { return deadline_state_.call_stack; }
215
- CallCombiner* call_combiner() const { return deadline_state_.call_combiner; }
206
+ grpc_call_element* elem() const { return elem_; }
207
+ grpc_call_stack* owning_call() const { return owning_call_; }
208
+ CallCombiner* call_combiner() const { return call_combiner_; }
216
209
 
217
210
  ClientChannelFilter* chand() const override {
218
211
  return static_cast<ClientChannelFilter*>(elem()->channel_data);
219
212
  }
220
- Arena* arena() const override { return deadline_state_.arena; }
213
+ Arena* arena() const override { return arena_; }
221
214
  grpc_polling_entity* pollent() override { return pollent_; }
222
215
  grpc_metadata_batch* send_initial_metadata() override {
223
216
  return pending_batches_[0]
224
217
  ->payload->send_initial_metadata.send_initial_metadata;
225
218
  }
226
- grpc_call_context_element* call_context() const override {
227
- return call_context_;
228
- }
229
219
 
230
220
  // Returns the index into pending_batches_ to be used for batch.
231
221
  static size_t GetBatchIndex(grpc_transport_stream_op_batch* batch);
@@ -270,10 +260,7 @@ class ClientChannelFilter::FilterBasedCallData final
270
260
  void ResetDeadline(Duration timeout) override {
271
261
  const Timestamp per_method_deadline =
272
262
  Timestamp::FromCycleCounterRoundUp(call_start_time_) + timeout;
273
- if (per_method_deadline < deadline_) {
274
- deadline_ = per_method_deadline;
275
- grpc_deadline_state_reset(&deadline_state_, deadline_);
276
- }
263
+ arena_->GetContext<Call>()->UpdateDeadline(per_method_deadline);
277
264
  }
278
265
 
279
266
  void CreateDynamicCall();
@@ -282,12 +269,13 @@ class ClientChannelFilter::FilterBasedCallData final
282
269
  void* arg, grpc_error_handle error);
283
270
 
284
271
  grpc_slice path_; // Request path.
285
- grpc_call_context_element* call_context_;
286
272
  gpr_cycle_counter call_start_time_;
287
273
  Timestamp deadline_;
288
274
 
289
- // State for handling deadlines.
290
- grpc_deadline_state deadline_state_;
275
+ Arena* const arena_;
276
+ grpc_call_element* const elem_;
277
+ grpc_call_stack* const owning_call_;
278
+ CallCombiner* const call_combiner_;
291
279
 
292
280
  grpc_polling_entity* pollent_ = nullptr;
293
281
 
@@ -311,104 +299,12 @@ class ClientChannelFilter::FilterBasedCallData final
311
299
  grpc_error_handle cancel_error_;
312
300
  };
313
301
 
314
- class ClientChannelFilter::PromiseBasedCallData final
315
- : public ClientChannelFilter::CallData {
316
- public:
317
- explicit PromiseBasedCallData(ClientChannelFilter* chand) : chand_(chand) {}
318
-
319
- ~PromiseBasedCallData() override {
320
- if (was_queued_ && client_initial_metadata_ != nullptr) {
321
- MutexLock lock(&chand_->resolution_mu_);
322
- RemoveCallFromResolverQueuedCallsLocked();
323
- chand_->resolver_queued_calls_.erase(this);
324
- }
325
- }
326
-
327
- ArenaPromise<absl::StatusOr<CallArgs>> MakeNameResolutionPromise(
328
- CallArgs call_args) {
329
- pollent_ = NowOrNever(call_args.polling_entity->WaitAndCopy()).value();
330
- client_initial_metadata_ = std::move(call_args.client_initial_metadata);
331
- // If we're still in IDLE, we need to start resolving.
332
- if (GPR_UNLIKELY(chand_->CheckConnectivityState(false) ==
333
- GRPC_CHANNEL_IDLE)) {
334
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
335
- gpr_log(GPR_INFO, "chand=%p calld=%p: %striggering exit idle", chand_,
336
- this, GetContext<Activity>()->DebugTag().c_str());
337
- }
338
- // Bounce into the control plane work serializer to start resolving.
339
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ExitIdle");
340
- chand_->work_serializer_->Run(
341
- [chand = chand_]()
342
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
343
- chand->CheckConnectivityState(/*try_to_connect=*/true);
344
- GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_, "ExitIdle");
345
- },
346
- DEBUG_LOCATION);
347
- }
348
- return [this, call_args = std::move(
349
- call_args)]() mutable -> Poll<absl::StatusOr<CallArgs>> {
350
- auto result = CheckResolution(was_queued_);
351
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
352
- gpr_log(GPR_INFO, "chand=%p calld=%p: %sCheckResolution returns %s",
353
- chand_, this, GetContext<Activity>()->DebugTag().c_str(),
354
- result.has_value() ? result->ToString().c_str() : "Pending");
355
- }
356
- if (!result.has_value()) return Pending{};
357
- if (!result->ok()) return *result;
358
- call_args.client_initial_metadata = std::move(client_initial_metadata_);
359
- return std::move(call_args);
360
- };
361
- }
362
-
363
- private:
364
- ClientChannelFilter* chand() const override { return chand_; }
365
- Arena* arena() const override { return GetContext<Arena>(); }
366
- grpc_polling_entity* pollent() override { return &pollent_; }
367
- grpc_metadata_batch* send_initial_metadata() override {
368
- return client_initial_metadata_.get();
369
- }
370
- grpc_call_context_element* call_context() const override {
371
- return GetContext<grpc_call_context_element>();
372
- }
373
-
374
- void OnAddToQueueLocked() override
375
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannelFilter::resolution_mu_) {
376
- waker_ = GetContext<Activity>()->MakeNonOwningWaker();
377
- was_queued_ = true;
378
- }
379
-
380
- void RetryCheckResolutionLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
381
- &ClientChannelFilter::resolution_mu_) override {
382
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
383
- gpr_log(GPR_INFO, "chand=%p calld=%p: RetryCheckResolutionLocked(): %s",
384
- chand_, this, waker_.ActivityDebugTag().c_str());
385
- }
386
- waker_.WakeupAsync();
387
- }
388
-
389
- void ResetDeadline(Duration timeout) override {
390
- CallContext* call_context = GetContext<CallContext>();
391
- const Timestamp per_method_deadline =
392
- Timestamp::FromCycleCounterRoundUp(call_context->call_start_time()) +
393
- timeout;
394
- call_context->UpdateDeadline(per_method_deadline);
395
- }
396
-
397
- ClientChannelFilter* chand_;
398
- grpc_polling_entity pollent_;
399
- ClientMetadataHandle client_initial_metadata_;
400
- bool was_queued_ = false;
401
- Waker waker_ ABSL_GUARDED_BY(&ClientChannelFilter::resolution_mu_);
402
- };
403
-
404
302
  //
405
303
  // Filter vtable
406
304
  //
407
305
 
408
- const grpc_channel_filter ClientChannelFilter::kFilterVtableWithPromises = {
306
+ const grpc_channel_filter ClientChannelFilter::kFilter = {
409
307
  ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch,
410
- ClientChannelFilter::MakeCallPromise,
411
- /* init_call: */ nullptr,
412
308
  ClientChannelFilter::StartTransportOp,
413
309
  sizeof(ClientChannelFilter::FilterBasedCallData),
414
310
  ClientChannelFilter::FilterBasedCallData::Init,
@@ -419,24 +315,7 @@ const grpc_channel_filter ClientChannelFilter::kFilterVtableWithPromises = {
419
315
  grpc_channel_stack_no_post_init,
420
316
  ClientChannelFilter::Destroy,
421
317
  ClientChannelFilter::GetChannelInfo,
422
- "client-channel",
423
- };
424
-
425
- const grpc_channel_filter ClientChannelFilter::kFilterVtableWithoutPromises = {
426
- ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch,
427
- nullptr,
428
- /* init_call: */ nullptr,
429
- ClientChannelFilter::StartTransportOp,
430
- sizeof(ClientChannelFilter::FilterBasedCallData),
431
- ClientChannelFilter::FilterBasedCallData::Init,
432
- ClientChannelFilter::FilterBasedCallData::SetPollent,
433
- ClientChannelFilter::FilterBasedCallData::Destroy,
434
- sizeof(ClientChannelFilter),
435
- ClientChannelFilter::Init,
436
- grpc_channel_stack_no_post_init,
437
- ClientChannelFilter::Destroy,
438
- ClientChannelFilter::GetChannelInfo,
439
- "client-channel",
318
+ GRPC_UNIQUE_TYPE_NAME_HERE("client-channel"),
440
319
  };
441
320
 
442
321
  //
@@ -445,10 +324,9 @@ const grpc_channel_filter ClientChannelFilter::kFilterVtableWithoutPromises = {
445
324
 
446
325
  namespace {
447
326
 
448
- ClientChannelServiceConfigCallData* GetServiceConfigCallData(
449
- grpc_call_context_element* context) {
450
- return static_cast<ClientChannelServiceConfigCallData*>(
451
- context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
327
+ ClientChannelServiceConfigCallData* GetServiceConfigCallData(Arena* arena) {
328
+ return DownCast<ClientChannelServiceConfigCallData*>(
329
+ arena->GetContext<ServiceConfigCallData>());
452
330
  }
453
331
 
454
332
  class DynamicTerminationFilter final {
@@ -459,8 +337,8 @@ class DynamicTerminationFilter final {
459
337
 
460
338
  static grpc_error_handle Init(grpc_channel_element* elem,
461
339
  grpc_channel_element_args* args) {
462
- GPR_ASSERT(args->is_last);
463
- GPR_ASSERT(elem->filter == &kFilterVtable);
340
+ CHECK(args->is_last);
341
+ CHECK(elem->filter == &kFilterVtable);
464
342
  new (elem->channel_data) DynamicTerminationFilter(args->channel_args);
465
343
  return absl::OkStatus();
466
344
  }
@@ -476,19 +354,6 @@ class DynamicTerminationFilter final {
476
354
  static void GetChannelInfo(grpc_channel_element* /*elem*/,
477
355
  const grpc_channel_info* /*info*/) {}
478
356
 
479
- static ArenaPromise<ServerMetadataHandle> MakeCallPromise(
480
- grpc_channel_element* elem, CallArgs call_args, NextPromiseFactory) {
481
- auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
482
- return chand->chand_->CreateLoadBalancedCallPromise(
483
- std::move(call_args),
484
- []() {
485
- auto* service_config_call_data =
486
- GetServiceConfigCallData(GetContext<grpc_call_context_element>());
487
- service_config_call_data->Commit();
488
- },
489
- /*is_transparent_retry=*/false);
490
- }
491
-
492
357
  private:
493
358
  explicit DynamicTerminationFilter(const ChannelArgs& args)
494
359
  : chand_(args.GetObject<ClientChannelFilter>()) {}
@@ -532,21 +397,18 @@ class DynamicTerminationFilter::CallData final {
532
397
  auto* calld = static_cast<CallData*>(elem->call_data);
533
398
  auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
534
399
  ClientChannelFilter* client_channel = chand->chand_;
535
- grpc_call_element_args args = {calld->owning_call_, nullptr,
536
- calld->call_context_, calld->path_,
537
- /*start_time=*/0, calld->deadline_,
538
- calld->arena_, calld->call_combiner_};
539
- auto* service_config_call_data =
540
- GetServiceConfigCallData(calld->call_context_);
400
+ grpc_call_element_args args = {calld->owning_call_, nullptr,
401
+ calld->path_,
402
+ /*start_time=*/0, calld->deadline_,
403
+ calld->arena_, calld->call_combiner_};
404
+ auto* service_config_call_data = GetServiceConfigCallData(calld->arena_);
541
405
  calld->lb_call_ = client_channel->CreateLoadBalancedCall(
542
406
  args, pollent, nullptr,
543
407
  [service_config_call_data]() { service_config_call_data->Commit(); },
544
408
  /*is_transparent_retry=*/false);
545
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
546
- gpr_log(GPR_INFO,
547
- "chand=%p dynamic_termination_calld=%p: create lb_call=%p", chand,
548
- client_channel, calld->lb_call_.get());
549
- }
409
+ GRPC_TRACE_LOG(client_channel_call, INFO)
410
+ << "chand=" << chand << " dynamic_termination_calld=" << client_channel
411
+ << ": create lb_call=" << calld->lb_call_.get();
550
412
  }
551
413
 
552
414
  private:
@@ -555,8 +417,7 @@ class DynamicTerminationFilter::CallData final {
555
417
  deadline_(args.deadline),
556
418
  arena_(args.arena),
557
419
  owning_call_(args.call_stack),
558
- call_combiner_(args.call_combiner),
559
- call_context_(args.context) {}
420
+ call_combiner_(args.call_combiner) {}
560
421
 
561
422
  ~CallData() { CSliceUnref(path_); }
562
423
 
@@ -565,15 +426,12 @@ class DynamicTerminationFilter::CallData final {
565
426
  Arena* arena_;
566
427
  grpc_call_stack* owning_call_;
567
428
  CallCombiner* call_combiner_;
568
- grpc_call_context_element* call_context_;
569
429
 
570
430
  OrphanablePtr<ClientChannelFilter::FilterBasedLoadBalancedCall> lb_call_;
571
431
  };
572
432
 
573
433
  const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
574
434
  DynamicTerminationFilter::CallData::StartTransportStreamOpBatch,
575
- DynamicTerminationFilter::MakeCallPromise,
576
- /* init_call: */ nullptr,
577
435
  DynamicTerminationFilter::StartTransportOp,
578
436
  sizeof(DynamicTerminationFilter::CallData),
579
437
  DynamicTerminationFilter::CallData::Init,
@@ -584,7 +442,7 @@ const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
584
442
  grpc_channel_stack_no_post_init,
585
443
  DynamicTerminationFilter::Destroy,
586
444
  DynamicTerminationFilter::GetChannelInfo,
587
- "dynamic_filter_termination",
445
+ GRPC_UNIQUE_TYPE_NAME_HERE("dynamic_filter_termination"),
588
446
  };
589
447
 
590
448
  } // namespace
@@ -601,9 +459,8 @@ class ClientChannelFilter::ResolverResultHandler final
601
459
  }
602
460
 
603
461
  ~ResolverResultHandler() override {
604
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
605
- gpr_log(GPR_INFO, "chand=%p: resolver shutdown complete", chand_);
606
- }
462
+ GRPC_TRACE_LOG(client_channel, INFO)
463
+ << "chand=" << chand_ << ": resolver shutdown complete";
607
464
  GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ResolverResultHandler");
608
465
  }
609
466
 
@@ -633,18 +490,18 @@ class ClientChannelFilter::SubchannelWrapper final
633
490
  public:
634
491
  SubchannelWrapper(ClientChannelFilter* chand,
635
492
  RefCountedPtr<Subchannel> subchannel)
636
- : SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)
493
+ : SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(client_channel)
637
494
  ? "SubchannelWrapper"
638
495
  : nullptr),
639
496
  chand_(chand),
640
497
  subchannel_(std::move(subchannel)) {
641
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
642
- gpr_log(GPR_INFO,
643
- "chand=%p: creating subchannel wrapper %p for subchannel %p",
644
- chand, this, subchannel_.get());
645
- }
498
+ GRPC_TRACE_LOG(client_channel, INFO)
499
+ << "chand=" << chand << ": creating subchannel wrapper " << this
500
+ << " for subchannel " << subchannel_.get();
646
501
  GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "SubchannelWrapper");
647
- GPR_DEBUG_ASSERT(chand_->work_serializer_->RunningInWorkSerializer());
502
+ #ifndef NDEBUG
503
+ DCHECK(chand_->work_serializer_->RunningInWorkSerializer());
504
+ #endif
648
505
  if (chand_->channelz_node_ != nullptr) {
649
506
  auto* subchannel_node = subchannel_->channelz_node();
650
507
  if (subchannel_node != nullptr) {
@@ -661,18 +518,25 @@ class ClientChannelFilter::SubchannelWrapper final
661
518
  }
662
519
 
663
520
  ~SubchannelWrapper() override {
664
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
665
- gpr_log(GPR_INFO,
666
- "chand=%p: destroying subchannel wrapper %p for subchannel %p",
667
- chand_, this, subchannel_.get());
668
- }
669
- if (!IsWorkSerializerDispatchEnabled()) {
521
+ GRPC_TRACE_LOG(client_channel, INFO)
522
+ << "chand=" << chand_ << ": destroying subchannel wrapper " << this
523
+ << "for subchannel " << subchannel_.get();
524
+ GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "SubchannelWrapper");
525
+ }
526
+
527
+ void Orphaned() override {
528
+ // Make sure we clean up the channel's subchannel maps inside the
529
+ // WorkSerializer.
530
+ // Ref held by callback.
531
+ WeakRef(DEBUG_LOCATION, "subchannel map cleanup").release();
532
+ chand_->work_serializer_->Run([this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
533
+ *chand_->work_serializer_) {
670
534
  chand_->subchannel_wrappers_.erase(this);
671
535
  if (chand_->channelz_node_ != nullptr) {
672
536
  auto* subchannel_node = subchannel_->channelz_node();
673
537
  if (subchannel_node != nullptr) {
674
538
  auto it = chand_->subchannel_refcount_map_.find(subchannel_.get());
675
- GPR_ASSERT(it != chand_->subchannel_refcount_map_.end());
539
+ CHECK(it != chand_->subchannel_refcount_map_.end());
676
540
  --it->second;
677
541
  if (it->second == 0) {
678
542
  chand_->channelz_node_->RemoveChildSubchannel(
@@ -681,43 +545,15 @@ class ClientChannelFilter::SubchannelWrapper final
681
545
  }
682
546
  }
683
547
  }
684
- }
685
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "SubchannelWrapper");
686
- }
687
-
688
- void Orphaned() override {
689
- if (!IsWorkSerializerDispatchEnabled()) return;
690
- // Make sure we clean up the channel's subchannel maps inside the
691
- // WorkSerializer.
692
- // Ref held by callback.
693
- WeakRef(DEBUG_LOCATION, "subchannel map cleanup").release();
694
- chand_->work_serializer_->Run(
695
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
696
- chand_->subchannel_wrappers_.erase(this);
697
- if (chand_->channelz_node_ != nullptr) {
698
- auto* subchannel_node = subchannel_->channelz_node();
699
- if (subchannel_node != nullptr) {
700
- auto it =
701
- chand_->subchannel_refcount_map_.find(subchannel_.get());
702
- GPR_ASSERT(it != chand_->subchannel_refcount_map_.end());
703
- --it->second;
704
- if (it->second == 0) {
705
- chand_->channelz_node_->RemoveChildSubchannel(
706
- subchannel_node->uuid());
707
- chand_->subchannel_refcount_map_.erase(it);
708
- }
709
- }
710
- }
711
- WeakUnref(DEBUG_LOCATION, "subchannel map cleanup");
712
- },
713
- DEBUG_LOCATION);
548
+ WeakUnref(DEBUG_LOCATION, "subchannel map cleanup");
549
+ });
714
550
  }
715
551
 
716
552
  void WatchConnectivityState(
717
553
  std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override
718
554
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
719
555
  auto& watcher_wrapper = watcher_map_[watcher.get()];
720
- GPR_ASSERT(watcher_wrapper == nullptr);
556
+ CHECK_EQ(watcher_wrapper, nullptr);
721
557
  watcher_wrapper = new WatcherWrapper(
722
558
  std::move(watcher),
723
559
  RefAsSubclass<SubchannelWrapper>(DEBUG_LOCATION, "WatcherWrapper"));
@@ -729,7 +565,7 @@ class ClientChannelFilter::SubchannelWrapper final
729
565
  void CancelConnectivityStateWatch(ConnectivityStateWatcherInterface* watcher)
730
566
  override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
731
567
  auto it = watcher_map_.find(watcher);
732
- GPR_ASSERT(it != watcher_map_.end());
568
+ CHECK(it != watcher_map_.end());
733
569
  subchannel_->CancelConnectivityStateWatch(it->second);
734
570
  watcher_map_.erase(it);
735
571
  }
@@ -746,7 +582,7 @@ class ClientChannelFilter::SubchannelWrapper final
746
582
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
747
583
  static_cast<InternalSubchannelDataWatcherInterface*>(watcher.get())
748
584
  ->SetSubchannel(subchannel_.get());
749
- GPR_ASSERT(data_watchers_.insert(std::move(watcher)).second);
585
+ CHECK(data_watchers_.insert(std::move(watcher)).second);
750
586
  }
751
587
 
752
588
  void CancelDataWatcher(DataWatcherInterface* watcher) override
@@ -759,6 +595,8 @@ class ClientChannelFilter::SubchannelWrapper final
759
595
  subchannel_->ThrottleKeepaliveTime(new_keepalive_time);
760
596
  }
761
597
 
598
+ std::string address() const override { return subchannel_->address(); }
599
+
762
600
  private:
763
601
  // This wrapper provides a bridge between the internal Subchannel API
764
602
  // and the SubchannelInterface API that we expose to LB policies.
@@ -771,7 +609,7 @@ class ClientChannelFilter::SubchannelWrapper final
771
609
  //
772
610
  // This class handles things like hopping into the WorkSerializer
773
611
  // before passing notifications to the LB policy and propagating
774
- // keepalive information betwen subchannels.
612
+ // keepalive information between subchannels.
775
613
  class WatcherWrapper final
776
614
  : public Subchannel::ConnectivityStateWatcherInterface {
777
615
  public:
@@ -782,36 +620,24 @@ class ClientChannelFilter::SubchannelWrapper final
782
620
  : watcher_(std::move(watcher)), parent_(std::move(parent)) {}
783
621
 
784
622
  ~WatcherWrapper() override {
785
- if (!IsWorkSerializerDispatchEnabled()) {
786
- auto* parent = parent_.release(); // ref owned by lambda
787
- parent->chand_->work_serializer_->Run(
788
- [parent]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
789
- *parent_->chand_->work_serializer_) {
790
- parent->Unref(DEBUG_LOCATION, "WatcherWrapper");
791
- },
792
- DEBUG_LOCATION);
793
- return;
794
- }
795
623
  parent_.reset(DEBUG_LOCATION, "WatcherWrapper");
796
624
  }
797
625
 
798
626
  void OnConnectivityStateChange(
799
627
  RefCountedPtr<ConnectivityStateWatcherInterface> self,
800
628
  grpc_connectivity_state state, const absl::Status& status) override {
801
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
802
- gpr_log(GPR_INFO,
803
- "chand=%p: connectivity change for subchannel wrapper %p "
804
- "subchannel %p; hopping into work_serializer",
805
- parent_->chand_, parent_.get(), parent_->subchannel_.get());
806
- }
629
+ GRPC_TRACE_LOG(client_channel, INFO)
630
+ << "chand=" << parent_->chand_
631
+ << ": connectivity change for subchannel wrapper " << parent_.get()
632
+ << " subchannel " << parent_->subchannel_.get()
633
+ << "hopping into work_serializer";
807
634
  self.release(); // Held by callback.
808
635
  parent_->chand_->work_serializer_->Run(
809
636
  [this, state, status]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
810
637
  *parent_->chand_->work_serializer_) {
811
638
  ApplyUpdateInControlPlaneWorkSerializer(state, status);
812
639
  Unref();
813
- },
814
- DEBUG_LOCATION);
640
+ });
815
641
  }
816
642
 
817
643
  grpc_pollset_set* interested_parties() override {
@@ -822,27 +648,24 @@ class ClientChannelFilter::SubchannelWrapper final
822
648
  void ApplyUpdateInControlPlaneWorkSerializer(grpc_connectivity_state state,
823
649
  const absl::Status& status)
824
650
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*parent_->chand_->work_serializer_) {
825
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
826
- gpr_log(GPR_INFO,
827
- "chand=%p: processing connectivity change in work serializer "
828
- "for subchannel wrapper %p subchannel %p watcher=%p "
829
- "state=%s status=%s",
830
- parent_->chand_, parent_.get(), parent_->subchannel_.get(),
831
- watcher_.get(), ConnectivityStateName(state),
832
- status.ToString().c_str());
833
- }
834
- absl::optional<absl::Cord> keepalive_throttling =
835
- status.GetPayload(kKeepaliveThrottlingKey);
651
+ GRPC_TRACE_LOG(client_channel, INFO)
652
+ << "chand=" << parent_->chand_
653
+ << ": processing connectivity change in work serializer for "
654
+ "subchannel wrapper "
655
+ << parent_.get() << " subchannel " << parent_->subchannel_.get()
656
+ << " watcher=" << watcher_.get()
657
+ << " state=" << ConnectivityStateName(state) << " status=" << status;
658
+ auto keepalive_throttling = status.GetPayload(kKeepaliveThrottlingKey);
836
659
  if (keepalive_throttling.has_value()) {
837
660
  int new_keepalive_time = -1;
838
661
  if (absl::SimpleAtoi(std::string(keepalive_throttling.value()),
839
662
  &new_keepalive_time)) {
840
663
  if (new_keepalive_time > parent_->chand_->keepalive_time_) {
841
664
  parent_->chand_->keepalive_time_ = new_keepalive_time;
842
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
843
- gpr_log(GPR_INFO, "chand=%p: throttling keepalive time to %d",
844
- parent_->chand_, parent_->chand_->keepalive_time_);
845
- }
665
+ GRPC_TRACE_LOG(client_channel, INFO)
666
+ << "chand=" << parent_->chand_
667
+ << ": throttling keepalive time to "
668
+ << parent_->chand_->keepalive_time_;
846
669
  // Propagate the new keepalive time to all subchannels. This is so
847
670
  // that new transports created by any subchannel (and not just the
848
671
  // subchannel that received the GOAWAY), use the new keepalive time.
@@ -852,9 +675,9 @@ class ClientChannelFilter::SubchannelWrapper final
852
675
  }
853
676
  }
854
677
  } else {
855
- gpr_log(GPR_ERROR, "chand=%p: Illegal keepalive throttling value %s",
856
- parent_->chand_,
857
- std::string(keepalive_throttling.value()).c_str());
678
+ LOG(ERROR) << "chand=" << parent_->chand_
679
+ << ": Illegal keepalive throttling value "
680
+ << std::string(keepalive_throttling.value());
858
681
  }
859
682
  }
860
683
  // Propagate status only in state TF.
@@ -922,7 +745,7 @@ ClientChannelFilter::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
922
745
  {
923
746
  MutexLock lock(&chand_->external_watchers_mu_);
924
747
  // Will be deleted when the watch is complete.
925
- GPR_ASSERT(chand->external_watchers_[on_complete] == nullptr);
748
+ CHECK(chand->external_watchers_[on_complete] == nullptr);
926
749
  // Store a ref to the watcher in the external_watchers_ map.
927
750
  chand->external_watchers_[on_complete] =
928
751
  RefAsSubclass<ExternalConnectivityWatcher>(
@@ -933,8 +756,7 @@ ClientChannelFilter::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
933
756
  [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
934
757
  // The ref is passed to AddWatcherLocked().
935
758
  AddWatcherLocked();
936
- },
937
- DEBUG_LOCATION);
759
+ });
938
760
  }
939
761
 
940
762
  ClientChannelFilter::ExternalConnectivityWatcher::
@@ -987,8 +809,7 @@ void ClientChannelFilter::ExternalConnectivityWatcher::Notify(
987
809
  [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
988
810
  RemoveWatcherLocked();
989
811
  Unref(DEBUG_LOCATION, "RemoveWatcherLocked()");
990
- },
991
- DEBUG_LOCATION);
812
+ });
992
813
  }
993
814
  }
994
815
 
@@ -1007,8 +828,7 @@ void ClientChannelFilter::ExternalConnectivityWatcher::Cancel() {
1007
828
  [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1008
829
  RemoveWatcherLocked();
1009
830
  Unref(DEBUG_LOCATION, "RemoveWatcherLocked()");
1010
- },
1011
- DEBUG_LOCATION);
831
+ });
1012
832
  }
1013
833
 
1014
834
  void ClientChannelFilter::ExternalConnectivityWatcher::AddWatcherLocked() {
@@ -1038,8 +858,7 @@ class ClientChannelFilter::ConnectivityWatcherAdder final {
1038
858
  chand_->work_serializer_->Run(
1039
859
  [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1040
860
  AddWatcherLocked();
1041
- },
1042
- DEBUG_LOCATION);
861
+ });
1043
862
  }
1044
863
 
1045
864
  private:
@@ -1068,8 +887,7 @@ class ClientChannelFilter::ConnectivityWatcherRemover final {
1068
887
  chand_->work_serializer_->Run(
1069
888
  [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1070
889
  RemoveWatcherLocked();
1071
- },
1072
- DEBUG_LOCATION);
890
+ });
1073
891
  }
1074
892
 
1075
893
  private:
@@ -1107,7 +925,7 @@ class ClientChannelFilter::ClientChannelControlHelper final
1107
925
  const ChannelArgs& args) override
1108
926
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1109
927
  if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
1110
- ChannelArgs subchannel_args = ClientChannelFilter::MakeSubchannelArgs(
928
+ ChannelArgs subchannel_args = Subchannel::MakeSubchannelArgs(
1111
929
  args, per_address_args, chand_->subchannel_pool_,
1112
930
  chand_->default_authority_);
1113
931
  // Create subchannel.
@@ -1125,14 +943,13 @@ class ClientChannelFilter::ClientChannelControlHelper final
1125
943
  RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker)
1126
944
  override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1127
945
  if (chand_->resolver_ == nullptr) return; // Shutting down.
1128
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1129
- const char* extra = chand_->disconnect_error_.ok()
1130
- ? ""
1131
- : " (ignoring -- channel shutting down)";
1132
- gpr_log(GPR_INFO, "chand=%p: update: state=%s status=(%s) picker=%p%s",
1133
- chand_, ConnectivityStateName(state), status.ToString().c_str(),
1134
- picker.get(), extra);
1135
- }
946
+ GRPC_TRACE_LOG(client_channel, INFO)
947
+ << "chand=" << chand_
948
+ << ": update: state=" << ConnectivityStateName(state) << " status=("
949
+ << status << ") picker=" << picker.get()
950
+ << (chand_->disconnect_error_.ok()
951
+ ? ""
952
+ : " (ignoring -- channel shutting down)");
1136
953
  // Do update only if not shutting down.
1137
954
  if (chand_->disconnect_error_.ok()) {
1138
955
  chand_->UpdateStateAndPickerLocked(state, status, "helper",
@@ -1143,9 +960,8 @@ class ClientChannelFilter::ClientChannelControlHelper final
1143
960
  void RequestReresolution() override
1144
961
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
1145
962
  if (chand_->resolver_ == nullptr) return; // Shutting down.
1146
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1147
- gpr_log(GPR_INFO, "chand=%p: started name re-resolving", chand_);
1148
- }
963
+ GRPC_TRACE_LOG(client_channel, INFO)
964
+ << "chand=" << chand_ << ": started name re-resolving";
1149
965
  chand_->resolver_->RequestReresolutionLocked();
1150
966
  }
1151
967
 
@@ -1200,9 +1016,8 @@ class ClientChannelFilter::ClientChannelControlHelper final
1200
1016
 
1201
1017
  grpc_error_handle ClientChannelFilter::Init(grpc_channel_element* elem,
1202
1018
  grpc_channel_element_args* args) {
1203
- GPR_ASSERT(args->is_last);
1204
- GPR_ASSERT(elem->filter == &kFilterVtableWithPromises ||
1205
- elem->filter == &kFilterVtableWithoutPromises);
1019
+ CHECK(args->is_last);
1020
+ CHECK(elem->filter == &kFilter);
1206
1021
  grpc_error_handle error;
1207
1022
  new (elem->channel_data) ClientChannelFilter(args, &error);
1208
1023
  return error;
@@ -1228,9 +1043,6 @@ RefCountedPtr<SubchannelPoolInterface> GetSubchannelPool(
1228
1043
  ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1229
1044
  grpc_error_handle* error)
1230
1045
  : channel_args_(args->channel_args),
1231
- deadline_checking_enabled_(
1232
- channel_args_.GetBool(GRPC_ARG_ENABLE_DEADLINE_CHECKS)
1233
- .value_or(!channel_args_.WantMinimalStack())),
1234
1046
  owning_stack_(args->channel_stack),
1235
1047
  client_channel_factory_(channel_args_.GetObject<ClientChannelFactory>()),
1236
1048
  channelz_node_(channel_args_.GetObject<channelz::ChannelNode>()),
@@ -1241,10 +1053,9 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1241
1053
  std::make_shared<WorkSerializer>(*args->channel_stack->event_engine)),
1242
1054
  state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
1243
1055
  subchannel_pool_(GetSubchannelPool(channel_args_)) {
1244
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1245
- gpr_log(GPR_INFO, "chand=%p: creating client_channel for channel stack %p",
1246
- this, owning_stack_);
1247
- }
1056
+ GRPC_TRACE_LOG(client_channel, INFO)
1057
+ << "chand=" << this << ": creating client_channel for channel stack "
1058
+ << owning_stack_;
1248
1059
  // Start backup polling.
1249
1060
  grpc_client_channel_start_backup_polling(interested_parties_);
1250
1061
  // Check client channel factory.
@@ -1255,7 +1066,7 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1255
1066
  }
1256
1067
  // Get default service config. If none is specified via the client API,
1257
1068
  // we use an empty config.
1258
- absl::optional<absl::string_view> service_config_json =
1069
+ std::optional<absl::string_view> service_config_json =
1259
1070
  channel_args_.GetString(GRPC_ARG_SERVICE_CONFIG);
1260
1071
  if (!service_config_json.has_value()) service_config_json = "{}";
1261
1072
  *error = absl::OkStatus();
@@ -1267,7 +1078,7 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1267
1078
  }
1268
1079
  default_service_config_ = std::move(*service_config);
1269
1080
  // Get URI to resolve, using proxy mapper if needed.
1270
- absl::optional<std::string> target_uri =
1081
+ std::optional<std::string> target_uri =
1271
1082
  channel_args_.GetOwnedString(GRPC_ARG_SERVER_URI);
1272
1083
  if (!target_uri.has_value()) {
1273
1084
  *error = GRPC_ERROR_CREATE(
@@ -1299,7 +1110,7 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1299
1110
  keepalive_time_ = -1; // unset
1300
1111
  }
1301
1112
  // Set default authority.
1302
- absl::optional<std::string> default_authority =
1113
+ std::optional<std::string> default_authority =
1303
1114
  channel_args_.GetOwnedString(GRPC_ARG_DEFAULT_AUTHORITY);
1304
1115
  if (!default_authority.has_value()) {
1305
1116
  default_authority_ =
@@ -1313,30 +1124,14 @@ ClientChannelFilter::ClientChannelFilter(grpc_channel_element_args* args,
1313
1124
  }
1314
1125
 
1315
1126
  ClientChannelFilter::~ClientChannelFilter() {
1316
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1317
- gpr_log(GPR_INFO, "chand=%p: destroying channel", this);
1318
- }
1127
+ GRPC_TRACE_LOG(client_channel, INFO)
1128
+ << "chand=" << this << ": destroying channel";
1319
1129
  DestroyResolverAndLbPolicyLocked();
1320
1130
  // Stop backup polling.
1321
1131
  grpc_client_channel_stop_backup_polling(interested_parties_);
1322
1132
  grpc_pollset_set_destroy(interested_parties_);
1323
1133
  }
1324
1134
 
1325
- ArenaPromise<ServerMetadataHandle> ClientChannelFilter::MakeCallPromise(
1326
- grpc_channel_element* elem, CallArgs call_args, NextPromiseFactory) {
1327
- auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
1328
- // TODO(roth): Is this the right lifetime story for calld?
1329
- auto* calld = GetContext<Arena>()->ManagedNew<PromiseBasedCallData>(chand);
1330
- return TrySeq(
1331
- // Name resolution.
1332
- calld->MakeNameResolutionPromise(std::move(call_args)),
1333
- // Dynamic filter stack.
1334
- [calld](CallArgs call_args) mutable {
1335
- return calld->dynamic_filters()->channel_stack()->MakeClientCallPromise(
1336
- std::move(call_args));
1337
- });
1338
- }
1339
-
1340
1135
  OrphanablePtr<ClientChannelFilter::FilterBasedLoadBalancedCall>
1341
1136
  ClientChannelFilter::CreateLoadBalancedCall(
1342
1137
  const grpc_call_element_args& args, grpc_polling_entity* pollent,
@@ -1349,42 +1144,6 @@ ClientChannelFilter::CreateLoadBalancedCall(
1349
1144
  std::move(on_commit), is_transparent_retry));
1350
1145
  }
1351
1146
 
1352
- ArenaPromise<ServerMetadataHandle>
1353
- ClientChannelFilter::CreateLoadBalancedCallPromise(
1354
- CallArgs call_args, absl::AnyInvocable<void()> on_commit,
1355
- bool is_transparent_retry) {
1356
- OrphanablePtr<PromiseBasedLoadBalancedCall> lb_call(
1357
- GetContext<Arena>()->New<PromiseBasedLoadBalancedCall>(
1358
- this, std::move(on_commit), is_transparent_retry));
1359
- auto* call_ptr = lb_call.get();
1360
- return call_ptr->MakeCallPromise(std::move(call_args), std::move(lb_call));
1361
- }
1362
-
1363
- ChannelArgs ClientChannelFilter::MakeSubchannelArgs(
1364
- const ChannelArgs& channel_args, const ChannelArgs& address_args,
1365
- const RefCountedPtr<SubchannelPoolInterface>& subchannel_pool,
1366
- const std::string& channel_default_authority) {
1367
- // Note that we start with the channel-level args and then apply the
1368
- // per-address args, so that if a value is present in both, the one
1369
- // in the channel-level args is used. This is particularly important
1370
- // for the GRPC_ARG_DEFAULT_AUTHORITY arg, which we want to allow
1371
- // resolvers to set on a per-address basis only if the application
1372
- // did not explicitly set it at the channel level.
1373
- return channel_args.UnionWith(address_args)
1374
- .SetObject(subchannel_pool)
1375
- // If we haven't already set the default authority arg (i.e., it
1376
- // was not explicitly set by the application nor overridden by
1377
- // the resolver), add it from the channel's default.
1378
- .SetIfUnset(GRPC_ARG_DEFAULT_AUTHORITY, channel_default_authority)
1379
- // Remove channel args that should not affect subchannel
1380
- // uniqueness.
1381
- .Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
1382
- .Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
1383
- .Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
1384
- // Remove all keys with the no-subchannel prefix.
1385
- .RemoveAllKeysWithPrefix(GRPC_ARG_NO_SUBCHANNEL_PREFIX);
1386
- }
1387
-
1388
1147
  void ClientChannelFilter::ReprocessQueuedResolverCalls() {
1389
1148
  for (CallData* calld : resolver_queued_calls_) {
1390
1149
  calld->RemoveCallFromResolverQueuedCallsLocked();
@@ -1404,7 +1163,7 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
1404
1163
  }
1405
1164
  // Try the deprecated LB policy name from the service config.
1406
1165
  // If not, try the setting from channel args.
1407
- absl::optional<absl::string_view> policy_name;
1166
+ std::optional<absl::string_view> policy_name;
1408
1167
  if (!parsed_service_config->parsed_deprecated_lb_policy().empty()) {
1409
1168
  policy_name = parsed_service_config->parsed_deprecated_lb_policy();
1410
1169
  } else {
@@ -1416,15 +1175,13 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
1416
1175
  .LoadBalancingPolicyExists(*policy_name, &requires_config) ||
1417
1176
  requires_config)) {
1418
1177
  if (requires_config) {
1419
- gpr_log(GPR_ERROR,
1420
- "LB policy: %s passed through channel_args must not "
1421
- "require a config. Using pick_first instead.",
1422
- std::string(*policy_name).c_str());
1178
+ LOG(ERROR) << "LB policy: " << *policy_name
1179
+ << " passed through channel_args must not "
1180
+ "require a config. Using pick_first instead.";
1423
1181
  } else {
1424
- gpr_log(GPR_ERROR,
1425
- "LB policy: %s passed through channel_args does not exist. "
1426
- "Using pick_first instead.",
1427
- std::string(*policy_name).c_str());
1182
+ LOG(ERROR) << "LB policy: " << *policy_name
1183
+ << " passed through channel_args does not exist. "
1184
+ "Using pick_first instead.";
1428
1185
  }
1429
1186
  policy_name = "pick_first";
1430
1187
  }
@@ -1448,7 +1205,7 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
1448
1205
  // - A channel arg, in which case we check that the specified policy exists
1449
1206
  // and accepts an empty config. If not, we revert to using pick_first
1450
1207
  // lb_policy
1451
- GPR_ASSERT(lb_policy_config.ok());
1208
+ CHECK(lb_policy_config.ok());
1452
1209
  return std::move(*lb_policy_config);
1453
1210
  }
1454
1211
 
@@ -1458,9 +1215,8 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1458
1215
  Resolver::Result result) {
1459
1216
  // Handle race conditions.
1460
1217
  if (resolver_ == nullptr) return;
1461
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1462
- gpr_log(GPR_INFO, "chand=%p: got resolver result", this);
1463
- }
1218
+ GRPC_TRACE_LOG(client_channel, INFO)
1219
+ << "chand=" << this << ": got resolver result";
1464
1220
  // Grab resolver result health callback.
1465
1221
  auto resolver_callback = std::move(result.result_health_callback);
1466
1222
  absl::Status resolver_result_status;
@@ -1494,19 +1250,16 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1494
1250
  RefCountedPtr<ServiceConfig> service_config;
1495
1251
  RefCountedPtr<ConfigSelector> config_selector;
1496
1252
  if (!result.service_config.ok()) {
1497
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1498
- gpr_log(GPR_INFO, "chand=%p: resolver returned service config error: %s",
1499
- this, result.service_config.status().ToString().c_str());
1500
- }
1253
+ GRPC_TRACE_LOG(client_channel, INFO)
1254
+ << "chand=" << this << ": resolver returned service config error: "
1255
+ << result.service_config.status();
1501
1256
  // If the service config was invalid, then fallback to the
1502
1257
  // previously returned service config.
1503
1258
  if (saved_service_config_ != nullptr) {
1504
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1505
- gpr_log(GPR_INFO,
1506
- "chand=%p: resolver returned invalid service config. "
1507
- "Continuing to use previous service config.",
1508
- this);
1509
- }
1259
+ GRPC_TRACE_LOG(client_channel, INFO)
1260
+ << "chand=" << this
1261
+ << ": resolver returned invalid service config. "
1262
+ "Continuing to use previous service config.";
1510
1263
  service_config = saved_service_config_;
1511
1264
  config_selector = saved_config_selector_;
1512
1265
  } else {
@@ -1520,18 +1273,20 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1520
1273
  }
1521
1274
  } else if (*result.service_config == nullptr) {
1522
1275
  // Resolver did not return any service config.
1523
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1524
- gpr_log(GPR_INFO,
1525
- "chand=%p: resolver returned no service config. Using default "
1526
- "service config for channel.",
1527
- this);
1528
- }
1276
+ GRPC_TRACE_LOG(client_channel, INFO)
1277
+ << "chand=" << this
1278
+ << ": resolver returned no service config. Using default service "
1279
+ "config for channel.";
1529
1280
  service_config = default_service_config_;
1530
1281
  } else {
1531
1282
  // Use ServiceConfig and ConfigSelector returned by resolver.
1532
1283
  service_config = std::move(*result.service_config);
1533
1284
  config_selector = result.args.GetObjectRef<ConfigSelector>();
1534
1285
  }
1286
+ // Remove the config selector from channel args so that we're not holding
1287
+ // unnecessary refs that cause it to be destroyed somewhere other than in the
1288
+ // WorkSerializer.
1289
+ result.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1535
1290
  // Note: The only case in which service_config is null here is if the resolver
1536
1291
  // returned a service config error and we don't have a previous service
1537
1292
  // config to fall back to.
@@ -1557,10 +1312,12 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1557
1312
  UpdateServiceConfigInControlPlaneLocked(
1558
1313
  std::move(service_config), std::move(config_selector),
1559
1314
  std::string(lb_policy_config->name()));
1560
- } else if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1561
- gpr_log(GPR_INFO, "chand=%p: service config not changed", this);
1315
+ } else {
1316
+ GRPC_TRACE_LOG(client_channel, INFO)
1317
+ << "chand=" << this << ": service config not changed";
1562
1318
  }
1563
1319
  // Create or update LB policy, as needed.
1320
+ ChannelArgs new_args = result.args;
1564
1321
  resolver_result_status = CreateOrUpdateLbPolicyLocked(
1565
1322
  std::move(lb_policy_config),
1566
1323
  parsed_service_config->health_check_service_name(), std::move(result));
@@ -1569,7 +1326,7 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1569
1326
  // This needs to happen after the LB policy has been updated, since
1570
1327
  // the ConfigSelector may need the LB policy to know about new
1571
1328
  // destinations before it can send RPCs to those destinations.
1572
- UpdateServiceConfigInDataPlaneLocked();
1329
+ UpdateServiceConfigInDataPlaneLocked(new_args);
1573
1330
  // TODO(ncteisen): might be worth somehow including a snippet of the
1574
1331
  // config in the trace, at the risk of bloating the trace logs.
1575
1332
  trace_strings.push_back("Service config changed");
@@ -1592,10 +1349,8 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1592
1349
 
1593
1350
  void ClientChannelFilter::OnResolverErrorLocked(absl::Status status) {
1594
1351
  if (resolver_ == nullptr) return;
1595
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1596
- gpr_log(GPR_INFO, "chand=%p: resolver transient failure: %s", this,
1597
- status.ToString().c_str());
1598
- }
1352
+ GRPC_TRACE_LOG(client_channel, INFO)
1353
+ << "chand=" << this << ": resolver transient failure: " << status;
1599
1354
  // If we already have an LB policy from a previous resolution
1600
1355
  // result, then we continue to let it set the connectivity state.
1601
1356
  // Otherwise, we go into TRANSIENT_FAILURE.
@@ -1615,7 +1370,7 @@ void ClientChannelFilter::OnResolverErrorLocked(absl::Status status) {
1615
1370
 
1616
1371
  absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
1617
1372
  RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config,
1618
- const absl::optional<std::string>& health_check_service_name,
1373
+ const std::optional<std::string>& health_check_service_name,
1619
1374
  Resolver::Result result) {
1620
1375
  // Construct update.
1621
1376
  LoadBalancingPolicy::UpdateArgs update_args;
@@ -1627,10 +1382,7 @@ absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
1627
1382
  }
1628
1383
  update_args.config = std::move(lb_policy_config);
1629
1384
  update_args.resolution_note = std::move(result.resolution_note);
1630
- // Remove the config selector from channel args so that we're not holding
1631
- // unnecessary refs that cause it to be destroyed somewhere other than in the
1632
- // WorkSerializer.
1633
- update_args.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1385
+ update_args.args = std::move(result.args);
1634
1386
  // Add health check service name to channel args.
1635
1387
  if (health_check_service_name.has_value()) {
1636
1388
  update_args.args = update_args.args.Set(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME,
@@ -1641,10 +1393,8 @@ absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
1641
1393
  lb_policy_ = CreateLbPolicyLocked(update_args.args);
1642
1394
  }
1643
1395
  // Update the policy.
1644
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1645
- gpr_log(GPR_INFO, "chand=%p: Updating child policy %p", this,
1646
- lb_policy_.get());
1647
- }
1396
+ GRPC_TRACE_LOG(client_channel, INFO)
1397
+ << "chand=" << this << ": Updating child policy " << lb_policy_.get();
1648
1398
  return lb_policy_->UpdateLocked(std::move(update_args));
1649
1399
  }
1650
1400
 
@@ -1666,11 +1416,9 @@ OrphanablePtr<LoadBalancingPolicy> ClientChannelFilter::CreateLbPolicyLocked(
1666
1416
  lb_policy_args.args = args;
1667
1417
  OrphanablePtr<LoadBalancingPolicy> lb_policy =
1668
1418
  MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
1669
- &grpc_client_channel_trace);
1670
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1671
- gpr_log(GPR_INFO, "chand=%p: created new LB policy %p", this,
1672
- lb_policy.get());
1673
- }
1419
+ &client_channel_trace);
1420
+ GRPC_TRACE_LOG(client_channel, INFO)
1421
+ << "chand=" << this << ": created new LB policy " << lb_policy.get();
1674
1422
  grpc_pollset_set_add_pollset_set(lb_policy->interested_parties(),
1675
1423
  interested_parties_);
1676
1424
  return lb_policy;
@@ -1680,10 +1428,9 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked(
1680
1428
  RefCountedPtr<ServiceConfig> service_config,
1681
1429
  RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name) {
1682
1430
  std::string service_config_json(service_config->json_string());
1683
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1684
- gpr_log(GPR_INFO, "chand=%p: using service config: \"%s\"", this,
1685
- service_config_json.c_str());
1686
- }
1431
+ GRPC_TRACE_LOG(client_channel, INFO)
1432
+ << "chand=" << this << ": using service config: \"" << service_config_json
1433
+ << "\"";
1687
1434
  // Save service config.
1688
1435
  saved_service_config_ = std::move(service_config);
1689
1436
  // Swap out the data used by GetChannelInfo().
@@ -1694,27 +1441,26 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked(
1694
1441
  }
1695
1442
  // Save config selector.
1696
1443
  saved_config_selector_ = std::move(config_selector);
1697
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1698
- gpr_log(GPR_INFO, "chand=%p: using ConfigSelector %p", this,
1699
- saved_config_selector_.get());
1700
- }
1444
+ GRPC_TRACE_LOG(client_channel, INFO)
1445
+ << "chand=" << this << ": using ConfigSelector "
1446
+ << saved_config_selector_.get();
1701
1447
  }
1702
1448
 
1703
- void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
1449
+ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked(
1450
+ const ChannelArgs& args) {
1704
1451
  // Grab ref to service config.
1705
1452
  RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
1706
1453
  // Grab ref to config selector. Use default if resolver didn't supply one.
1707
1454
  RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
1708
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1709
- gpr_log(GPR_INFO, "chand=%p: switching to ConfigSelector %p", this,
1710
- saved_config_selector_.get());
1711
- }
1455
+ GRPC_TRACE_LOG(client_channel, INFO)
1456
+ << "chand=" << this << ": switching to ConfigSelector "
1457
+ << saved_config_selector_.get();
1712
1458
  if (config_selector == nullptr) {
1713
1459
  config_selector =
1714
1460
  MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
1715
1461
  }
1716
- ChannelArgs new_args =
1717
- channel_args_.SetObject(this).SetObject(service_config);
1462
+ // Modify channel args.
1463
+ ChannelArgs new_args = args.SetObject(this).SetObject(service_config);
1718
1464
  bool enable_retries =
1719
1465
  !new_args.WantMinimalStack() &&
1720
1466
  new_args.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true);
@@ -1726,9 +1472,11 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
1726
1472
  } else {
1727
1473
  filters.push_back(&DynamicTerminationFilter::kFilterVtable);
1728
1474
  }
1729
- RefCountedPtr<DynamicFilters> dynamic_filters =
1730
- DynamicFilters::Create(new_args, std::move(filters));
1731
- GPR_ASSERT(dynamic_filters != nullptr);
1475
+ auto new_blackboard = MakeRefCounted<Blackboard>();
1476
+ RefCountedPtr<DynamicFilters> dynamic_filters = DynamicFilters::Create(
1477
+ new_args, std::move(filters), blackboard_.get(), new_blackboard.get());
1478
+ CHECK(dynamic_filters != nullptr);
1479
+ blackboard_ = std::move(new_blackboard);
1732
1480
  // Grab data plane lock to update service config.
1733
1481
  //
1734
1482
  // We defer unreffing the old values (and deallocating memory) until
@@ -1750,30 +1498,26 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
1750
1498
  }
1751
1499
 
1752
1500
  void ClientChannelFilter::CreateResolverLocked() {
1753
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1754
- gpr_log(GPR_INFO, "chand=%p: starting name resolution for %s", this,
1755
- uri_to_resolve_.c_str());
1756
- }
1501
+ GRPC_TRACE_LOG(client_channel, INFO)
1502
+ << "chand=" << this << ": starting name resolution for "
1503
+ << uri_to_resolve_;
1757
1504
  resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
1758
1505
  uri_to_resolve_, channel_args_, interested_parties_, work_serializer_,
1759
1506
  std::make_unique<ResolverResultHandler>(this));
1760
1507
  // Since the validity of the args was checked when the channel was created,
1761
1508
  // CreateResolver() must return a non-null result.
1762
- GPR_ASSERT(resolver_ != nullptr);
1509
+ CHECK(resolver_ != nullptr);
1763
1510
  UpdateStateLocked(GRPC_CHANNEL_CONNECTING, absl::Status(),
1764
1511
  "started resolving");
1765
1512
  resolver_->StartLocked();
1766
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1767
- gpr_log(GPR_INFO, "chand=%p: created resolver=%p", this, resolver_.get());
1768
- }
1513
+ GRPC_TRACE_LOG(client_channel, INFO)
1514
+ << "chand=" << this << ": created resolver=" << resolver_.get();
1769
1515
  }
1770
1516
 
1771
1517
  void ClientChannelFilter::DestroyResolverAndLbPolicyLocked() {
1772
1518
  if (resolver_ != nullptr) {
1773
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1774
- gpr_log(GPR_INFO, "chand=%p: shutting down resolver=%p", this,
1775
- resolver_.get());
1776
- }
1519
+ GRPC_TRACE_LOG(client_channel, INFO)
1520
+ << "chand=" << this << ": shutting down resolver=" << resolver_.get();
1777
1521
  resolver_.reset();
1778
1522
  // Clear resolution state.
1779
1523
  saved_service_config_.reset();
@@ -1793,10 +1537,9 @@ void ClientChannelFilter::DestroyResolverAndLbPolicyLocked() {
1793
1537
  }
1794
1538
  // Clear LB policy if set.
1795
1539
  if (lb_policy_ != nullptr) {
1796
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1797
- gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
1798
- lb_policy_.get());
1799
- }
1540
+ GRPC_TRACE_LOG(client_channel, INFO)
1541
+ << "chand=" << this
1542
+ << ": shutting down lb_policy=" << lb_policy_.get();
1800
1543
  grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
1801
1544
  interested_parties_);
1802
1545
  lb_policy_.reset();
@@ -1842,7 +1585,7 @@ void ClientChannelFilter::UpdateStateAndPickerLocked(
1842
1585
 
1843
1586
  namespace {
1844
1587
 
1845
- // TODO(roth): Remove this in favor of the gprpp Match() function once
1588
+ // TODO(roth): Remove this in favor of src/core/util/match.h once
1846
1589
  // we can do that without breaking lock annotations.
1847
1590
  template <typename T>
1848
1591
  T HandlePickResult(
@@ -1852,23 +1595,23 @@ T HandlePickResult(
1852
1595
  std::function<T(LoadBalancingPolicy::PickResult::Fail*)> fail_func,
1853
1596
  std::function<T(LoadBalancingPolicy::PickResult::Drop*)> drop_func) {
1854
1597
  auto* complete_pick =
1855
- absl::get_if<LoadBalancingPolicy::PickResult::Complete>(&result->result);
1598
+ std::get_if<LoadBalancingPolicy::PickResult::Complete>(&result->result);
1856
1599
  if (complete_pick != nullptr) {
1857
1600
  return complete_func(complete_pick);
1858
1601
  }
1859
1602
  auto* queue_pick =
1860
- absl::get_if<LoadBalancingPolicy::PickResult::Queue>(&result->result);
1603
+ std::get_if<LoadBalancingPolicy::PickResult::Queue>(&result->result);
1861
1604
  if (queue_pick != nullptr) {
1862
1605
  return queue_func(queue_pick);
1863
1606
  }
1864
1607
  auto* fail_pick =
1865
- absl::get_if<LoadBalancingPolicy::PickResult::Fail>(&result->result);
1608
+ std::get_if<LoadBalancingPolicy::PickResult::Fail>(&result->result);
1866
1609
  if (fail_pick != nullptr) {
1867
1610
  return fail_func(fail_pick);
1868
1611
  }
1869
1612
  auto* drop_pick =
1870
- absl::get_if<LoadBalancingPolicy::PickResult::Drop>(&result->result);
1871
- GPR_ASSERT(drop_pick != nullptr);
1613
+ std::get_if<LoadBalancingPolicy::PickResult::Drop>(&result->result);
1614
+ CHECK_NE(drop_pick, nullptr);
1872
1615
  return drop_func(drop_pick);
1873
1616
  }
1874
1617
 
@@ -1942,10 +1685,9 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
1942
1685
  }
1943
1686
  // Disconnect or enter IDLE.
1944
1687
  if (!op->disconnect_with_error.ok()) {
1945
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1946
- gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s", this,
1947
- StatusToString(op->disconnect_with_error).c_str());
1948
- }
1688
+ GRPC_TRACE_LOG(client_channel, INFO)
1689
+ << "chand=" << this << ": disconnect_with_error: "
1690
+ << StatusToString(op->disconnect_with_error);
1949
1691
  DestroyResolverAndLbPolicyLocked();
1950
1692
  intptr_t value;
1951
1693
  if (grpc_error_get_int(op->disconnect_with_error,
@@ -1962,7 +1704,7 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
1962
1704
  }
1963
1705
  } else {
1964
1706
  // Disconnect.
1965
- GPR_ASSERT(disconnect_error_.ok());
1707
+ CHECK(disconnect_error_.ok());
1966
1708
  disconnect_error_ = op->disconnect_with_error;
1967
1709
  UpdateStateAndPickerLocked(
1968
1710
  GRPC_CHANNEL_SHUTDOWN, absl::Status(), "shutdown from API",
@@ -1980,7 +1722,7 @@ void ClientChannelFilter::StartTransportOpLocked(grpc_transport_op* op) {
1980
1722
  void ClientChannelFilter::StartTransportOp(grpc_channel_element* elem,
1981
1723
  grpc_transport_op* op) {
1982
1724
  auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
1983
- GPR_ASSERT(op->set_accept_stream == false);
1725
+ CHECK(op->set_accept_stream == false);
1984
1726
  // Handle bind_pollset.
1985
1727
  if (op->bind_pollset != nullptr) {
1986
1728
  grpc_pollset_set_add_pollset(chand->interested_parties_, op->bind_pollset);
@@ -1990,8 +1732,7 @@ void ClientChannelFilter::StartTransportOp(grpc_channel_element* elem,
1990
1732
  chand->work_serializer_->Run(
1991
1733
  [chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
1992
1734
  chand->StartTransportOpLocked(op);
1993
- },
1994
- DEBUG_LOCATION);
1735
+ });
1995
1736
  }
1996
1737
 
1997
1738
  void ClientChannelFilter::GetChannelInfo(grpc_channel_element* elem,
@@ -2028,8 +1769,7 @@ grpc_connectivity_state ClientChannelFilter::CheckConnectivityState(
2028
1769
  if (out == GRPC_CHANNEL_IDLE && try_to_connect) {
2029
1770
  GRPC_CHANNEL_STACK_REF(owning_stack_, "TryToConnect");
2030
1771
  work_serializer_->Run([this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
2031
- *work_serializer_) { TryToConnectLocked(); },
2032
- DEBUG_LOCATION);
1772
+ *work_serializer_) { TryToConnectLocked(); });
2033
1773
  }
2034
1774
  return out;
2035
1775
  }
@@ -2050,11 +1790,9 @@ void ClientChannelFilter::RemoveConnectivityWatcher(
2050
1790
  //
2051
1791
 
2052
1792
  void ClientChannelFilter::CallData::RemoveCallFromResolverQueuedCallsLocked() {
2053
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2054
- gpr_log(GPR_INFO,
2055
- "chand=%p calld=%p: removing from resolver queued picks list",
2056
- chand(), this);
2057
- }
1793
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1794
+ << "chand=" << chand() << " calld=" << this
1795
+ << ": removing from resolver queued picks list";
2058
1796
  // Remove call's pollent from channel's interested_parties.
2059
1797
  grpc_polling_entity_del_from_pollset_set(pollent(),
2060
1798
  chand()->interested_parties_);
@@ -2065,12 +1803,10 @@ void ClientChannelFilter::CallData::RemoveCallFromResolverQueuedCallsLocked() {
2065
1803
  }
2066
1804
 
2067
1805
  void ClientChannelFilter::CallData::AddCallToResolverQueuedCallsLocked() {
2068
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2069
- gpr_log(
2070
- GPR_INFO,
2071
- "chand=%p calld=%p: adding to resolver queued picks list; pollent=%s",
2072
- chand(), this, grpc_polling_entity_string(pollent()).c_str());
2073
- }
1806
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1807
+ << "chand=" << chand() << " calld=" << this
1808
+ << ": adding to resolver queued picks list; pollent="
1809
+ << grpc_polling_entity_string(pollent());
2074
1810
  // Add call's pollent to channel's interested_parties, so that I/O
2075
1811
  // can be done under the call's CQ.
2076
1812
  grpc_polling_entity_add_to_pollset_set(pollent(),
@@ -2082,10 +1818,9 @@ void ClientChannelFilter::CallData::AddCallToResolverQueuedCallsLocked() {
2082
1818
 
2083
1819
  grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
2084
1820
  const absl::StatusOr<RefCountedPtr<ConfigSelector>>& config_selector) {
2085
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2086
- gpr_log(GPR_INFO, "chand=%p calld=%p: applying service config to call",
2087
- chand(), this);
2088
- }
1821
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1822
+ << "chand=" << chand() << " calld=" << this
1823
+ << ": applying service config to call";
2089
1824
  if (!config_selector.ok()) return config_selector.status();
2090
1825
  // Create a ClientChannelServiceConfigCallData for the call. This stores
2091
1826
  // a ref to the ServiceConfig and caches the right set of parsed configs
@@ -2093,7 +1828,7 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
2093
1828
  // itself in the call context, so that it can be accessed by filters
2094
1829
  // below us in the stack, and it will be cleaned up when the call ends.
2095
1830
  auto* service_config_call_data =
2096
- arena()->New<ClientChannelServiceConfigCallData>(arena(), call_context());
1831
+ arena()->New<ClientChannelServiceConfigCallData>(arena());
2097
1832
  // Use the ConfigSelector to determine the config for the call.
2098
1833
  absl::Status call_config_status =
2099
1834
  (*config_selector)
@@ -2110,8 +1845,7 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
2110
1845
  if (method_params != nullptr) {
2111
1846
  // If the deadline from the service config is shorter than the one
2112
1847
  // from the client API, reset the deadline timer.
2113
- if (chand()->deadline_checking_enabled_ &&
2114
- method_params->timeout() != Duration::Zero()) {
1848
+ if (method_params->timeout() != Duration::Zero()) {
2115
1849
  ResetDeadline(method_params->timeout());
2116
1850
  }
2117
1851
  // If the service config set wait_for_ready and the application
@@ -2126,7 +1860,7 @@ grpc_error_handle ClientChannelFilter::CallData::ApplyServiceConfigToCallLocked(
2126
1860
  return absl::OkStatus();
2127
1861
  }
2128
1862
 
2129
- absl::optional<absl::Status> ClientChannelFilter::CallData::CheckResolution(
1863
+ std::optional<absl::Status> ClientChannelFilter::CallData::CheckResolution(
2130
1864
  bool was_queued) {
2131
1865
  // Check if we have a resolver result to use.
2132
1866
  absl::StatusOr<RefCountedPtr<ConfigSelector>> config_selector;
@@ -2136,32 +1870,21 @@ absl::optional<absl::Status> ClientChannelFilter::CallData::CheckResolution(
2136
1870
  // If no result is available, queue the call.
2137
1871
  if (!result_ready) {
2138
1872
  AddCallToResolverQueuedCallsLocked();
2139
- return absl::nullopt;
1873
+ return std::nullopt;
2140
1874
  }
2141
1875
  }
2142
1876
  // We have a result. Apply service config to call.
2143
1877
  grpc_error_handle error = ApplyServiceConfigToCallLocked(config_selector);
2144
- // ConfigSelector must be unreffed inside the WorkSerializer.
2145
- if (!IsWorkSerializerDispatchEnabled() && config_selector.ok()) {
2146
- chand()->work_serializer_->Run(
2147
- [config_selector = std::move(*config_selector)]() mutable {
2148
- config_selector.reset();
2149
- },
2150
- DEBUG_LOCATION);
2151
- }
2152
1878
  // Handle errors.
2153
1879
  if (!error.ok()) {
2154
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2155
- gpr_log(GPR_INFO,
2156
- "chand=%p calld=%p: error applying config to call: error=%s",
2157
- chand(), this, StatusToString(error).c_str());
2158
- }
1880
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1881
+ << "chand=" << chand() << " calld=" << this
1882
+ << ": error applying config to call: error=" << StatusToString(error);
2159
1883
  return error;
2160
1884
  }
2161
1885
  // If the call was queued, add trace annotation.
2162
1886
  if (was_queued) {
2163
- auto* call_tracer = static_cast<CallTracerAnnotationInterface*>(
2164
- call_context()[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value);
1887
+ auto* call_tracer = arena()->GetContext<CallTracerAnnotationInterface>();
2165
1888
  if (call_tracer != nullptr) {
2166
1889
  call_tracer->RecordAnnotation("Delayed name resolution complete.");
2167
1890
  }
@@ -2179,20 +1902,18 @@ bool ClientChannelFilter::CallData::CheckResolutionLocked(
2179
1902
  absl::Status resolver_error = chand()->resolver_transient_failure_error_;
2180
1903
  if (!resolver_error.ok() &&
2181
1904
  !send_initial_metadata()->GetOrCreatePointer(WaitForReady())->value) {
2182
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2183
- gpr_log(GPR_INFO, "chand=%p calld=%p: resolution failed, failing call",
2184
- chand(), this);
2185
- }
1905
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1906
+ << "chand=" << chand() << " calld=" << this
1907
+ << ": resolution failed, failing call";
2186
1908
  *config_selector = absl_status_to_grpc_error(resolver_error);
2187
1909
  return true;
2188
1910
  }
2189
1911
  // Either the resolver has not yet returned a result, or it has
2190
1912
  // returned transient failure but the call is wait_for_ready. In
2191
1913
  // either case, queue the call.
2192
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2193
- gpr_log(GPR_INFO, "chand=%p calld=%p: no resolver result yet", chand(),
2194
- this);
2195
- }
1914
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1915
+ << "chand=" << chand() << " calld=" << this
1916
+ << ": no resolver result yet";
2196
1917
  return false;
2197
1918
  }
2198
1919
  // Result found.
@@ -2208,25 +1929,21 @@ bool ClientChannelFilter::CallData::CheckResolutionLocked(
2208
1929
  ClientChannelFilter::FilterBasedCallData::FilterBasedCallData(
2209
1930
  grpc_call_element* elem, const grpc_call_element_args& args)
2210
1931
  : path_(CSliceRef(args.path)),
2211
- call_context_(args.context),
2212
1932
  call_start_time_(args.start_time),
2213
1933
  deadline_(args.deadline),
2214
- deadline_state_(
2215
- elem, args,
2216
- GPR_LIKELY(static_cast<ClientChannelFilter*>(elem->channel_data)
2217
- ->deadline_checking_enabled_)
2218
- ? args.deadline
2219
- : Timestamp::InfFuture()) {
2220
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2221
- gpr_log(GPR_INFO, "chand=%p calld=%p: created call", chand(), this);
2222
- }
1934
+ arena_(args.arena),
1935
+ elem_(elem),
1936
+ owning_call_(args.call_stack),
1937
+ call_combiner_(args.call_combiner) {
1938
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1939
+ << "chand=" << chand() << " calld=" << this << ": created call";
2223
1940
  }
2224
1941
 
2225
1942
  ClientChannelFilter::FilterBasedCallData::~FilterBasedCallData() {
2226
1943
  CSliceUnref(path_);
2227
1944
  // Make sure there are no remaining pending batches.
2228
1945
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2229
- GPR_ASSERT(pending_batches_[i] == nullptr);
1946
+ CHECK_EQ(pending_batches_[i], nullptr);
2230
1947
  }
2231
1948
  }
2232
1949
 
@@ -2255,14 +1972,11 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
2255
1972
  grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
2256
1973
  auto* calld = static_cast<FilterBasedCallData*>(elem->call_data);
2257
1974
  auto* chand = static_cast<ClientChannelFilter*>(elem->channel_data);
2258
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace) &&
2259
- !GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
2260
- gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from above: %s", chand,
2261
- calld, grpc_transport_stream_op_batch_string(batch, false).c_str());
2262
- }
2263
- if (GPR_LIKELY(chand->deadline_checking_enabled_)) {
2264
- grpc_deadline_state_client_start_transport_stream_op_batch(
2265
- &calld->deadline_state_, batch);
1975
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_call) &&
1976
+ !GRPC_TRACE_FLAG_ENABLED(channel)) {
1977
+ LOG(INFO) << "chand=" << chand << " calld=" << calld
1978
+ << ": batch started from above: "
1979
+ << grpc_transport_stream_op_batch_string(batch, false);
2266
1980
  }
2267
1981
  // Intercept recv_trailing_metadata to commit the call, in case we wind up
2268
1982
  // failing the call before we get down to the retry or LB call layer.
@@ -2279,10 +1993,9 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
2279
1993
  // Note that once we have done so, we do not need to acquire the channel's
2280
1994
  // resolution mutex, which is more efficient (especially for streaming calls).
2281
1995
  if (calld->dynamic_call_ != nullptr) {
2282
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2283
- gpr_log(GPR_INFO, "chand=%p calld=%p: starting batch on dynamic_call=%p",
2284
- chand, calld, calld->dynamic_call_.get());
2285
- }
1996
+ GRPC_TRACE_LOG(client_channel_call, INFO)
1997
+ << "chand=" << chand << " calld=" << calld
1998
+ << ": starting batch on dynamic_call=" << calld->dynamic_call_.get();
2286
1999
  calld->dynamic_call_->StartTransportStreamOpBatch(batch);
2287
2000
  return;
2288
2001
  }
@@ -2290,10 +2003,10 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
2290
2003
  //
2291
2004
  // If we've previously been cancelled, immediately fail any new batches.
2292
2005
  if (GPR_UNLIKELY(!calld->cancel_error_.ok())) {
2293
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2294
- gpr_log(GPR_INFO, "chand=%p calld=%p: failing batch with error: %s",
2295
- chand, calld, StatusToString(calld->cancel_error_).c_str());
2296
- }
2006
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2007
+ << "chand=" << chand << " calld=" << calld
2008
+ << ": failing batch with error: "
2009
+ << StatusToString(calld->cancel_error_);
2297
2010
  // Note: This will release the call combiner.
2298
2011
  grpc_transport_stream_op_batch_finish_with_failure(
2299
2012
  batch, calld->cancel_error_, calld->call_combiner());
@@ -2307,10 +2020,9 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
2307
2020
  // is in the past when the call starts), we can return the right
2308
2021
  // error to the caller when the first batch does get passed down.
2309
2022
  calld->cancel_error_ = batch->payload->cancel_stream.cancel_error;
2310
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2311
- gpr_log(GPR_INFO, "chand=%p calld=%p: recording cancel_error=%s", chand,
2312
- calld, StatusToString(calld->cancel_error_).c_str());
2313
- }
2023
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2024
+ << "chand=" << chand << " calld=" << calld
2025
+ << ": recording cancel_error=" << StatusToString(calld->cancel_error_);
2314
2026
  // Fail all pending batches.
2315
2027
  calld->PendingBatchesFail(calld->cancel_error_, NoYieldCallCombiner);
2316
2028
  // Note: This will release the call combiner.
@@ -2324,36 +2036,29 @@ void ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(
2324
2036
  // channel's resolution mutex to apply the service config to the call,
2325
2037
  // after which we will create a dynamic call.
2326
2038
  if (GPR_LIKELY(batch->send_initial_metadata)) {
2327
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2328
- gpr_log(GPR_INFO,
2329
- "chand=%p calld=%p: grabbing resolution mutex to apply service "
2330
- "config",
2331
- chand, calld);
2332
- }
2039
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2040
+ << "chand=" << chand << " calld=" << calld
2041
+ << ": grabbing resolution mutex to apply service ";
2333
2042
  // If we're still in IDLE, we need to start resolving.
2334
2043
  if (GPR_UNLIKELY(chand->CheckConnectivityState(false) ==
2335
2044
  GRPC_CHANNEL_IDLE)) {
2336
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2337
- gpr_log(GPR_INFO, "chand=%p calld=%p: triggering exit idle", chand,
2338
- calld);
2339
- }
2045
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2046
+ << "chand=" << chand << " calld=" << calld
2047
+ << ": triggering exit idle";
2340
2048
  // Bounce into the control plane work serializer to start resolving.
2341
2049
  GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "ExitIdle");
2342
2050
  chand->work_serializer_->Run(
2343
2051
  [chand]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
2344
2052
  chand->CheckConnectivityState(/*try_to_connect=*/true);
2345
2053
  GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_, "ExitIdle");
2346
- },
2347
- DEBUG_LOCATION);
2054
+ });
2348
2055
  }
2349
2056
  calld->TryCheckResolution(/*was_queued=*/false);
2350
2057
  } else {
2351
2058
  // For all other batches, release the call combiner.
2352
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2353
- gpr_log(GPR_INFO,
2354
- "chand=%p calld=%p: saved batch, yielding call combiner", chand,
2355
- calld);
2356
- }
2059
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2060
+ << "chand=" << chand << " calld=" << calld
2061
+ << ": saved batch, yielding call combiner";
2357
2062
  GRPC_CALL_COMBINER_STOP(calld->call_combiner(),
2358
2063
  "batch does not include send_initial_metadata");
2359
2064
  }
@@ -2382,13 +2087,11 @@ size_t ClientChannelFilter::FilterBasedCallData::GetBatchIndex(
2382
2087
  void ClientChannelFilter::FilterBasedCallData::PendingBatchesAdd(
2383
2088
  grpc_transport_stream_op_batch* batch) {
2384
2089
  const size_t idx = GetBatchIndex(batch);
2385
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2386
- gpr_log(GPR_INFO,
2387
- "chand=%p calld=%p: adding pending batch at index %" PRIuPTR,
2388
- chand(), this, idx);
2389
- }
2090
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2091
+ << "chand=" << chand() << " calld=" << this
2092
+ << ": adding pending batch at index " << idx;
2390
2093
  grpc_transport_stream_op_batch*& pending = pending_batches_[idx];
2391
- GPR_ASSERT(pending == nullptr);
2094
+ CHECK_EQ(pending, nullptr);
2392
2095
  pending = batch;
2393
2096
  }
2394
2097
 
@@ -2408,15 +2111,14 @@ void ClientChannelFilter::FilterBasedCallData::FailPendingBatchInCallCombiner(
2408
2111
  void ClientChannelFilter::FilterBasedCallData::PendingBatchesFail(
2409
2112
  grpc_error_handle error,
2410
2113
  YieldCallCombinerPredicate yield_call_combiner_predicate) {
2411
- GPR_ASSERT(!error.ok());
2412
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2114
+ CHECK(!error.ok());
2115
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_call)) {
2413
2116
  size_t num_batches = 0;
2414
2117
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2415
2118
  if (pending_batches_[i] != nullptr) ++num_batches;
2416
2119
  }
2417
- gpr_log(GPR_INFO,
2418
- "chand=%p calld=%p: failing %" PRIuPTR " pending batches: %s",
2419
- chand(), this, num_batches, StatusToString(error).c_str());
2120
+ LOG(INFO) << "chand=" << chand() << " calld=" << this << ": failing "
2121
+ << num_batches << " pending batches: " << StatusToString(error);
2420
2122
  }
2421
2123
  CallCombinerClosureList closures;
2422
2124
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
@@ -2452,15 +2154,14 @@ void ClientChannelFilter::FilterBasedCallData::ResumePendingBatchInCallCombiner(
2452
2154
  // This is called via the call combiner, so access to calld is synchronized.
2453
2155
  void ClientChannelFilter::FilterBasedCallData::PendingBatchesResume() {
2454
2156
  // Retries not enabled; send down batches as-is.
2455
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2157
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_call)) {
2456
2158
  size_t num_batches = 0;
2457
2159
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2458
2160
  if (pending_batches_[i] != nullptr) ++num_batches;
2459
2161
  }
2460
- gpr_log(GPR_INFO,
2461
- "chand=%p calld=%p: starting %" PRIuPTR
2462
- " pending batches on dynamic_call=%p",
2463
- chand(), this, num_batches, dynamic_call_.get());
2162
+ LOG(INFO) << "chand=" << chand() << " calld=" << this << ": starting "
2163
+ << num_batches
2164
+ << " pending batches on dynamic_call=" << dynamic_call_.get();
2464
2165
  }
2465
2166
  CallCombinerClosureList closures;
2466
2167
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
@@ -2498,13 +2199,13 @@ class ClientChannelFilter::FilterBasedCallData::ResolverQueuedCallCanceller
2498
2199
  auto* chand = calld->chand();
2499
2200
  {
2500
2201
  MutexLock lock(&chand->resolution_mu_);
2501
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2502
- gpr_log(GPR_INFO,
2503
- "chand=%p calld=%p: cancelling resolver queued pick: "
2504
- "error=%s self=%p calld->resolver_pick_canceller=%p",
2505
- chand, calld, StatusToString(error).c_str(), self,
2506
- calld->resolver_call_canceller_);
2507
- }
2202
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2203
+ << "chand=" << chand << " calld=" << calld
2204
+ << ": cancelling resolver queued pick: "
2205
+ "error="
2206
+ << StatusToString(error) << " self=" << self
2207
+ << " calld->resolver_pick_canceller="
2208
+ << calld->resolver_call_canceller_;
2508
2209
  if (calld->resolver_call_canceller_ == self && !error.ok()) {
2509
2210
  // Remove pick from list of queued picks.
2510
2211
  calld->RemoveCallFromResolverQueuedCallsLocked();
@@ -2545,31 +2246,25 @@ void ClientChannelFilter::FilterBasedCallData::RetryCheckResolutionLocked() {
2545
2246
  // Do an async callback to resume call processing, so that we're not
2546
2247
  // doing it while holding the channel's resolution mutex.
2547
2248
  chand()->owning_stack_->EventEngine()->Run([this]() {
2548
- ApplicationCallbackExecCtx application_exec_ctx;
2549
2249
  ExecCtx exec_ctx;
2550
2250
  TryCheckResolution(/*was_queued=*/true);
2551
2251
  });
2552
2252
  }
2553
2253
 
2554
2254
  void ClientChannelFilter::FilterBasedCallData::CreateDynamicCall() {
2555
- DynamicFilters::Call::Args args = {dynamic_filters(), pollent_, path_,
2556
- call_start_time_, deadline_, arena(),
2557
- call_context_, call_combiner()};
2255
+ DynamicFilters::Call::Args args = {dynamic_filters(), pollent_, path_,
2256
+ call_start_time_, deadline_, arena(),
2257
+ call_combiner()};
2558
2258
  grpc_error_handle error;
2559
2259
  DynamicFilters* channel_stack = args.channel_stack.get();
2560
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2561
- gpr_log(
2562
- GPR_INFO,
2563
- "chand=%p calld=%p: creating dynamic call stack on channel_stack=%p",
2564
- chand(), this, channel_stack);
2565
- }
2260
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2261
+ << "chand=" << chand() << " calld=" << this
2262
+ << ": creating dynamic call stack on channel_stack=" << channel_stack;
2566
2263
  dynamic_call_ = channel_stack->CreateCall(std::move(args), &error);
2567
2264
  if (!error.ok()) {
2568
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2569
- gpr_log(GPR_INFO,
2570
- "chand=%p calld=%p: failed to create dynamic call: error=%s",
2571
- chand(), this, StatusToString(error).c_str());
2572
- }
2265
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2266
+ << "chand=" << chand() << " calld=" << this
2267
+ << ": failed to create dynamic call: error=" << StatusToString(error);
2573
2268
  PendingBatchesFail(error, YieldCallCombiner);
2574
2269
  return;
2575
2270
  }
@@ -2581,15 +2276,11 @@ void ClientChannelFilter::FilterBasedCallData::
2581
2276
  void* arg, grpc_error_handle error) {
2582
2277
  auto* calld = static_cast<FilterBasedCallData*>(arg);
2583
2278
  auto* chand = calld->chand();
2584
- auto* service_config_call_data =
2585
- GetServiceConfigCallData(calld->call_context());
2586
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2587
- gpr_log(GPR_INFO,
2588
- "chand=%p calld=%p: got recv_trailing_metadata_ready: error=%s "
2589
- "service_config_call_data=%p",
2590
- chand, calld, StatusToString(error).c_str(),
2591
- service_config_call_data);
2592
- }
2279
+ auto* service_config_call_data = GetServiceConfigCallData(calld->arena());
2280
+ GRPC_TRACE_LOG(client_channel_call, INFO)
2281
+ << "chand=" << chand << " calld=" << calld
2282
+ << ": got recv_trailing_metadata_ready: error=" << StatusToString(error)
2283
+ << " service_config_call_data=" << service_config_call_data;
2593
2284
  if (service_config_call_data != nullptr) {
2594
2285
  service_config_call_data->Commit();
2595
2286
  }
@@ -2607,7 +2298,7 @@ class ClientChannelFilter::LoadBalancedCall::LbCallState final
2607
2298
  public:
2608
2299
  explicit LbCallState(LoadBalancedCall* lb_call) : lb_call_(lb_call) {}
2609
2300
 
2610
- void* Alloc(size_t size) override { return lb_call_->arena()->Alloc(size); }
2301
+ void* Alloc(size_t size) override { return lb_call_->arena_->Alloc(size); }
2611
2302
 
2612
2303
  // Internal API to allow first-party LB policies to access per-call
2613
2304
  // attributes set by the ConfigSelector.
@@ -2620,81 +2311,6 @@ class ClientChannelFilter::LoadBalancedCall::LbCallState final
2620
2311
  LoadBalancedCall* lb_call_;
2621
2312
  };
2622
2313
 
2623
- //
2624
- // ClientChannelFilter::LoadBalancedCall::Metadata
2625
- //
2626
-
2627
- class ClientChannelFilter::LoadBalancedCall::Metadata final
2628
- : public LoadBalancingPolicy::MetadataInterface {
2629
- public:
2630
- explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {}
2631
-
2632
- void Add(absl::string_view key, absl::string_view value) override {
2633
- if (batch_ == nullptr) return;
2634
- // Gross, egregious hack to support legacy grpclb behavior.
2635
- // TODO(ctiller): Use a promise context for this once that plumbing is done.
2636
- if (key == GrpcLbClientStatsMetadata::key()) {
2637
- batch_->Set(
2638
- GrpcLbClientStatsMetadata(),
2639
- const_cast<GrpcLbClientStats*>(
2640
- reinterpret_cast<const GrpcLbClientStats*>(value.data())));
2641
- return;
2642
- }
2643
- batch_->Append(key, Slice::FromStaticString(value),
2644
- [key](absl::string_view error, const Slice& value) {
2645
- gpr_log(GPR_ERROR, "%s",
2646
- absl::StrCat(error, " key:", key,
2647
- " value:", value.as_string_view())
2648
- .c_str());
2649
- });
2650
- }
2651
-
2652
- std::vector<std::pair<std::string, std::string>> TestOnlyCopyToVector()
2653
- override {
2654
- if (batch_ == nullptr) return {};
2655
- Encoder encoder;
2656
- batch_->Encode(&encoder);
2657
- return encoder.Take();
2658
- }
2659
-
2660
- absl::optional<absl::string_view> Lookup(absl::string_view key,
2661
- std::string* buffer) const override {
2662
- if (batch_ == nullptr) return absl::nullopt;
2663
- return batch_->GetStringValue(key, buffer);
2664
- }
2665
-
2666
- private:
2667
- class Encoder final {
2668
- public:
2669
- void Encode(const Slice& key, const Slice& value) {
2670
- out_.emplace_back(std::string(key.as_string_view()),
2671
- std::string(value.as_string_view()));
2672
- }
2673
-
2674
- template <class Which>
2675
- void Encode(Which, const typename Which::ValueType& value) {
2676
- auto value_slice = Which::Encode(value);
2677
- out_.emplace_back(std::string(Which::key()),
2678
- std::string(value_slice.as_string_view()));
2679
- }
2680
-
2681
- void Encode(GrpcTimeoutMetadata,
2682
- const typename GrpcTimeoutMetadata::ValueType&) {}
2683
- void Encode(HttpPathMetadata, const Slice&) {}
2684
- void Encode(HttpMethodMetadata,
2685
- const typename HttpMethodMetadata::ValueType&) {}
2686
-
2687
- std::vector<std::pair<std::string, std::string>> Take() {
2688
- return std::move(out_);
2689
- }
2690
-
2691
- private:
2692
- std::vector<std::pair<std::string, std::string>> out_;
2693
- };
2694
-
2695
- grpc_metadata_batch* batch_;
2696
- };
2697
-
2698
2314
  //
2699
2315
  // ClientChannelFilter::LoadBalancedCall::LbCallState
2700
2316
  //
@@ -2702,8 +2318,7 @@ class ClientChannelFilter::LoadBalancedCall::Metadata final
2702
2318
  ServiceConfigCallData::CallAttributeInterface*
2703
2319
  ClientChannelFilter::LoadBalancedCall::LbCallState::GetCallAttribute(
2704
2320
  UniqueTypeName type) const {
2705
- auto* service_config_call_data =
2706
- GetServiceConfigCallData(lb_call_->call_context_);
2321
+ auto* service_config_call_data = GetServiceConfigCallData(lb_call_->arena_);
2707
2322
  return service_config_call_data->GetCallAttribute(type);
2708
2323
  }
2709
2324
 
@@ -2729,7 +2344,7 @@ class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor final
2729
2344
  recv_trailing_metadata_ != nullptr) {
2730
2345
  if (const auto* md = recv_trailing_metadata_->get_pointer(
2731
2346
  EndpointLoadMetricsBinMetadata())) {
2732
- BackendMetricAllocator allocator(lb_call_->arena());
2347
+ BackendMetricAllocator allocator(lb_call_->arena_);
2733
2348
  lb_call_->backend_metric_data_ =
2734
2349
  ParseBackendMetricData(md->as_string_view(), &allocator);
2735
2350
  }
@@ -2764,31 +2379,31 @@ class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor final
2764
2379
 
2765
2380
  namespace {
2766
2381
 
2767
- void CreateCallAttemptTracer(grpc_call_context_element* context,
2768
- bool is_transparent_retry) {
2769
- auto* call_tracer = static_cast<ClientCallTracer*>(
2770
- context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value);
2771
- if (call_tracer == nullptr) return;
2382
+ ClientCallTracer::CallAttemptTracer* CreateCallAttemptTracer(
2383
+ Arena* arena, bool is_transparent_retry) {
2384
+ auto* call_tracer = DownCast<ClientCallTracer*>(
2385
+ arena->GetContext<CallTracerAnnotationInterface>());
2386
+ if (call_tracer == nullptr) return nullptr;
2772
2387
  auto* tracer = call_tracer->StartNewAttempt(is_transparent_retry);
2773
- context[GRPC_CONTEXT_CALL_TRACER].value = tracer;
2388
+ arena->SetContext<CallTracerInterface>(tracer);
2389
+ return tracer;
2774
2390
  }
2775
2391
 
2776
2392
  } // namespace
2777
2393
 
2778
2394
  ClientChannelFilter::LoadBalancedCall::LoadBalancedCall(
2779
- ClientChannelFilter* chand, grpc_call_context_element* call_context,
2395
+ ClientChannelFilter* chand, Arena* arena,
2780
2396
  absl::AnyInvocable<void()> on_commit, bool is_transparent_retry)
2781
- : InternallyRefCounted(
2782
- GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)
2783
- ? "LoadBalancedCall"
2784
- : nullptr),
2397
+ : InternallyRefCounted(GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)
2398
+ ? "LoadBalancedCall"
2399
+ : nullptr),
2785
2400
  chand_(chand),
2401
+ call_attempt_tracer_(
2402
+ CreateCallAttemptTracer(arena, is_transparent_retry)),
2786
2403
  on_commit_(std::move(on_commit)),
2787
- call_context_(call_context) {
2788
- CreateCallAttemptTracer(call_context, is_transparent_retry);
2789
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2790
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: created", chand_, this);
2791
- }
2404
+ arena_(arena) {
2405
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2406
+ << "chand=" << chand_ << " lb_call=" << this << ": created";
2792
2407
  }
2793
2408
 
2794
2409
  ClientChannelFilter::LoadBalancedCall::~LoadBalancedCall() {
@@ -2809,7 +2424,7 @@ void ClientChannelFilter::LoadBalancedCall::RecordCallCompletion(
2809
2424
  // If the LB policy requested a callback for trailing metadata, invoke
2810
2425
  // the callback.
2811
2426
  if (lb_subchannel_call_tracker_ != nullptr) {
2812
- Metadata trailing_metadata(recv_trailing_metadata);
2427
+ LbMetadata trailing_metadata(recv_trailing_metadata);
2813
2428
  BackendMetricAccessor backend_metric_accessor(this, recv_trailing_metadata);
2814
2429
  LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
2815
2430
  peer_address, status, &trailing_metadata, &backend_metric_accessor};
@@ -2829,24 +2444,22 @@ void ClientChannelFilter::LoadBalancedCall::RecordLatency() {
2829
2444
 
2830
2445
  void ClientChannelFilter::LoadBalancedCall::
2831
2446
  RemoveCallFromLbQueuedCallsLocked() {
2832
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2833
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: removing from queued picks list",
2834
- chand_, this);
2835
- }
2447
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2448
+ << "chand=" << chand_ << " lb_call=" << this
2449
+ << ": removing from queued picks list";
2836
2450
  // Remove pollset_set linkage.
2837
2451
  grpc_polling_entity_del_from_pollset_set(pollent(),
2838
2452
  chand_->interested_parties_);
2839
2453
  // Note: There's no need to actually remove the call from the queue
2840
- // here, beacuse that will be done in either
2454
+ // here, because that will be done in either
2841
2455
  // LbQueuedCallCanceller::CancelLocked() or
2842
2456
  // in ClientChannelFilter::UpdateStateAndPickerLocked().
2843
2457
  }
2844
2458
 
2845
2459
  void ClientChannelFilter::LoadBalancedCall::AddCallToLbQueuedCallsLocked() {
2846
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2847
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: adding to queued picks list",
2848
- chand_, this);
2849
- }
2460
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2461
+ << "chand=" << chand_ << " lb_call=" << this
2462
+ << ": adding to queued picks list";
2850
2463
  // Add call's pollent to channel's interested_parties, so that I/O
2851
2464
  // can be done under the call's CQ.
2852
2465
  grpc_polling_entity_add_to_pollset_set(pollent(),
@@ -2856,84 +2469,48 @@ void ClientChannelFilter::LoadBalancedCall::AddCallToLbQueuedCallsLocked() {
2856
2469
  OnAddToQueueLocked();
2857
2470
  }
2858
2471
 
2859
- absl::optional<absl::Status>
2472
+ std::optional<absl::Status>
2860
2473
  ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
2861
- // We may accumulate multiple pickers here, because if a picker says
2862
- // to queue the call, we check again to see if the picker has been
2863
- // updated before we queue it.
2864
- // We need to unref pickers in the WorkSerializer.
2865
- std::vector<RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>> pickers;
2866
- auto cleanup = absl::MakeCleanup([&]() {
2867
- if (IsWorkSerializerDispatchEnabled()) return;
2868
- chand_->work_serializer_->Run(
2869
- [pickers = std::move(pickers)]() mutable {
2870
- for (auto& picker : pickers) {
2871
- picker.reset(DEBUG_LOCATION, "PickSubchannel");
2872
- }
2873
- },
2874
- DEBUG_LOCATION);
2875
- });
2876
- absl::AnyInvocable<void(RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>)>
2877
- set_picker;
2878
- if (!IsWorkSerializerDispatchEnabled()) {
2879
- set_picker =
2880
- [&](RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker) {
2881
- pickers.emplace_back(std::move(picker));
2882
- };
2883
- } else {
2884
- pickers.emplace_back();
2885
- set_picker =
2886
- [&](RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker) {
2887
- pickers[0] = std::move(picker);
2888
- };
2889
- }
2890
- // Grab mutex and take a ref to the picker.
2891
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2892
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: grabbing LB mutex to get picker",
2893
- chand_, this);
2894
- }
2895
2474
  RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker;
2475
+ // Grab mutex and take a ref to the picker.
2476
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2477
+ << "chand=" << chand_ << " lb_call=" << this
2478
+ << ": grabbing LB mutex to get picker";
2896
2479
  {
2897
2480
  MutexLock lock(&chand_->lb_mu_);
2898
- set_picker(chand_->picker_);
2481
+ picker = chand_->picker_;
2899
2482
  }
2900
2483
  while (true) {
2901
2484
  // TODO(roth): Fix race condition in channel_idle filter and any
2902
2485
  // other possible causes of this.
2903
- if (pickers.back() == nullptr) {
2904
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2905
- gpr_log(GPR_ERROR, "chand=%p lb_call=%p: picker is null, failing call",
2906
- chand_, this);
2907
- }
2486
+ if (picker == nullptr) {
2487
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2488
+ << "chand=" << chand_ << " lb_call=" << this
2489
+ << ": picker is null, failing call";
2908
2490
  return absl::InternalError("picker is null -- shouldn't happen");
2909
2491
  }
2910
2492
  // Do pick.
2911
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2912
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: performing pick with picker=%p",
2913
- chand_, this, pickers.back().get());
2914
- }
2493
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2494
+ << "chand=" << chand_ << " lb_call=" << this
2495
+ << ": performing pick with picker=" << picker.get();
2915
2496
  grpc_error_handle error;
2916
- bool pick_complete = PickSubchannelImpl(pickers.back().get(), &error);
2497
+ bool pick_complete = PickSubchannelImpl(picker.get(), &error);
2917
2498
  if (!pick_complete) {
2918
2499
  RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> old_picker;
2919
2500
  MutexLock lock(&chand_->lb_mu_);
2920
2501
  // If picker has been swapped out since we grabbed it, try again.
2921
- if (pickers.back() != chand_->picker_) {
2922
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2923
- gpr_log(GPR_INFO,
2924
- "chand=%p lb_call=%p: pick not complete, but picker changed",
2925
- chand_, this);
2926
- }
2927
- if (IsWorkSerializerDispatchEnabled()) {
2928
- // Don't unref until after we release the mutex.
2929
- old_picker = std::move(pickers.back());
2930
- }
2931
- set_picker(chand_->picker_);
2502
+ if (picker != chand_->picker_) {
2503
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2504
+ << "chand=" << chand_ << " lb_call=" << this
2505
+ << ": pick not complete, but picker changed";
2506
+ // Don't unref until after we release the mutex.
2507
+ old_picker = std::move(picker);
2508
+ picker = chand_->picker_;
2932
2509
  continue;
2933
2510
  }
2934
2511
  // Otherwise queue the pick to try again later when we get a new picker.
2935
2512
  AddCallToLbQueuedCallsLocked();
2936
- return absl::nullopt;
2513
+ return std::nullopt;
2937
2514
  }
2938
2515
  // Pick is complete.
2939
2516
  // If it was queued, add a trace annotation.
@@ -2942,11 +2519,9 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
2942
2519
  }
2943
2520
  // If the pick failed, fail the call.
2944
2521
  if (!error.ok()) {
2945
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2946
- gpr_log(GPR_INFO,
2947
- "chand=%p lb_call=%p: failed to pick subchannel: error=%s",
2948
- chand_, this, StatusToString(error).c_str());
2949
- }
2522
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2523
+ << "chand=" << chand_ << " lb_call=" << this
2524
+ << ": failed to pick subchannel: error=" << StatusToString(error);
2950
2525
  return error;
2951
2526
  }
2952
2527
  // Pick succeeded.
@@ -2957,27 +2532,26 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
2957
2532
 
2958
2533
  bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
2959
2534
  LoadBalancingPolicy::SubchannelPicker* picker, grpc_error_handle* error) {
2960
- GPR_ASSERT(connected_subchannel_ == nullptr);
2535
+ CHECK(connected_subchannel_ == nullptr);
2961
2536
  // Perform LB pick.
2962
2537
  LoadBalancingPolicy::PickArgs pick_args;
2963
2538
  Slice* path = send_initial_metadata()->get_pointer(HttpPathMetadata());
2964
- GPR_ASSERT(path != nullptr);
2539
+ CHECK_NE(path, nullptr);
2965
2540
  pick_args.path = path->as_string_view();
2966
2541
  LbCallState lb_call_state(this);
2967
2542
  pick_args.call_state = &lb_call_state;
2968
- Metadata initial_metadata(send_initial_metadata());
2543
+ LbMetadata initial_metadata(send_initial_metadata());
2969
2544
  pick_args.initial_metadata = &initial_metadata;
2970
2545
  auto result = picker->Pick(pick_args);
2971
2546
  return HandlePickResult<bool>(
2972
2547
  &result,
2973
2548
  // CompletePick
2974
2549
  [this](LoadBalancingPolicy::PickResult::Complete* complete_pick) {
2975
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2976
- gpr_log(GPR_INFO,
2977
- "chand=%p lb_call=%p: LB pick succeeded: subchannel=%p",
2978
- chand_, this, complete_pick->subchannel.get());
2979
- }
2980
- GPR_ASSERT(complete_pick->subchannel != nullptr);
2550
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2551
+ << "chand=" << chand_ << " lb_call=" << this
2552
+ << ": LB pick succeeded: subchannel="
2553
+ << complete_pick->subchannel.get();
2554
+ CHECK(complete_pick->subchannel != nullptr);
2981
2555
  // Grab a ref to the connected subchannel while we're still
2982
2556
  // holding the data plane mutex.
2983
2557
  SubchannelWrapper* subchannel =
@@ -2988,12 +2562,10 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
2988
2562
  // yet seen that change and given us a new picker), then just
2989
2563
  // queue the pick. We'll try again as soon as we get a new picker.
2990
2564
  if (connected_subchannel_ == nullptr) {
2991
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2992
- gpr_log(GPR_INFO,
2993
- "chand=%p lb_call=%p: subchannel returned by LB picker "
2994
- "has no connected subchannel; queueing pick",
2995
- chand_, this);
2996
- }
2565
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2566
+ << "chand=" << chand_ << " lb_call=" << this
2567
+ << ": subchannel returned by LB picker "
2568
+ "has no connected subchannel; queueing pick";
2997
2569
  return false;
2998
2570
  }
2999
2571
  lb_subchannel_call_tracker_ =
@@ -3001,22 +2573,24 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
3001
2573
  if (lb_subchannel_call_tracker_ != nullptr) {
3002
2574
  lb_subchannel_call_tracker_->Start();
3003
2575
  }
2576
+ // Handle metadata mutations.
2577
+ MetadataMutationHandler::Apply(complete_pick->metadata_mutations,
2578
+ send_initial_metadata());
2579
+ MaybeOverrideAuthority(std::move(complete_pick->authority_override),
2580
+ send_initial_metadata());
3004
2581
  return true;
3005
2582
  },
3006
2583
  // QueuePick
3007
2584
  [this](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/) {
3008
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3009
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick queued", chand_,
3010
- this);
3011
- }
2585
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2586
+ << "chand=" << chand_ << " lb_call=" << this << ": LB pick queued";
3012
2587
  return false;
3013
2588
  },
3014
2589
  // FailPick
3015
2590
  [this, &error](LoadBalancingPolicy::PickResult::Fail* fail_pick) {
3016
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3017
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick failed: %s", chand_,
3018
- this, fail_pick->status.ToString().c_str());
3019
- }
2591
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2592
+ << "chand=" << chand_ << " lb_call=" << this
2593
+ << ": LB pick failed: " << fail_pick->status;
3020
2594
  // If wait_for_ready is false, then the error indicates the RPC
3021
2595
  // attempt's final status.
3022
2596
  if (!send_initial_metadata()
@@ -3032,10 +2606,9 @@ bool ClientChannelFilter::LoadBalancedCall::PickSubchannelImpl(
3032
2606
  },
3033
2607
  // DropPick
3034
2608
  [this, &error](LoadBalancingPolicy::PickResult::Drop* drop_pick) {
3035
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3036
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick dropped: %s", chand_,
3037
- this, drop_pick->status.ToString().c_str());
3038
- }
2609
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2610
+ << "chand=" << chand_ << " lb_call=" << this
2611
+ << ": LB pick dropped: " << drop_pick->status;
3039
2612
  *error = grpc_error_set_int(
3040
2613
  absl_status_to_grpc_error(MaybeRewriteIllegalStatusCode(
3041
2614
  std::move(drop_pick->status), "LB drop")),
@@ -3052,10 +2625,8 @@ ClientChannelFilter::FilterBasedLoadBalancedCall::FilterBasedLoadBalancedCall(
3052
2625
  ClientChannelFilter* chand, const grpc_call_element_args& args,
3053
2626
  grpc_polling_entity* pollent, grpc_closure* on_call_destruction_complete,
3054
2627
  absl::AnyInvocable<void()> on_commit, bool is_transparent_retry)
3055
- : LoadBalancedCall(chand, args.context, std::move(on_commit),
2628
+ : LoadBalancedCall(chand, args.arena, std::move(on_commit),
3056
2629
  is_transparent_retry),
3057
- deadline_(args.deadline),
3058
- arena_(args.arena),
3059
2630
  owning_call_(args.call_stack),
3060
2631
  call_combiner_(args.call_combiner),
3061
2632
  pollent_(pollent),
@@ -3065,7 +2636,7 @@ ClientChannelFilter::FilterBasedLoadBalancedCall::
3065
2636
  ~FilterBasedLoadBalancedCall() {
3066
2637
  // Make sure there are no remaining pending batches.
3067
2638
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
3068
- GPR_ASSERT(pending_batches_[i] == nullptr);
2639
+ CHECK_EQ(pending_batches_[i], nullptr);
3069
2640
  }
3070
2641
  if (on_call_destruction_complete_ != nullptr) {
3071
2642
  ExecCtx::Run(DEBUG_LOCATION, on_call_destruction_complete_,
@@ -3103,12 +2674,10 @@ size_t ClientChannelFilter::FilterBasedLoadBalancedCall::GetBatchIndex(
3103
2674
  void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesAdd(
3104
2675
  grpc_transport_stream_op_batch* batch) {
3105
2676
  const size_t idx = GetBatchIndex(batch);
3106
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3107
- gpr_log(GPR_INFO,
3108
- "chand=%p lb_call=%p: adding pending batch at index %" PRIuPTR,
3109
- chand(), this, idx);
3110
- }
3111
- GPR_ASSERT(pending_batches_[idx] == nullptr);
2677
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2678
+ << "chand=" << chand() << " lb_call=" << this
2679
+ << ": adding pending batch at index " << idx;
2680
+ CHECK_EQ(pending_batches_[idx], nullptr);
3112
2681
  pending_batches_[idx] = batch;
3113
2682
  }
3114
2683
 
@@ -3128,16 +2697,15 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3128
2697
  void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesFail(
3129
2698
  grpc_error_handle error,
3130
2699
  YieldCallCombinerPredicate yield_call_combiner_predicate) {
3131
- GPR_ASSERT(!error.ok());
2700
+ CHECK(!error.ok());
3132
2701
  failure_error_ = error;
3133
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2702
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)) {
3134
2703
  size_t num_batches = 0;
3135
2704
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
3136
2705
  if (pending_batches_[i] != nullptr) ++num_batches;
3137
2706
  }
3138
- gpr_log(GPR_INFO,
3139
- "chand=%p lb_call=%p: failing %" PRIuPTR " pending batches: %s",
3140
- chand(), this, num_batches, StatusToString(error).c_str());
2707
+ LOG(INFO) << "chand=" << chand() << " lb_call=" << this << ": failing "
2708
+ << num_batches << " pending batches: " << StatusToString(error);
3141
2709
  }
3142
2710
  CallCombinerClosureList closures;
3143
2711
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
@@ -3172,15 +2740,14 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3172
2740
 
3173
2741
  // This is called via the call combiner, so access to calld is synchronized.
3174
2742
  void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesResume() {
3175
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2743
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call)) {
3176
2744
  size_t num_batches = 0;
3177
2745
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
3178
2746
  if (pending_batches_[i] != nullptr) ++num_batches;
3179
2747
  }
3180
- gpr_log(GPR_INFO,
3181
- "chand=%p lb_call=%p: starting %" PRIuPTR
3182
- " pending batches on subchannel_call=%p",
3183
- chand(), this, num_batches, subchannel_call_.get());
2748
+ LOG(INFO) << "chand=" << chand() << " lb_call=" << this << ": starting "
2749
+ << num_batches << " pending batches on subchannel_call="
2750
+ << subchannel_call_.get();
3184
2751
  }
3185
2752
  CallCombinerClosureList closures;
3186
2753
  for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
@@ -3201,14 +2768,12 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::PendingBatchesResume() {
3201
2768
 
3202
2769
  void ClientChannelFilter::FilterBasedLoadBalancedCall::
3203
2770
  StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch) {
3204
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace) ||
3205
- GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
3206
- gpr_log(GPR_INFO,
3207
- "chand=%p lb_call=%p: batch started from above: %s, "
3208
- "call_attempt_tracer()=%p",
3209
- chand(), this,
3210
- grpc_transport_stream_op_batch_string(batch, false).c_str(),
3211
- call_attempt_tracer());
2771
+ if (GRPC_TRACE_FLAG_ENABLED(client_channel_lb_call) ||
2772
+ GRPC_TRACE_FLAG_ENABLED(channel)) {
2773
+ LOG(INFO) << "chand=" << chand() << " lb_call=" << this
2774
+ << ": batch started from above: "
2775
+ << grpc_transport_stream_op_batch_string(batch, false)
2776
+ << ", call_attempt_tracer()=" << call_attempt_tracer();
3212
2777
  }
3213
2778
  // Handle call tracing.
3214
2779
  if (call_attempt_tracer() != nullptr) {
@@ -3256,11 +2821,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3256
2821
  // the channel's data plane mutex, which is more efficient (especially for
3257
2822
  // streaming calls).
3258
2823
  if (subchannel_call_ != nullptr) {
3259
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3260
- gpr_log(GPR_INFO,
3261
- "chand=%p lb_call=%p: starting batch on subchannel_call=%p",
3262
- chand(), this, subchannel_call_.get());
3263
- }
2824
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2825
+ << "chand=" << chand() << " lb_call=" << this
2826
+ << ": starting batch on subchannel_call=" << subchannel_call_.get();
3264
2827
  subchannel_call_->StartTransportStreamOpBatch(batch);
3265
2828
  return;
3266
2829
  }
@@ -3268,10 +2831,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3268
2831
  //
3269
2832
  // If we've previously been cancelled, immediately fail any new batches.
3270
2833
  if (GPR_UNLIKELY(!cancel_error_.ok())) {
3271
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3272
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: failing batch with error: %s",
3273
- chand(), this, StatusToString(cancel_error_).c_str());
3274
- }
2834
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2835
+ << "chand=" << chand() << " lb_call=" << this
2836
+ << ": failing batch with error: " << StatusToString(cancel_error_);
3275
2837
  // Note: This will release the call combiner.
3276
2838
  grpc_transport_stream_op_batch_finish_with_failure(batch, cancel_error_,
3277
2839
  call_combiner_);
@@ -3285,10 +2847,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3285
2847
  // is in the past when the call starts), we can return the right
3286
2848
  // error to the caller when the first batch does get passed down.
3287
2849
  cancel_error_ = batch->payload->cancel_stream.cancel_error;
3288
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3289
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: recording cancel_error=%s",
3290
- chand(), this, StatusToString(cancel_error_).c_str());
3291
- }
2850
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2851
+ << "chand=" << chand() << " lb_call=" << this
2852
+ << ": recording cancel_error=" << StatusToString(cancel_error_).c_str();
3292
2853
  // Fail all pending batches.
3293
2854
  PendingBatchesFail(cancel_error_, NoYieldCallCombiner);
3294
2855
  // Note: This will release the call combiner.
@@ -3304,11 +2865,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3304
2865
  TryPick(/*was_queued=*/false);
3305
2866
  } else {
3306
2867
  // For all other batches, release the call combiner.
3307
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3308
- gpr_log(GPR_INFO,
3309
- "chand=%p lb_call=%p: saved batch, yielding call combiner",
3310
- chand(), this);
3311
- }
2868
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2869
+ << "chand=" << chand() << " lb_call=" << this
2870
+ << ": saved batch, yielding call combiner";
3312
2871
  GRPC_CALL_COMBINER_STOP(call_combiner_,
3313
2872
  "batch does not include send_initial_metadata");
3314
2873
  }
@@ -3317,11 +2876,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3317
2876
  void ClientChannelFilter::FilterBasedLoadBalancedCall::RecvInitialMetadataReady(
3318
2877
  void* arg, grpc_error_handle error) {
3319
2878
  auto* self = static_cast<FilterBasedLoadBalancedCall*>(arg);
3320
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3321
- gpr_log(GPR_INFO,
3322
- "chand=%p lb_call=%p: got recv_initial_metadata_ready: error=%s",
3323
- self->chand(), self, StatusToString(error).c_str());
3324
- }
2879
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2880
+ << "chand=" << self->chand() << " lb_call=" << self
2881
+ << ": got recv_initial_metadata_ready: error=" << StatusToString(error);
3325
2882
  if (error.ok()) {
3326
2883
  // recv_initial_metadata_flags is not populated for clients
3327
2884
  self->call_attempt_tracer()->RecordReceivedInitialMetadata(
@@ -3336,15 +2893,12 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::RecvInitialMetadataReady(
3336
2893
  void ClientChannelFilter::FilterBasedLoadBalancedCall::
3337
2894
  RecvTrailingMetadataReady(void* arg, grpc_error_handle error) {
3338
2895
  auto* self = static_cast<FilterBasedLoadBalancedCall*>(arg);
3339
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3340
- gpr_log(GPR_INFO,
3341
- "chand=%p lb_call=%p: got recv_trailing_metadata_ready: error=%s "
3342
- "call_attempt_tracer()=%p lb_subchannel_call_tracker_=%p "
3343
- "failure_error_=%s",
3344
- self->chand(), self, StatusToString(error).c_str(),
3345
- self->call_attempt_tracer(), self->lb_subchannel_call_tracker(),
3346
- StatusToString(self->failure_error_).c_str());
3347
- }
2896
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2897
+ << "chand=" << self->chand() << " lb_call=" << self
2898
+ << ": got recv_trailing_metadata_ready: error=" << StatusToString(error)
2899
+ << " call_attempt_tracer()=" << self->call_attempt_tracer()
2900
+ << " lb_subchannel_call_tracker_=" << self->lb_subchannel_call_tracker()
2901
+ << " failure_error_=" << StatusToString(self->failure_error_);
3348
2902
  // Check if we have a tracer or an LB callback to invoke.
3349
2903
  if (self->call_attempt_tracer() != nullptr ||
3350
2904
  self->lb_subchannel_call_tracker() != nullptr) {
@@ -3354,8 +2908,9 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::
3354
2908
  // Get status from error.
3355
2909
  grpc_status_code code;
3356
2910
  std::string message;
3357
- grpc_error_get_status(error, self->deadline_, &code, &message,
3358
- /*http_error=*/nullptr, /*error_string=*/nullptr);
2911
+ grpc_error_get_status(
2912
+ error, self->arena()->GetContext<Call>()->deadline(), &code, &message,
2913
+ /*http_error=*/nullptr, /*error_string=*/nullptr);
3359
2914
  status = absl::Status(static_cast<absl::StatusCode>(code), message);
3360
2915
  } else {
3361
2916
  // Get status from headers.
@@ -3411,13 +2966,11 @@ class ClientChannelFilter::FilterBasedLoadBalancedCall::LbQueuedCallCanceller
3411
2966
  auto* chand = lb_call->chand();
3412
2967
  {
3413
2968
  MutexLock lock(&chand->lb_mu_);
3414
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3415
- gpr_log(GPR_INFO,
3416
- "chand=%p lb_call=%p: cancelling queued pick: "
3417
- "error=%s self=%p calld->pick_canceller=%p",
3418
- chand, lb_call, StatusToString(error).c_str(), self,
3419
- lb_call->lb_call_canceller_);
3420
- }
2969
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
2970
+ << "chand=" << chand << " lb_call=" << lb_call
2971
+ << ": cancelling queued pick: error=" << StatusToString(error)
2972
+ << " self=" << self
2973
+ << " calld->pick_canceller=" << lb_call->lb_call_canceller_;
3421
2974
  if (lb_call->lb_call_canceller_ == self && !error.ok()) {
3422
2975
  lb_call->Commit();
3423
2976
  // Remove pick from list of queued picks.
@@ -3490,20 +3043,19 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::RetryPickLocked() {
3490
3043
 
3491
3044
  void ClientChannelFilter::FilterBasedLoadBalancedCall::CreateSubchannelCall() {
3492
3045
  Slice* path = send_initial_metadata()->get_pointer(HttpPathMetadata());
3493
- GPR_ASSERT(path != nullptr);
3046
+ CHECK_NE(path, nullptr);
3494
3047
  SubchannelCall::Args call_args = {
3495
3048
  connected_subchannel()->Ref(), pollent_, path->Ref(), /*start_time=*/0,
3496
- deadline_, arena_,
3049
+ arena()->GetContext<Call>()->deadline(),
3497
3050
  // TODO(roth): When we implement hedging support, we will probably
3498
- // need to use a separate call context for each subchannel call.
3499
- call_context(), call_combiner_};
3051
+ // need to use a separate call arena for each subchannel call.
3052
+ arena(), call_combiner_};
3500
3053
  grpc_error_handle error;
3501
3054
  subchannel_call_ = SubchannelCall::Create(std::move(call_args), &error);
3502
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3503
- gpr_log(GPR_INFO,
3504
- "chand=%p lb_call=%p: create subchannel_call=%p: error=%s", chand(),
3505
- this, subchannel_call_.get(), StatusToString(error).c_str());
3506
- }
3055
+ GRPC_TRACE_LOG(client_channel_lb_call, INFO)
3056
+ << "chand=" << chand() << " lb_call=" << this
3057
+ << ": create subchannel_call=" << subchannel_call_.get()
3058
+ << ": error=" << StatusToString(error);
3507
3059
  if (on_call_destruction_complete_ != nullptr) {
3508
3060
  subchannel_call_->SetAfterCallStackDestroy(on_call_destruction_complete_);
3509
3061
  on_call_destruction_complete_ = nullptr;
@@ -3515,150 +3067,4 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall::CreateSubchannelCall() {
3515
3067
  }
3516
3068
  }
3517
3069
 
3518
- //
3519
- // ClientChannelFilter::PromiseBasedLoadBalancedCall
3520
- //
3521
-
3522
- ClientChannelFilter::PromiseBasedLoadBalancedCall::PromiseBasedLoadBalancedCall(
3523
- ClientChannelFilter* chand, absl::AnyInvocable<void()> on_commit,
3524
- bool is_transparent_retry)
3525
- : LoadBalancedCall(chand, GetContext<grpc_call_context_element>(),
3526
- std::move(on_commit), is_transparent_retry) {}
3527
-
3528
- ArenaPromise<ServerMetadataHandle>
3529
- ClientChannelFilter::PromiseBasedLoadBalancedCall::MakeCallPromise(
3530
- CallArgs call_args, OrphanablePtr<PromiseBasedLoadBalancedCall> lb_call) {
3531
- pollent_ = NowOrNever(call_args.polling_entity->WaitAndCopy()).value();
3532
- // Record ops in tracer.
3533
- if (call_attempt_tracer() != nullptr) {
3534
- call_attempt_tracer()->RecordSendInitialMetadata(
3535
- call_args.client_initial_metadata.get());
3536
- // TODO(ctiller): Find a way to do this without registering a no-op mapper.
3537
- call_args.client_to_server_messages->InterceptAndMapWithHalfClose(
3538
- [](MessageHandle message) { return message; }, // No-op.
3539
- [this]() {
3540
- // TODO(roth): Change CallTracer API to not pass metadata
3541
- // batch to this method, since the batch is always empty.
3542
- grpc_metadata_batch metadata;
3543
- call_attempt_tracer()->RecordSendTrailingMetadata(&metadata);
3544
- });
3545
- }
3546
- // Extract peer name from server initial metadata.
3547
- call_args.server_initial_metadata->InterceptAndMap(
3548
- [self = lb_call->RefAsSubclass<PromiseBasedLoadBalancedCall>()](
3549
- ServerMetadataHandle metadata) {
3550
- if (self->call_attempt_tracer() != nullptr) {
3551
- self->call_attempt_tracer()->RecordReceivedInitialMetadata(
3552
- metadata.get());
3553
- }
3554
- Slice* peer_string = metadata->get_pointer(PeerString());
3555
- if (peer_string != nullptr) self->peer_string_ = peer_string->Ref();
3556
- return metadata;
3557
- });
3558
- client_initial_metadata_ = std::move(call_args.client_initial_metadata);
3559
- return OnCancel(
3560
- Map(TrySeq(
3561
- // LB pick.
3562
- [this]() -> Poll<absl::Status> {
3563
- auto result = PickSubchannel(was_queued_);
3564
- if (GRPC_TRACE_FLAG_ENABLED(
3565
- grpc_client_channel_lb_call_trace)) {
3566
- gpr_log(GPR_INFO,
3567
- "chand=%p lb_call=%p: %sPickSubchannel() returns %s",
3568
- chand(), this,
3569
- GetContext<Activity>()->DebugTag().c_str(),
3570
- result.has_value() ? result->ToString().c_str()
3571
- : "Pending");
3572
- }
3573
- if (result == absl::nullopt) return Pending{};
3574
- return std::move(*result);
3575
- },
3576
- [this, call_args = std::move(call_args)]() mutable
3577
- -> ArenaPromise<ServerMetadataHandle> {
3578
- call_args.client_initial_metadata =
3579
- std::move(client_initial_metadata_);
3580
- return connected_subchannel()->MakeCallPromise(
3581
- std::move(call_args));
3582
- }),
3583
- // Record call completion.
3584
- [this](ServerMetadataHandle metadata) {
3585
- if (call_attempt_tracer() != nullptr ||
3586
- lb_subchannel_call_tracker() != nullptr) {
3587
- absl::Status status;
3588
- grpc_status_code code = metadata->get(GrpcStatusMetadata())
3589
- .value_or(GRPC_STATUS_UNKNOWN);
3590
- if (code != GRPC_STATUS_OK) {
3591
- absl::string_view message;
3592
- if (const auto* grpc_message =
3593
- metadata->get_pointer(GrpcMessageMetadata())) {
3594
- message = grpc_message->as_string_view();
3595
- }
3596
- status =
3597
- absl::Status(static_cast<absl::StatusCode>(code), message);
3598
- }
3599
- RecordCallCompletion(status, metadata.get(),
3600
- &GetContext<CallContext>()
3601
- ->call_stats()
3602
- ->transport_stream_stats,
3603
- peer_string_.as_string_view());
3604
- }
3605
- RecordLatency();
3606
- return metadata;
3607
- }),
3608
- [lb_call = std::move(lb_call)]() {
3609
- // If the waker is pending, then we need to remove ourself from
3610
- // the list of queued LB calls.
3611
- if (!lb_call->waker_.is_unwakeable()) {
3612
- MutexLock lock(&lb_call->chand()->lb_mu_);
3613
- lb_call->Commit();
3614
- // Remove pick from list of queued picks.
3615
- lb_call->RemoveCallFromLbQueuedCallsLocked();
3616
- // Remove from queued picks list.
3617
- lb_call->chand()->lb_queued_calls_.erase(lb_call.get());
3618
- }
3619
- // TODO(ctiller): We don't have access to the call's actual status
3620
- // here, so we just assume CANCELLED. We could change this to use
3621
- // CallFinalization instead of OnCancel() so that we can get the
3622
- // actual status. But we should also have access to the trailing
3623
- // metadata, which we don't have in either case. Ultimately, we
3624
- // need a better story for code that needs to run at the end of a
3625
- // call in both cancellation and non-cancellation cases that needs
3626
- // access to server trailing metadata and the call's real status.
3627
- if (lb_call->call_attempt_tracer() != nullptr) {
3628
- lb_call->call_attempt_tracer()->RecordCancel(
3629
- absl::CancelledError("call cancelled"));
3630
- }
3631
- if (lb_call->call_attempt_tracer() != nullptr ||
3632
- lb_call->lb_subchannel_call_tracker() != nullptr) {
3633
- // If we were cancelled without recording call completion, then
3634
- // record call completion here, as best we can. We assume status
3635
- // CANCELLED in this case.
3636
- lb_call->RecordCallCompletion(absl::CancelledError("call cancelled"),
3637
- nullptr, nullptr, "");
3638
- }
3639
- });
3640
- }
3641
-
3642
- Arena* ClientChannelFilter::PromiseBasedLoadBalancedCall::arena() const {
3643
- return GetContext<Arena>();
3644
- }
3645
-
3646
- grpc_metadata_batch*
3647
- ClientChannelFilter::PromiseBasedLoadBalancedCall::send_initial_metadata()
3648
- const {
3649
- return client_initial_metadata_.get();
3650
- }
3651
-
3652
- void ClientChannelFilter::PromiseBasedLoadBalancedCall::OnAddToQueueLocked() {
3653
- waker_ = GetContext<Activity>()->MakeNonOwningWaker();
3654
- was_queued_ = true;
3655
- }
3656
-
3657
- void ClientChannelFilter::PromiseBasedLoadBalancedCall::RetryPickLocked() {
3658
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3659
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: RetryPickLocked()", chand(), this);
3660
- }
3661
- waker_.WakeupAsync();
3662
- }
3663
-
3664
3070
  } // namespace grpc_core