grpc 1.64.3 → 1.65.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 (632) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -58
  3. data/include/grpc/event_engine/event_engine.h +13 -6
  4. data/include/grpc/impl/channel_arg_names.h +7 -3
  5. data/include/grpc/module.modulemap +1 -0
  6. data/include/grpc/passive_listener.h +62 -0
  7. data/include/grpc/support/log.h +7 -17
  8. data/include/grpc/support/port_platform.h +3 -0
  9. data/src/core/channelz/channel_trace.cc +1 -1
  10. data/src/core/channelz/channel_trace.h +1 -1
  11. data/src/core/channelz/channelz.cc +3 -3
  12. data/src/core/channelz/channelz.h +7 -7
  13. data/src/core/channelz/channelz_registry.cc +4 -3
  14. data/src/core/client_channel/backup_poller.cc +4 -5
  15. data/src/core/client_channel/client_channel.cc +1324 -0
  16. data/src/core/client_channel/client_channel.h +243 -0
  17. data/src/core/client_channel/client_channel_filter.cc +266 -709
  18. data/src/core/client_channel/client_channel_filter.h +11 -64
  19. data/src/core/client_channel/client_channel_internal.h +16 -5
  20. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  21. data/src/core/client_channel/client_channel_service_config.h +3 -3
  22. data/src/core/client_channel/config_selector.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +1 -1
  24. data/src/core/client_channel/dynamic_filters.cc +3 -3
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  27. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  28. data/src/core/client_channel/retry_filter.cc +2 -9
  29. data/src/core/client_channel/retry_filter.h +2 -7
  30. data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
  31. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  32. data/src/core/client_channel/retry_service_config.cc +4 -5
  33. data/src/core/client_channel/retry_service_config.h +3 -3
  34. data/src/core/client_channel/subchannel.cc +220 -112
  35. data/src/core/client_channel/subchannel.h +31 -18
  36. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  37. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  38. data/src/core/client_channel/subchannel_stream_client.cc +36 -49
  39. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  40. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
  41. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
  42. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  43. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
  47. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
  48. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  49. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
  50. data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
  51. data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
  52. data/src/core/ext/filters/http/client_authority_filter.h +1 -0
  53. data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
  54. data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
  55. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
  56. data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
  57. data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
  58. data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
  59. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
  60. data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
  61. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
  64. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
  65. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  66. data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
  67. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
  68. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
  69. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
  70. data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
  71. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
  73. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
  74. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
  75. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
  76. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
  77. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
  78. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
  79. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
  80. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
  81. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
  82. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
  84. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  85. data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
  86. data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
  87. data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
  88. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
  89. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
  93. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
  94. data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
  95. data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
  97. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
  98. data/src/core/handshaker/handshaker.cc +6 -14
  99. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
  100. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
  101. data/src/core/handshaker/security/secure_endpoint.cc +38 -32
  102. data/src/core/handshaker/security/secure_endpoint.h +0 -2
  103. data/src/core/handshaker/security/security_handshaker.cc +25 -37
  104. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
  105. data/src/core/lib/address_utils/parse_address.cc +27 -39
  106. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
  107. data/src/core/lib/avl/avl.h +1 -1
  108. data/src/core/lib/channel/channel_args.cc +13 -17
  109. data/src/core/lib/channel/channel_args.h +19 -8
  110. data/src/core/lib/channel/channel_stack.cc +5 -63
  111. data/src/core/lib/channel/channel_stack.h +13 -37
  112. data/src/core/lib/channel/channel_stack_builder.h +0 -5
  113. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
  114. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
  115. data/src/core/lib/channel/connected_channel.cc +37 -676
  116. data/src/core/lib/channel/promise_based_filter.cc +41 -47
  117. data/src/core/lib/channel/promise_based_filter.h +124 -477
  118. data/src/core/lib/channel/status_util.cc +1 -1
  119. data/src/core/lib/compression/compression.cc +1 -1
  120. data/src/core/lib/compression/message_compress.cc +6 -6
  121. data/src/core/lib/config/config_vars.cc +3 -8
  122. data/src/core/lib/config/config_vars.h +1 -5
  123. data/src/core/lib/debug/event_log.h +1 -1
  124. data/src/core/lib/debug/trace.cc +43 -59
  125. data/src/core/lib/debug/trace.h +2 -97
  126. data/src/core/lib/debug/trace_flags.cc +255 -0
  127. data/src/core/lib/debug/trace_flags.h +133 -0
  128. data/src/core/lib/debug/trace_impl.h +115 -0
  129. data/src/core/lib/event_engine/ares_resolver.cc +5 -7
  130. data/src/core/lib/event_engine/ares_resolver.h +1 -3
  131. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
  132. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
  133. data/src/core/lib/event_engine/event_engine.cc +29 -4
  134. data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
  135. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  136. data/src/core/lib/event_engine/forkable.cc +4 -5
  137. data/src/core/lib/event_engine/forkable.h +0 -11
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
  139. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
  140. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  141. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
  142. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
  143. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
  144. data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
  145. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
  146. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
  147. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
  148. data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
  149. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
  150. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
  151. data/src/core/lib/event_engine/shim.cc +1 -1
  152. data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
  153. data/src/core/lib/event_engine/thread_local.h +1 -1
  154. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  155. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
  156. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
  157. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
  158. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
  159. data/src/core/lib/event_engine/trace.h +6 -17
  160. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  161. data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
  162. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  163. data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
  164. data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
  165. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  166. data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
  167. data/src/core/lib/experiments/experiments.cc +35 -151
  168. data/src/core/lib/experiments/experiments.h +12 -45
  169. data/src/core/lib/gprpp/bitset.h +1 -1
  170. data/src/core/lib/gprpp/crash.cc +2 -3
  171. data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
  172. data/src/core/lib/gprpp/dump_args.cc +54 -0
  173. data/src/core/lib/gprpp/dump_args.h +69 -0
  174. data/src/core/lib/gprpp/glob.cc +70 -0
  175. data/src/core/lib/gprpp/glob.h +29 -0
  176. data/src/core/lib/gprpp/per_cpu.cc +1 -1
  177. data/src/core/lib/gprpp/posix/stat.cc +3 -4
  178. data/src/core/lib/gprpp/posix/thd.cc +8 -9
  179. data/src/core/lib/gprpp/ref_counted.h +30 -22
  180. data/src/core/lib/gprpp/single_set_ptr.h +5 -3
  181. data/src/core/lib/gprpp/status_helper.cc +11 -30
  182. data/src/core/lib/gprpp/status_helper.h +3 -31
  183. data/src/core/lib/gprpp/time.cc +3 -4
  184. data/src/core/lib/gprpp/time.h +3 -2
  185. data/src/core/lib/gprpp/unique_type_name.h +1 -1
  186. data/src/core/lib/gprpp/validation_errors.cc +10 -1
  187. data/src/core/lib/gprpp/validation_errors.h +11 -0
  188. data/src/core/lib/gprpp/windows/stat.cc +3 -4
  189. data/src/core/lib/gprpp/windows/thd.cc +3 -2
  190. data/src/core/lib/gprpp/work_serializer.cc +48 -57
  191. data/src/core/lib/iomgr/buffer_list.cc +4 -2
  192. data/src/core/lib/iomgr/call_combiner.cc +18 -27
  193. data/src/core/lib/iomgr/call_combiner.h +1 -3
  194. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  195. data/src/core/lib/iomgr/closure.h +2 -4
  196. data/src/core/lib/iomgr/combiner.cc +6 -8
  197. data/src/core/lib/iomgr/combiner.h +0 -2
  198. data/src/core/lib/iomgr/endpoint.cc +0 -6
  199. data/src/core/lib/iomgr/endpoint.h +0 -2
  200. data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
  201. data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
  202. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
  203. data/src/core/lib/iomgr/error.cc +13 -21
  204. data/src/core/lib/iomgr/error.h +1 -1
  205. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  206. data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
  207. data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
  208. data/src/core/lib/iomgr/ev_posix.cc +8 -9
  209. data/src/core/lib/iomgr/ev_posix.h +10 -7
  210. data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
  211. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
  212. data/src/core/lib/iomgr/exec_ctx.cc +2 -2
  213. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  214. data/src/core/lib/iomgr/executor.cc +6 -15
  215. data/src/core/lib/iomgr/executor.h +1 -1
  216. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  217. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  218. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  219. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  220. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  221. data/src/core/lib/iomgr/iocp_windows.cc +4 -3
  222. data/src/core/lib/iomgr/iomgr.cc +13 -17
  223. data/src/core/lib/iomgr/lockfree_event.cc +3 -5
  224. data/src/core/lib/iomgr/pollset.h +0 -2
  225. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  226. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  227. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  228. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  229. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  230. data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
  231. data/src/core/lib/iomgr/socket_windows.cc +4 -6
  232. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  233. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
  234. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
  235. data/src/core/lib/iomgr/tcp_posix.cc +57 -84
  236. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  237. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  238. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
  239. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
  240. data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
  241. data/src/core/lib/iomgr/tcp_windows.cc +25 -41
  242. data/src/core/lib/iomgr/timer_generic.cc +17 -20
  243. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  244. data/src/core/lib/iomgr/timer_manager.cc +17 -30
  245. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  246. data/src/core/lib/iomgr/vsock.cc +1 -1
  247. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  248. data/src/core/lib/promise/activity.h +27 -4
  249. data/src/core/lib/promise/cancel_callback.h +24 -0
  250. data/src/core/lib/promise/context.h +11 -0
  251. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  252. data/src/core/lib/promise/detail/join_state.h +354 -398
  253. data/src/core/lib/promise/detail/promise_like.h +6 -5
  254. data/src/core/lib/promise/detail/seq_state.h +1178 -1178
  255. data/src/core/lib/promise/for_each.h +6 -6
  256. data/src/core/lib/promise/interceptor_list.h +6 -7
  257. data/src/core/lib/promise/latch.h +9 -9
  258. data/src/core/lib/promise/map.h +17 -0
  259. data/src/core/lib/promise/observable.h +182 -0
  260. data/src/core/lib/promise/party.cc +7 -8
  261. data/src/core/lib/promise/party.h +10 -8
  262. data/src/core/lib/promise/pipe.h +16 -35
  263. data/src/core/lib/promise/promise.h +1 -0
  264. data/src/core/lib/promise/status_flag.h +2 -0
  265. data/src/core/lib/resource_quota/arena.cc +56 -79
  266. data/src/core/lib/resource_quota/arena.h +118 -209
  267. data/src/core/lib/resource_quota/memory_quota.cc +12 -13
  268. data/src/core/lib/resource_quota/memory_quota.h +2 -3
  269. data/src/core/lib/resource_quota/periodic_update.cc +1 -1
  270. data/src/core/lib/resource_quota/resource_quota.h +1 -1
  271. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  272. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  273. data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
  274. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
  275. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
  276. data/src/core/lib/security/authorization/matchers.cc +3 -3
  277. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
  278. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
  279. data/src/core/lib/security/context/security_context.cc +12 -13
  280. data/src/core/lib/security/context/security_context.h +31 -8
  281. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  282. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
  283. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  284. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
  285. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
  286. data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
  287. data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
  288. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
  289. data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
  290. data/src/core/lib/security/credentials/credentials.cc +6 -6
  291. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
  292. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
  293. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
  294. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  295. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
  296. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
  297. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
  298. data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
  299. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  300. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
  301. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
  302. data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
  303. data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
  304. data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
  305. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
  306. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
  307. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
  308. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  309. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  310. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  312. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
  313. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
  314. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
  315. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  316. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
  317. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
  318. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
  319. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
  320. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
  321. data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
  322. data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
  323. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
  324. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
  325. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
  326. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
  327. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  328. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
  329. data/src/core/lib/security/security_connector/security_connector.cc +1 -4
  330. data/src/core/lib/security/security_connector/security_connector.h +1 -3
  331. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
  332. data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
  333. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
  334. data/src/core/lib/security/transport/auth_filters.h +1 -0
  335. data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
  336. data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
  337. data/src/core/lib/security/util/json_util.h +1 -1
  338. data/src/core/lib/slice/slice.h +1 -1
  339. data/src/core/lib/slice/slice_refcount.h +2 -4
  340. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  341. data/src/core/lib/surface/api_trace.h +1 -3
  342. data/src/core/lib/surface/call.cc +64 -3738
  343. data/src/core/lib/surface/call.h +41 -143
  344. data/src/core/lib/surface/call_log_batch.cc +1 -1
  345. data/src/core/lib/surface/call_utils.cc +276 -0
  346. data/src/core/lib/surface/call_utils.h +449 -0
  347. data/src/core/lib/surface/channel.cc +8 -3
  348. data/src/core/lib/surface/channel.h +10 -7
  349. data/src/core/lib/surface/channel_create.cc +14 -6
  350. data/src/core/lib/surface/channel_create.h +3 -2
  351. data/src/core/lib/surface/channel_init.cc +21 -77
  352. data/src/core/lib/surface/channel_init.h +19 -97
  353. data/src/core/lib/surface/client_call.cc +419 -0
  354. data/src/core/lib/surface/client_call.h +180 -0
  355. data/src/core/lib/surface/completion_queue.cc +28 -33
  356. data/src/core/lib/surface/completion_queue.h +0 -8
  357. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  358. data/src/core/lib/surface/filter_stack_call.h +369 -0
  359. data/src/core/lib/surface/init.cc +7 -6
  360. data/src/core/lib/surface/lame_client.cc +1 -1
  361. data/src/core/lib/surface/legacy_channel.cc +40 -27
  362. data/src/core/lib/surface/legacy_channel.h +9 -18
  363. data/src/core/lib/surface/server_call.cc +222 -0
  364. data/src/core/lib/surface/server_call.h +167 -0
  365. data/src/core/lib/surface/version.cc +2 -2
  366. data/src/core/lib/transport/bdp_estimator.cc +3 -5
  367. data/src/core/lib/transport/bdp_estimator.h +2 -4
  368. data/src/core/lib/transport/call_arena_allocator.h +9 -7
  369. data/src/core/lib/transport/call_destination.h +76 -0
  370. data/src/core/lib/transport/call_filters.cc +28 -10
  371. data/src/core/lib/transport/call_filters.h +128 -22
  372. data/src/core/lib/transport/call_spine.cc +5 -6
  373. data/src/core/lib/transport/call_spine.h +159 -334
  374. data/src/core/lib/transport/connectivity_state.cc +8 -10
  375. data/src/core/lib/transport/connectivity_state.h +0 -2
  376. data/src/core/lib/transport/interception_chain.cc +155 -0
  377. data/src/core/lib/transport/interception_chain.h +236 -0
  378. data/src/core/lib/transport/metadata_batch.h +10 -1
  379. data/src/core/lib/transport/metadata_info.h +1 -1
  380. data/src/core/lib/transport/transport.cc +3 -6
  381. data/src/core/lib/transport/transport.h +43 -40
  382. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  383. data/src/core/load_balancing/endpoint_list.cc +5 -5
  384. data/src/core/load_balancing/endpoint_list.h +1 -1
  385. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
  386. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
  387. data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
  388. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
  389. data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
  390. data/src/core/load_balancing/health_check_client.cc +10 -13
  391. data/src/core/load_balancing/lb_policy.cc +5 -8
  392. data/src/core/load_balancing/lb_policy.h +19 -3
  393. data/src/core/load_balancing/lb_policy_factory.h +1 -1
  394. data/src/core/load_balancing/lb_policy_registry.cc +2 -3
  395. data/src/core/load_balancing/lb_policy_registry.h +1 -1
  396. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  397. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
  398. data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
  399. data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
  400. data/src/core/load_balancing/priority/priority.cc +26 -28
  401. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
  402. data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
  403. data/src/core/load_balancing/rls/rls.cc +82 -82
  404. data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
  405. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
  406. data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
  407. data/src/core/load_balancing/xds/cds.cc +14 -16
  408. data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
  409. data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
  410. data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
  411. data/src/core/load_balancing/xds/xds_override_host.h +3 -3
  412. data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
  413. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
  414. data/src/core/resolver/binder/binder_resolver.cc +3 -2
  415. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
  416. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  417. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
  418. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
  419. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  420. data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
  421. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
  422. data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
  423. data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
  424. data/src/core/resolver/endpoint_addresses.cc +1 -1
  425. data/src/core/resolver/fake/fake_resolver.cc +1 -1
  426. data/src/core/resolver/fake/fake_resolver.h +1 -1
  427. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  428. data/src/core/resolver/polling_resolver.cc +30 -35
  429. data/src/core/resolver/resolver.cc +2 -6
  430. data/src/core/resolver/resolver.h +0 -2
  431. data/src/core/resolver/resolver_registry.cc +6 -8
  432. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
  433. data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
  434. data/src/core/resolver/xds/xds_resolver.cc +13 -15
  435. data/src/core/server/server.cc +269 -389
  436. data/src/core/server/server.h +37 -19
  437. data/src/core/server/server_call_tracer_filter.cc +7 -14
  438. data/src/core/server/server_config_selector.h +1 -1
  439. data/src/core/server/server_config_selector_filter.cc +3 -3
  440. data/src/core/server/server_interface.h +2 -0
  441. data/src/core/server/xds_channel_stack_modifier.cc +1 -1
  442. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  443. data/src/core/server/xds_server_config_fetcher.cc +1 -4
  444. data/src/core/service_config/service_config.h +1 -1
  445. data/src/core/service_config/service_config_call_data.h +13 -11
  446. data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
  447. data/src/core/service_config/service_config_impl.cc +5 -5
  448. data/src/core/service_config/service_config_impl.h +1 -1
  449. data/src/core/service_config/service_config_parser.cc +3 -6
  450. data/src/core/service_config/service_config_parser.h +1 -1
  451. data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
  452. data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
  453. data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
  454. data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
  455. data/src/core/telemetry/metrics.cc +178 -0
  456. data/src/core/telemetry/metrics.h +562 -0
  457. data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
  458. data/src/core/{lib/debug → telemetry}/stats.h +5 -5
  459. data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
  460. data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
  461. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
  462. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
  463. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
  464. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
  465. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  466. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
  467. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
  468. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
  469. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  470. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
  471. data/src/core/tsi/fake_transport_security.cc +14 -17
  472. data/src/core/tsi/local_transport_security.cc +6 -5
  473. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
  474. data/src/core/tsi/ssl_transport_security.cc +76 -81
  475. data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
  476. data/src/core/tsi/ssl_transport_security_utils.h +11 -0
  477. data/src/core/tsi/transport_security.cc +0 -4
  478. data/src/core/tsi/transport_security.h +0 -2
  479. data/src/core/tsi/transport_security_interface.h +0 -4
  480. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  481. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  482. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  483. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
  484. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
  485. data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
  486. data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
  487. data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
  488. data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
  489. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
  490. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
  491. data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
  492. data/src/core/{lib/http → util/http_client}/parser.h +5 -6
  493. data/src/core/{lib → util}/json/json.h +5 -4
  494. data/src/core/{lib → util}/json/json_args.h +5 -5
  495. data/src/core/{lib → util}/json/json_channel_args.h +6 -6
  496. data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
  497. data/src/core/{lib → util}/json/json_object_loader.h +7 -7
  498. data/src/core/{lib → util}/json/json_reader.cc +3 -2
  499. data/src/core/{lib → util}/json/json_reader.h +6 -6
  500. data/src/core/{lib → util}/json/json_util.cc +4 -4
  501. data/src/core/{lib → util}/json/json_util.h +6 -6
  502. data/src/core/{lib → util}/json/json_writer.cc +3 -3
  503. data/src/core/{lib → util}/json/json_writer.h +6 -6
  504. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  505. data/src/core/util/log.cc +165 -0
  506. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  507. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  508. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  509. data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
  510. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
  511. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  512. data/src/core/{lib/gpr → util}/string.cc +2 -2
  513. data/src/core/{lib/gpr → util}/string.h +3 -3
  514. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  515. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  516. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  517. data/src/core/{lib/gpr → util}/useful.h +3 -3
  518. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  519. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  520. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  521. data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
  522. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  523. data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
  524. data/src/core/xds/grpc/certificate_provider_store.h +4 -4
  525. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  526. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
  527. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  528. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
  529. data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
  530. data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
  531. data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
  532. data/src/core/xds/grpc/xds_client_grpc.h +2 -2
  533. data/src/core/xds/grpc/xds_cluster.cc +4 -5
  534. data/src/core/xds/grpc/xds_cluster.h +1 -1
  535. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  536. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  537. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  538. data/src/core/xds/grpc/xds_common_types.h +1 -1
  539. data/src/core/xds/grpc/xds_endpoint.cc +4 -5
  540. data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
  541. data/src/core/xds/grpc/xds_http_filters.h +2 -2
  542. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
  543. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
  544. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  545. data/src/core/xds/grpc/xds_listener.cc +4 -6
  546. data/src/core/xds/grpc/xds_route_config.cc +7 -8
  547. data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
  548. data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
  549. data/src/core/xds/xds_client/xds_api.cc +5 -9
  550. data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
  551. data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
  552. data/src/core/xds/xds_client/xds_client.cc +39 -45
  553. data/src/core/xds/xds_client/xds_client.h +0 -3
  554. data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
  555. data/src/core/xds/xds_client/xds_client_stats.h +2 -2
  556. data/src/ruby/bin/math_pb.rb +1 -22
  557. data/src/ruby/ext/grpc/rb_call.c +8 -1
  558. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  559. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  560. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  561. data/src/ruby/ext/grpc/rb_server.c +39 -22
  562. data/src/ruby/lib/grpc/version.rb +1 -1
  563. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  564. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  565. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  566. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  567. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  568. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  569. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  571. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
  572. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  573. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
  576. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
  577. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
  579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
  580. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  581. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  582. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
  583. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
  584. data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
  586. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  587. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  588. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
  589. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
  590. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
  593. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  594. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
  595. metadata +103 -93
  596. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  597. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  598. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  599. data/src/core/handshaker/security/tsi_error.cc +0 -31
  600. data/src/core/handshaker/security/tsi_error.h +0 -30
  601. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  602. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  603. data/src/core/lib/channel/context.h +0 -105
  604. data/src/core/lib/channel/metrics.cc +0 -334
  605. data/src/core/lib/channel/metrics.h +0 -365
  606. data/src/core/lib/event_engine/trace.cc +0 -25
  607. data/src/core/lib/gpr/log.cc +0 -166
  608. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  609. data/src/core/lib/promise/trace.cc +0 -20
  610. data/src/core/lib/promise/trace.h +0 -24
  611. data/src/core/lib/resource_quota/trace.cc +0 -19
  612. data/src/core/lib/resource_quota/trace.h +0 -24
  613. data/src/core/lib/slice/slice_refcount.cc +0 -20
  614. data/src/core/lib/surface/api_trace.cc +0 -25
  615. data/src/core/lib/surface/call_trace.h +0 -24
  616. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  617. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  618. data/src/core/lib/transport/batch_builder.cc +0 -172
  619. data/src/core/lib/transport/batch_builder.h +0 -474
  620. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  621. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  622. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  623. /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
  624. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  625. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  626. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  627. /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
  628. /data/src/core/{lib/gpr → util}/sync.cc +0 -0
  629. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  630. /data/src/core/{lib/gpr → util}/time.cc +0 -0
  631. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
  632. /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -57,9 +57,7 @@
57
57
  #include "src/core/ext/transport/chttp2/transport/ping_callbacks.h"
58
58
  #include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
59
59
  #include "src/core/ext/transport/chttp2/transport/write_size_policy.h"
60
- #include "src/core/lib/channel/call_tracer.h"
61
60
  #include "src/core/lib/channel/channel_args.h"
62
- #include "src/core/lib/channel/tcp_tracer.h"
63
61
  #include "src/core/lib/debug/trace.h"
64
62
  #include "src/core/lib/gprpp/bitset.h"
65
63
  #include "src/core/lib/gprpp/debug_location.h"
@@ -79,6 +77,8 @@
79
77
  #include "src/core/lib/transport/connectivity_state.h"
80
78
  #include "src/core/lib/transport/metadata_batch.h"
81
79
  #include "src/core/lib/transport/transport.h"
80
+ #include "src/core/telemetry/call_tracer.h"
81
+ #include "src/core/telemetry/tcp_tracer.h"
82
82
 
83
83
  // Flag that this closure barrier may be covering a write in a pollset, and so
84
84
  // we should not complete this closure until we can prove that the write got
@@ -223,17 +223,19 @@ typedef enum {
223
223
  GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
224
224
  } grpc_chttp2_keepalive_state;
225
225
 
226
- struct grpc_chttp2_transport final
227
- : public grpc_core::FilterStackTransport,
228
- public grpc_core::RefCounted<grpc_chttp2_transport,
229
- grpc_core::NonPolymorphicRefCount>,
230
- public grpc_core::KeepsGrpcInitialized {
226
+ struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport,
227
+ public grpc_core::KeepsGrpcInitialized {
231
228
  grpc_chttp2_transport(const grpc_core::ChannelArgs& channel_args,
232
229
  grpc_endpoint* ep, bool is_client);
233
230
  ~grpc_chttp2_transport() override;
234
231
 
235
232
  void Orphan() override;
236
233
 
234
+ grpc_core::RefCountedPtr<grpc_chttp2_transport> Ref() {
235
+ return grpc_core::FilterStackTransport::RefAsSubclass<
236
+ grpc_chttp2_transport>();
237
+ }
238
+
237
239
  size_t SizeOfStream() const override;
238
240
  bool HackyDisableStreamOpBatchCoalescingInConnectedChannel() const override;
239
241
  void PerformStreamOp(grpc_stream* gs,
@@ -254,9 +256,10 @@ struct grpc_chttp2_transport final
254
256
  void SetPollsetSet(grpc_stream* stream,
255
257
  grpc_pollset_set* pollset_set) override;
256
258
  void PerformOp(grpc_transport_op* op) override;
257
- grpc_endpoint* GetEndpoint() override;
258
259
 
259
260
  grpc_endpoint* ep;
261
+ grpc_core::Mutex ep_destroy_mu; // Guards endpoint destruction only.
262
+
260
263
  grpc_core::Slice peer_string;
261
264
 
262
265
  grpc_core::MemoryOwner memory_owner;
@@ -267,6 +270,14 @@ struct grpc_chttp2_transport final
267
270
  grpc_core::Combiner* combiner;
268
271
  absl::BitGen bitgen;
269
272
 
273
+ // On the client side, when the transport is first created, the
274
+ // endpoint will already have been added to this pollset_set, and it
275
+ // needs to stay there until the notify_on_receive_settings callback
276
+ // is invoked. After that, the polling will be coordinated via the
277
+ // bind_pollset_set transport op, sent by the subchannel when it
278
+ // starts a connectivity watch.
279
+ grpc_pollset_set* interested_parties_until_recv_settings = nullptr;
280
+
270
281
  grpc_closure* notify_on_receive_settings = nullptr;
271
282
  grpc_closure* notify_on_close = nullptr;
272
283
 
@@ -465,7 +476,7 @@ struct grpc_chttp2_transport final
465
476
  grpc_chttp2_keepalive_state keepalive_state;
466
477
  // Soft limit on max header size.
467
478
  uint32_t max_header_list_size_soft_limit = 0;
468
- grpc_core::ContextList* cl = nullptr;
479
+ grpc_core::ContextList* context_list = nullptr;
469
480
  grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> channelz_socket;
470
481
  uint32_t num_messages_in_next_write = 0;
471
482
  /// The number of pending induced frames (SETTINGS_ACK, PINGS_ACK and
@@ -544,12 +555,12 @@ typedef enum {
544
555
 
545
556
  struct grpc_chttp2_stream {
546
557
  grpc_chttp2_stream(grpc_chttp2_transport* t, grpc_stream_refcount* refcount,
547
- const void* server_data);
558
+ const void* server_data, grpc_core::Arena* arena);
548
559
  ~grpc_chttp2_stream();
549
560
 
550
- void* context = nullptr;
551
561
  const grpc_core::RefCountedPtr<grpc_chttp2_transport> t;
552
562
  grpc_stream_refcount* refcount;
563
+ grpc_core::Arena* const arena;
553
564
 
554
565
  grpc_closure destroy_stream;
555
566
  grpc_closure* destroy_stream_arg;
@@ -642,7 +653,7 @@ struct grpc_chttp2_stream {
642
653
  int64_t write_counter = 0;
643
654
 
644
655
  /// Only set when enabled.
645
- grpc_core::CallTracerInterface* call_tracer = nullptr;
656
+ grpc_core::CallTracerAnnotationInterface* call_tracer = nullptr;
646
657
 
647
658
  /// Only set when enabled.
648
659
  std::shared_ptr<grpc_core::TcpTracerInterface> tcp_tracer;
@@ -796,13 +807,12 @@ void grpc_chttp2_settings_timeout(
796
807
  #define GRPC_CHTTP2_CLIENT_CONNECT_STRLEN \
797
808
  (sizeof(GRPC_CHTTP2_CLIENT_CONNECT_STRING) - 1)
798
809
 
799
- // extern grpc_core::TraceFlag grpc_flowctl_trace;
800
-
801
- #define GRPC_CHTTP2_IF_TRACING(stmt) \
802
- do { \
803
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) { \
804
- (stmt); \
805
- } \
810
+ //
811
+ #define GRPC_CHTTP2_IF_TRACING(stmt) \
812
+ do { \
813
+ if (GRPC_TRACE_FLAG_ENABLED(http)) { \
814
+ (stmt); \
815
+ } \
806
816
  } while (0)
807
817
 
808
818
  void grpc_chttp2_fake_status(grpc_chttp2_transport* t,
@@ -29,6 +29,7 @@
29
29
  #include "absl/base/attributes.h"
30
30
  #include "absl/container/flat_hash_map.h"
31
31
  #include "absl/log/check.h"
32
+ #include "absl/log/log.h"
32
33
  #include "absl/random/bit_gen_ref.h"
33
34
  #include "absl/status/status.h"
34
35
  #include "absl/strings/str_cat.h"
@@ -53,14 +54,11 @@
53
54
  #include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
54
55
  #include "src/core/ext/transport/chttp2/transport/hpack_parser_table.h"
55
56
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
56
- #include "src/core/ext/transport/chttp2/transport/http_trace.h"
57
57
  #include "src/core/ext/transport/chttp2/transport/internal.h"
58
58
  #include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
59
59
  #include "src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h"
60
60
  #include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
61
61
  #include "src/core/lib/backoff/random_early_detection.h"
62
- #include "src/core/lib/channel/call_tracer.h"
63
- #include "src/core/lib/channel/context.h"
64
62
  #include "src/core/lib/debug/trace.h"
65
63
  #include "src/core/lib/experiments/experiments.h"
66
64
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -75,11 +73,10 @@
75
73
  #include "src/core/lib/transport/http2_errors.h"
76
74
  #include "src/core/lib/transport/metadata_batch.h"
77
75
  #include "src/core/lib/transport/transport.h"
76
+ #include "src/core/telemetry/call_tracer.h"
78
77
 
79
78
  using grpc_core::HPackParser;
80
79
 
81
- grpc_core::TraceFlag grpc_trace_chttp2_new_stream(false, "chttp2_new_stream");
82
-
83
80
  static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t,
84
81
  size_t& requests_started);
85
82
  static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
@@ -334,7 +331,7 @@ absl::variant<size_t, absl::Status> grpc_chttp2_perform_read(
334
331
  case GRPC_DTS_FH_8:
335
332
  DCHECK_LT(cur, end);
336
333
  t->incoming_stream_id |= (static_cast<uint32_t>(*cur));
337
- if (grpc_http_trace.enabled()) {
334
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
338
335
  gpr_log(GPR_INFO, "INCOMING[%p]: %s len:%d id:0x%08x", t,
339
336
  FrameTypeString(t->incoming_frame_type, t->incoming_frame_flags)
340
337
  .c_str(),
@@ -455,7 +452,7 @@ static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t,
455
452
  case GRPC_CHTTP2_FRAME_GOAWAY:
456
453
  return init_goaway_parser(t);
457
454
  default:
458
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
455
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
459
456
  gpr_log(GPR_ERROR, "Unknown frame type %02x", t->incoming_frame_type);
460
457
  }
461
458
  return init_non_header_skip_frame_parser(t);
@@ -715,8 +712,8 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
715
712
  gpr_log(GPR_ERROR, "grpc_chttp2_stream not accepted"));
716
713
  return init_header_skip_frame_parser(t, priority_type, is_eoh);
717
714
  }
718
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
719
- GRPC_TRACE_FLAG_ENABLED(grpc_trace_chttp2_new_stream)) {
715
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
716
+ GRPC_TRACE_FLAG_ENABLED(chttp2_new_stream)) {
720
717
  gpr_log(GPR_INFO,
721
718
  "[t:%p fd:%d peer:%s] Accepting new stream; "
722
719
  "num_incoming_streams_before_settings_ack=%u",
@@ -769,7 +766,7 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
769
766
  frame_type = HPackParser::LogInfo::kTrailers;
770
767
  break;
771
768
  case 2:
772
- gpr_log(GPR_ERROR, "too many header frames received");
769
+ LOG(ERROR) << "too many header frames received";
773
770
  return init_header_skip_frame_parser(t, priority_type, is_eoh);
774
771
  }
775
772
  if (frame_type == HPackParser::LogInfo::kTrailers && !t->header_eof) {
@@ -796,7 +793,7 @@ static grpc_error_handle init_window_update_frame_parser(
796
793
  grpc_chttp2_stream* s = t->incoming_stream =
797
794
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
798
795
  if (s == nullptr) {
799
- if (grpc_http_trace.enabled()) {
796
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
800
797
  gpr_log(GPR_ERROR, "Stream %d not found, ignoring WINDOW_UPDATE",
801
798
  t->incoming_stream_id);
802
799
  }
@@ -888,19 +885,17 @@ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
888
885
  const grpc_slice& slice,
889
886
  int is_last) {
890
887
  grpc_chttp2_stream* s = t->incoming_stream;
891
- if (grpc_http_trace.enabled()) {
892
- gpr_log(GPR_DEBUG,
893
- "INCOMING[%p;%p]: Parse %" PRIdPTR "b %sframe fragment with %s", t,
894
- s, GRPC_SLICE_LENGTH(slice), is_last ? "last " : "",
895
- t->parser.name);
896
- }
888
+ GRPC_TRACE_VLOG(http, 2) << "INCOMING[" << t << ";" << s << "]: Parse "
889
+ << GRPC_SLICE_LENGTH(slice) << "b "
890
+ << (is_last ? "last " : "") << "frame fragment with "
891
+ << t->parser.name;
897
892
  grpc_error_handle err =
898
893
  t->parser.parser(t->parser.user_data, t, s, slice, is_last);
899
894
  intptr_t unused;
900
895
  if (GPR_LIKELY(err.ok())) {
901
896
  return err;
902
897
  }
903
- if (grpc_http_trace.enabled()) {
898
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
904
899
  gpr_log(GPR_ERROR, "INCOMING[%p;%p]: Parse failed with %s", t, s,
905
900
  err.ToString().c_str());
906
901
  }
@@ -942,13 +937,8 @@ grpc_error_handle grpc_chttp2_header_parser_parse(void* hpack_parser,
942
937
  grpc_core::CallTracerAnnotationInterface* call_tracer = nullptr;
943
938
  if (s != nullptr) {
944
939
  s->stats.incoming.header_bytes += GRPC_SLICE_LENGTH(slice);
945
-
946
- if (s->context != nullptr) {
947
- call_tracer = static_cast<grpc_core::CallTracerAnnotationInterface*>(
948
- static_cast<grpc_call_context_element*>(
949
- s->context)[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE]
950
- .value);
951
- }
940
+ call_tracer =
941
+ s->arena->GetContext<grpc_core::CallTracerAnnotationInterface>();
952
942
  }
953
943
  grpc_error_handle error = parser->Parse(
954
944
  slice, is_last != 0, absl::BitGenRef(t->bitgen), call_tracer);
@@ -23,8 +23,6 @@
23
23
  #include <grpc/support/log.h>
24
24
  #include <grpc/support/port_platform.h>
25
25
 
26
- grpc_core::TraceFlag grpc_ping_trace(false, "http2_ping");
27
-
28
26
  namespace grpc_core {
29
27
 
30
28
  void Chttp2PingCallbacks::OnPing(Callback on_start, Callback on_ack) {
@@ -33,8 +33,6 @@
33
33
  #include "src/core/lib/debug/trace.h"
34
34
  #include "src/core/lib/gprpp/time.h"
35
35
 
36
- extern grpc_core::TraceFlag grpc_ping_trace;
37
-
38
36
  namespace grpc_core {
39
37
 
40
38
  class Chttp2PingCallbacks {
@@ -35,16 +35,18 @@
35
35
  namespace grpc_core {
36
36
 
37
37
  namespace {
38
- int g_default_max_pings_without_data = 2;
38
+ int g_default_max_pings_without_data_sent = 2;
39
+ constexpr Duration kThrottleIntervalWithoutDataSent = Duration::Minutes(1);
39
40
  absl::optional<int> g_default_max_inflight_pings;
40
41
  } // namespace
41
42
 
42
43
  Chttp2PingRatePolicy::Chttp2PingRatePolicy(const ChannelArgs& args,
43
44
  bool is_client)
44
- : max_pings_without_data_(
45
+ : max_pings_without_data_sent_(
45
46
  is_client
46
- ? std::max(0, args.GetInt(GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)
47
- .value_or(g_default_max_pings_without_data))
47
+ ? std::max(0,
48
+ args.GetInt(GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)
49
+ .value_or(g_default_max_pings_without_data_sent))
48
50
  : 0),
49
51
  // Configuration via channel arg dominates, otherwise if the multiping
50
52
  // experiment is enabled we use 100, otherwise 1.
@@ -54,18 +56,15 @@ Chttp2PingRatePolicy::Chttp2PingRatePolicy(const ChannelArgs& args,
54
56
  IsMultipingEnabled() ? 100 : 1)))) {}
55
57
 
56
58
  void Chttp2PingRatePolicy::SetDefaults(const ChannelArgs& args) {
57
- g_default_max_pings_without_data =
59
+ g_default_max_pings_without_data_sent =
58
60
  std::max(0, args.GetInt(GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)
59
- .value_or(g_default_max_pings_without_data));
61
+ .value_or(g_default_max_pings_without_data_sent));
60
62
  g_default_max_inflight_pings = args.GetInt(GRPC_ARG_HTTP2_MAX_INFLIGHT_PINGS);
61
63
  }
62
64
 
63
65
  Chttp2PingRatePolicy::RequestSendPingResult
64
66
  Chttp2PingRatePolicy::RequestSendPing(Duration next_allowed_ping_interval,
65
67
  size_t inflight_pings) const {
66
- if (max_pings_without_data_ != 0 && pings_before_data_required_ == 0) {
67
- return TooManyRecentPings{};
68
- }
69
68
  if (max_inflight_pings_ > 0 &&
70
69
  inflight_pings > static_cast<size_t>(max_inflight_pings_)) {
71
70
  return TooManyRecentPings{};
@@ -77,12 +76,29 @@ Chttp2PingRatePolicy::RequestSendPing(Duration next_allowed_ping_interval,
77
76
  return TooSoon{next_allowed_ping_interval, last_ping_sent_time_,
78
77
  next_allowed_ping - now};
79
78
  }
79
+ // Throttle pings to 1 minute if we haven't sent any data recently
80
+ if (max_pings_without_data_sent_ != 0 &&
81
+ pings_before_data_sending_required_ == 0) {
82
+ if (IsMaxPingsWoDataThrottleEnabled()) {
83
+ const Timestamp next_allowed_ping =
84
+ last_ping_sent_time_ + kThrottleIntervalWithoutDataSent;
85
+ if (next_allowed_ping > now) {
86
+ return TooSoon{kThrottleIntervalWithoutDataSent, last_ping_sent_time_,
87
+ next_allowed_ping - now};
88
+ }
89
+ } else {
90
+ return TooManyRecentPings{};
91
+ }
92
+ }
93
+
80
94
  return SendGranted{};
81
95
  }
82
96
 
83
97
  void Chttp2PingRatePolicy::SentPing() {
84
98
  last_ping_sent_time_ = Timestamp::Now();
85
- if (pings_before_data_required_) --pings_before_data_required_;
99
+ if (pings_before_data_sending_required_ > 0) {
100
+ --pings_before_data_sending_required_;
101
+ }
86
102
  }
87
103
 
88
104
  void Chttp2PingRatePolicy::ReceivedDataFrame() {
@@ -90,13 +106,13 @@ void Chttp2PingRatePolicy::ReceivedDataFrame() {
90
106
  }
91
107
 
92
108
  void Chttp2PingRatePolicy::ResetPingsBeforeDataRequired() {
93
- pings_before_data_required_ = max_pings_without_data_;
109
+ pings_before_data_sending_required_ = max_pings_without_data_sent_;
94
110
  }
95
111
 
96
112
  std::string Chttp2PingRatePolicy::GetDebugString() const {
97
113
  return absl::StrCat(
98
- "max_pings_without_data: ", max_pings_without_data_,
99
- ", pings_before_data_required: ", pings_before_data_required_,
114
+ "max_pings_without_data: ", max_pings_without_data_sent_,
115
+ ", pings_before_data_required: ", pings_before_data_sending_required_,
100
116
  ", last_ping_sent_time_: ", last_ping_sent_time_.ToString());
101
117
  }
102
118
 
@@ -70,13 +70,14 @@ class Chttp2PingRatePolicy {
70
70
  void ReceivedDataFrame();
71
71
  std::string GetDebugString() const;
72
72
 
73
- int TestOnlyMaxPingsWithoutData() const { return max_pings_without_data_; }
73
+ int TestOnlyMaxPingsWithoutData() const {
74
+ return max_pings_without_data_sent_;
75
+ }
74
76
 
75
77
  private:
76
- const int max_pings_without_data_;
78
+ const int max_pings_without_data_sent_;
77
79
  const int max_inflight_pings_;
78
- // No pings allowed before receiving a header or data frame.
79
- int pings_before_data_required_ = 0;
80
+ int pings_before_data_sending_required_ = 0;
80
81
  Timestamp last_ping_sent_time_ = Timestamp::InfPast();
81
82
  };
82
83
 
@@ -44,8 +44,6 @@ static const char* stream_list_id_string(grpc_chttp2_stream_list_id id) {
44
44
  GPR_UNREACHABLE_CODE(return "unknown");
45
45
  }
46
46
 
47
- grpc_core::TraceFlag grpc_trace_http2_stream_state(false, "http2_stream_state");
48
-
49
47
  // core list management
50
48
 
51
49
  static bool stream_list_empty(grpc_chttp2_transport* t,
@@ -70,7 +68,7 @@ static bool stream_list_pop(grpc_chttp2_transport* t,
70
68
  s->included.clear(id);
71
69
  }
72
70
  *stream = s;
73
- if (s && GRPC_TRACE_FLAG_ENABLED(grpc_trace_http2_stream_state)) {
71
+ if (s && GRPC_TRACE_FLAG_ENABLED(http2_stream_state)) {
74
72
  gpr_log(GPR_INFO, "%p[%d][%s]: pop from %s", t, s->id,
75
73
  t->is_client ? "cli" : "svr", stream_list_id_string(id));
76
74
  }
@@ -92,7 +90,7 @@ static void stream_list_remove(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
92
90
  } else {
93
91
  t->lists[id].tail = s->links[id].prev;
94
92
  }
95
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_http2_stream_state)) {
93
+ if (GRPC_TRACE_FLAG_ENABLED(http2_stream_state)) {
96
94
  gpr_log(GPR_INFO, "%p[%d][%s]: remove from %s", t, s->id,
97
95
  t->is_client ? "cli" : "svr", stream_list_id_string(id));
98
96
  }
@@ -124,7 +122,7 @@ static void stream_list_add_tail(grpc_chttp2_transport* t,
124
122
  }
125
123
  t->lists[id].tail = s;
126
124
  s->included.set(id);
127
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_http2_stream_state)) {
125
+ if (GRPC_TRACE_FLAG_ENABLED(http2_stream_state)) {
128
126
  gpr_log(GPR_INFO, "%p[%d][%s]: add to %s", t, s->id,
129
127
  t->is_client ? "cli" : "svr", stream_list_id_string(id));
130
128
  }
@@ -47,19 +47,14 @@
47
47
  #include "src/core/ext/transport/chttp2/transport/frame_window_update.h"
48
48
  #include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
49
49
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
50
- #include "src/core/ext/transport/chttp2/transport/http_trace.h"
51
50
  #include "src/core/ext/transport/chttp2/transport/internal.h"
52
51
  #include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
53
52
  #include "src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h"
54
53
  #include "src/core/ext/transport/chttp2/transport/ping_callbacks.h"
55
54
  #include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
56
55
  #include "src/core/ext/transport/chttp2/transport/write_size_policy.h"
57
- #include "src/core/lib/channel/call_tracer.h"
58
- #include "src/core/lib/debug/stats.h"
59
- #include "src/core/lib/debug/stats_data.h"
60
56
  #include "src/core/lib/debug/trace.h"
61
57
  #include "src/core/lib/experiments/experiments.h"
62
- #include "src/core/lib/gpr/useful.h"
63
58
  #include "src/core/lib/gprpp/match.h"
64
59
  #include "src/core/lib/gprpp/ref_counted.h"
65
60
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -73,6 +68,10 @@
73
68
  #include "src/core/lib/transport/http2_errors.h"
74
69
  #include "src/core/lib/transport/metadata_batch.h"
75
70
  #include "src/core/lib/transport/transport.h"
71
+ #include "src/core/telemetry/call_tracer.h"
72
+ #include "src/core/telemetry/stats.h"
73
+ #include "src/core/telemetry/stats_data.h"
74
+ #include "src/core/util/useful.h"
76
75
 
77
76
  // IWYU pragma: no_include "src/core/lib/gprpp/orphanable.h"
78
77
 
@@ -133,10 +132,10 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
133
132
  t->channelz_socket->RecordKeepaliveSent();
134
133
  }
135
134
  grpc_core::global_stats().IncrementHttp2PingsSent();
136
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
137
- GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
138
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace) ||
139
- GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace)) {
135
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
136
+ GRPC_TRACE_FLAG_ENABLED(bdp_estimator) ||
137
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive) ||
138
+ GRPC_TRACE_FLAG_ENABLED(http2_ping)) {
140
139
  gpr_log(GPR_INFO, "%s[%p]: Ping %" PRIx64 " sent [%s]: %s",
141
140
  t->is_client ? "CLIENT" : "SERVER", t, id,
142
141
  std::string(t->peer_string.as_string_view()).c_str(),
@@ -145,10 +144,10 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
145
144
  },
146
145
  [t](grpc_core::Chttp2PingRatePolicy::TooManyRecentPings) {
147
146
  // need to receive something of substance before sending a ping again
148
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
149
- GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
150
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace) ||
151
- GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace)) {
147
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
148
+ GRPC_TRACE_FLAG_ENABLED(bdp_estimator) ||
149
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive) ||
150
+ GRPC_TRACE_FLAG_ENABLED(http2_ping)) {
152
151
  gpr_log(GPR_INFO,
153
152
  "%s[%p]: Ping delayed [%s]: too many recent pings: %s",
154
153
  t->is_client ? "CLIENT" : "SERVER", t,
@@ -158,10 +157,10 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
158
157
  },
159
158
  [t](grpc_core::Chttp2PingRatePolicy::TooSoon too_soon) {
160
159
  // not enough elapsed time between successive pings
161
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
162
- GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace) ||
163
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace) ||
164
- GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace)) {
160
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
161
+ GRPC_TRACE_FLAG_ENABLED(bdp_estimator) ||
162
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive) ||
163
+ GRPC_TRACE_FLAG_ENABLED(http2_ping)) {
165
164
  gpr_log(
166
165
  GPR_INFO,
167
166
  "%s[%p]: Ping delayed [%s]: not enough time elapsed since last "
@@ -207,7 +206,7 @@ static bool update_list(grpc_chttp2_transport* t, int64_t send_bytes,
207
206
 
208
207
  static void report_stall(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
209
208
  const char* staller) {
210
- if (GRPC_TRACE_FLAG_ENABLED(grpc_flowctl_trace)) {
209
+ if (GRPC_TRACE_FLAG_ENABLED(flowctl)) {
211
210
  gpr_log(
212
211
  GPR_DEBUG,
213
212
  "%s:%p stream %d moved to stalled list by %s. This is FULLY expected "
@@ -682,10 +681,10 @@ grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
682
681
  grpc_core::GrpcHttp2GetCopyContextFn();
683
682
  if (copy_context_fn != nullptr &&
684
683
  grpc_core::GrpcHttp2GetWriteTimestampsCallback() != nullptr) {
685
- t->cl->emplace_back(copy_context_fn(s->context),
686
- outbuf_relative_start_pos, num_stream_bytes,
687
- s->byte_counter, s->write_counter - 1,
688
- s->tcp_tracer);
684
+ t->context_list->emplace_back(copy_context_fn(s->arena),
685
+ outbuf_relative_start_pos,
686
+ num_stream_bytes, s->byte_counter,
687
+ s->write_counter - 1, s->tcp_tracer);
689
688
  }
690
689
  }
691
690
  outbuf_relative_start_pos += num_stream_bytes;
@@ -728,7 +727,7 @@ void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error) {
728
727
  grpc_core::ExecCtx exec_ctx;
729
728
  grpc_chttp2_ping_timeout(t);
730
729
  });
731
- if (GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace) && id.has_value()) {
730
+ if (GRPC_TRACE_FLAG_ENABLED(http2_ping) && id.has_value()) {
732
731
  gpr_log(GPR_INFO,
733
732
  "%s[%p]: Set ping timeout timer of %s for ping id %" PRIx64,
734
733
  t->is_client ? "CLIENT" : "SERVER", t, timeout.ToString().c_str(),
@@ -740,8 +739,8 @@ void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error) {
740
739
  t->keepalive_ping_timeout_handle !=
741
740
  grpc_event_engine::experimental::EventEngine::TaskHandle::
742
741
  kInvalid) {
743
- if (GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace) ||
744
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
742
+ if (GRPC_TRACE_FLAG_ENABLED(http2_ping) ||
743
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive)) {
745
744
  gpr_log(GPR_INFO, "%s[%p]: Set keepalive ping timeout timer of %s",
746
745
  t->is_client ? "CLIENT" : "SERVER", t,
747
746
  t->keepalive_timeout.ToString().c_str());