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
@@ -18,18 +18,27 @@
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include <cstdint>
21
+ #include <limits>
21
22
  #include <memory>
23
+ #include <ostream>
22
24
  #include <type_traits>
23
25
 
24
- #include "src/core/lib/gprpp/ref_counted.h"
25
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
26
+ #include "absl/log/check.h"
27
+ #include "src/core/lib/promise/for_each.h"
28
+ #include "src/core/lib/promise/if.h"
26
29
  #include "src/core/lib/promise/latch.h"
27
30
  #include "src/core/lib/promise/map.h"
28
31
  #include "src/core/lib/promise/promise.h"
32
+ #include "src/core/lib/promise/seq.h"
29
33
  #include "src/core/lib/promise/status_flag.h"
34
+ #include "src/core/lib/promise/try_seq.h"
30
35
  #include "src/core/lib/transport/call_final_info.h"
36
+ #include "src/core/lib/transport/call_state.h"
31
37
  #include "src/core/lib/transport/message.h"
32
38
  #include "src/core/lib/transport/metadata.h"
39
+ #include "src/core/util/dump_args.h"
40
+ #include "src/core/util/ref_counted.h"
41
+ #include "src/core/util/ref_counted_ptr.h"
33
42
 
34
43
  // CallFilters tracks a list of filters that are attached to a call.
35
44
  // At a high level, a filter (for the purposes of this module) is a class
@@ -41,6 +50,7 @@
41
50
  // - OnServerInitialMetadata - $VALUE_TYPE = ServerMetadata
42
51
  // - OnServerToClientMessage - $VALUE_TYPE = Message
43
52
  // - OnClientToServerMessage - $VALUE_TYPE = Message
53
+ // - OnClientToServerHalfClose - no value
44
54
  // - OnServerTrailingMetadata - $VALUE_TYPE = ServerMetadata
45
55
  // - OnFinalize - special, see below
46
56
  // These members define an interception point for a particular event in
@@ -48,7 +58,7 @@
48
58
  //
49
59
  // The type of these members matters, and is selectable by the class
50
60
  // author. For $INTERCEPTOR_NAME in the above list:
51
- // - static const NoInterceptor $INTERCEPTOR_NAME:
61
+ // - static inline const NoInterceptor $INTERCEPTOR_NAME:
52
62
  // defines that this filter does not intercept this event.
53
63
  // there is zero runtime cost added to handling that event by this filter.
54
64
  // - void $INTERCEPTOR_NAME($VALUE_TYPE&):
@@ -81,7 +91,7 @@
81
91
  //
82
92
  // Finally, OnFinalize is added to intecept call finalization.
83
93
  // It must have one of the signatures:
84
- // - static const NoInterceptor OnFinalize:
94
+ // - static inline const NoInterceptor OnFinalize:
85
95
  // the filter does not intercept call finalization.
86
96
  // - void OnFinalize(const grpc_call_final_info*):
87
97
  // the filter intercepts call finalization.
@@ -101,17 +111,114 @@ namespace grpc_core {
101
111
  // Tag type to indicate no interception.
102
112
  // This is used to indicate that a filter does not intercept a particular
103
113
  // event.
104
- // In C++14 we declare these as (for example):
105
- // static const NoInterceptor OnClientInitialMetadata;
106
- // and out-of-line provide the definition:
107
- // const MyFilter::Call::NoInterceptor
108
- // MyFilter::Call::OnClientInitialMetadata;
109
- // In C++17 and later we can use inline variables instead:
110
- // inline static const NoInterceptor OnClientInitialMetadata;
114
+ // We declare these as (for example):
115
+ // inline static inline const NoInterceptor OnClientInitialMetadata;
111
116
  struct NoInterceptor {};
112
117
 
113
118
  namespace filters_detail {
114
119
 
120
+ // Flow control across pipe stages.
121
+ // This ends up being exceedingly subtle - essentially we need to ensure that
122
+ // across a series of pipes we have no more than one outstanding message at a
123
+ // time - but those pipes are for the most part independent.
124
+ // How we achieve this is that this NextMessage object holds both the message
125
+ // and a completion token - the last owning NextMessage instance will call
126
+ // the on_progress method on the referenced CallState - and at that point that
127
+ // CallState will allow the next message to be sent through it.
128
+ // Next, the ForEach promise combiner explicitly holds onto the wrapper object
129
+ // owning the result (this object) and extracts the message from it, but doesn't
130
+ // dispose that instance until the action promise for the ForEach iteration
131
+ // completes, ensuring most callers need do nothing special to have the
132
+ // flow control work correctly.
133
+ template <void (CallState::*on_progress)()>
134
+ class NextMessage {
135
+ public:
136
+ ~NextMessage() {
137
+ if (message_ != end_of_stream() && message_ != error() &&
138
+ message_ != taken()) {
139
+ delete message_;
140
+ }
141
+ if (call_state_ != nullptr) {
142
+ (call_state_->*on_progress)();
143
+ }
144
+ }
145
+
146
+ NextMessage() = default;
147
+ explicit NextMessage(Failure) : message_(error()), call_state_(nullptr) {}
148
+ NextMessage(MessageHandle message, CallState* call_state) {
149
+ DCHECK_NE(call_state, nullptr);
150
+ DCHECK_NE(message.get(), nullptr);
151
+ DCHECK(message.get_deleter().has_freelist());
152
+ message_ = message.release();
153
+ call_state_ = call_state;
154
+ }
155
+ NextMessage(const NextMessage& other) = delete;
156
+ NextMessage& operator=(const NextMessage& other) = delete;
157
+ NextMessage(NextMessage&& other) noexcept
158
+ : message_(std::exchange(other.message_, taken())),
159
+ call_state_(std::exchange(other.call_state_, nullptr)) {}
160
+ NextMessage& operator=(NextMessage&& other) noexcept {
161
+ if (message_ != end_of_stream() && message_ != error() &&
162
+ message_ != taken()) {
163
+ delete message_;
164
+ }
165
+ if (call_state_ != nullptr) {
166
+ (call_state_->*on_progress)();
167
+ }
168
+ message_ = std::exchange(other.message_, taken());
169
+ call_state_ = std::exchange(other.call_state_, nullptr);
170
+ return *this;
171
+ }
172
+
173
+ bool ok() const {
174
+ DCHECK_NE(message_, taken());
175
+ return message_ != error();
176
+ }
177
+ bool has_value() const {
178
+ DCHECK_NE(message_, taken());
179
+ DCHECK(ok());
180
+ return message_ != end_of_stream();
181
+ }
182
+ StatusFlag status() const { return StatusFlag(ok()); }
183
+ Message& value() {
184
+ DCHECK_NE(message_, taken());
185
+ DCHECK(ok());
186
+ DCHECK(has_value());
187
+ return *message_;
188
+ }
189
+ MessageHandle TakeValue() {
190
+ DCHECK_NE(message_, taken());
191
+ DCHECK(ok());
192
+ DCHECK(has_value());
193
+ return MessageHandle(std::exchange(message_, taken()),
194
+ Arena::PooledDeleter());
195
+ }
196
+ bool progressed() const { return call_state_ == nullptr; }
197
+ void Progress() {
198
+ DCHECK(!progressed());
199
+ (call_state_->*on_progress)();
200
+ call_state_ = nullptr;
201
+ }
202
+
203
+ private:
204
+ static Message* end_of_stream() { return nullptr; }
205
+ static Message* error() { return reinterpret_cast<Message*>(1); }
206
+ static Message* taken() { return reinterpret_cast<Message*>(2); }
207
+ Message* message_ = end_of_stream();
208
+ CallState* call_state_ = nullptr;
209
+ };
210
+
211
+ template <typename T>
212
+ struct ArgumentMustBeNextMessage;
213
+ template <void (CallState::*on_progress)()>
214
+ struct ArgumentMustBeNextMessage<NextMessage<on_progress>> {
215
+ static constexpr bool value() { return true; }
216
+ };
217
+
218
+ inline void* Offset(void* base, size_t amt) {
219
+ return static_cast<char*>(base) + amt;
220
+ }
221
+
115
222
  // One call filter constructor
116
223
  // Contains enough information to allocate and initialize the
117
224
  // call data for one filter.
@@ -155,16 +262,19 @@ struct CallConstructor<FilterType,
155
262
  // Only one pointer can be set.
156
263
  template <typename T>
157
264
  struct ResultOr {
265
+ ResultOr(T ok, ServerMetadataHandle error)
266
+ : ok(std::move(ok)), error(std::move(error)) {
267
+ CHECK((this->ok == nullptr) ^ (this->error == nullptr));
268
+ }
158
269
  T ok;
159
270
  ServerMetadataHandle error;
160
271
  };
161
272
 
162
273
  // One filter operation metadata
163
- // Given a value of type V, produces a promise of type R.
164
- template <typename R, typename V>
274
+ // Given a value of type T, produces a promise of type ResultOr<T>.
275
+ template <typename T>
165
276
  struct Operator {
166
- using Result = R;
167
- using Arg = V;
277
+ using Arg = T;
168
278
  // Pointer to corresponding channel data for this filter
169
279
  void* channel_data;
170
280
  // Offset of the call data for this filter within the call data memory
@@ -172,13 +282,13 @@ struct Operator {
172
282
  // Initialize the promise data for this filter, and poll once.
173
283
  // Return the result of the poll.
174
284
  // If the promise finishes, also destroy the promise data!
175
- Poll<R> (*promise_init)(void* promise_data, void* call_data,
176
- void* channel_data, V value);
285
+ Poll<ResultOr<T>> (*promise_init)(void* promise_data, void* call_data,
286
+ void* channel_data, T value);
177
287
  // Poll the promise data for this filter.
178
288
  // If the promise finishes, also destroy the promise data!
179
289
  // Note that if the promise always finishes on the first poll, then supplying
180
290
  // this method is unnecessary (as it will never be called).
181
- Poll<R> (*poll)(void* promise_data);
291
+ Poll<ResultOr<T>> (*poll)(void* promise_data);
182
292
  // Destroy the promise data for this filter for an in-progress operation
183
293
  // before the promise finishes.
184
294
  // Note that if the promise always finishes on the first poll, then supplying
@@ -186,22 +296,39 @@ struct Operator {
186
296
  void (*early_destroy)(void* promise_data);
187
297
  };
188
298
 
189
- // We divide operations into fallible and infallible.
190
- // Fallible operations can fail, and that failure terminates the call.
191
- // Infallible operations cannot fail.
192
- // Fallible operations are used for client initial, and server initial metadata,
193
- // and messages.
194
- // Infallible operations are used for server trailing metadata.
195
- // (This is because server trailing metadata occurs when the call is finished -
196
- // and so we couldn't possibly become more finished - and also because it's the
197
- // preferred representation of failure anyway!)
198
-
199
- // An operation that could fail: takes a T argument, produces a ResultOr<T>
200
- template <typename T>
201
- using FallibleOperator = Operator<ResultOr<T>, T>;
202
- // And one that cannot: takes a T argument, produces a T
203
- template <typename T>
204
- using InfallibleOperator = Operator<T, T>;
299
+ struct HalfCloseOperator {
300
+ // Pointer to corresponding channel data for this filter
301
+ void* channel_data;
302
+ // Offset of the call data for this filter within the call data memory
303
+ size_t call_offset;
304
+ void (*half_close)(void* call_data, void* channel_data);
305
+ };
306
+
307
+ struct ServerTrailingMetadataOperator {
308
+ // Pointer to corresponding channel data for this filter
309
+ void* channel_data;
310
+ // Offset of the call data for this filter within the call data memory
311
+ size_t call_offset;
312
+ ServerMetadataHandle (*server_trailing_metadata)(
313
+ void* call_data, void* channel_data, ServerMetadataHandle metadata);
314
+ };
315
+
316
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline void RunHalfClose(
317
+ absl::Span<const HalfCloseOperator> ops, void* call_data) {
318
+ for (const auto& op : ops) {
319
+ op.half_close(Offset(call_data, op.call_offset), op.channel_data);
320
+ }
321
+ }
322
+
323
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline ServerMetadataHandle
324
+ RunServerTrailingMetadata(absl::Span<const ServerTrailingMetadataOperator> ops,
325
+ void* call_data, ServerMetadataHandle md) {
326
+ for (auto& op : ops) {
327
+ md = op.server_trailing_metadata(Offset(call_data, op.call_offset),
328
+ op.channel_data, std::move(md));
329
+ }
330
+ return md;
331
+ }
205
332
 
206
333
  // One call finalizer
207
334
  struct Finalizer {
@@ -213,19 +340,20 @@ struct Finalizer {
213
340
 
214
341
  // A layout of operations for a given filter stack
215
342
  // This includes which operations, how much memory is required, what alignment.
216
- template <typename Op>
343
+ template <typename T>
217
344
  struct Layout {
218
345
  size_t promise_size = 0;
219
346
  size_t promise_alignment = 0;
220
- std::vector<Op> ops;
347
+ std::vector<Operator<T>> ops;
221
348
 
222
- void Add(size_t filter_promise_size, size_t filter_promise_alignment, Op op) {
349
+ void Add(size_t filter_promise_size, size_t filter_promise_alignment,
350
+ Operator<T> op) {
223
351
  promise_size = std::max(promise_size, filter_promise_size);
224
352
  promise_alignment = std::max(promise_alignment, filter_promise_alignment);
225
353
  ops.push_back(op);
226
354
  }
227
355
 
228
- void Reverse() { std::reverse(ops.begin(), ops.end()); }
356
+ void Reverse() { absl::c_reverse(ops); }
229
357
  };
230
358
 
231
359
  // AddOp and friends
@@ -245,27 +373,104 @@ struct AddOpImpl;
245
373
 
246
374
  template <typename FunctionImpl, FunctionImpl impl, typename FilterType,
247
375
  typename T>
248
- void AddOp(FilterType* channel_data, size_t call_offset,
249
- Layout<FallibleOperator<T>>& to) {
376
+ void AddOp(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
250
377
  AddOpImpl<FilterType, T, FunctionImpl, impl>::Add(channel_data, call_offset,
251
378
  to);
252
379
  }
253
380
 
254
- template <typename FunctionImpl, FunctionImpl impl, typename FilterType,
255
- typename T>
256
- void AddOp(FilterType* channel_data, size_t call_offset,
257
- Layout<InfallibleOperator<T>>& to) {
258
- AddOpImpl<FilterType, T, FunctionImpl, impl>::Add(channel_data, call_offset,
259
- to);
381
+ template <typename FilterType>
382
+ void AddHalfClose(FilterType* channel_data, size_t call_offset,
383
+ void (FilterType::Call::*)(),
384
+ std::vector<HalfCloseOperator>& to) {
385
+ to.push_back(
386
+ HalfCloseOperator{channel_data, call_offset, [](void* call_data, void*) {
387
+ static_cast<typename FilterType::Call*>(call_data)
388
+ ->OnClientToServerHalfClose();
389
+ }});
260
390
  }
261
391
 
392
+ template <typename FilterType>
393
+ void AddHalfClose(FilterType* channel_data, size_t call_offset,
394
+ void (FilterType::Call::*)(FilterType*),
395
+ std::vector<HalfCloseOperator>& to) {
396
+ to.push_back(HalfCloseOperator{
397
+ channel_data, call_offset, [](void* call_data, void* channel_data) {
398
+ static_cast<typename FilterType::Call*>(call_data)
399
+ ->OnClientToServerHalfClose(static_cast<FilterType*>(channel_data));
400
+ }});
401
+ }
402
+
403
+ template <typename FilterType>
404
+ void AddHalfClose(FilterType*, size_t, const NoInterceptor*,
405
+ std::vector<HalfCloseOperator>&) {}
406
+
407
+ template <typename FilterType>
408
+ void AddServerTrailingMetadata(
409
+ FilterType* channel_data, size_t call_offset,
410
+ void (FilterType::Call::*)(ServerMetadata&),
411
+ std::vector<ServerTrailingMetadataOperator>& to) {
412
+ to.push_back(ServerTrailingMetadataOperator{
413
+ channel_data, call_offset,
414
+ [](void* call_data, void*, ServerMetadataHandle metadata) {
415
+ static_cast<typename FilterType::Call*>(call_data)
416
+ ->OnServerTrailingMetadata(*metadata);
417
+ return metadata;
418
+ }});
419
+ }
420
+
421
+ template <typename FilterType>
422
+ void AddServerTrailingMetadata(
423
+ FilterType* channel_data, size_t call_offset,
424
+ void (FilterType::Call::*)(ServerMetadata&, FilterType*),
425
+ std::vector<ServerTrailingMetadataOperator>& to) {
426
+ to.push_back(ServerTrailingMetadataOperator{
427
+ channel_data, call_offset,
428
+ [](void* call_data, void* channel_data, ServerMetadataHandle metadata) {
429
+ static_cast<typename FilterType::Call*>(call_data)
430
+ ->OnServerTrailingMetadata(*metadata,
431
+ static_cast<FilterType*>(channel_data));
432
+ return metadata;
433
+ }});
434
+ }
435
+
436
+ template <typename FilterType>
437
+ void AddServerTrailingMetadata(
438
+ FilterType* channel_data, size_t call_offset,
439
+ absl::Status (FilterType::Call::*)(ServerMetadata&),
440
+ std::vector<ServerTrailingMetadataOperator>& to) {
441
+ to.push_back(ServerTrailingMetadataOperator{
442
+ channel_data, call_offset,
443
+ [](void* call_data, void*, ServerMetadataHandle metadata) {
444
+ auto r = static_cast<typename FilterType::Call*>(call_data)
445
+ ->OnServerTrailingMetadata(*metadata);
446
+ if (r.ok()) return metadata;
447
+ return CancelledServerMetadataFromStatus(r);
448
+ }});
449
+ }
450
+
451
+ template <typename FilterType>
452
+ void AddServerTrailingMetadata(
453
+ FilterType* channel_data, size_t call_offset,
454
+ ServerMetadataHandle (FilterType::Call::*)(ServerMetadataHandle),
455
+ std::vector<ServerTrailingMetadataOperator>& to) {
456
+ to.push_back(ServerTrailingMetadataOperator{
457
+ channel_data, call_offset,
458
+ [](void* call_data, void*, ServerMetadataHandle metadata) {
459
+ return static_cast<typename FilterType::Call*>(call_data)
460
+ ->OnServerTrailingMetadata(std::move(metadata));
461
+ }});
462
+ }
463
+
464
+ template <typename FilterType>
465
+ void AddServerTrailingMetadata(FilterType*, size_t, const NoInterceptor*,
466
+ std::vector<ServerTrailingMetadataOperator>&) {}
467
+
262
468
  // const NoInterceptor $EVENT
263
469
  // These do nothing, and specifically DO NOT add an operation to the layout.
264
470
  // Supported for fallible & infallible operations.
265
471
  template <typename FilterType, typename T, const NoInterceptor* which>
266
472
  struct AddOpImpl<FilterType, T, const NoInterceptor*, which> {
267
- static void Add(FilterType*, size_t, Layout<FallibleOperator<T>>&) {}
268
- static void Add(FilterType*, size_t, Layout<InfallibleOperator<T>>&) {}
473
+ static void Add(FilterType*, size_t, Layout<T>&) {}
269
474
  };
270
475
 
271
476
  // void $INTERCEPTOR_NAME($VALUE_TYPE&)
@@ -273,10 +478,9 @@ template <typename FilterType, typename T,
273
478
  void (FilterType::Call::*impl)(typename T::element_type&)>
274
479
  struct AddOpImpl<FilterType, T,
275
480
  void (FilterType::Call::*)(typename T::element_type&), impl> {
276
- static void Add(FilterType* channel_data, size_t call_offset,
277
- Layout<FallibleOperator<T>>& to) {
481
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
278
482
  to.Add(0, 0,
279
- FallibleOperator<T>{
483
+ Operator<T>{
280
484
  channel_data,
281
485
  call_offset,
282
486
  [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
@@ -288,16 +492,23 @@ struct AddOpImpl<FilterType, T,
288
492
  nullptr,
289
493
  });
290
494
  }
291
- static void Add(FilterType* channel_data, size_t call_offset,
292
- Layout<InfallibleOperator<T>>& to) {
495
+ };
496
+
497
+ // void $INTERCEPTOR_NAME(const $VALUE_TYPE&)
498
+ template <typename FilterType, typename T,
499
+ void (FilterType::Call::*impl)(const typename T::element_type&)>
500
+ struct AddOpImpl<FilterType, T,
501
+ void (FilterType::Call::*)(const typename T::element_type&),
502
+ impl> {
503
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
293
504
  to.Add(0, 0,
294
- InfallibleOperator<T>{
505
+ Operator<T>{
295
506
  channel_data,
296
507
  call_offset,
297
- [](void*, void* call_data, void*, T value) -> Poll<T> {
508
+ [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
298
509
  (static_cast<typename FilterType::Call*>(call_data)->*impl)(
299
510
  *value);
300
- return std::move(value);
511
+ return ResultOr<T>{std::move(value), nullptr};
301
512
  },
302
513
  nullptr,
303
514
  nullptr,
@@ -312,10 +523,9 @@ template <typename FilterType, typename T,
312
523
  struct AddOpImpl<
313
524
  FilterType, T,
314
525
  void (FilterType::Call::*)(typename T::element_type&, FilterType*), impl> {
315
- static void Add(FilterType* channel_data, size_t call_offset,
316
- Layout<FallibleOperator<T>>& to) {
526
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
317
527
  to.Add(0, 0,
318
- FallibleOperator<T>{
528
+ Operator<T>{
319
529
  channel_data,
320
530
  call_offset,
321
531
  [](void*, void* call_data, void* channel_data,
@@ -328,21 +538,30 @@ struct AddOpImpl<
328
538
  nullptr,
329
539
  });
330
540
  }
331
- static void Add(FilterType* channel_data, size_t call_offset,
332
- Layout<InfallibleOperator<T>>& to) {
333
- to.Add(
334
- 0, 0,
335
- InfallibleOperator<T>{
336
- channel_data,
337
- call_offset,
338
- [](void*, void* call_data, void* channel_data, T value) -> Poll<T> {
339
- (static_cast<typename FilterType::Call*>(call_data)->*impl)(
340
- *value, static_cast<FilterType*>(channel_data));
341
- return std::move(value);
342
- },
343
- nullptr,
344
- nullptr,
345
- });
541
+ };
542
+
543
+ // void $INTERCEPTOR_NAME(const $VALUE_TYPE&, FilterType*)
544
+ template <typename FilterType, typename T,
545
+ void (FilterType::Call::*impl)(const typename T::element_type&,
546
+ FilterType*)>
547
+ struct AddOpImpl<FilterType, T,
548
+ void (FilterType::Call::*)(const typename T::element_type&,
549
+ FilterType*),
550
+ impl> {
551
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
552
+ to.Add(0, 0,
553
+ Operator<T>{
554
+ channel_data,
555
+ call_offset,
556
+ [](void*, void* call_data, void* channel_data,
557
+ T value) -> Poll<ResultOr<T>> {
558
+ (static_cast<typename FilterType::Call*>(call_data)->*impl)(
559
+ *value, static_cast<FilterType*>(channel_data));
560
+ return ResultOr<T>{std::move(value), nullptr};
561
+ },
562
+ nullptr,
563
+ nullptr,
564
+ });
346
565
  }
347
566
  };
348
567
 
@@ -350,11 +569,10 @@ struct AddOpImpl<
350
569
  template <typename FilterType, typename T,
351
570
  T (FilterType::Call::*impl)(T, FilterType*)>
352
571
  struct AddOpImpl<FilterType, T, T (FilterType::Call::*)(T, FilterType*), impl> {
353
- static void Add(FilterType* channel_data, size_t call_offset,
354
- Layout<FallibleOperator<T>>& to) {
572
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
355
573
  to.Add(
356
574
  0, 0,
357
- FallibleOperator<T>{
575
+ Operator<T>{
358
576
  channel_data,
359
577
  call_offset,
360
578
  [](void*, void* call_data, void* channel_data,
@@ -368,24 +586,6 @@ struct AddOpImpl<FilterType, T, T (FilterType::Call::*)(T, FilterType*), impl> {
368
586
  nullptr,
369
587
  });
370
588
  }
371
- static void Add(FilterType* channel_data, size_t call_offset,
372
- Layout<InfallibleOperator<T>>& to) {
373
- to.Add(
374
- 0, 0,
375
- InfallibleOperator<T>{
376
- channel_data,
377
- call_offset,
378
- [](void*, void* call_data, void* channel_data, T value) -> Poll<T> {
379
- (static_cast<typename FilterType::Call*>(call_data)->*impl)(
380
- *value, static_cast<FilterType*>(channel_data));
381
- return (
382
- static_cast<typename FilterType::Call*>(call_data)->*impl)(
383
- std::move(value), static_cast<FilterType*>(channel_data));
384
- },
385
- nullptr,
386
- nullptr,
387
- });
388
- }
389
589
  };
390
590
 
391
591
  // absl::Status $INTERCEPTOR_NAME($VALUE_TYPE&)
@@ -394,11 +594,10 @@ template <typename FilterType, typename T,
394
594
  struct AddOpImpl<FilterType, T,
395
595
  absl::Status (FilterType::Call::*)(typename T::element_type&),
396
596
  impl> {
397
- static void Add(FilterType* channel_data, size_t call_offset,
398
- Layout<FallibleOperator<T>>& to) {
597
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
399
598
  to.Add(
400
599
  0, 0,
401
- FallibleOperator<T>{
600
+ Operator<T>{
402
601
  channel_data,
403
602
  call_offset,
404
603
  [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
@@ -413,24 +612,6 @@ struct AddOpImpl<FilterType, T,
413
612
  nullptr,
414
613
  });
415
614
  }
416
- static void Add(FilterType* channel_data, size_t call_offset,
417
- Layout<InfallibleOperator<T>>& to) {
418
- to.Add(
419
- 0, 0,
420
- InfallibleOperator<T>{
421
- channel_data,
422
- call_offset,
423
- [](void*, void* call_data, void*, T value) -> Poll<T> {
424
- auto r =
425
- (static_cast<typename FilterType::Call*>(call_data)->*impl)(
426
- *value);
427
- if (r.ok()) return std::move(value);
428
- return StatusCast<ServerMetadataHandle>(std::move(r));
429
- },
430
- nullptr,
431
- nullptr,
432
- });
433
- }
434
615
  };
435
616
 
436
617
  // absl::Status $INTERCEPTOR_NAME(const $VALUE_TYPE&)
@@ -440,11 +621,10 @@ template <typename FilterType, typename T,
440
621
  struct AddOpImpl<
441
622
  FilterType, T,
442
623
  absl::Status (FilterType::Call::*)(const typename T::element_type&), impl> {
443
- static void Add(FilterType* channel_data, size_t call_offset,
444
- Layout<FallibleOperator<T>>& to) {
624
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
445
625
  to.Add(
446
626
  0, 0,
447
- FallibleOperator<T>{
627
+ Operator<T>{
448
628
  channel_data,
449
629
  call_offset,
450
630
  [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
@@ -469,11 +649,10 @@ struct AddOpImpl<FilterType, T,
469
649
  absl::Status (FilterType::Call::*)(typename T::element_type&,
470
650
  FilterType*),
471
651
  impl> {
472
- static void Add(FilterType* channel_data, size_t call_offset,
473
- Layout<FallibleOperator<T>>& to) {
652
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
474
653
  to.Add(
475
654
  0, 0,
476
- FallibleOperator<T>{
655
+ Operator<T>{
477
656
  channel_data,
478
657
  call_offset,
479
658
  [](void*, void* call_data, void* channel_data,
@@ -499,11 +678,10 @@ struct AddOpImpl<FilterType, T,
499
678
  absl::Status (FilterType::Call::*)(
500
679
  const typename T::element_type&, FilterType*),
501
680
  impl> {
502
- static void Add(FilterType* channel_data, size_t call_offset,
503
- Layout<FallibleOperator<T>>& to) {
681
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
504
682
  to.Add(
505
683
  0, 0,
506
- FallibleOperator<T>{
684
+ Operator<T>{
507
685
  channel_data,
508
686
  call_offset,
509
687
  [](void*, void* call_data, void* channel_data,
@@ -527,11 +705,10 @@ template <typename FilterType, typename T,
527
705
  struct AddOpImpl<FilterType, T,
528
706
  absl::StatusOr<T> (FilterType::Call::*)(T, FilterType*),
529
707
  impl> {
530
- static void Add(FilterType* channel_data, size_t call_offset,
531
- Layout<FallibleOperator<T>>& to) {
708
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
532
709
  to.Add(
533
710
  0, 0,
534
- FallibleOperator<T>{
711
+ Operator<T>{
535
712
  channel_data,
536
713
  call_offset,
537
714
  [](void*, void* call_data, void* channel_data,
@@ -557,11 +734,10 @@ struct AddOpImpl<FilterType, T,
557
734
  ServerMetadataHandle (FilterType::Call::*)(
558
735
  typename T::element_type&),
559
736
  impl> {
560
- static void Add(FilterType* channel_data, size_t call_offset,
561
- Layout<FallibleOperator<T>>& to) {
737
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
562
738
  to.Add(
563
739
  0, 0,
564
- FallibleOperator<T>{
740
+ Operator<T>{
565
741
  channel_data,
566
742
  call_offset,
567
743
  [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
@@ -586,11 +762,10 @@ struct AddOpImpl<FilterType, T,
586
762
  ServerMetadataHandle (FilterType::Call::*)(
587
763
  const typename T::element_type&),
588
764
  impl> {
589
- static void Add(FilterType* channel_data, size_t call_offset,
590
- Layout<FallibleOperator<T>>& to) {
765
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
591
766
  to.Add(
592
767
  0, 0,
593
- FallibleOperator<T>{
768
+ Operator<T>{
594
769
  channel_data,
595
770
  call_offset,
596
771
  [](void*, void* call_data, void*, T value) -> Poll<ResultOr<T>> {
@@ -615,11 +790,10 @@ struct AddOpImpl<FilterType, T,
615
790
  ServerMetadataHandle (FilterType::Call::*)(
616
791
  typename T::element_type&, FilterType*),
617
792
  impl> {
618
- static void Add(FilterType* channel_data, size_t call_offset,
619
- Layout<FallibleOperator<T>>& to) {
793
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
620
794
  to.Add(
621
795
  0, 0,
622
- FallibleOperator<T>{
796
+ Operator<T>{
623
797
  channel_data,
624
798
  call_offset,
625
799
  [](void*, void* call_data, void* channel_data,
@@ -645,11 +819,10 @@ struct AddOpImpl<FilterType, T,
645
819
  ServerMetadataHandle (FilterType::Call::*)(
646
820
  const typename T::element_type&, FilterType*),
647
821
  impl> {
648
- static void Add(FilterType* channel_data, size_t call_offset,
649
- Layout<FallibleOperator<T>>& to) {
822
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
650
823
  to.Add(
651
824
  0, 0,
652
- FallibleOperator<T>{
825
+ Operator<T>{
653
826
  channel_data,
654
827
  call_offset,
655
828
  [](void*, void* call_data, void* channel_data,
@@ -673,8 +846,7 @@ template <typename FilterType, typename T, typename R,
673
846
  struct AddOpImpl<
674
847
  FilterType, T, R (FilterType::Call::*)(typename T::element_type&), impl,
675
848
  absl::enable_if_t<std::is_same<absl::Status, PromiseResult<R>>::value>> {
676
- static void Add(FilterType* channel_data, size_t call_offset,
677
- Layout<FallibleOperator<T>>& to) {
849
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
678
850
  class Promise {
679
851
  public:
680
852
  Promise(T value, typename FilterType::Call* call_data, FilterType*)
@@ -689,7 +861,7 @@ struct AddOpImpl<
689
861
  if (r->ok()) {
690
862
  return ResultOr<T>{std::move(value), nullptr};
691
863
  }
692
- return ResultOr<T>{nullptr, ServerMetadataFromStatus(*r)};
864
+ return ResultOr<T>{nullptr, CancelledServerMetadataFromStatus(*r)};
693
865
  }
694
866
 
695
867
  private:
@@ -697,7 +869,7 @@ struct AddOpImpl<
697
869
  GPR_NO_UNIQUE_ADDRESS R impl_;
698
870
  };
699
871
  to.Add(sizeof(Promise), alignof(Promise),
700
- FallibleOperator<T>{
872
+ Operator<T>{
701
873
  channel_data,
702
874
  call_offset,
703
875
  [](void* promise_data, void* call_data, void* channel_data,
@@ -726,8 +898,7 @@ struct AddOpImpl<
726
898
  R (FilterType::Call::*)(typename T::element_type&, FilterType*), impl,
727
899
  absl::enable_if_t<!std::is_same<R, absl::Status>::value &&
728
900
  std::is_same<absl::Status, PromiseResult<R>>::value>> {
729
- static void Add(FilterType* channel_data, size_t call_offset,
730
- Layout<FallibleOperator<T>>& to) {
901
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
731
902
  class Promise {
732
903
  public:
733
904
  Promise(T value, typename FilterType::Call* call_data,
@@ -744,7 +915,7 @@ struct AddOpImpl<
744
915
  if (r->ok()) {
745
916
  return ResultOr<T>{std::move(value), nullptr};
746
917
  }
747
- return ResultOr<T>{nullptr, ServerMetadataFromStatus(*r)};
918
+ return ResultOr<T>{nullptr, CancelledServerMetadataFromStatus(*r)};
748
919
  }
749
920
 
750
921
  private:
@@ -752,7 +923,7 @@ struct AddOpImpl<
752
923
  GPR_NO_UNIQUE_ADDRESS R impl_;
753
924
  };
754
925
  to.Add(sizeof(Promise), alignof(Promise),
755
- FallibleOperator<T>{
926
+ Operator<T>{
756
927
  channel_data,
757
928
  call_offset,
758
929
  [](void* promise_data, void* call_data, void* channel_data,
@@ -780,8 +951,31 @@ template <typename FilterType, typename T, typename R,
780
951
  struct AddOpImpl<FilterType, T, R (FilterType::Call::*)(T, FilterType*), impl,
781
952
  absl::enable_if_t<std::is_same<absl::StatusOr<T>,
782
953
  PromiseResult<R>>::value>> {
783
- static void Add(FilterType* channel_data, size_t call_offset,
784
- Layout<FallibleOperator<T>>& to) {
954
+ static void Add(FilterType* channel_data, size_t call_offset, Layout<T>& to) {
955
+ #if defined(__GNUC__) && __GNUC__ == 9
956
+ // Workaround for a bug in GNU C++ 9 compilers that fail to compile this
957
+ // class.
958
+ class Promise {
959
+ public:
960
+ Promise(T value, typename FilterType::Call* call_data,
961
+ FilterType* channel_data)
962
+ : impl_(std::make_unique<R>(
963
+ (call_data->*impl)(std::move(value), channel_data))) {}
964
+
965
+ Poll<ResultOr<T>> PollOnce() {
966
+ auto p = (*impl_)();
967
+ auto* r = p.value_if_ready();
968
+ if (r == nullptr) return Pending{};
969
+ this->~Promise();
970
+ if (r->ok()) return ResultOr<T>{std::move(**r), nullptr};
971
+ return ResultOr<T>{nullptr,
972
+ CancelledServerMetadataFromStatus(r->status())};
973
+ }
974
+
975
+ private:
976
+ std::unique_ptr<R> impl_;
977
+ };
978
+ #else
785
979
  class Promise {
786
980
  public:
787
981
  Promise(T value, typename FilterType::Call* call_data,
@@ -794,14 +988,16 @@ struct AddOpImpl<FilterType, T, R (FilterType::Call::*)(T, FilterType*), impl,
794
988
  if (r == nullptr) return Pending{};
795
989
  this->~Promise();
796
990
  if (r->ok()) return ResultOr<T>{std::move(**r), nullptr};
797
- return ResultOr<T>{nullptr, ServerMetadataFromStatus(r->status())};
991
+ return ResultOr<T>{nullptr,
992
+ CancelledServerMetadataFromStatus(r->status())};
798
993
  }
799
994
 
800
995
  private:
801
996
  GPR_NO_UNIQUE_ADDRESS R impl_;
802
997
  };
998
+ #endif
803
999
  to.Add(sizeof(Promise), alignof(Promise),
804
- FallibleOperator<T>{
1000
+ Operator<T>{
805
1001
  channel_data,
806
1002
  call_offset,
807
1003
  [](void* promise_data, void* call_data, void* channel_data,
@@ -843,11 +1039,12 @@ struct StackData {
843
1039
  // For each kind of operation, a layout of the operations for this call.
844
1040
  // (there's some duplicate data here, and that's ok: we want to avoid
845
1041
  // pointer chasing as much as possible when executing a call)
846
- Layout<FallibleOperator<ClientMetadataHandle>> client_initial_metadata;
847
- Layout<FallibleOperator<ServerMetadataHandle>> server_initial_metadata;
848
- Layout<FallibleOperator<MessageHandle>> client_to_server_messages;
849
- Layout<FallibleOperator<MessageHandle>> server_to_client_messages;
850
- Layout<InfallibleOperator<ServerMetadataHandle>> server_trailing_metadata;
1042
+ Layout<ClientMetadataHandle> client_initial_metadata;
1043
+ Layout<ServerMetadataHandle> server_initial_metadata;
1044
+ Layout<MessageHandle> client_to_server_messages;
1045
+ std::vector<HalfCloseOperator> client_to_server_half_close;
1046
+ Layout<MessageHandle> server_to_client_messages;
1047
+ std::vector<ServerTrailingMetadataOperator> server_trailing_metadata;
851
1048
  // A list of finalizers for this call.
852
1049
  // We use a bespoke data structure here because finalizers can never be
853
1050
  // asynchronous.
@@ -856,6 +1053,17 @@ struct StackData {
856
1053
  // (to capture ownership of channel data)
857
1054
  std::vector<ChannelDataDestructor> channel_data_destructors;
858
1055
 
1056
+ bool empty() const {
1057
+ return filter_constructor.empty() && filter_destructor.empty() &&
1058
+ client_initial_metadata.ops.empty() &&
1059
+ server_initial_metadata.ops.empty() &&
1060
+ client_to_server_messages.ops.empty() &&
1061
+ client_to_server_half_close.empty() &&
1062
+ server_to_client_messages.ops.empty() &&
1063
+ server_trailing_metadata.empty() && finalizers.empty() &&
1064
+ channel_data_destructors.empty();
1065
+ }
1066
+
859
1067
  // Add one filter to the list of filters, and update alignment.
860
1068
  // Returns the offset of the call data for this filter.
861
1069
  // Specifically does not update any of the layouts or finalizers.
@@ -922,7 +1130,7 @@ struct StackData {
922
1130
  filter_destructor.push_back(FilterDestructor{
923
1131
  call_offset,
924
1132
  [](void* call_data) {
925
- static_cast<typename FilterType::Call*>(call_data)->~Call();
1133
+ Destruct(static_cast<typename FilterType::Call*>(call_data));
926
1134
  },
927
1135
  });
928
1136
  }
@@ -966,6 +1174,14 @@ struct StackData {
966
1174
  channel_data, call_offset, client_to_server_messages);
967
1175
  }
968
1176
 
1177
+ template <typename FilterType>
1178
+ void AddClientToServerHalfClose(FilterType* channel_data,
1179
+ size_t call_offset) {
1180
+ AddHalfClose(channel_data, call_offset,
1181
+ &FilterType::Call::OnClientToServerHalfClose,
1182
+ client_to_server_half_close);
1183
+ }
1184
+
969
1185
  template <typename FilterType>
970
1186
  void AddServerToClientMessageOp(FilterType* channel_data,
971
1187
  size_t call_offset) {
@@ -977,22 +1193,22 @@ struct StackData {
977
1193
  template <typename FilterType>
978
1194
  void AddServerTrailingMetadataOp(FilterType* channel_data,
979
1195
  size_t call_offset) {
980
- AddOp<decltype(&FilterType::Call::OnServerTrailingMetadata),
981
- &FilterType::Call::OnServerTrailingMetadata>(
982
- channel_data, call_offset, server_trailing_metadata);
1196
+ AddServerTrailingMetadata(channel_data, call_offset,
1197
+ &FilterType::Call::OnServerTrailingMetadata,
1198
+ server_trailing_metadata);
983
1199
  }
984
1200
 
985
1201
  // Finalizer interception adders
986
1202
 
987
1203
  template <typename FilterType>
988
1204
  void AddFinalizer(FilterType*, size_t, const NoInterceptor* p) {
989
- GPR_DEBUG_ASSERT(p == &FilterType::Call::OnFinalize);
1205
+ DCHECK(p == &FilterType::Call::OnFinalize);
990
1206
  }
991
1207
 
992
1208
  template <typename FilterType>
993
1209
  void AddFinalizer(FilterType* channel_data, size_t call_offset,
994
1210
  void (FilterType::Call::*p)(const grpc_call_final_info*)) {
995
- GPR_DEBUG_ASSERT(p == &FilterType::Call::OnFinalize);
1211
+ DCHECK(p == &FilterType::Call::OnFinalize);
996
1212
  finalizers.push_back(Finalizer{
997
1213
  channel_data,
998
1214
  call_offset,
@@ -1007,7 +1223,7 @@ struct StackData {
1007
1223
  void AddFinalizer(FilterType* channel_data, size_t call_offset,
1008
1224
  void (FilterType::Call::*p)(const grpc_call_final_info*,
1009
1225
  FilterType*)) {
1010
- GPR_DEBUG_ASSERT(p == &FilterType::Call::OnFinalize);
1226
+ DCHECK(p == &FilterType::Call::OnFinalize);
1011
1227
  finalizers.push_back(Finalizer{
1012
1228
  channel_data,
1013
1229
  call_offset,
@@ -1037,11 +1253,11 @@ class OperationExecutor {
1037
1253
  OperationExecutor(OperationExecutor&& other) noexcept
1038
1254
  : ops_(other.ops_), end_ops_(other.end_ops_) {
1039
1255
  // Movable iff we're not running.
1040
- GPR_DEBUG_ASSERT(other.promise_data_ == nullptr);
1256
+ DCHECK_EQ(other.promise_data_, nullptr);
1041
1257
  }
1042
1258
  OperationExecutor& operator=(OperationExecutor&& other) noexcept {
1043
- GPR_DEBUG_ASSERT(other.promise_data_ == nullptr);
1044
- GPR_DEBUG_ASSERT(promise_data_ == nullptr);
1259
+ DCHECK_EQ(other.promise_data_, nullptr);
1260
+ DCHECK_EQ(promise_data_, nullptr);
1045
1261
  ops_ = other.ops_;
1046
1262
  end_ops_ = other.end_ops_;
1047
1263
  return *this;
@@ -1051,8 +1267,7 @@ class OperationExecutor {
1051
1267
  // Start executing a layout. May allocate space to store the relevant promise.
1052
1268
  // Returns the result of the first poll.
1053
1269
  // If the promise finishes, also destroy the promise data.
1054
- Poll<ResultOr<T>> Start(const Layout<FallibleOperator<T>>* layout, T input,
1055
- void* call_data);
1270
+ Poll<ResultOr<T>> Start(const Layout<T>* layout, T input, void* call_data);
1056
1271
  // Continue executing a layout. Returns the result of the next poll.
1057
1272
  // If the promise finishes, also destroy the promise data.
1058
1273
  Poll<ResultOr<T>> Step(void* call_data);
@@ -1074,145 +1289,91 @@ class OperationExecutor {
1074
1289
  Poll<ResultOr<T>> ContinueStep(void* call_data);
1075
1290
 
1076
1291
  void* promise_data_ = nullptr;
1077
- const FallibleOperator<T>* ops_;
1078
- const FallibleOperator<T>* end_ops_;
1292
+ const Operator<T>* ops_;
1293
+ const Operator<T>* end_ops_;
1079
1294
  };
1080
1295
 
1081
- // Per OperationExecutor, but for infallible operation sequences.
1082
1296
  template <typename T>
1083
- class InfallibleOperationExecutor {
1084
- public:
1085
- InfallibleOperationExecutor() = default;
1086
- ~InfallibleOperationExecutor();
1087
- InfallibleOperationExecutor(const InfallibleOperationExecutor&) = delete;
1088
- InfallibleOperationExecutor& operator=(const InfallibleOperationExecutor&) =
1089
- delete;
1090
- InfallibleOperationExecutor(InfallibleOperationExecutor&& other) noexcept
1091
- : ops_(other.ops_), end_ops_(other.end_ops_) {
1092
- // Movable iff we're not running.
1093
- GPR_DEBUG_ASSERT(other.promise_data_ == nullptr);
1094
- }
1095
- InfallibleOperationExecutor& operator=(
1096
- InfallibleOperationExecutor&& other) noexcept {
1097
- GPR_DEBUG_ASSERT(other.promise_data_ == nullptr);
1098
- GPR_DEBUG_ASSERT(promise_data_ == nullptr);
1099
- ops_ = other.ops_;
1100
- end_ops_ = other.end_ops_;
1101
- return *this;
1297
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline OperationExecutor<
1298
+ T>::~OperationExecutor() {
1299
+ if (promise_data_ != nullptr) {
1300
+ ops_->early_destroy(promise_data_);
1301
+ gpr_free_aligned(promise_data_);
1102
1302
  }
1303
+ }
1103
1304
 
1104
- // IsRunning() is true if we're currently executing a sequence of operations.
1105
- bool IsRunning() const { return promise_data_ != nullptr; }
1106
- // Start executing a layout. May allocate space to store the relevant promise.
1107
- // Returns the result of the first poll.
1108
- // If the promise finishes, also destroy the promise data.
1109
- Poll<T> Start(const Layout<InfallibleOperator<T>>* layout, T input,
1110
- void* call_data);
1111
- // Continue executing a layout. Returns the result of the next poll.
1112
- // If the promise finishes, also destroy the promise data.
1113
- Poll<T> Step(void* call_data);
1114
-
1115
- private:
1116
- // Start polling on the current step of the layout.
1117
- // `input` is the current value (either the input to the first step, or the
1118
- // so far transformed value)
1119
- // `call_data` is the call data for the filter stack.
1120
- // If this op finishes immediately then we iterative move to the next step.
1121
- // If we reach the end up the ops, we return the overall poll result,
1122
- // otherwise we return Pending.
1123
- Poll<T> InitStep(T input, void* call_data);
1124
- // Continue polling on the current step of the layout.
1125
- // Called on the next poll after InitStep returns pending.
1126
- // If the promise is still pending, returns this.
1127
- // If the promise completes we call into InitStep to continue execution
1128
- // through the filters.
1129
- Poll<T> ContinueStep(void* call_data);
1130
-
1131
- void* promise_data_ = nullptr;
1132
- const InfallibleOperator<T>* ops_;
1133
- const InfallibleOperator<T>* end_ops_;
1134
- };
1305
+ template <typename T>
1306
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline Poll<ResultOr<T>>
1307
+ OperationExecutor<T>::Start(const Layout<T>* layout, T input, void* call_data) {
1308
+ ops_ = layout->ops.data();
1309
+ end_ops_ = ops_ + layout->ops.size();
1310
+ if (layout->promise_size == 0) {
1311
+ // No call state ==> instantaneously ready
1312
+ auto r = InitStep(std::move(input), call_data);
1313
+ CHECK(r.ready());
1314
+ return r;
1315
+ }
1316
+ promise_data_ =
1317
+ gpr_malloc_aligned(layout->promise_size, layout->promise_alignment);
1318
+ return InitStep(std::move(input), call_data);
1319
+ }
1135
1320
 
1136
- // The current state of a pipe.
1137
- // CallFilters expose a set of pipe like objects for client & server initial
1138
- // metadata and for messages.
1139
- // This class tracks the state of one of those pipes.
1140
- // Size matters here: this state is kept for the lifetime of a call, and we keep
1141
- // multiple of them.
1142
- // This class encapsulates the untyped work of the state machine; there are
1143
- // typed wrappers around this class as private members of CallFilters that
1144
- // augment it to provide all the functionality that we must.
1145
- class PipeState {
1146
- public:
1147
- struct StartPushed {};
1148
- PipeState() = default;
1149
- explicit PipeState(StartPushed) : state_(ValueState::kQueued) {}
1150
- // Start the pipe: allows pulls to proceed
1151
- void Start();
1152
- // A push operation is beginning
1153
- void BeginPush();
1154
- // A previously started push operation has completed
1155
- void DropPush();
1156
- // Poll for push completion: occurs after the corresponding Pull()
1157
- Poll<StatusFlag> PollPush();
1158
- // Poll for pull completion; returns Failure{} if closed with error,
1159
- // true if a value is available, or false if the pipe was closed without
1160
- // error.
1161
- Poll<ValueOrFailure<bool>> PollPull();
1162
- // A pulled value has been consumed: we can unblock the push
1163
- void AckPull();
1164
- // A previously started pull operation has completed
1165
- void DropPull();
1166
- // Close sending
1167
- void CloseSending();
1168
- // Close sending with error
1169
- void CloseWithError();
1170
- // Poll for closedness - if true, closed with error
1171
- Poll<bool> PollClosed();
1172
-
1173
- bool holds_error() const { return state_ == ValueState::kError; }
1321
+ template <typename T>
1322
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline Poll<ResultOr<T>>
1323
+ OperationExecutor<T>::InitStep(T input, void* call_data) {
1324
+ CHECK(input != nullptr);
1325
+ while (true) {
1326
+ if (ops_ == end_ops_) {
1327
+ return ResultOr<T>{std::move(input), nullptr};
1328
+ }
1329
+ auto p =
1330
+ ops_->promise_init(promise_data_, Offset(call_data, ops_->call_offset),
1331
+ ops_->channel_data, std::move(input));
1332
+ if (auto* r = p.value_if_ready()) {
1333
+ if (r->ok == nullptr) return std::move(*r);
1334
+ input = std::move(r->ok);
1335
+ ++ops_;
1336
+ continue;
1337
+ }
1338
+ return Pending{};
1339
+ }
1340
+ }
1174
1341
 
1175
- std::string DebugString() const;
1342
+ template <typename T>
1343
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline Poll<ResultOr<T>>
1344
+ OperationExecutor<T>::Step(void* call_data) {
1345
+ DCHECK_NE(promise_data_, nullptr);
1346
+ auto p = ContinueStep(call_data);
1347
+ if (p.ready()) {
1348
+ gpr_free_aligned(promise_data_);
1349
+ promise_data_ = nullptr;
1350
+ }
1351
+ return p;
1352
+ }
1176
1353
 
1177
- private:
1178
- enum class ValueState : uint8_t {
1179
- // Nothing sending nor receiving
1180
- kIdle,
1181
- // Sent, but not yet received
1182
- kQueued,
1183
- // Trying to receive, but not yet sent
1184
- kWaiting,
1185
- // Ready to start processing, but not yet started
1186
- // (we have the value to send through the pipe, the reader is waiting,
1187
- // but it's not yet been polled)
1188
- kReady,
1189
- // Processing through filters
1190
- kProcessing,
1191
- // Closed sending
1192
- kClosed,
1193
- // Closed due to failure
1194
- kError
1195
- };
1196
- // Waiter for a promise blocked waiting to send.
1197
- IntraActivityWaiter wait_send_;
1198
- // Waiter for a promise blocked waiting to receive.
1199
- IntraActivityWaiter wait_recv_;
1200
- // Current state.
1201
- ValueState state_ = ValueState::kIdle;
1202
- // Has the pipe been started?
1203
- bool started_ = false;
1204
- };
1354
+ template <typename T>
1355
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline Poll<ResultOr<T>>
1356
+ OperationExecutor<T>::ContinueStep(void* call_data) {
1357
+ auto p = ops_->poll(promise_data_);
1358
+ if (auto* r = p.value_if_ready()) {
1359
+ if (r->ok == nullptr) return std::move(*r);
1360
+ ++ops_;
1361
+ return InitStep(std::move(r->ok), call_data);
1362
+ }
1363
+ return Pending{};
1364
+ }
1205
1365
 
1206
1366
  template <typename Fn>
1207
1367
  class ServerTrailingMetadataInterceptor {
1208
1368
  public:
1209
1369
  class Call {
1210
1370
  public:
1211
- static const NoInterceptor OnClientInitialMetadata;
1212
- static const NoInterceptor OnServerInitialMetadata;
1213
- static const NoInterceptor OnClientToServerMessage;
1214
- static const NoInterceptor OnServerToClientMessage;
1215
- static const NoInterceptor OnFinalize;
1371
+ static const inline NoInterceptor OnClientInitialMetadata;
1372
+ static const inline NoInterceptor OnServerInitialMetadata;
1373
+ static const inline NoInterceptor OnClientToServerMessage;
1374
+ static const inline NoInterceptor OnClientToServerHalfClose;
1375
+ static const inline NoInterceptor OnServerToClientMessage;
1376
+ static const inline NoInterceptor OnFinalize;
1216
1377
  void OnServerTrailingMetadata(ServerMetadata& md,
1217
1378
  ServerTrailingMetadataInterceptor* filter) {
1218
1379
  filter->fn_(md);
@@ -1224,23 +1385,136 @@ class ServerTrailingMetadataInterceptor {
1224
1385
  private:
1225
1386
  GPR_NO_UNIQUE_ADDRESS Fn fn_;
1226
1387
  };
1388
+
1227
1389
  template <typename Fn>
1228
- const NoInterceptor
1229
- ServerTrailingMetadataInterceptor<Fn>::Call::OnClientInitialMetadata;
1230
- template <typename Fn>
1231
- const NoInterceptor
1232
- ServerTrailingMetadataInterceptor<Fn>::Call::OnServerInitialMetadata;
1233
- template <typename Fn>
1234
- const NoInterceptor
1235
- ServerTrailingMetadataInterceptor<Fn>::Call::OnClientToServerMessage;
1236
- template <typename Fn>
1237
- const NoInterceptor
1238
- ServerTrailingMetadataInterceptor<Fn>::Call::OnServerToClientMessage;
1239
- template <typename Fn>
1240
- const NoInterceptor ServerTrailingMetadataInterceptor<Fn>::Call::OnFinalize;
1390
+ class ClientInitialMetadataInterceptor {
1391
+ public:
1392
+ class Call {
1393
+ public:
1394
+ auto OnClientInitialMetadata(ClientMetadata& md,
1395
+ ClientInitialMetadataInterceptor* filter) {
1396
+ return filter->fn_(md);
1397
+ }
1398
+ static const inline NoInterceptor OnServerInitialMetadata;
1399
+ static const inline NoInterceptor OnClientToServerMessage;
1400
+ static const inline NoInterceptor OnClientToServerHalfClose;
1401
+ static const inline NoInterceptor OnServerToClientMessage;
1402
+ static const inline NoInterceptor OnServerTrailingMetadata;
1403
+ static const inline NoInterceptor OnFinalize;
1404
+ };
1405
+
1406
+ explicit ClientInitialMetadataInterceptor(Fn fn) : fn_(std::move(fn)) {}
1407
+
1408
+ private:
1409
+ GPR_NO_UNIQUE_ADDRESS Fn fn_;
1410
+ };
1241
1411
 
1412
+ // Determine if an interceptor needs to access the channel via one of its
1413
+ // arguments.
1414
+
1415
+ template <typename T>
1416
+ constexpr bool MethodHasChannelAccess = false;
1417
+
1418
+ template <typename T, typename R, typename A>
1419
+ constexpr bool MethodHasChannelAccess<R (T::*)(A)> = false;
1420
+
1421
+ template <typename T, typename R>
1422
+ constexpr bool MethodHasChannelAccess<R (T::*)()> = false;
1423
+
1424
+ template <typename T, typename R, typename A, typename C>
1425
+ constexpr bool MethodHasChannelAccess<R (T::*)(A, C)> = true;
1426
+
1427
+ template <auto... Ts>
1428
+ constexpr bool AnyMethodHasChannelAccess =
1429
+ (MethodHasChannelAccess<decltype(Ts)> || ...);
1430
+
1431
+ // Composite for a given channel type to determine if any of its interceptors
1432
+ // fall into this category: later code should use this.
1433
+ template <typename Derived>
1434
+ inline constexpr bool CallHasChannelAccess() {
1435
+ return AnyMethodHasChannelAccess<&Derived::Call::OnClientInitialMetadata,
1436
+ &Derived::Call::OnClientToServerMessage,
1437
+ &Derived::Call::OnServerInitialMetadata,
1438
+ &Derived::Call::OnServerToClientMessage,
1439
+ &Derived::Call::OnServerTrailingMetadata,
1440
+ &Derived::Call::OnFinalize>;
1441
+ }
1242
1442
  } // namespace filters_detail
1243
1443
 
1444
+ namespace for_each_detail {
1445
+ template <void (CallState::*on_progress)()>
1446
+ struct NextValueTraits<filters_detail::NextMessage<on_progress>> {
1447
+ using NextMsg = filters_detail::NextMessage<on_progress>;
1448
+ using Value = MessageHandle;
1449
+
1450
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static NextValueType Type(
1451
+ const NextMsg& t) {
1452
+ if (!t.ok()) return NextValueType::kError;
1453
+ if (t.has_value()) return NextValueType::kValue;
1454
+ return NextValueType::kEndOfStream;
1455
+ }
1456
+
1457
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static MessageHandle TakeValue(
1458
+ NextMsg& t) {
1459
+ return t.TakeValue();
1460
+ }
1461
+ };
1462
+ } // namespace for_each_detail
1463
+
1464
+ template <void (CallState::*on_progress)()>
1465
+ struct FailureStatusCastImpl<filters_detail::NextMessage<on_progress>,
1466
+ StatusFlag> {
1467
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static filters_detail::NextMessage<
1468
+ on_progress>
1469
+ Cast(StatusFlag flag) {
1470
+ DCHECK_EQ(flag, Failure{});
1471
+ return filters_detail::NextMessage<on_progress>(Failure{});
1472
+ }
1473
+ };
1474
+
1475
+ namespace promise_detail {
1476
+ template <void (CallState::*on_progress)()>
1477
+ struct TrySeqTraitsWithSfinae<filters_detail::NextMessage<on_progress>> {
1478
+ using UnwrappedType = MessageHandle;
1479
+ using WrappedType = filters_detail::NextMessage<on_progress>;
1480
+ template <typename Next>
1481
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static auto CallFactory(
1482
+ Next* next, WrappedType&& value) {
1483
+ return next->Make(value.TakeValue());
1484
+ }
1485
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static bool IsOk(
1486
+ const WrappedType& value) {
1487
+ return value.ok();
1488
+ }
1489
+ static const char* ErrorString(const WrappedType& status) {
1490
+ DCHECK(!status.ok());
1491
+ return "failed";
1492
+ }
1493
+ template <typename R>
1494
+ static R ReturnValue(WrappedType&& status) {
1495
+ DCHECK(!status.ok());
1496
+ return WrappedType(Failure{});
1497
+ }
1498
+ template <typename F, typename Elem>
1499
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static auto CallSeqFactory(
1500
+ F& f, Elem&& elem, WrappedType value)
1501
+ -> decltype(f(std::forward<Elem>(elem), std::declval<MessageHandle>())) {
1502
+ return f(std::forward<Elem>(elem), value.TakeValue());
1503
+ }
1504
+ template <typename Result, typename RunNext>
1505
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static Poll<Result>
1506
+ CheckResultAndRunNext(WrappedType prior, RunNext run_next) {
1507
+ if (!prior.ok()) return WrappedType(prior.status());
1508
+ return run_next(std::move(prior));
1509
+ }
1510
+ };
1511
+ } // namespace promise_detail
1512
+
1513
+ using ServerToClientNextMessage =
1514
+ filters_detail::NextMessage<&CallState::FinishPullServerToClientMessage>;
1515
+ using ClientToServerNextMessage =
1516
+ filters_detail::NextMessage<&CallState::FinishPullClientToServerMessage>;
1517
+
1244
1518
  // Execution environment for a stack of filters.
1245
1519
  // This is a per-call object.
1246
1520
  class CallFilters {
@@ -1277,6 +1551,7 @@ class CallFilters {
1277
1551
  data_.AddClientInitialMetadataOp(filter, call_offset);
1278
1552
  data_.AddServerInitialMetadataOp(filter, call_offset);
1279
1553
  data_.AddClientToServerMessageOp(filter, call_offset);
1554
+ data_.AddClientToServerHalfClose(filter, call_offset);
1280
1555
  data_.AddServerToClientMessageOp(filter, call_offset);
1281
1556
  data_.AddServerTrailingMetadataOp(filter, call_offset);
1282
1557
  data_.AddFinalizer(filter, call_offset, &FilterType::Call::OnFinalize);
@@ -1296,6 +1571,14 @@ class CallFilters {
1296
1571
  AddOwnedObject([](void* p) { delete static_cast<T*>(p); }, p.release());
1297
1572
  }
1298
1573
 
1574
+ template <typename Fn>
1575
+ void AddOnClientInitialMetadata(Fn fn) {
1576
+ auto filter = std::make_unique<
1577
+ filters_detail::ClientInitialMetadataInterceptor<Fn>>(std::move(fn));
1578
+ Add(filter.get());
1579
+ AddOwnedObject(std::move(filter));
1580
+ }
1581
+
1299
1582
  template <typename Fn>
1300
1583
  void AddOnServerTrailingMetadata(Fn fn) {
1301
1584
  auto filter = std::make_unique<
@@ -1310,489 +1593,355 @@ class CallFilters {
1310
1593
  filters_detail::StackData data_;
1311
1594
  };
1312
1595
 
1313
- class NextMessage {
1314
- public:
1315
- NextMessage() : has_value_(false), cancelled_(false) {}
1316
- explicit NextMessage(MessageHandle value)
1317
- : has_value_(true), value_(std::move(value)) {}
1318
- explicit NextMessage(bool cancelled)
1319
- : has_value_(false), cancelled_(cancelled) {}
1320
- NextMessage(const NextMessage&) = delete;
1321
- NextMessage& operator=(const NextMessage&) = delete;
1322
- NextMessage(NextMessage&& other) noexcept = default;
1323
- NextMessage& operator=(NextMessage&& other) = default;
1324
-
1325
- using value_type = MessageHandle;
1326
-
1327
- void reset() {
1328
- has_value_ = false;
1329
- cancelled_ = false;
1330
- value_.reset();
1331
- }
1332
- bool has_value() const { return has_value_; }
1333
- const MessageHandle& value() const {
1334
- GPR_DEBUG_ASSERT(has_value_);
1335
- return value_;
1336
- }
1337
- MessageHandle& value() {
1338
- GPR_DEBUG_ASSERT(has_value_);
1339
- return value_;
1596
+ explicit CallFilters(ClientMetadataHandle client_initial_metadata)
1597
+ : call_data_(nullptr),
1598
+ push_client_initial_metadata_(std::move(client_initial_metadata)) {}
1599
+ ~CallFilters() {
1600
+ if (call_data_ != nullptr && call_data_ != &g_empty_call_data_) {
1601
+ for (const auto& stack : stacks_) {
1602
+ for (const auto& destructor : stack.stack->data_.filter_destructor) {
1603
+ destructor.call_destroy(filters_detail::Offset(
1604
+ call_data_, stack.call_data_offset + destructor.call_offset));
1605
+ }
1606
+ }
1607
+ gpr_free_aligned(call_data_);
1340
1608
  }
1341
- const MessageHandle& operator*() const { return value(); }
1342
- MessageHandle& operator*() { return value(); }
1343
- bool cancelled() const { return !has_value_ && cancelled_; }
1344
-
1345
- private:
1346
- bool has_value_;
1347
- bool cancelled_;
1348
- MessageHandle value_;
1349
1609
  };
1350
1610
 
1351
- explicit CallFilters(ClientMetadataHandle client_initial_metadata);
1352
- ~CallFilters();
1353
-
1354
1611
  CallFilters(const CallFilters&) = delete;
1355
1612
  CallFilters& operator=(const CallFilters&) = delete;
1356
1613
  CallFilters(CallFilters&&) = delete;
1357
1614
  CallFilters& operator=(CallFilters&&) = delete;
1358
1615
 
1359
- void SetStack(RefCountedPtr<Stack> stack);
1616
+ void AddStack(RefCountedPtr<Stack> stack) {
1617
+ if (stack->data_.empty()) return;
1618
+ stacks_.emplace_back(std::move(stack));
1619
+ }
1620
+ void Start();
1360
1621
 
1361
1622
  // Access client initial metadata before it's processed
1362
1623
  ClientMetadata* unprocessed_client_initial_metadata() {
1363
- return client_initial_metadata_.get();
1624
+ return push_client_initial_metadata_.get();
1364
1625
  }
1365
1626
 
1627
+ private:
1628
+ template <typename Output, typename Input,
1629
+ Input(CallFilters::* input_location),
1630
+ filters_detail::Layout<Input>(filters_detail::StackData::* layout),
1631
+ void (CallState::*on_done)(), typename StackIterator>
1632
+ class MetadataExecutor {
1633
+ public:
1634
+ MetadataExecutor(CallFilters* filters, StackIterator stack_begin,
1635
+ StackIterator stack_end)
1636
+ : stack_current_(stack_begin),
1637
+ stack_end_(stack_end),
1638
+ filters_(filters) {
1639
+ DCHECK_NE((filters_->*input_location).get(), nullptr);
1640
+ }
1641
+
1642
+ Poll<ValueOrFailure<Output>> operator()() {
1643
+ if ((filters_->*input_location) != nullptr) {
1644
+ if (stack_current_ == stack_end_) {
1645
+ DCHECK_NE((filters_->*input_location).get(), nullptr);
1646
+ (filters_->call_state_.*on_done)();
1647
+ return Output(std::move(filters_->*input_location));
1648
+ }
1649
+ return FinishStep(executor_.Start(
1650
+ &(stack_current_->stack->data_.*layout),
1651
+ std::move(filters_->*input_location), filters_->call_data_));
1652
+ } else {
1653
+ return FinishStep(executor_.Step(filters_->call_data_));
1654
+ }
1655
+ }
1656
+
1657
+ private:
1658
+ Poll<ValueOrFailure<Output>> FinishStep(
1659
+ Poll<filters_detail::ResultOr<Input>> p) {
1660
+ auto* r = p.value_if_ready();
1661
+ if (r == nullptr) return Pending{};
1662
+ if (r->ok != nullptr) {
1663
+ ++stack_current_;
1664
+ if (stack_current_ == stack_end_) {
1665
+ (filters_->call_state_.*on_done)();
1666
+ return ValueOrFailure<Output>{std::move(r->ok)};
1667
+ }
1668
+ return FinishStep(
1669
+ executor_.Start(&(stack_current_->stack->data_.*layout),
1670
+ std::move(r->ok), filters_->call_data_));
1671
+ }
1672
+ (filters_->call_state_.*on_done)();
1673
+ filters_->PushServerTrailingMetadata(std::move(r->error));
1674
+ return Failure{};
1675
+ }
1676
+
1677
+ StackIterator stack_current_;
1678
+ StackIterator stack_end_;
1679
+ CallFilters* filters_;
1680
+ filters_detail::OperationExecutor<Input> executor_;
1681
+ };
1682
+
1683
+ template <MessageHandle(CallFilters::* input_location),
1684
+ filters_detail::Layout<MessageHandle>(
1685
+ filters_detail::StackData::* layout),
1686
+ void (CallState::*on_done)(), typename StackIterator>
1687
+ class MessageExecutor {
1688
+ public:
1689
+ using NextMsg = filters_detail::NextMessage<on_done>;
1690
+
1691
+ MessageExecutor(CallFilters* filters, StackIterator stack_begin,
1692
+ StackIterator stack_end)
1693
+ : stack_current_(stack_begin),
1694
+ stack_end_(stack_end),
1695
+ filters_(filters) {
1696
+ DCHECK_NE((filters_->*input_location).get(), nullptr);
1697
+ }
1698
+
1699
+ Poll<NextMsg> operator()() {
1700
+ if ((filters_->*input_location) != nullptr) {
1701
+ if (stack_current_ == stack_end_) {
1702
+ DCHECK_NE((filters_->*input_location).get(), nullptr);
1703
+ return NextMsg(std::move(filters_->*input_location),
1704
+ &filters_->call_state_);
1705
+ }
1706
+ return FinishStep(executor_.Start(
1707
+ &(stack_current_->stack->data_.*layout),
1708
+ std::move(filters_->*input_location), filters_->call_data_));
1709
+ } else {
1710
+ return FinishStep(executor_.Step(filters_->call_data_));
1711
+ }
1712
+ }
1713
+
1714
+ private:
1715
+ Poll<NextMsg> FinishStep(Poll<filters_detail::ResultOr<MessageHandle>> p) {
1716
+ auto* r = p.value_if_ready();
1717
+ if (r == nullptr) return Pending{};
1718
+ if (r->ok != nullptr) {
1719
+ ++stack_current_;
1720
+ if (stack_current_ == stack_end_) {
1721
+ return NextMsg{std::move(r->ok), &filters_->call_state_};
1722
+ }
1723
+ return FinishStep(
1724
+ executor_.Start(&(stack_current_->stack->data_.*layout),
1725
+ std::move(r->ok), filters_->call_data_));
1726
+ }
1727
+ (filters_->call_state_.*on_done)();
1728
+ filters_->PushServerTrailingMetadata(std::move(r->error));
1729
+ return Failure{};
1730
+ }
1731
+
1732
+ StackIterator stack_current_;
1733
+ StackIterator stack_end_;
1734
+ CallFilters* filters_;
1735
+ filters_detail::OperationExecutor<MessageHandle> executor_;
1736
+ };
1737
+
1738
+ public:
1366
1739
  // Client: Fetch client initial metadata
1367
1740
  // Returns a promise that resolves to ValueOrFailure<ClientMetadataHandle>
1368
- GRPC_MUST_USE_RESULT auto PullClientInitialMetadata();
1369
- // Server: Indicate that no server initial metadata will be sent
1370
- void NoServerInitialMetadata() {
1371
- server_initial_metadata_state_.CloseSending();
1741
+ GRPC_MUST_USE_RESULT auto PullClientInitialMetadata() {
1742
+ call_state_.BeginPullClientInitialMetadata();
1743
+ return MetadataExecutor<ClientMetadataHandle, ClientMetadataHandle,
1744
+ &CallFilters::push_client_initial_metadata_,
1745
+ &filters_detail::StackData::client_initial_metadata,
1746
+ &CallState::FinishPullClientInitialMetadata,
1747
+ StacksVector::const_iterator>(
1748
+ this, stacks_.cbegin(), stacks_.cend());
1372
1749
  }
1373
1750
  // Server: Push server initial metadata
1374
1751
  // Returns a promise that resolves to a StatusFlag indicating success
1375
- GRPC_MUST_USE_RESULT auto PushServerInitialMetadata(ServerMetadataHandle md);
1752
+ StatusFlag PushServerInitialMetadata(ServerMetadataHandle md) {
1753
+ push_server_initial_metadata_ = std::move(md);
1754
+ return call_state_.PushServerInitialMetadata();
1755
+ }
1376
1756
  // Client: Fetch server initial metadata
1377
1757
  // Returns a promise that resolves to ValueOrFailure<ServerMetadataHandle>
1378
- GRPC_MUST_USE_RESULT auto PullServerInitialMetadata();
1758
+ GRPC_MUST_USE_RESULT auto PullServerInitialMetadata() {
1759
+ return Seq(
1760
+ [this]() {
1761
+ return call_state_.PollPullServerInitialMetadataAvailable();
1762
+ },
1763
+ [this](bool has_server_initial_metadata) {
1764
+ return If(
1765
+ has_server_initial_metadata,
1766
+ [this]() {
1767
+ return Map(
1768
+ MetadataExecutor<
1769
+ std::optional<ServerMetadataHandle>,
1770
+ ServerMetadataHandle,
1771
+ &CallFilters::push_server_initial_metadata_,
1772
+ &filters_detail::StackData::server_initial_metadata,
1773
+ &CallState::FinishPullServerInitialMetadata,
1774
+ StacksVector::const_reverse_iterator>(
1775
+ this, stacks_.crbegin(), stacks_.crend()),
1776
+ [](ValueOrFailure<std::optional<ServerMetadataHandle>> r) {
1777
+ if (r.ok()) return std::move(*r);
1778
+ return std::optional<ServerMetadataHandle>{};
1779
+ });
1780
+ },
1781
+ []() {
1782
+ return Immediate(std::optional<ServerMetadataHandle>{});
1783
+ });
1784
+ });
1785
+ }
1379
1786
  // Client: Push client to server message
1380
1787
  // Returns a promise that resolves to a StatusFlag indicating success
1381
- GRPC_MUST_USE_RESULT auto PushClientToServerMessage(MessageHandle message);
1382
- // Client: Indicate that no more messages will be sent
1383
- void FinishClientToServerSends() {
1384
- client_to_server_message_state_.CloseSending();
1788
+ GRPC_MUST_USE_RESULT auto PushClientToServerMessage(MessageHandle message) {
1789
+ call_state_.BeginPushClientToServerMessage();
1790
+ DCHECK_NE(message.get(), nullptr);
1791
+ DCHECK_EQ(push_client_to_server_message_.get(), nullptr);
1792
+ push_client_to_server_message_ = std::move(message);
1793
+ return [this]() { return call_state_.PollPushClientToServerMessage(); };
1385
1794
  }
1795
+ // Client: Indicate that no more messages will be sent
1796
+ void FinishClientToServerSends() { call_state_.ClientToServerHalfClose(); }
1386
1797
  // Server: Fetch client to server message
1387
- // Returns a promise that resolves to ValueOrFailure<MessageHandle>
1388
- GRPC_MUST_USE_RESULT auto PullClientToServerMessage();
1798
+ // Returns a promise that resolves to ClientToServerNextMessage
1799
+ GRPC_MUST_USE_RESULT auto PullClientToServerMessage() {
1800
+ return TrySeq(
1801
+ [this]() {
1802
+ return call_state_.PollPullClientToServerMessageAvailable();
1803
+ },
1804
+ [this](bool message_available) {
1805
+ return If(
1806
+ message_available,
1807
+ [this]() {
1808
+ return MessageExecutor<
1809
+ &CallFilters::push_client_to_server_message_,
1810
+ &filters_detail::StackData::client_to_server_messages,
1811
+ &CallState::FinishPullClientToServerMessage,
1812
+ StacksVector::const_iterator>(this, stacks_.cbegin(),
1813
+ stacks_.cend());
1814
+ },
1815
+ []() -> ClientToServerNextMessage {
1816
+ return ClientToServerNextMessage();
1817
+ });
1818
+ });
1819
+ }
1389
1820
  // Server: Push server to client message
1390
1821
  // Returns a promise that resolves to a StatusFlag indicating success
1391
- GRPC_MUST_USE_RESULT auto PushServerToClientMessage(MessageHandle message);
1822
+ GRPC_MUST_USE_RESULT auto PushServerToClientMessage(MessageHandle message) {
1823
+ call_state_.BeginPushServerToClientMessage();
1824
+ push_server_to_client_message_ = std::move(message);
1825
+ return [this]() { return call_state_.PollPushServerToClientMessage(); };
1826
+ }
1392
1827
  // Server: Fetch server to client message
1393
- // Returns a promise that resolves to ValueOrFailure<MessageHandle>
1394
- GRPC_MUST_USE_RESULT auto PullServerToClientMessage();
1828
+ // Returns a promise that resolves to ServerToClientNextMessage
1829
+ GRPC_MUST_USE_RESULT auto PullServerToClientMessage() {
1830
+ return TrySeq(
1831
+ [this]() {
1832
+ return call_state_.PollPullServerToClientMessageAvailable();
1833
+ },
1834
+ [this](bool message_available) {
1835
+ return If(
1836
+ message_available,
1837
+ [this]() {
1838
+ return MessageExecutor<
1839
+ &CallFilters::push_server_to_client_message_,
1840
+ &filters_detail::StackData::server_to_client_messages,
1841
+ &CallState::FinishPullServerToClientMessage,
1842
+ StacksVector::const_reverse_iterator>(
1843
+ this, stacks_.crbegin(), stacks_.crend());
1844
+ },
1845
+ []() -> ServerToClientNextMessage {
1846
+ return ServerToClientNextMessage();
1847
+ });
1848
+ });
1849
+ }
1395
1850
  // Server: Indicate end of response
1396
1851
  // Closes the request entirely - no messages can be sent/received
1397
1852
  // If no server initial metadata has been sent, implies
1398
1853
  // NoServerInitialMetadata() called.
1399
1854
  void PushServerTrailingMetadata(ServerMetadataHandle md);
1855
+ // Optimized path to push cancellation onto the call
1856
+ void Cancel();
1400
1857
  // Client: Fetch server trailing metadata
1401
1858
  // Returns a promise that resolves to ServerMetadataHandle
1402
- GRPC_MUST_USE_RESULT auto PullServerTrailingMetadata();
1859
+ GRPC_MUST_USE_RESULT auto PullServerTrailingMetadata() {
1860
+ return Map(
1861
+ [this]() { return call_state_.PollServerTrailingMetadataAvailable(); },
1862
+ [this](Empty) {
1863
+ auto value = std::move(push_server_trailing_metadata_);
1864
+ if (call_data_ != nullptr) {
1865
+ for (auto it = stacks_.crbegin(); it != stacks_.crend(); ++it) {
1866
+ value = filters_detail::RunServerTrailingMetadata(
1867
+ it->stack->data_.server_trailing_metadata,
1868
+ filters_detail::Offset(call_data_, it->call_data_offset),
1869
+ std::move(value));
1870
+ }
1871
+ }
1872
+ return value;
1873
+ });
1874
+ }
1403
1875
  // Server: Wait for server trailing metadata to have been sent
1404
1876
  // Returns a promise that resolves to a StatusFlag indicating whether the
1405
1877
  // request was cancelled or not -- failure to send trailing metadata is
1406
1878
  // considered a cancellation, as is actual cancellation -- but not application
1407
1879
  // errors.
1408
- GRPC_MUST_USE_RESULT auto WasCancelled();
1880
+ GRPC_MUST_USE_RESULT auto WasCancelled() {
1881
+ return [this]() { return call_state_.PollWasCancelled(); };
1882
+ }
1883
+ // Client & server: wait for server trailing metadata to be available, and
1884
+ // resolve to empty when it is.
1885
+ GRPC_MUST_USE_RESULT auto ServerTrailingMetadataWasPushed() {
1886
+ return
1887
+ [this]() { return call_state_.PollServerTrailingMetadataWasPushed(); };
1888
+ }
1889
+ // Client & server: returns true if server trailing metadata has been pushed
1890
+ // *and* contained a cancellation, false otherwise.
1891
+ GRPC_MUST_USE_RESULT bool WasCancelledPushed() const {
1892
+ return call_state_.WasCancelledPushed();
1893
+ }
1894
+
1895
+ // Returns true if server trailing metadata has been pulled
1896
+ bool WasServerTrailingMetadataPulled() const {
1897
+ return call_state_.WasServerTrailingMetadataPulled();
1898
+ }
1899
+
1409
1900
  // Client & server: fill in final_info with the final status of the call.
1410
1901
  void Finalize(const grpc_call_final_info* final_info);
1411
1902
 
1412
1903
  std::string DebugString() const;
1413
1904
 
1414
1905
  private:
1415
- template <filters_detail::PipeState(CallFilters::*state_ptr),
1416
- void*(CallFilters::*push_ptr), typename T,
1417
- filters_detail::Layout<filters_detail::FallibleOperator<T>>(
1418
- filters_detail::StackData::*layout_ptr)>
1419
- class PipePromise {
1420
- public:
1421
- class Push {
1422
- public:
1423
- Push(CallFilters* filters, T x)
1424
- : filters_(filters), value_(std::move(x)) {
1425
- state().BeginPush();
1426
- push_slot() = this;
1427
- }
1428
- ~Push() {
1429
- if (filters_ != nullptr) {
1430
- state().DropPush();
1431
- push_slot() = nullptr;
1432
- }
1433
- }
1434
-
1435
- Push(const Push&) = delete;
1436
- Push& operator=(const Push&) = delete;
1437
- Push(Push&& other) noexcept
1438
- : filters_(std::exchange(other.filters_, nullptr)),
1439
- value_(std::move(other.value_)) {
1440
- if (filters_ != nullptr) {
1441
- GPR_DEBUG_ASSERT(push_slot() == &other);
1442
- push_slot() = this;
1443
- }
1444
- }
1445
-
1446
- Push& operator=(Push&&) = delete;
1447
-
1448
- Poll<StatusFlag> operator()() { return state().PollPush(); }
1449
-
1450
- T TakeValue() { return std::move(value_); }
1451
-
1452
- absl::string_view DebugString() const {
1453
- return value_ != nullptr ? " (not pulled)" : "";
1454
- }
1455
-
1456
- private:
1457
- filters_detail::PipeState& state() { return filters_->*state_ptr; }
1458
- void*& push_slot() { return filters_->*push_ptr; }
1459
-
1460
- CallFilters* filters_;
1461
- T value_;
1462
- };
1463
-
1464
- static std::string DebugString(absl::string_view name,
1465
- const CallFilters* filters) {
1466
- auto* push = static_cast<Push*>(filters->*push_ptr);
1467
- return absl::StrCat(name, ":", (filters->*state_ptr).DebugString(),
1468
- push == nullptr ? "" : push->DebugString());
1469
- }
1470
-
1471
- class PullMaybe {
1472
- public:
1473
- explicit PullMaybe(CallFilters* filters) : filters_(filters) {}
1474
- ~PullMaybe() {
1475
- if (filters_ != nullptr) {
1476
- state().DropPull();
1477
- }
1478
- }
1479
-
1480
- PullMaybe(const PullMaybe&) = delete;
1481
- PullMaybe& operator=(const PullMaybe&) = delete;
1482
- PullMaybe(PullMaybe&& other) noexcept
1483
- : filters_(std::exchange(other.filters_, nullptr)),
1484
- executor_(std::move(other.executor_)) {}
1485
- PullMaybe& operator=(PullMaybe&&) = delete;
1486
-
1487
- Poll<ValueOrFailure<absl::optional<T>>> operator()() {
1488
- if (executor_.IsRunning()) {
1489
- auto c = state().PollClosed();
1490
- if (c.ready() && c.value()) {
1491
- filters_->CancelDueToFailedPipeOperation();
1492
- return Failure{};
1493
- }
1494
- return FinishOperationExecutor(executor_.Step(filters_->call_data_));
1495
- }
1496
- auto p = state().PollPull();
1497
- auto* r = p.value_if_ready();
1498
- if (r == nullptr) return Pending{};
1499
- if (!r->ok()) {
1500
- filters_->CancelDueToFailedPipeOperation();
1501
- return Failure{};
1502
- }
1503
- if (!**r) return absl::nullopt;
1504
- return FinishOperationExecutor(executor_.Start(
1505
- layout(), push()->TakeValue(), filters_->call_data_));
1506
- }
1507
-
1508
- private:
1509
- filters_detail::PipeState& state() { return filters_->*state_ptr; }
1510
- Push* push() { return static_cast<Push*>(filters_->*push_ptr); }
1511
- const filters_detail::Layout<filters_detail::FallibleOperator<T>>*
1512
- layout() {
1513
- return &(filters_->stack_->data_.*layout_ptr);
1514
- }
1515
-
1516
- Poll<ValueOrFailure<absl::optional<T>>> FinishOperationExecutor(
1517
- Poll<filters_detail::ResultOr<T>> p) {
1518
- auto* r = p.value_if_ready();
1519
- if (r == nullptr) return Pending{};
1520
- GPR_DEBUG_ASSERT(!executor_.IsRunning());
1521
- state().AckPull();
1522
- if (r->ok != nullptr) return std::move(r->ok);
1523
- filters_->PushServerTrailingMetadata(std::move(r->error));
1524
- return Failure{};
1525
- }
1526
-
1527
- CallFilters* filters_;
1528
- filters_detail::OperationExecutor<T> executor_;
1529
- };
1530
-
1531
- class PullMessage {
1532
- public:
1533
- explicit PullMessage(CallFilters* filters) : filters_(filters) {}
1534
- ~PullMessage() {
1535
- if (filters_ != nullptr) {
1536
- state().DropPull();
1537
- }
1538
- }
1539
-
1540
- PullMessage(const PullMessage&) = delete;
1541
- PullMessage& operator=(const PullMessage&) = delete;
1542
- PullMessage(PullMessage&& other) noexcept
1543
- : filters_(std::exchange(other.filters_, nullptr)),
1544
- executor_(std::move(other.executor_)) {}
1545
- PullMessage& operator=(PullMessage&&) = delete;
1546
-
1547
- Poll<NextMessage> operator()() {
1548
- if (executor_.IsRunning()) {
1549
- auto c = state().PollClosed();
1550
- if (c.ready() && c.value()) {
1551
- filters_->CancelDueToFailedPipeOperation();
1552
- return NextMessage(true);
1553
- }
1554
- return FinishOperationExecutor(executor_.Step(filters_->call_data_));
1555
- }
1556
- auto p = state().PollPull();
1557
- auto* r = p.value_if_ready();
1558
- if (r == nullptr) return Pending{};
1559
- if (!r->ok()) {
1560
- filters_->CancelDueToFailedPipeOperation();
1561
- return NextMessage(true);
1562
- }
1563
- if (!**r) return NextMessage(false);
1564
- return FinishOperationExecutor(executor_.Start(
1565
- layout(), push()->TakeValue(), filters_->call_data_));
1566
- }
1567
-
1568
- private:
1569
- filters_detail::PipeState& state() { return filters_->*state_ptr; }
1570
- Push* push() { return static_cast<Push*>(filters_->*push_ptr); }
1571
- const filters_detail::Layout<filters_detail::FallibleOperator<T>>*
1572
- layout() {
1573
- return &(filters_->stack_->data_.*layout_ptr);
1574
- }
1575
-
1576
- Poll<NextMessage> FinishOperationExecutor(
1577
- Poll<filters_detail::ResultOr<T>> p) {
1578
- auto* r = p.value_if_ready();
1579
- if (r == nullptr) return Pending{};
1580
- GPR_DEBUG_ASSERT(!executor_.IsRunning());
1581
- state().AckPull();
1582
- if (r->ok != nullptr) return NextMessage(std::move(r->ok));
1583
- filters_->PushServerTrailingMetadata(std::move(r->error));
1584
- return NextMessage(true);
1585
- }
1586
-
1587
- CallFilters* filters_;
1588
- filters_detail::OperationExecutor<T> executor_;
1589
- };
1590
- };
1591
-
1592
- class PullClientInitialMetadataPromise {
1593
- public:
1594
- explicit PullClientInitialMetadataPromise(CallFilters* filters)
1595
- : filters_(filters) {}
1596
-
1597
- PullClientInitialMetadataPromise(const PullClientInitialMetadataPromise&) =
1598
- delete;
1599
- PullClientInitialMetadataPromise& operator=(
1600
- const PullClientInitialMetadataPromise&) = delete;
1601
- PullClientInitialMetadataPromise(
1602
- PullClientInitialMetadataPromise&& other) noexcept
1603
- : filters_(std::exchange(other.filters_, nullptr)),
1604
- executor_(std::move(other.executor_)) {}
1605
- PullClientInitialMetadataPromise& operator=(
1606
- PullClientInitialMetadataPromise&&) = delete;
1607
-
1608
- Poll<ValueOrFailure<ClientMetadataHandle>> operator()() {
1609
- if (executor_.IsRunning()) {
1610
- return FinishOperationExecutor(executor_.Step(filters_->call_data_));
1611
- }
1612
- auto p = state().PollPull();
1613
- auto* r = p.value_if_ready();
1614
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_promise_primitives)) {
1615
- gpr_log(GPR_INFO, "%s",
1616
- r == nullptr
1617
- ? "PENDING"
1618
- : (r->ok() ? (r->value() ? "TRUE" : "FALSE") : "FAILURE"));
1619
- }
1620
- if (r == nullptr) return Pending{};
1621
- if (!r->ok()) {
1622
- filters_->CancelDueToFailedPipeOperation();
1623
- return Failure{};
1624
- }
1625
- GPR_ASSERT(filters_->client_initial_metadata_ != nullptr);
1626
- return FinishOperationExecutor(executor_.Start(
1627
- &filters_->stack_->data_.client_initial_metadata,
1628
- std::move(filters_->client_initial_metadata_), filters_->call_data_));
1629
- }
1630
-
1631
- private:
1632
- filters_detail::PipeState& state() {
1633
- return filters_->client_initial_metadata_state_;
1634
- }
1635
-
1636
- Poll<ValueOrFailure<ClientMetadataHandle>> FinishOperationExecutor(
1637
- Poll<filters_detail::ResultOr<ClientMetadataHandle>> p) {
1638
- auto* r = p.value_if_ready();
1639
- if (r == nullptr) return Pending{};
1640
- GPR_DEBUG_ASSERT(!executor_.IsRunning());
1641
- state().AckPull();
1642
- if (r->ok != nullptr) return std::move(r->ok);
1643
- filters_->PushServerTrailingMetadata(std::move(r->error));
1644
- return Failure{};
1645
- }
1646
-
1647
- CallFilters* filters_;
1648
- filters_detail::OperationExecutor<ClientMetadataHandle> executor_;
1649
- };
1650
-
1651
- class PullServerTrailingMetadataPromise {
1652
- public:
1653
- explicit PullServerTrailingMetadataPromise(CallFilters* filters)
1654
- : filters_(filters) {}
1655
-
1656
- PullServerTrailingMetadataPromise(
1657
- const PullServerTrailingMetadataPromise&) = delete;
1658
- PullServerTrailingMetadataPromise& operator=(
1659
- const PullServerTrailingMetadataPromise&) = delete;
1660
- PullServerTrailingMetadataPromise(
1661
- PullServerTrailingMetadataPromise&& other) noexcept
1662
- : filters_(std::exchange(other.filters_, nullptr)),
1663
- executor_(std::move(other.executor_)) {}
1664
- PullServerTrailingMetadataPromise& operator=(
1665
- PullServerTrailingMetadataPromise&&) = delete;
1666
-
1667
- Poll<ServerMetadataHandle> operator()() {
1668
- if (executor_.IsRunning()) {
1669
- auto r = executor_.Step(filters_->call_data_);
1670
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_promise_primitives)) {
1671
- if (r.pending()) {
1672
- gpr_log(GPR_INFO,
1673
- "%s PullServerTrailingMetadata[%p]: Pending(but executing)",
1674
- GetContext<Activity>()->DebugTag().c_str(), filters_);
1675
- } else {
1676
- gpr_log(GPR_INFO, "%s PullServerTrailingMetadata[%p]: Ready: %s",
1677
- GetContext<Activity>()->DebugTag().c_str(), filters_,
1678
- r.value()->DebugString().c_str());
1679
- }
1680
- }
1681
- return r;
1682
- }
1683
- if (filters_->server_trailing_metadata_ == nullptr) {
1684
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_promise_primitives)) {
1685
- gpr_log(GPR_INFO,
1686
- "%s PullServerTrailingMetadata[%p]: Pending(not pushed)",
1687
- GetContext<Activity>()->DebugTag().c_str(), filters_);
1688
- }
1689
- return filters_->server_trailing_metadata_waiter_.pending();
1690
- }
1691
- // If no stack has been set, we can just return the result of the call
1692
- if (filters_->stack_ == nullptr) {
1693
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_promise_primitives)) {
1694
- gpr_log(GPR_INFO,
1695
- "%s PullServerTrailingMetadata[%p]: Ready(no-stack): %s",
1696
- GetContext<Activity>()->DebugTag().c_str(), filters_,
1697
- filters_->server_trailing_metadata_->DebugString().c_str());
1698
- }
1699
- return std::move(filters_->server_trailing_metadata_);
1700
- }
1701
- // Otherwise we need to process it through all the filters.
1702
- return executor_.Start(&filters_->stack_->data_.server_trailing_metadata,
1703
- std::move(filters_->server_trailing_metadata_),
1704
- filters_->call_data_);
1705
- }
1906
+ void CancelDueToFailedPipeOperation(SourceLocation but_where = {});
1706
1907
 
1707
- private:
1708
- CallFilters* filters_;
1709
- filters_detail::InfallibleOperationExecutor<ServerMetadataHandle> executor_;
1908
+ struct AddedStack {
1909
+ explicit AddedStack(RefCountedPtr<Stack> stack)
1910
+ : call_data_offset(std::numeric_limits<size_t>::max()),
1911
+ stack(std::move(stack)) {}
1912
+ size_t call_data_offset;
1913
+ RefCountedPtr<Stack> stack;
1710
1914
  };
1711
1915
 
1712
- void CancelDueToFailedPipeOperation(SourceLocation but_where = {});
1916
+ using StacksVector = absl::InlinedVector<AddedStack, 2>;
1713
1917
 
1714
- RefCountedPtr<Stack> stack_;
1918
+ StacksVector stacks_;
1715
1919
 
1716
- filters_detail::PipeState client_initial_metadata_state_{
1717
- filters_detail::PipeState::StartPushed{}};
1718
- filters_detail::PipeState server_initial_metadata_state_;
1719
- filters_detail::PipeState client_to_server_message_state_;
1720
- filters_detail::PipeState server_to_client_message_state_;
1721
- IntraActivityWaiter server_trailing_metadata_waiter_;
1722
- Latch<bool> cancelled_;
1920
+ CallState call_state_;
1723
1921
 
1724
1922
  void* call_data_;
1725
- ClientMetadataHandle client_initial_metadata_;
1726
-
1727
- // The following void*'s are pointers to a `Push` object (from above).
1728
- // They are used to track the current push operation for each pipe.
1729
- // It would be lovely for them to be typed pointers, but that would require
1730
- // a recursive type definition since the location of this field needs to be
1731
- // a template argument to the `Push` object itself.
1732
- void* server_initial_metadata_push_ = nullptr;
1733
- void* client_to_server_message_push_ = nullptr;
1734
- void* server_to_client_message_push_ = nullptr;
1735
-
1736
- ServerMetadataHandle server_trailing_metadata_;
1737
-
1738
- using ServerInitialMetadataPromises =
1739
- PipePromise<&CallFilters::server_initial_metadata_state_,
1740
- &CallFilters::server_initial_metadata_push_,
1741
- ServerMetadataHandle,
1742
- &filters_detail::StackData::server_initial_metadata>;
1743
- using ClientToServerMessagePromises =
1744
- PipePromise<&CallFilters::client_to_server_message_state_,
1745
- &CallFilters::client_to_server_message_push_, MessageHandle,
1746
- &filters_detail::StackData::client_to_server_messages>;
1747
- using ServerToClientMessagePromises =
1748
- PipePromise<&CallFilters::server_to_client_message_state_,
1749
- &CallFilters::server_to_client_message_push_, MessageHandle,
1750
- &filters_detail::StackData::server_to_client_messages>;
1751
- };
1752
-
1753
- inline auto CallFilters::PullClientInitialMetadata() {
1754
- return PullClientInitialMetadataPromise(this);
1755
- }
1756
-
1757
- inline auto CallFilters::PushServerInitialMetadata(ServerMetadataHandle md) {
1758
- GPR_ASSERT(md != nullptr);
1759
- return [p = ServerInitialMetadataPromises::Push{
1760
- this, std::move(md)}]() mutable { return p(); };
1761
- }
1762
-
1763
- inline auto CallFilters::PullServerInitialMetadata() {
1764
- return ServerInitialMetadataPromises::PullMaybe{this};
1765
- }
1766
-
1767
- inline auto CallFilters::PushClientToServerMessage(MessageHandle message) {
1768
- GPR_ASSERT(message != nullptr);
1769
- return [p = ClientToServerMessagePromises::Push{
1770
- this, std::move(message)}]() mutable { return p(); };
1771
- }
1772
-
1773
- inline auto CallFilters::PullClientToServerMessage() {
1774
- return ClientToServerMessagePromises::PullMessage{this};
1775
- }
1923
+ ClientMetadataHandle push_client_initial_metadata_;
1924
+ ServerMetadataHandle push_server_initial_metadata_;
1925
+ MessageHandle push_client_to_server_message_;
1926
+ MessageHandle push_server_to_client_message_;
1927
+ ServerMetadataHandle push_server_trailing_metadata_;
1776
1928
 
1777
- inline auto CallFilters::PushServerToClientMessage(MessageHandle message) {
1778
- GPR_ASSERT(message != nullptr);
1779
- return [p = ServerToClientMessagePromises::Push{
1780
- this, std::move(message)}]() mutable { return p(); };
1781
- }
1782
-
1783
- inline auto CallFilters::PullServerToClientMessage() {
1784
- return ServerToClientMessagePromises::PullMessage{this};
1785
- }
1786
-
1787
- inline auto CallFilters::PullServerTrailingMetadata() {
1788
- return Map(PullServerTrailingMetadataPromise(this),
1789
- [this](ServerMetadataHandle h) {
1790
- cancelled_.Set(h->get(GrpcCallWasCancelled()).value_or(false));
1791
- return h;
1792
- });
1793
- }
1929
+ static char g_empty_call_data_;
1930
+ };
1794
1931
 
1795
- inline auto CallFilters::WasCancelled() { return cancelled_.Wait(); }
1932
+ static_assert(
1933
+ filters_detail::ArgumentMustBeNextMessage<
1934
+ absl::remove_cvref_t<decltype(std::declval<CallFilters*>()
1935
+ ->PullServerToClientMessage()()
1936
+ .value())>>::value(),
1937
+ "PullServerToClientMessage must return a NextMessage");
1938
+
1939
+ static_assert(
1940
+ filters_detail::ArgumentMustBeNextMessage<
1941
+ absl::remove_cvref_t<decltype(std::declval<CallFilters*>()
1942
+ ->PullClientToServerMessage()()
1943
+ .value())>>::value(),
1944
+ "PullServerToClientMessage must return a NextMessage");
1796
1945
 
1797
1946
  } // namespace grpc_core
1798
1947