grpc 1.72.0 → 1.74.0.pre2

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 (1371) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +56 -18
  3. data/include/grpc/create_channel_from_endpoint.h +54 -0
  4. data/include/grpc/credentials.h +11 -5
  5. data/include/grpc/event_engine/event_engine.h +182 -8
  6. data/include/grpc/event_engine/internal/write_event.h +34 -0
  7. data/include/grpc/grpc_posix.h +20 -1
  8. data/include/grpc/impl/channel_arg_names.h +19 -13
  9. data/include/grpc/impl/compression_types.h +3 -2
  10. data/include/grpc/impl/slice_type.h +1 -1
  11. data/include/grpc/module.modulemap +1 -0
  12. data/include/grpc/support/json.h +27 -21
  13. data/include/grpc/support/port_platform.h +8 -5
  14. data/src/core/call/call_filters.h +28 -19
  15. data/src/core/call/call_spine.h +2 -0
  16. data/src/core/call/interception_chain.h +7 -11
  17. data/src/core/call/metadata.h +17 -0
  18. data/src/core/channelz/channel_trace.cc +217 -111
  19. data/src/core/channelz/channel_trace.h +389 -64
  20. data/src/core/channelz/channelz.cc +480 -178
  21. data/src/core/channelz/channelz.h +426 -71
  22. data/src/core/channelz/channelz_registry.cc +323 -117
  23. data/src/core/channelz/channelz_registry.h +203 -21
  24. data/src/core/channelz/property_list.cc +357 -0
  25. data/src/core/channelz/property_list.h +202 -0
  26. data/src/core/channelz/ztrace_collector.h +316 -0
  27. data/src/core/client_channel/backup_poller.cc +17 -2
  28. data/src/core/client_channel/client_channel.cc +42 -52
  29. data/src/core/client_channel/client_channel_filter.cc +35 -44
  30. data/src/core/client_channel/client_channel_filter.h +0 -2
  31. data/src/core/client_channel/config_selector.h +8 -2
  32. data/src/core/client_channel/connector.h +0 -3
  33. data/src/core/client_channel/dynamic_filters.cc +5 -6
  34. data/src/core/client_channel/dynamic_filters.h +1 -1
  35. data/src/core/client_channel/global_subchannel_pool.cc +71 -7
  36. data/src/core/client_channel/global_subchannel_pool.h +37 -4
  37. data/src/core/client_channel/retry_filter.cc +21 -27
  38. data/src/core/client_channel/retry_filter.h +10 -7
  39. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
  40. data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
  41. data/src/core/client_channel/retry_interceptor.cc +30 -44
  42. data/src/core/client_channel/retry_interceptor.h +18 -17
  43. data/src/core/client_channel/retry_throttle.cc +46 -61
  44. data/src/core/client_channel/retry_throttle.h +17 -39
  45. data/src/core/client_channel/subchannel.cc +50 -28
  46. data/src/core/client_channel/subchannel.h +10 -8
  47. data/src/core/client_channel/subchannel_pool_interface.cc +5 -6
  48. data/src/core/client_channel/subchannel_pool_interface.h +11 -1
  49. data/src/core/config/config_vars.cc +13 -1
  50. data/src/core/config/config_vars.h +8 -0
  51. data/src/core/config/core_configuration.cc +51 -11
  52. data/src/core/config/core_configuration.h +100 -7
  53. data/src/core/credentials/call/call_creds_registry.h +125 -0
  54. data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
  55. data/src/core/credentials/call/external/aws_request_signer.cc +3 -2
  56. data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -2
  57. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +7 -49
  58. data/src/core/credentials/call/jwt/jwt_verifier.cc +4 -4
  59. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
  60. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
  61. data/src/core/credentials/call/jwt_util.cc +70 -0
  62. data/src/core/credentials/call/jwt_util.h +32 -0
  63. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +4 -2
  64. data/src/core/credentials/transport/alts/alts_security_connector.cc +9 -8
  65. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  66. data/src/core/credentials/transport/google_default/google_default_credentials.cc +75 -7
  67. data/src/core/credentials/transport/ssl/ssl_credentials.cc +2 -3
  68. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +41 -11
  69. data/src/core/credentials/transport/ssl/ssl_security_connector.h +2 -1
  70. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
  71. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -0
  72. data/src/core/credentials/transport/tls/ssl_utils.h +5 -0
  73. data/src/core/credentials/transport/tls/tls_security_connector.cc +2 -1
  74. data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
  75. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -3
  76. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
  77. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
  78. data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
  79. data/src/core/ext/filters/http/message_compress/compression_filter.h +37 -4
  80. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  81. data/src/core/ext/filters/http/server/http_server_filter.h +18 -6
  82. data/src/core/ext/transport/chttp2/chttp2_plugin.cc +40 -0
  83. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +130 -146
  84. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +3 -0
  85. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +39 -967
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  87. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +210 -81
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -6
  89. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
  90. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
  91. data/src/core/ext/transport/chttp2/transport/flow_control.h +23 -0
  92. data/src/core/ext/transport/chttp2/transport/frame.cc +223 -105
  93. data/src/core/ext/transport/chttp2/transport/frame.h +78 -6
  94. data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -1
  95. data/src/core/ext/transport/chttp2/transport/frame_data.h +2 -0
  96. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -3
  97. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +5 -3
  98. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
  99. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -4
  100. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -1
  101. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +26 -9
  102. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -5
  103. data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
  104. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +7 -0
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -0
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
  107. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
  108. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
  109. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
  110. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
  111. data/src/core/ext/transport/chttp2/transport/http2_settings.h +23 -0
  112. data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
  113. data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
  114. data/src/core/ext/transport/chttp2/transport/http2_status.h +363 -1
  115. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
  116. data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
  117. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +223 -0
  118. data/src/core/ext/transport/chttp2/transport/internal.h +43 -9
  119. data/src/core/ext/transport/chttp2/transport/internal_channel_arg_names.h +24 -0
  120. data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
  121. data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
  122. data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
  123. data/src/core/ext/transport/chttp2/transport/parsing.cc +38 -25
  124. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
  125. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
  126. data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
  127. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +15 -18
  128. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +17 -0
  129. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
  130. data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
  131. data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
  132. data/src/core/ext/transport/chttp2/transport/writing.cc +95 -58
  133. data/src/core/ext/transport/inproc/inproc_transport.cc +7 -2
  134. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +6 -2
  135. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +4 -0
  136. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +12 -0
  137. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +12 -22
  138. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +12 -22
  139. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +28 -22
  140. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +12 -0
  141. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +24 -67
  142. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +4 -0
  143. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +4 -0
  144. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +29 -31
  145. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +2 -2
  146. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +12 -0
  147. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +4 -0
  148. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +8 -0
  149. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +4 -0
  150. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +4 -0
  151. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +0 -23
  152. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +8 -0
  153. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +8 -0
  154. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +12 -0
  155. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +20 -0
  156. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +12 -0
  157. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +8 -22
  158. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +0 -23
  159. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +64 -66
  160. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +4 -0
  161. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +12 -0
  162. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +4 -0
  163. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +4 -0
  164. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +4 -95
  165. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +8 -0
  166. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
  167. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +4 -0
  168. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +28 -0
  169. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +4 -0
  170. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +4 -0
  171. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +4 -0
  172. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +12 -0
  173. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +8 -0
  174. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +8 -36
  175. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +4 -0
  176. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +4 -0
  177. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +4 -0
  178. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +4 -0
  179. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +4 -0
  180. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +4 -0
  181. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +4 -0
  182. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +4 -0
  183. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +4 -0
  184. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +8 -0
  185. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +8 -0
  186. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +4 -0
  187. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +4 -0
  188. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +4 -0
  189. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +8 -44
  190. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +12 -40
  191. data/src/core/ext/upb-gen/google/api/http.upb.h +4 -0
  192. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +193 -20
  193. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +59 -21
  194. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +4 -0
  195. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +4 -22
  196. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
  197. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
  198. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
  199. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
  200. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
  201. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
  202. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
  203. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
  204. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
  205. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +0 -18
  206. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +113 -53
  207. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +20 -14
  208. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +154 -0
  209. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +40 -2
  210. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +4 -0
  211. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +8 -0
  212. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +0 -18
  213. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -36
  214. data/src/core/ext/upb-gen/validate/validate.upb.h +12 -0
  215. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +4 -0
  216. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +0 -18
  217. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +8 -0
  218. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +0 -54
  219. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +20 -22
  220. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +4 -0
  221. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +4 -0
  222. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +4 -0
  223. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +123 -62
  224. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -1
  225. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +200 -101
  226. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -1
  227. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +152 -77
  228. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -1
  229. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +524 -255
  230. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -1
  231. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +44 -23
  232. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -1
  233. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +66 -34
  234. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -1
  235. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +54 -28
  236. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -1
  237. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +46 -25
  238. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -1
  239. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +47 -25
  240. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -1
  241. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +256 -126
  242. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -1
  243. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -28
  244. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -1
  245. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +55 -28
  246. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -1
  247. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +34 -18
  248. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -1
  249. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +414 -206
  250. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -1
  251. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +831 -413
  252. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -1
  253. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +143 -73
  254. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -1
  255. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1132 -557
  256. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +5 -1
  257. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +63 -34
  258. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -1
  259. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +255 -127
  260. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -1
  261. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +363 -178
  262. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -1
  263. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +227 -114
  264. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -1
  265. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +57 -31
  266. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -1
  267. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +596 -295
  268. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -1
  269. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +271 -137
  270. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -1
  271. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +56 -30
  272. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -1
  273. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +45 -25
  274. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -1
  275. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +59 -31
  276. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -1
  277. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +438 -217
  278. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -1
  279. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +441 -221
  280. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -1
  281. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +55 -30
  282. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -1
  283. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +57 -31
  284. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -1
  285. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +619 -303
  286. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -1
  287. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +70 -36
  288. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -1
  289. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +62 -33
  290. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -1
  291. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +47 -25
  292. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +5 -1
  293. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +97 -49
  294. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +5 -1
  295. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +97 -51
  296. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -1
  297. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +51 -27
  298. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -1
  299. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +147 -76
  300. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -1
  301. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +230 -116
  302. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -1
  303. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +277 -138
  304. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +5 -1
  305. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +48 -26
  306. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -1
  307. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +388 -197
  308. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -1
  309. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +304 -153
  310. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -1
  311. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +173 -90
  312. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -1
  313. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +90 -47
  314. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -1
  315. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +98 -51
  316. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -1
  317. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +196 -99
  318. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -1
  319. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +237 -118
  320. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -1
  321. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +418 -210
  322. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -1
  323. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +194 -99
  324. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -1
  325. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +2003 -973
  326. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -1
  327. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +101 -53
  328. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -1
  329. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +352 -176
  330. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -1
  331. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +79 -42
  332. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +5 -1
  333. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +67 -37
  334. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -1
  335. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +63 -34
  336. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -1
  337. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +88 -47
  338. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -1
  339. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +80 -43
  340. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -1
  341. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +53 -29
  342. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -1
  343. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +86 -46
  344. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -1
  345. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +55 -32
  346. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -1
  347. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +91 -49
  348. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -1
  349. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +105 -55
  350. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -1
  351. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +775 -379
  352. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -1
  353. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +52 -28
  354. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -1
  355. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +134 -68
  356. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -1
  357. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +189 -96
  358. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -1
  359. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +116 -61
  360. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +5 -1
  361. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +112 -58
  362. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -1
  363. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +160 -82
  364. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -1
  365. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +75 -39
  366. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -1
  367. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1161 -570
  368. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -1
  369. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +52 -28
  370. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -1
  371. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +55 -29
  372. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +5 -1
  373. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -26
  374. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -1
  375. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +390 -194
  376. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -1
  377. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +126 -65
  378. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -1
  379. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +498 -246
  380. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -1
  381. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +74 -38
  382. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -1
  383. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +221 -110
  384. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -1
  385. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +68 -36
  386. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -1
  387. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +378 -187
  388. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -1
  389. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +100 -52
  390. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -1
  391. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +257 -129
  392. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -1
  393. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +44 -24
  394. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -1
  395. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +68 -35
  396. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -1
  397. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +38 -20
  398. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +5 -1
  399. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +59 -32
  400. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -1
  401. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +65 -34
  402. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -1
  403. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +72 -38
  404. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -1
  405. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +57 -31
  406. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -1
  407. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +52 -29
  408. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -1
  409. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +51 -28
  410. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -1
  411. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +89 -47
  412. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -1
  413. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +37 -20
  414. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -1
  415. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +89 -47
  416. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -1
  417. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +67 -35
  418. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -1
  419. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +112 -58
  420. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -1
  421. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +110 -56
  422. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -1
  423. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +123 -62
  424. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -1
  425. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +59 -31
  426. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -1
  427. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +30 -16
  428. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -1
  429. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +143 -72
  430. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -1
  431. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +61 -32
  432. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -1
  433. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +51 -27
  434. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -1
  435. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +85 -45
  436. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -1
  437. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +35 -19
  438. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -1
  439. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +44 -23
  440. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -1
  441. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +61 -33
  442. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -1
  443. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +35 -19
  444. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -1
  445. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +272 -133
  446. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -1
  447. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +315 -154
  448. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +5 -1
  449. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +64 -33
  450. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -1
  451. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +35 -19
  452. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -1
  453. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +26 -15
  454. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -1
  455. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +1106 -508
  456. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -1
  457. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +28 -16
  458. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -1
  459. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +23 -13
  460. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -1
  461. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +69 -35
  462. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -1
  463. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +29 -16
  464. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -1
  465. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +51 -26
  466. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -1
  467. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +32 -17
  468. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -1
  469. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
  470. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
  471. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
  472. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
  473. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +161 -79
  474. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -1
  475. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +84 -42
  476. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -1
  477. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +48 -26
  478. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -1
  479. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +26 -14
  480. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -1
  481. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +50 -26
  482. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -1
  483. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +36 -19
  484. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -1
  485. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +538 -261
  486. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -1
  487. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +86 -43
  488. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -1
  489. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +49 -26
  490. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -1
  491. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +27 -15
  492. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -1
  493. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +87 -44
  494. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -1
  495. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +37 -20
  496. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -1
  497. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +30 -17
  498. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -1
  499. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +41 -23
  500. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -1
  501. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +62 -33
  502. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -1
  503. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +36 -19
  504. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -1
  505. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +36 -20
  506. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -1
  507. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +42 -23
  508. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -1
  509. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +76 -39
  510. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -1
  511. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -24
  512. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -1
  513. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +41 -23
  514. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -1
  515. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +53 -29
  516. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -1
  517. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +29 -16
  518. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -1
  519. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +58 -32
  520. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -1
  521. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +207 -103
  522. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -1
  523. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +95 -49
  524. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -1
  525. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +38 -20
  526. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -1
  527. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +60 -31
  528. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -1
  529. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +67 -36
  530. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -1
  531. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +31 -17
  532. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -1
  533. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +31 -17
  534. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -1
  535. data/src/core/filter/auth/auth_filters.h +0 -25
  536. data/src/core/filter/auth/client_auth_filter.cc +0 -118
  537. data/src/core/filter/filter_args.h +9 -23
  538. data/src/core/handshaker/handshaker.cc +23 -14
  539. data/src/core/handshaker/handshaker.h +3 -0
  540. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
  541. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +7 -22
  542. data/src/core/handshaker/security/legacy_secure_endpoint.cc +597 -0
  543. data/src/core/handshaker/security/secure_endpoint.cc +812 -310
  544. data/src/core/handshaker/security/secure_endpoint.h +17 -0
  545. data/src/core/handshaker/security/security_handshaker.cc +7 -4
  546. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
  547. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -5
  548. data/src/core/lib/channel/channel_args.cc +15 -0
  549. data/src/core/lib/channel/channel_args.h +7 -0
  550. data/src/core/lib/channel/channel_stack.cc +32 -4
  551. data/src/core/lib/channel/channel_stack.h +15 -4
  552. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  553. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
  554. data/src/core/lib/channel/promise_based_filter.h +712 -304
  555. data/src/core/lib/debug/trace_flags.cc +2 -2
  556. data/src/core/lib/debug/trace_flags.h +1 -1
  557. data/src/core/lib/debug/trace_impl.h +0 -1
  558. data/src/core/lib/event_engine/ares_resolver.cc +165 -46
  559. data/src/core/lib/event_engine/ares_resolver.h +48 -2
  560. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +8 -2
  561. data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
  562. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +4 -4
  563. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +10 -6
  564. data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
  565. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
  566. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
  567. data/src/core/lib/event_engine/event_engine.cc +7 -0
  568. data/src/core/lib/event_engine/extensions/blocking_dns.h +46 -0
  569. data/src/core/lib/event_engine/extensions/channelz.h +66 -0
  570. data/src/core/lib/event_engine/extensions/tcp_trace.h +2 -2
  571. data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
  572. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
  573. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
  574. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
  575. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
  576. data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
  577. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
  578. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
  579. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
  580. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
  581. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
  582. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
  583. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +4 -7
  584. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +3 -0
  585. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +149 -97
  586. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +29 -33
  587. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +341 -102
  588. data/src/core/lib/event_engine/posix_engine/posix_engine.h +72 -29
  589. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
  590. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
  591. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
  592. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
  593. data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
  594. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
  595. data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
  596. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
  597. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
  598. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
  599. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
  600. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
  601. data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
  602. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
  603. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
  604. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
  605. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
  606. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
  607. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
  608. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
  609. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
  610. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
  611. data/src/core/lib/event_engine/query_extensions.h +10 -21
  612. data/src/core/lib/event_engine/shim.cc +9 -0
  613. data/src/core/lib/event_engine/shim.h +3 -0
  614. data/src/core/lib/event_engine/tcp_socket_utils.cc +10 -9
  615. data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
  616. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
  617. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
  618. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
  619. data/src/core/lib/event_engine/utils.cc +34 -0
  620. data/src/core/lib/event_engine/utils.h +3 -0
  621. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
  622. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
  623. data/src/core/lib/event_engine/windows/windows_endpoint.cc +2 -2
  624. data/src/core/lib/event_engine/windows/windows_endpoint.h +5 -2
  625. data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
  626. data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
  627. data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
  628. data/src/core/lib/experiments/experiments.cc +243 -144
  629. data/src/core/lib/experiments/experiments.h +98 -85
  630. data/src/core/lib/iomgr/combiner.cc +3 -2
  631. data/src/core/lib/iomgr/endpoint.cc +4 -3
  632. data/src/core/lib/iomgr/endpoint.h +7 -4
  633. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
  634. data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
  635. data/src/core/lib/iomgr/ev_poll_posix.cc +11 -2
  636. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +11 -10
  637. data/src/core/lib/iomgr/fork_posix.cc +0 -7
  638. data/src/core/lib/iomgr/iomgr.cc +0 -3
  639. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +3 -0
  640. data/src/core/lib/iomgr/resolve_address_posix.cc +37 -47
  641. data/src/core/lib/iomgr/resolve_address_posix.h +15 -0
  642. data/src/core/lib/iomgr/resolve_address_windows.cc +22 -45
  643. data/src/core/lib/iomgr/resolve_address_windows.h +15 -2
  644. data/src/core/lib/iomgr/tcp_client_posix.cc +14 -6
  645. data/src/core/lib/iomgr/tcp_posix.cc +26 -18
  646. data/src/core/lib/iomgr/tcp_server_windows.cc +14 -2
  647. data/src/core/lib/iomgr/tcp_windows.cc +3 -2
  648. data/src/core/lib/promise/activity.h +1 -0
  649. data/src/core/lib/promise/arena_promise.h +23 -7
  650. data/src/core/lib/promise/detail/promise_factory.h +10 -0
  651. data/src/core/lib/promise/detail/promise_like.h +132 -1
  652. data/src/core/lib/promise/detail/promise_variant.h +50 -0
  653. data/src/core/lib/promise/detail/seq_state.h +880 -0
  654. data/src/core/lib/promise/if.h +20 -0
  655. data/src/core/lib/promise/inter_activity_latch.h +147 -0
  656. data/src/core/lib/promise/inter_activity_mutex.h +547 -0
  657. data/src/core/lib/promise/loop.h +65 -3
  658. data/src/core/lib/promise/map.h +46 -5
  659. data/src/core/lib/promise/match_promise.h +103 -0
  660. data/src/core/lib/promise/mpsc.cc +425 -0
  661. data/src/core/lib/promise/mpsc.h +490 -0
  662. data/src/core/lib/promise/party.cc +50 -1
  663. data/src/core/lib/promise/party.h +66 -1
  664. data/src/core/lib/promise/promise.h +2 -0
  665. data/src/core/lib/promise/race.h +31 -0
  666. data/src/core/lib/promise/seq.h +5 -0
  667. data/src/core/lib/promise/sleep.cc +6 -3
  668. data/src/core/lib/promise/status_flag.h +7 -0
  669. data/src/core/lib/promise/try_seq.h +5 -0
  670. data/src/core/lib/promise/wait_set.cc +28 -0
  671. data/src/core/lib/promise/wait_set.h +86 -0
  672. data/src/core/lib/resource_quota/arena.h +19 -0
  673. data/src/core/lib/resource_quota/memory_quota.cc +9 -0
  674. data/src/core/lib/resource_quota/memory_quota.h +1 -3
  675. data/src/core/lib/slice/slice.h +5 -0
  676. data/src/core/lib/slice/slice_buffer.h +6 -0
  677. data/src/core/lib/surface/call.cc +4 -0
  678. data/src/core/lib/surface/channel_create.cc +139 -4
  679. data/src/core/lib/surface/channel_create.h +4 -0
  680. data/src/core/lib/surface/channel_init.cc +164 -47
  681. data/src/core/lib/surface/channel_init.h +64 -1
  682. data/src/core/lib/surface/filter_stack_call.cc +18 -9
  683. data/src/core/lib/surface/init.cc +8 -17
  684. data/src/core/lib/surface/legacy_channel.cc +3 -5
  685. data/src/core/lib/surface/legacy_channel.h +3 -1
  686. data/src/core/lib/surface/version.cc +2 -2
  687. data/src/core/lib/transport/promise_endpoint.cc +110 -0
  688. data/src/core/lib/transport/promise_endpoint.h +307 -0
  689. data/src/core/lib/transport/status_conversion.cc +7 -34
  690. data/src/core/lib/transport/transport.cc +2 -2
  691. data/src/core/lib/transport/transport.h +3 -0
  692. data/src/core/load_balancing/backend_metric_parser.cc +12 -18
  693. data/src/core/load_balancing/child_policy_handler.cc +2 -4
  694. data/src/core/load_balancing/delegating_helper.h +2 -3
  695. data/src/core/load_balancing/grpclb/grpclb.cc +2 -2
  696. data/src/core/load_balancing/health_check_client.cc +3 -9
  697. data/src/core/load_balancing/lb_policy.h +1 -3
  698. data/src/core/load_balancing/oob_backend_metric.cc +3 -9
  699. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +4 -3
  700. data/src/core/load_balancing/pick_first/pick_first.cc +6 -3
  701. data/src/core/load_balancing/rls/rls.cc +6 -5
  702. data/src/core/load_balancing/round_robin/round_robin.cc +2 -3
  703. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +4 -4
  704. data/src/core/load_balancing/weighted_target/weighted_target.cc +3 -9
  705. data/src/core/load_balancing/xds/cds.cc +10 -1
  706. data/src/core/load_balancing/xds/xds_override_host.cc +55 -34
  707. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  708. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
  709. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +2 -1
  710. data/src/core/resolver/xds/xds_config.cc +6 -3
  711. data/src/core/resolver/xds/xds_config.h +9 -4
  712. data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
  713. data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
  714. data/src/core/resolver/xds/xds_resolver.cc +33 -12
  715. data/src/core/server/add_port.cc +87 -0
  716. data/src/core/server/server.cc +128 -62
  717. data/src/core/server/server.h +23 -6
  718. data/src/core/server/xds_server_config_fetcher.cc +63 -25
  719. data/src/core/service_config/service_config.h +1 -1
  720. data/src/core/service_config/service_config_impl.h +1 -1
  721. data/src/core/telemetry/call_tracer.cc +2 -2
  722. data/src/core/telemetry/call_tracer.h +1 -1
  723. data/src/core/telemetry/context_list_entry.cc +38 -0
  724. data/src/core/{ext/transport/chttp2/transport → telemetry}/context_list_entry.h +45 -15
  725. data/src/core/telemetry/default_tcp_tracer.cc +26 -0
  726. data/src/core/telemetry/default_tcp_tracer.h +44 -0
  727. data/src/core/telemetry/stats.h +0 -5
  728. data/src/core/telemetry/stats_data.cc +547 -479
  729. data/src/core/telemetry/stats_data.h +467 -276
  730. data/src/core/telemetry/tcp_tracer.cc +38 -0
  731. data/src/core/telemetry/tcp_tracer.h +14 -16
  732. data/src/core/transport/auth_context.cc +0 -1
  733. data/src/core/transport/auth_context.h +0 -1
  734. data/src/core/transport/endpoint_transport.h +90 -0
  735. data/src/core/transport/endpoint_transport_client_channel_factory.cc +61 -0
  736. data/src/core/transport/endpoint_transport_client_channel_factory.h +57 -0
  737. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +33 -1
  738. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -1
  739. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +76 -22
  740. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +8 -2
  741. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
  742. data/src/core/tsi/fake_transport_security.cc +17 -0
  743. data/src/core/tsi/ssl_transport_security.cc +191 -71
  744. data/src/core/tsi/ssl_transport_security.h +6 -1
  745. data/src/core/tsi/transport_security.h +3 -0
  746. data/src/core/tsi/transport_security_grpc.cc +8 -0
  747. data/src/core/tsi/transport_security_grpc.h +22 -3
  748. data/src/core/tsi/transport_security_interface.h +30 -25
  749. data/src/core/util/backoff.cc +5 -16
  750. data/src/core/util/backoff.h +1 -1
  751. data/src/core/util/down_cast.h +1 -1
  752. data/src/core/util/dual_ref_counted.h +48 -0
  753. data/src/core/util/function_signature.h +80 -0
  754. data/src/core/util/gcp_metadata_query.cc +3 -2
  755. data/src/core/util/http_client/httpcli.cc +12 -5
  756. data/src/core/util/http_client/httpcli.h +4 -1
  757. data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
  758. data/src/core/util/json/json_object_loader.h +3 -3
  759. data/src/core/util/latent_see.cc +28 -2
  760. data/src/core/util/latent_see.h +19 -28
  761. data/src/core/util/linux/env.cc +3 -1
  762. data/src/core/util/log.cc +4 -0
  763. data/src/core/util/memory_usage.h +268 -0
  764. data/src/core/util/per_cpu.cc +2 -0
  765. data/src/core/util/per_cpu.h +7 -0
  766. data/src/core/util/ref_counted_ptr.h +26 -0
  767. data/src/core/util/shared_bit_gen.cc +21 -0
  768. data/src/core/util/shared_bit_gen.h +64 -0
  769. data/src/core/util/single_set_ptr.h +35 -4
  770. data/src/core/util/upb_utils.h +42 -0
  771. data/src/core/util/uri.cc +76 -17
  772. data/src/core/util/uri.h +13 -8
  773. data/src/core/util/useful.h +53 -2
  774. data/src/core/util/wait_for_single_owner.cc +31 -0
  775. data/src/core/util/wait_for_single_owner.h +24 -0
  776. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
  777. data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
  778. data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
  779. data/src/core/xds/grpc/xds_common_types_parser.cc +138 -58
  780. data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
  781. data/src/core/xds/grpc/xds_http_filter.h +7 -0
  782. data/src/core/xds/grpc/xds_http_filter_registry.cc +1 -3
  783. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
  784. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
  785. data/src/core/xds/grpc/xds_http_rbac_filter.cc +10 -17
  786. data/src/core/xds/grpc/xds_metadata_parser.cc +40 -64
  787. data/src/core/xds/grpc/xds_metadata_parser.h +0 -2
  788. data/src/core/xds/grpc/xds_route_config_parser.cc +70 -115
  789. data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
  790. data/src/core/xds/grpc/xds_server_grpc.h +10 -2
  791. data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
  792. data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
  793. data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
  794. data/src/core/xds/xds_client/xds_client.cc +27 -6
  795. data/src/ruby/ext/grpc/extconf.rb +3 -1
  796. data/src/ruby/ext/grpc/rb_call.c +1 -8
  797. data/src/ruby/ext/grpc/rb_channel.c +72 -568
  798. data/src/ruby/ext/grpc/rb_channel.h +0 -3
  799. data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
  800. data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
  801. data/src/ruby/ext/grpc/rb_grpc.c +9 -5
  802. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  803. data/src/ruby/ext/grpc/rb_loader.c +0 -4
  804. data/src/ruby/ext/grpc/rb_server.c +31 -50
  805. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
  806. data/src/ruby/lib/grpc/version.rb +1 -1
  807. data/src/ruby/spec/core_spec.rb +22 -0
  808. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  809. data/src/ruby/spec/generic/client_stub_spec.rb +2 -6
  810. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  811. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +2 -2
  812. data/third_party/abseil-cpp/absl/algorithm/container.h +81 -67
  813. data/third_party/abseil-cpp/absl/base/attributes.h +142 -23
  814. data/third_party/abseil-cpp/absl/base/call_once.h +18 -16
  815. data/third_party/abseil-cpp/absl/base/config.h +23 -132
  816. data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  817. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  818. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  819. data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
  820. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  821. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
  822. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +106 -0
  823. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +1 -1
  824. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
  825. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
  826. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -0
  827. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +5 -1
  828. data/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  829. data/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
  830. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  831. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -10
  832. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +17 -0
  833. data/third_party/abseil-cpp/absl/base/macros.h +35 -4
  834. data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
  835. data/third_party/abseil-cpp/absl/base/nullability.h +124 -56
  836. data/third_party/abseil-cpp/absl/base/optimization.h +8 -12
  837. data/third_party/abseil-cpp/absl/base/options.h +7 -81
  838. data/third_party/abseil-cpp/absl/base/policy_checks.h +9 -7
  839. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  840. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  841. data/third_party/abseil-cpp/absl/container/btree_map.h +891 -0
  842. data/third_party/abseil-cpp/absl/container/btree_set.h +826 -0
  843. data/third_party/abseil-cpp/absl/container/fixed_array.h +9 -15
  844. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +22 -3
  845. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +23 -4
  846. data/third_party/abseil-cpp/absl/container/inlined_vector.h +10 -6
  847. data/third_party/abseil-cpp/absl/container/internal/btree.h +3149 -0
  848. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +867 -0
  849. data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
  850. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +10 -2
  851. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -10
  852. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
  853. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
  854. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  855. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
  856. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
  857. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +6 -9
  858. data/third_party/abseil-cpp/absl/container/internal/layout.h +27 -43
  859. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  860. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1462 -263
  861. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1170 -1547
  862. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
  863. data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
  864. data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
  865. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +56 -0
  866. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  867. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
  868. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +21 -7
  869. data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  870. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  871. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  872. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +12 -37
  873. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  874. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +1 -1
  875. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -21
  876. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  877. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +7 -0
  878. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  879. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  880. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  881. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -8
  882. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  883. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  884. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
  885. data/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  886. data/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
  887. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
  888. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  889. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +3 -2
  890. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +67 -18
  891. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  892. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  893. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +1 -0
  894. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +9 -2
  895. data/third_party/abseil-cpp/absl/flags/flag.h +18 -15
  896. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  897. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +14 -5
  898. data/third_party/abseil-cpp/absl/flags/internal/flag.h +23 -11
  899. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +4 -0
  900. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +3 -0
  901. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +13 -12
  902. data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
  903. data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
  904. data/third_party/abseil-cpp/absl/flags/usage_config.cc +9 -4
  905. data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
  906. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
  907. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
  908. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  909. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  910. data/third_party/abseil-cpp/absl/hash/hash.h +44 -2
  911. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +14 -18
  912. data/third_party/abseil-cpp/absl/hash/internal/hash.h +257 -127
  913. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +27 -72
  914. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
  915. data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  916. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +2 -0
  917. data/third_party/abseil-cpp/absl/log/check.h +2 -1
  918. data/third_party/abseil-cpp/absl/log/globals.h +4 -5
  919. data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  920. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +43 -38
  921. data/third_party/abseil-cpp/absl/log/internal/check_op.h +124 -99
  922. data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  923. data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
  924. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +158 -64
  925. data/third_party/abseil-cpp/absl/log/internal/log_message.h +140 -83
  926. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  927. data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -5
  928. data/third_party/abseil-cpp/absl/log/internal/proto.h +28 -18
  929. data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
  930. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  931. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
  932. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +8 -1
  933. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  934. data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
  935. data/third_party/abseil-cpp/absl/log/log.h +48 -35
  936. data/third_party/abseil-cpp/absl/log/log_sink_registry.h +5 -2
  937. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +2 -0
  938. data/third_party/abseil-cpp/absl/meta/type_traits.h +62 -181
  939. data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
  940. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
  941. data/third_party/abseil-cpp/absl/numeric/int128.h +15 -3
  942. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +6 -4
  943. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +6 -3
  944. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
  945. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  946. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +3 -1
  947. data/third_party/abseil-cpp/absl/random/beta_distribution.h +3 -1
  948. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +12 -12
  949. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +10 -0
  950. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +4 -2
  951. data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
  952. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -0
  953. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +3 -2
  954. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -7
  955. data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
  956. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  957. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +5 -2
  958. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  959. data/third_party/abseil-cpp/absl/random/internal/platform.h +12 -12
  960. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +57 -6
  961. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -1
  962. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  963. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  964. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +2 -2
  965. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +0 -1
  966. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +1 -4
  967. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +4 -3
  968. data/third_party/abseil-cpp/absl/random/random.h +88 -53
  969. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +2 -3
  970. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  971. data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -2
  972. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -1
  973. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +2 -0
  974. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +5 -4
  975. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +10 -7
  976. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  977. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
  978. data/third_party/abseil-cpp/absl/status/status.cc +4 -8
  979. data/third_party/abseil-cpp/absl/status/status.h +8 -8
  980. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  981. data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
  982. data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
  983. data/third_party/abseil-cpp/absl/strings/ascii.cc +44 -29
  984. data/third_party/abseil-cpp/absl/strings/ascii.h +62 -22
  985. data/third_party/abseil-cpp/absl/strings/charconv.cc +25 -29
  986. data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
  987. data/third_party/abseil-cpp/absl/strings/charset.h +3 -4
  988. data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
  989. data/third_party/abseil-cpp/absl/strings/cord.h +99 -102
  990. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  991. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  992. data/third_party/abseil-cpp/absl/strings/escaping.cc +186 -197
  993. data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
  994. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  995. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +1 -1
  996. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +53 -22
  997. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  998. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
  999. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  1000. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  1001. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  1002. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +3 -2
  1003. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  1004. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  1005. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  1006. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -0
  1007. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  1008. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  1009. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  1010. data/third_party/abseil-cpp/absl/strings/match.h +21 -11
  1011. data/third_party/abseil-cpp/absl/strings/numbers.cc +55 -33
  1012. data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
  1013. data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
  1014. data/third_party/abseil-cpp/absl/strings/str_cat.h +41 -30
  1015. data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
  1016. data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
  1017. data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
  1018. data/third_party/abseil-cpp/absl/strings/str_split.h +18 -1
  1019. data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
  1020. data/third_party/abseil-cpp/absl/strings/string_view.h +46 -50
  1021. data/third_party/abseil-cpp/absl/strings/strip.h +11 -8
  1022. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
  1023. data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
  1024. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +16 -10
  1025. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +6 -0
  1026. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -1
  1027. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  1028. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  1029. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  1030. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  1031. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  1032. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  1033. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  1034. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +39 -13
  1035. data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
  1036. data/third_party/abseil-cpp/absl/synchronization/notification.cc +10 -2
  1037. data/third_party/abseil-cpp/absl/synchronization/notification.h +12 -2
  1038. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
  1039. data/third_party/abseil-cpp/absl/time/duration.cc +18 -58
  1040. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  1041. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1042. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  1043. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +3 -3
  1044. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +2 -2
  1045. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +2 -2
  1046. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +3 -3
  1047. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +2 -2
  1048. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  1049. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +1 -1
  1050. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +92 -112
  1051. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +1 -1
  1052. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -4
  1053. data/third_party/abseil-cpp/absl/time/time.h +89 -23
  1054. data/third_party/abseil-cpp/absl/types/internal/span.h +3 -2
  1055. data/third_party/abseil-cpp/absl/types/optional.h +7 -745
  1056. data/third_party/abseil-cpp/absl/types/span.h +98 -54
  1057. data/third_party/abseil-cpp/absl/types/variant.h +5 -784
  1058. data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
  1059. data/third_party/boringssl-with-bazel/src/crypto/aes/aes.cc +41 -0
  1060. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +16 -0
  1061. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +15 -0
  1062. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +19 -3
  1063. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +79 -48
  1064. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +11 -19
  1065. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +3 -7
  1066. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +0 -35
  1067. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +0 -2
  1068. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +3 -5
  1069. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +0 -3
  1070. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +0 -2
  1071. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +31 -47
  1072. data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +100 -0
  1073. data/third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc +166 -0
  1074. data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +93 -0
  1075. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +14 -8
  1076. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +1 -1
  1077. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +3 -3
  1078. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +4 -4
  1079. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +13 -15
  1080. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc +289 -0
  1081. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +179 -102
  1082. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +3 -3
  1083. data/third_party/boringssl-with-bazel/src/crypto/cms/cms.cc +172 -0
  1084. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +28 -5
  1085. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +11 -9
  1086. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +0 -6
  1087. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +1 -1
  1088. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +3 -3
  1089. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +3 -3
  1090. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +13 -14
  1091. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +27 -61
  1092. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +16 -8
  1093. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +112 -122
  1094. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +23 -35
  1095. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  1096. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +47 -63
  1097. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +60 -68
  1098. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +3 -3
  1099. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +11 -17
  1100. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +0 -2
  1101. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +10 -11
  1102. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +10 -11
  1103. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +3 -3
  1104. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +6 -6
  1105. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +6 -6
  1106. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +6 -6
  1107. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +6 -6
  1108. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +6 -6
  1109. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +23 -42
  1110. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +29 -18
  1111. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +10 -10
  1112. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +16 -45
  1113. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -4
  1114. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +15 -6
  1115. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +3 -3
  1116. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +101 -5
  1117. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +96 -187
  1118. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +24 -512
  1119. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +58 -80
  1120. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +29 -45
  1121. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +27 -25
  1122. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +7 -16
  1123. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +27 -48
  1124. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +34 -34
  1125. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +102 -154
  1126. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +3 -3
  1127. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +3 -8
  1128. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +1 -78
  1129. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +10 -17
  1130. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +3 -3
  1131. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +15 -8
  1132. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +40 -53
  1133. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +57 -76
  1134. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +4 -10
  1135. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +3 -3
  1136. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +3 -3
  1137. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +37 -52
  1138. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +13 -20
  1139. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +3 -3
  1140. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +28 -39
  1141. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +3 -3
  1142. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +6 -11
  1143. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +3 -3
  1144. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  1145. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +335 -28
  1146. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  1147. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +265 -33
  1148. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +3 -3
  1149. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +1 -1
  1150. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +3 -3
  1151. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +19 -26
  1152. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +7 -7
  1153. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +121 -138
  1154. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +96 -83
  1155. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +3 -3
  1156. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +8 -20
  1157. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  1158. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +235 -60
  1159. data/third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc +30 -0
  1160. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +3 -3
  1161. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -30
  1162. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +3 -3
  1163. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +3 -3
  1164. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +0 -2
  1165. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +2 -8
  1166. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +3 -3
  1167. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +8 -13
  1168. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +22 -8
  1169. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +19 -17
  1170. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +134 -136
  1171. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -8
  1172. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +25 -21
  1173. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +36 -52
  1174. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +97 -79
  1175. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +3 -3
  1176. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +3 -3
  1177. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +1 -1
  1178. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +2 -2
  1179. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +1 -1
  1180. data/third_party/boringssl-with-bazel/src/crypto/rand/{sysrand_internal.h → internal.h} +22 -4
  1181. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +1 -1
  1182. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +1 -1
  1183. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +1 -1
  1184. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +1 -5
  1185. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +3 -3
  1186. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +14 -22
  1187. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +3 -3
  1188. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +0 -2
  1189. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +3 -3
  1190. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +3 -5
  1191. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +8 -12
  1192. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +15 -3
  1193. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +16 -24
  1194. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +18 -21
  1195. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +10 -3
  1196. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +9 -0
  1197. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +10 -1
  1198. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +64 -85
  1199. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +16 -32
  1200. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +576 -567
  1201. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +16 -8
  1202. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +1 -1
  1203. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -54
  1204. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +1 -1
  1205. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +8 -4
  1206. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +1 -1
  1207. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +1 -1
  1208. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +1 -1
  1209. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
  1210. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +1 -1
  1211. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +1 -1
  1212. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +1 -1
  1213. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +7 -1
  1214. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +1 -1
  1215. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  1216. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +1 -1
  1217. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
  1218. data/third_party/boringssl-with-bazel/src/include/openssl/cms.h +146 -0
  1219. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +1 -1
  1220. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +23 -3
  1221. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
  1222. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
  1223. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +1 -1
  1224. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +1 -1
  1225. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -7
  1226. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +1 -1
  1227. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
  1228. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +1 -1
  1229. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +1 -1
  1230. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +1 -1
  1231. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -1
  1232. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
  1233. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -1
  1234. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
  1235. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  1236. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
  1237. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
  1238. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +1 -1
  1239. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +4 -4
  1240. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
  1241. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
  1242. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +1 -1
  1243. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +1 -1
  1244. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +1 -1
  1245. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +1 -1
  1246. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +1 -1
  1247. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
  1248. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +1 -1
  1249. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +1 -1
  1250. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
  1251. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +10 -4
  1252. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
  1253. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +19 -6
  1254. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
  1255. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
  1256. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
  1257. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  1258. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +1 -1
  1259. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +1 -1
  1260. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +2 -2
  1261. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +1 -1
  1262. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +1 -1
  1263. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
  1264. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +1 -1
  1265. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +1 -1
  1266. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +291 -40
  1267. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +1 -1
  1268. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +0 -5
  1269. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -1
  1270. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +9 -1
  1271. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
  1272. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +1 -1
  1273. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +7 -4
  1274. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +2 -0
  1275. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +32 -26
  1276. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +49 -49
  1277. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +253 -50
  1278. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +12 -12
  1279. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +7 -5
  1280. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -1
  1281. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +24 -32
  1282. data/third_party/boringssl-with-bazel/src/ssl/internal.h +93 -4
  1283. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +6 -12
  1284. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +18 -4
  1285. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +83 -7
  1286. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +1 -1
  1287. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +173 -19
  1288. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +5 -18
  1289. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +28 -15
  1290. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +1 -1
  1291. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +31 -7
  1292. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +13 -1
  1293. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -11
  1294. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +13 -11
  1295. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +2 -5
  1296. data/third_party/upb/upb/hash/common.c +310 -189
  1297. data/third_party/upb/upb/hash/common.h +44 -43
  1298. data/third_party/upb/upb/hash/int_table.h +29 -5
  1299. data/third_party/upb/upb/hash/str_table.h +6 -0
  1300. data/third_party/upb/upb/mem/arena.c +180 -57
  1301. data/third_party/upb/upb/mem/arena.h +10 -0
  1302. data/third_party/upb/upb/mem/internal/arena.h +62 -24
  1303. data/third_party/upb/upb/message/accessors.c +1 -5
  1304. data/third_party/upb/upb/message/array.c +7 -6
  1305. data/third_party/upb/upb/message/array.h +4 -4
  1306. data/third_party/upb/upb/message/internal/accessors.h +3 -3
  1307. data/third_party/upb/upb/message/internal/extension.c +0 -12
  1308. data/third_party/upb/upb/message/internal/extension.h +0 -4
  1309. data/third_party/upb/upb/message/internal/iterator.h +3 -3
  1310. data/third_party/upb/upb/message/internal/map.h +75 -20
  1311. data/third_party/upb/upb/message/internal/map_sorter.h +10 -2
  1312. data/third_party/upb/upb/message/internal/message.h +53 -5
  1313. data/third_party/upb/upb/message/map.c +68 -20
  1314. data/third_party/upb/upb/message/map.h +8 -1
  1315. data/third_party/upb/upb/message/map_gencode_util.h +3 -45
  1316. data/third_party/upb/upb/message/map_sorter.c +32 -8
  1317. data/third_party/upb/upb/message/merge.h +3 -3
  1318. data/third_party/upb/upb/message/message.c +120 -14
  1319. data/third_party/upb/upb/message/message.h +17 -8
  1320. data/third_party/upb/upb/mini_descriptor/build_enum.c +15 -5
  1321. data/third_party/upb/upb/mini_descriptor/decode.c +18 -2
  1322. data/third_party/upb/upb/mini_descriptor/link.c +4 -0
  1323. data/third_party/upb/upb/mini_table/extension.h +8 -1
  1324. data/third_party/upb/upb/mini_table/extension_registry.c +1 -1
  1325. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  1326. data/third_party/upb/upb/mini_table/internal/extension.h +24 -1
  1327. data/third_party/upb/upb/mini_table/internal/field.h +4 -4
  1328. data/third_party/upb/upb/mini_table/internal/message.h +1 -1
  1329. data/third_party/upb/upb/port/def.inc +32 -16
  1330. data/third_party/upb/upb/port/undef.inc +1 -0
  1331. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  1332. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +3 -3
  1333. data/third_party/upb/upb/reflection/enum_def.c +4 -4
  1334. data/third_party/upb/upb/reflection/enum_reserved_range.c +1 -1
  1335. data/third_party/upb/upb/reflection/enum_value_def.c +9 -8
  1336. data/third_party/upb/upb/reflection/extension_range.c +1 -2
  1337. data/third_party/upb/upb/reflection/field_def.c +3 -5
  1338. data/third_party/upb/upb/reflection/field_def.h +1 -1
  1339. data/third_party/upb/upb/reflection/file_def.c +4 -5
  1340. data/third_party/upb/upb/reflection/internal/def_builder.h +35 -10
  1341. data/third_party/upb/upb/reflection/internal/enum_value_def.h +1 -1
  1342. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  1343. data/third_party/upb/upb/reflection/message_def.c +4 -7
  1344. data/third_party/upb/upb/reflection/message_reserved_range.c +1 -1
  1345. data/third_party/upb/upb/reflection/method_def.c +1 -1
  1346. data/third_party/upb/upb/reflection/oneof_def.c +3 -3
  1347. data/third_party/upb/upb/reflection/service_def.c +2 -5
  1348. data/third_party/upb/upb/text/encode.c +16 -0
  1349. data/third_party/upb/upb/text/internal/encode.h +2 -1
  1350. data/third_party/upb/upb/wire/decode.c +104 -72
  1351. data/third_party/upb/upb/wire/encode.c +37 -13
  1352. data/third_party/upb/upb/wire/internal/decode_fast.c +2 -2
  1353. data/third_party/upb/upb/wire/internal/decode_fast.h +4 -0
  1354. metadata +113 -25
  1355. data/src/core/lib/event_engine/forkable.cc +0 -105
  1356. data/src/core/lib/event_engine/forkable.h +0 -67
  1357. data/src/core/lib/iomgr/executor.cc +0 -441
  1358. data/src/core/lib/iomgr/executor.h +0 -119
  1359. data/src/core/lib/iomgr/python_util.h +0 -46
  1360. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  1361. data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
  1362. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +0 -108
  1363. data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
  1364. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  1365. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  1366. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  1367. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  1368. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  1369. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
  1370. data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
  1371. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +0 -89
@@ -25,200 +25,249 @@
25
25
 
26
26
  #include "absl/strings/string_view.h"
27
27
  #include "src/core/telemetry/histogram_view.h"
28
+ #include "src/core/util/no_destruct.h"
28
29
  #include "src/core/util/per_cpu.h"
29
30
 
30
31
  namespace grpc_core {
31
- class HistogramCollector_100000_20;
32
- class Histogram_100000_20 {
32
+ class GlobalStatsCollector;
33
+ class Http2GlobalStatsCollector;
34
+ class Http2StatsCollector;
35
+ class HistogramCollector_16777216_20_64;
36
+ class Histogram_16777216_20_64 {
33
37
  public:
34
38
  static int BucketFor(int value);
35
39
  const uint64_t* buckets() const { return buckets_; }
36
40
  size_t bucket_count() const { return 20; }
37
- friend Histogram_100000_20 operator-(const Histogram_100000_20& left,
38
- const Histogram_100000_20& right);
41
+ void Increment(int value) {
42
+ ++buckets_[Histogram_16777216_20_64::BucketFor(value)];
43
+ }
44
+ friend Histogram_16777216_20_64 operator-(
45
+ const Histogram_16777216_20_64& left,
46
+ const Histogram_16777216_20_64& right);
39
47
 
40
48
  private:
41
- friend class HistogramCollector_100000_20;
49
+ friend class HistogramCollector_16777216_20_64;
42
50
  uint64_t buckets_[20]{};
43
51
  };
44
- class HistogramCollector_100000_20 {
52
+ class HistogramCollector_16777216_20_64 {
45
53
  public:
46
54
  void Increment(int value) {
47
- buckets_[Histogram_100000_20::BucketFor(value)].fetch_add(
55
+ buckets_[Histogram_16777216_20_64::BucketFor(value)].fetch_add(
48
56
  1, std::memory_order_relaxed);
49
57
  }
50
- void Collect(Histogram_100000_20* result) const;
58
+ void Collect(Histogram_16777216_20_64* result) const;
51
59
 
52
60
  private:
53
61
  std::atomic<uint64_t> buckets_[20]{};
54
62
  };
55
- class HistogramCollector_65536_26;
56
- class Histogram_65536_26 {
63
+ class HistogramCollector_100000_20_64;
64
+ class Histogram_100000_20_64 {
57
65
  public:
58
66
  static int BucketFor(int value);
59
67
  const uint64_t* buckets() const { return buckets_; }
60
- size_t bucket_count() const { return 26; }
61
- friend Histogram_65536_26 operator-(const Histogram_65536_26& left,
62
- const Histogram_65536_26& right);
68
+ size_t bucket_count() const { return 20; }
69
+ void Increment(int value) {
70
+ ++buckets_[Histogram_100000_20_64::BucketFor(value)];
71
+ }
72
+ friend Histogram_100000_20_64 operator-(const Histogram_100000_20_64& left,
73
+ const Histogram_100000_20_64& right);
63
74
 
64
75
  private:
65
- friend class HistogramCollector_65536_26;
66
- uint64_t buckets_[26]{};
76
+ friend class HistogramCollector_100000_20_64;
77
+ uint64_t buckets_[20]{};
67
78
  };
68
- class HistogramCollector_65536_26 {
79
+ class HistogramCollector_100000_20_64 {
69
80
  public:
70
81
  void Increment(int value) {
71
- buckets_[Histogram_65536_26::BucketFor(value)].fetch_add(
82
+ buckets_[Histogram_100000_20_64::BucketFor(value)].fetch_add(
72
83
  1, std::memory_order_relaxed);
73
84
  }
74
- void Collect(Histogram_65536_26* result) const;
85
+ void Collect(Histogram_100000_20_64* result) const;
75
86
 
76
87
  private:
77
- std::atomic<uint64_t> buckets_[26]{};
88
+ std::atomic<uint64_t> buckets_[20]{};
78
89
  };
79
- class HistogramCollector_100_20;
80
- class Histogram_100_20 {
90
+ class HistogramCollector_10000_20_64;
91
+ class Histogram_10000_20_64 {
81
92
  public:
82
93
  static int BucketFor(int value);
83
94
  const uint64_t* buckets() const { return buckets_; }
84
95
  size_t bucket_count() const { return 20; }
85
- friend Histogram_100_20 operator-(const Histogram_100_20& left,
86
- const Histogram_100_20& right);
96
+ void Increment(int value) {
97
+ ++buckets_[Histogram_10000_20_64::BucketFor(value)];
98
+ }
99
+ friend Histogram_10000_20_64 operator-(const Histogram_10000_20_64& left,
100
+ const Histogram_10000_20_64& right);
87
101
 
88
102
  private:
89
- friend class HistogramCollector_100_20;
103
+ friend class HistogramCollector_10000_20_64;
90
104
  uint64_t buckets_[20]{};
91
105
  };
92
- class HistogramCollector_100_20 {
106
+ class HistogramCollector_10000_20_64 {
93
107
  public:
94
108
  void Increment(int value) {
95
- buckets_[Histogram_100_20::BucketFor(value)].fetch_add(
109
+ buckets_[Histogram_10000_20_64::BucketFor(value)].fetch_add(
96
110
  1, std::memory_order_relaxed);
97
111
  }
98
- void Collect(Histogram_100_20* result) const;
112
+ void Collect(Histogram_10000_20_64* result) const;
99
113
 
100
114
  private:
101
115
  std::atomic<uint64_t> buckets_[20]{};
102
116
  };
103
- class HistogramCollector_16777216_20;
104
- class Histogram_16777216_20 {
117
+ class HistogramCollector_65536_26_64;
118
+ class Histogram_65536_26_64 {
105
119
  public:
106
120
  static int BucketFor(int value);
107
121
  const uint64_t* buckets() const { return buckets_; }
108
- size_t bucket_count() const { return 20; }
109
- friend Histogram_16777216_20 operator-(const Histogram_16777216_20& left,
110
- const Histogram_16777216_20& right);
122
+ size_t bucket_count() const { return 26; }
123
+ void Increment(int value) {
124
+ ++buckets_[Histogram_65536_26_64::BucketFor(value)];
125
+ }
126
+ friend Histogram_65536_26_64 operator-(const Histogram_65536_26_64& left,
127
+ const Histogram_65536_26_64& right);
111
128
 
112
129
  private:
113
- friend class HistogramCollector_16777216_20;
114
- uint64_t buckets_[20]{};
130
+ friend class HistogramCollector_65536_26_64;
131
+ uint64_t buckets_[26]{};
115
132
  };
116
- class HistogramCollector_16777216_20 {
133
+ class HistogramCollector_65536_26_64 {
117
134
  public:
118
135
  void Increment(int value) {
119
- buckets_[Histogram_16777216_20::BucketFor(value)].fetch_add(
136
+ buckets_[Histogram_65536_26_64::BucketFor(value)].fetch_add(
120
137
  1, std::memory_order_relaxed);
121
138
  }
122
- void Collect(Histogram_16777216_20* result) const;
139
+ void Collect(Histogram_65536_26_64* result) const;
123
140
 
124
141
  private:
125
- std::atomic<uint64_t> buckets_[20]{};
142
+ std::atomic<uint64_t> buckets_[26]{};
126
143
  };
127
- class HistogramCollector_80_10;
128
- class Histogram_80_10 {
144
+ class Histogram_16777216_8_8 {
145
+ public:
146
+ static int BucketFor(int value);
147
+ const uint8_t* buckets() const { return buckets_; }
148
+ size_t bucket_count() const { return 8; }
149
+ void Increment(int value) {
150
+ auto& bucket = buckets_[Histogram_16777216_8_8::BucketFor(value)];
151
+ if (GPR_UNLIKELY(bucket == std::numeric_limits<uint8_t>::max())) {
152
+ for (size_t i = 0; i < 8; ++i) {
153
+ buckets_[i] /= 2;
154
+ }
155
+ }
156
+ ++bucket;
157
+ }
158
+
159
+ private:
160
+ uint8_t buckets_[8]{};
161
+ };
162
+ class HistogramCollector_100_20_64;
163
+ class Histogram_100_20_64 {
129
164
  public:
130
165
  static int BucketFor(int value);
131
166
  const uint64_t* buckets() const { return buckets_; }
132
- size_t bucket_count() const { return 10; }
133
- friend Histogram_80_10 operator-(const Histogram_80_10& left,
134
- const Histogram_80_10& right);
167
+ size_t bucket_count() const { return 20; }
168
+ void Increment(int value) {
169
+ ++buckets_[Histogram_100_20_64::BucketFor(value)];
170
+ }
171
+ friend Histogram_100_20_64 operator-(const Histogram_100_20_64& left,
172
+ const Histogram_100_20_64& right);
135
173
 
136
174
  private:
137
- friend class HistogramCollector_80_10;
138
- uint64_t buckets_[10]{};
175
+ friend class HistogramCollector_100_20_64;
176
+ uint64_t buckets_[20]{};
139
177
  };
140
- class HistogramCollector_80_10 {
178
+ class HistogramCollector_100_20_64 {
141
179
  public:
142
180
  void Increment(int value) {
143
- buckets_[Histogram_80_10::BucketFor(value)].fetch_add(
181
+ buckets_[Histogram_100_20_64::BucketFor(value)].fetch_add(
144
182
  1, std::memory_order_relaxed);
145
183
  }
146
- void Collect(Histogram_80_10* result) const;
184
+ void Collect(Histogram_100_20_64* result) const;
147
185
 
148
186
  private:
149
- std::atomic<uint64_t> buckets_[10]{};
187
+ std::atomic<uint64_t> buckets_[20]{};
150
188
  };
151
- class HistogramCollector_10000_20;
152
- class Histogram_10000_20 {
189
+ class HistogramCollector_16777216_50_64;
190
+ class Histogram_16777216_50_64 {
153
191
  public:
154
192
  static int BucketFor(int value);
155
193
  const uint64_t* buckets() const { return buckets_; }
156
- size_t bucket_count() const { return 20; }
157
- friend Histogram_10000_20 operator-(const Histogram_10000_20& left,
158
- const Histogram_10000_20& right);
194
+ size_t bucket_count() const { return 50; }
195
+ void Increment(int value) {
196
+ ++buckets_[Histogram_16777216_50_64::BucketFor(value)];
197
+ }
198
+ friend Histogram_16777216_50_64 operator-(
199
+ const Histogram_16777216_50_64& left,
200
+ const Histogram_16777216_50_64& right);
159
201
 
160
202
  private:
161
- friend class HistogramCollector_10000_20;
162
- uint64_t buckets_[20]{};
203
+ friend class HistogramCollector_16777216_50_64;
204
+ uint64_t buckets_[50]{};
163
205
  };
164
- class HistogramCollector_10000_20 {
206
+ class HistogramCollector_16777216_50_64 {
165
207
  public:
166
208
  void Increment(int value) {
167
- buckets_[Histogram_10000_20::BucketFor(value)].fetch_add(
209
+ buckets_[Histogram_16777216_50_64::BucketFor(value)].fetch_add(
168
210
  1, std::memory_order_relaxed);
169
211
  }
170
- void Collect(Histogram_10000_20* result) const;
212
+ void Collect(Histogram_16777216_50_64* result) const;
171
213
 
172
214
  private:
173
- std::atomic<uint64_t> buckets_[20]{};
215
+ std::atomic<uint64_t> buckets_[50]{};
174
216
  };
175
- class HistogramCollector_1800000_40;
176
- class Histogram_1800000_40 {
217
+ class HistogramCollector_80_10_64;
218
+ class Histogram_80_10_64 {
177
219
  public:
178
220
  static int BucketFor(int value);
179
221
  const uint64_t* buckets() const { return buckets_; }
180
- size_t bucket_count() const { return 40; }
181
- friend Histogram_1800000_40 operator-(const Histogram_1800000_40& left,
182
- const Histogram_1800000_40& right);
222
+ size_t bucket_count() const { return 10; }
223
+ void Increment(int value) {
224
+ ++buckets_[Histogram_80_10_64::BucketFor(value)];
225
+ }
226
+ friend Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
227
+ const Histogram_80_10_64& right);
183
228
 
184
229
  private:
185
- friend class HistogramCollector_1800000_40;
186
- uint64_t buckets_[40]{};
230
+ friend class HistogramCollector_80_10_64;
231
+ uint64_t buckets_[10]{};
187
232
  };
188
- class HistogramCollector_1800000_40 {
233
+ class HistogramCollector_80_10_64 {
189
234
  public:
190
235
  void Increment(int value) {
191
- buckets_[Histogram_1800000_40::BucketFor(value)].fetch_add(
236
+ buckets_[Histogram_80_10_64::BucketFor(value)].fetch_add(
192
237
  1, std::memory_order_relaxed);
193
238
  }
194
- void Collect(Histogram_1800000_40* result) const;
239
+ void Collect(Histogram_80_10_64* result) const;
195
240
 
196
241
  private:
197
- std::atomic<uint64_t> buckets_[40]{};
242
+ std::atomic<uint64_t> buckets_[10]{};
198
243
  };
199
- class HistogramCollector_16777216_50;
200
- class Histogram_16777216_50 {
244
+ class HistogramCollector_1800000_40_64;
245
+ class Histogram_1800000_40_64 {
201
246
  public:
202
247
  static int BucketFor(int value);
203
248
  const uint64_t* buckets() const { return buckets_; }
204
- size_t bucket_count() const { return 50; }
205
- friend Histogram_16777216_50 operator-(const Histogram_16777216_50& left,
206
- const Histogram_16777216_50& right);
249
+ size_t bucket_count() const { return 40; }
250
+ void Increment(int value) {
251
+ ++buckets_[Histogram_1800000_40_64::BucketFor(value)];
252
+ }
253
+ friend Histogram_1800000_40_64 operator-(
254
+ const Histogram_1800000_40_64& left,
255
+ const Histogram_1800000_40_64& right);
207
256
 
208
257
  private:
209
- friend class HistogramCollector_16777216_50;
210
- uint64_t buckets_[50]{};
258
+ friend class HistogramCollector_1800000_40_64;
259
+ uint64_t buckets_[40]{};
211
260
  };
212
- class HistogramCollector_16777216_50 {
261
+ class HistogramCollector_1800000_40_64 {
213
262
  public:
214
263
  void Increment(int value) {
215
- buckets_[Histogram_16777216_50::BucketFor(value)].fetch_add(
264
+ buckets_[Histogram_1800000_40_64::BucketFor(value)].fetch_add(
216
265
  1, std::memory_order_relaxed);
217
266
  }
218
- void Collect(Histogram_16777216_50* result) const;
267
+ void Collect(Histogram_1800000_40_64* result) const;
219
268
 
220
269
  private:
221
- std::atomic<uint64_t> buckets_[50]{};
270
+ std::atomic<uint64_t> buckets_[40]{};
222
271
  };
223
272
  struct GlobalStats {
224
273
  enum class Counter {
@@ -235,13 +284,6 @@ struct GlobalStats {
235
284
  kSyscallRead,
236
285
  kTcpReadAlloc8k,
237
286
  kTcpReadAlloc64k,
238
- kHttp2SettingsWrites,
239
- kHttp2PingsSent,
240
- kHttp2WritesBegun,
241
- kHttp2TransportStalls,
242
- kHttp2StreamStalls,
243
- kHttp2HpackHits,
244
- kHttp2HpackMisses,
245
287
  kCqPluckCreates,
246
288
  kCqNextCreates,
247
289
  kCqCallbackCreates,
@@ -268,22 +310,6 @@ struct GlobalStats {
268
310
  kTcpReadSize,
269
311
  kTcpReadOffer,
270
312
  kTcpReadOfferIovSize,
271
- kHttp2SendMessageSize,
272
- kHttp2MetadataSize,
273
- kHttp2HpackEntryLifetime,
274
- kHttp2HeaderTableSize,
275
- kHttp2InitialWindowSize,
276
- kHttp2MaxConcurrentStreams,
277
- kHttp2MaxFrameSize,
278
- kHttp2MaxHeaderListSize,
279
- kHttp2PreferredReceiveCryptoMessageSize,
280
- kHttp2StreamRemoteWindowUpdate,
281
- kHttp2TransportRemoteWindowUpdate,
282
- kHttp2TransportWindowUpdatePeriod,
283
- kHttp2StreamWindowUpdatePeriod,
284
- kHttp2WriteTargetSize,
285
- kHttp2WriteDataFrameSize,
286
- kHttp2ReadDataFrameSize,
287
313
  kWrrSubchannelListSize,
288
314
  kWrrSubchannelReadySize,
289
315
  kWorkSerializerRunTimeMs,
@@ -328,13 +354,6 @@ struct GlobalStats {
328
354
  uint64_t syscall_read;
329
355
  uint64_t tcp_read_alloc_8k;
330
356
  uint64_t tcp_read_alloc_64k;
331
- uint64_t http2_settings_writes;
332
- uint64_t http2_pings_sent;
333
- uint64_t http2_writes_begun;
334
- uint64_t http2_transport_stalls;
335
- uint64_t http2_stream_stalls;
336
- uint64_t http2_hpack_hits;
337
- uint64_t http2_hpack_misses;
338
357
  uint64_t cq_pluck_creates;
339
358
  uint64_t cq_next_creates;
340
359
  uint64_t cq_callback_creates;
@@ -355,48 +374,32 @@ struct GlobalStats {
355
374
  };
356
375
  uint64_t counters[static_cast<int>(Counter::COUNT)];
357
376
  };
358
- Histogram_65536_26 call_initial_size;
359
- Histogram_16777216_20 tcp_write_size;
360
- Histogram_80_10 tcp_write_iov_size;
361
- Histogram_16777216_20 tcp_read_size;
362
- Histogram_16777216_20 tcp_read_offer;
363
- Histogram_80_10 tcp_read_offer_iov_size;
364
- Histogram_16777216_20 http2_send_message_size;
365
- Histogram_65536_26 http2_metadata_size;
366
- Histogram_1800000_40 http2_hpack_entry_lifetime;
367
- Histogram_16777216_20 http2_header_table_size;
368
- Histogram_16777216_50 http2_initial_window_size;
369
- Histogram_16777216_20 http2_max_concurrent_streams;
370
- Histogram_16777216_50 http2_max_frame_size;
371
- Histogram_16777216_20 http2_max_header_list_size;
372
- Histogram_16777216_20 http2_preferred_receive_crypto_message_size;
373
- Histogram_16777216_20 http2_stream_remote_window_update;
374
- Histogram_16777216_20 http2_transport_remote_window_update;
375
- Histogram_100000_20 http2_transport_window_update_period;
376
- Histogram_100000_20 http2_stream_window_update_period;
377
- Histogram_16777216_50 http2_write_target_size;
378
- Histogram_16777216_50 http2_write_data_frame_size;
379
- Histogram_16777216_50 http2_read_data_frame_size;
380
- Histogram_10000_20 wrr_subchannel_list_size;
381
- Histogram_10000_20 wrr_subchannel_ready_size;
382
- Histogram_100000_20 work_serializer_run_time_ms;
383
- Histogram_100000_20 work_serializer_work_time_ms;
384
- Histogram_100000_20 work_serializer_work_time_per_item_ms;
385
- Histogram_10000_20 work_serializer_items_per_run;
386
- Histogram_100_20 chaotic_good_sendmsgs_per_write_control;
387
- Histogram_100_20 chaotic_good_recvmsgs_per_read_control;
388
- Histogram_100_20 chaotic_good_sendmsgs_per_write_data;
389
- Histogram_100_20 chaotic_good_recvmsgs_per_read_data;
390
- Histogram_100_20 chaotic_good_thread_hops_per_write_control;
391
- Histogram_100_20 chaotic_good_thread_hops_per_read_control;
392
- Histogram_100_20 chaotic_good_thread_hops_per_write_data;
393
- Histogram_100_20 chaotic_good_thread_hops_per_read_data;
394
- Histogram_16777216_20 chaotic_good_tcp_read_size_data;
395
- Histogram_16777216_20 chaotic_good_tcp_read_size_control;
396
- Histogram_16777216_20 chaotic_good_tcp_read_offer_data;
397
- Histogram_16777216_20 chaotic_good_tcp_read_offer_control;
398
- Histogram_16777216_20 chaotic_good_tcp_write_size_data;
399
- Histogram_16777216_20 chaotic_good_tcp_write_size_control;
377
+ Histogram_65536_26_64 call_initial_size;
378
+ Histogram_16777216_20_64 tcp_write_size;
379
+ Histogram_80_10_64 tcp_write_iov_size;
380
+ Histogram_16777216_20_64 tcp_read_size;
381
+ Histogram_16777216_20_64 tcp_read_offer;
382
+ Histogram_80_10_64 tcp_read_offer_iov_size;
383
+ Histogram_10000_20_64 wrr_subchannel_list_size;
384
+ Histogram_10000_20_64 wrr_subchannel_ready_size;
385
+ Histogram_100000_20_64 work_serializer_run_time_ms;
386
+ Histogram_100000_20_64 work_serializer_work_time_ms;
387
+ Histogram_100000_20_64 work_serializer_work_time_per_item_ms;
388
+ Histogram_10000_20_64 work_serializer_items_per_run;
389
+ Histogram_100_20_64 chaotic_good_sendmsgs_per_write_control;
390
+ Histogram_100_20_64 chaotic_good_recvmsgs_per_read_control;
391
+ Histogram_100_20_64 chaotic_good_sendmsgs_per_write_data;
392
+ Histogram_100_20_64 chaotic_good_recvmsgs_per_read_data;
393
+ Histogram_100_20_64 chaotic_good_thread_hops_per_write_control;
394
+ Histogram_100_20_64 chaotic_good_thread_hops_per_read_control;
395
+ Histogram_100_20_64 chaotic_good_thread_hops_per_write_data;
396
+ Histogram_100_20_64 chaotic_good_thread_hops_per_read_data;
397
+ Histogram_16777216_20_64 chaotic_good_tcp_read_size_data;
398
+ Histogram_16777216_20_64 chaotic_good_tcp_read_size_control;
399
+ Histogram_16777216_20_64 chaotic_good_tcp_read_offer_data;
400
+ Histogram_16777216_20_64 chaotic_good_tcp_read_offer_control;
401
+ Histogram_16777216_20_64 chaotic_good_tcp_write_size_data;
402
+ Histogram_16777216_20_64 chaotic_good_tcp_write_size_control;
400
403
  HistogramView histogram(Histogram which) const;
401
404
  std::unique_ptr<GlobalStats> Diff(const GlobalStats& other) const;
402
405
  };
@@ -449,30 +452,6 @@ class GlobalStatsCollector {
449
452
  void IncrementTcpReadAlloc64k() {
450
453
  data_.this_cpu().tcp_read_alloc_64k.fetch_add(1, std::memory_order_relaxed);
451
454
  }
452
- void IncrementHttp2SettingsWrites() {
453
- data_.this_cpu().http2_settings_writes.fetch_add(1,
454
- std::memory_order_relaxed);
455
- }
456
- void IncrementHttp2PingsSent() {
457
- data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
458
- }
459
- void IncrementHttp2WritesBegun() {
460
- data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
461
- }
462
- void IncrementHttp2TransportStalls() {
463
- data_.this_cpu().http2_transport_stalls.fetch_add(
464
- 1, std::memory_order_relaxed);
465
- }
466
- void IncrementHttp2StreamStalls() {
467
- data_.this_cpu().http2_stream_stalls.fetch_add(1,
468
- std::memory_order_relaxed);
469
- }
470
- void IncrementHttp2HpackHits() {
471
- data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
472
- }
473
- void IncrementHttp2HpackMisses() {
474
- data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
475
- }
476
455
  void IncrementCqPluckCreates() {
477
456
  data_.this_cpu().cq_pluck_creates.fetch_add(1, std::memory_order_relaxed);
478
457
  }
@@ -547,55 +526,6 @@ class GlobalStatsCollector {
547
526
  void IncrementTcpReadOfferIovSize(int value) {
548
527
  data_.this_cpu().tcp_read_offer_iov_size.Increment(value);
549
528
  }
550
- void IncrementHttp2SendMessageSize(int value) {
551
- data_.this_cpu().http2_send_message_size.Increment(value);
552
- }
553
- void IncrementHttp2MetadataSize(int value) {
554
- data_.this_cpu().http2_metadata_size.Increment(value);
555
- }
556
- void IncrementHttp2HpackEntryLifetime(int value) {
557
- data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
558
- }
559
- void IncrementHttp2HeaderTableSize(int value) {
560
- data_.this_cpu().http2_header_table_size.Increment(value);
561
- }
562
- void IncrementHttp2InitialWindowSize(int value) {
563
- data_.this_cpu().http2_initial_window_size.Increment(value);
564
- }
565
- void IncrementHttp2MaxConcurrentStreams(int value) {
566
- data_.this_cpu().http2_max_concurrent_streams.Increment(value);
567
- }
568
- void IncrementHttp2MaxFrameSize(int value) {
569
- data_.this_cpu().http2_max_frame_size.Increment(value);
570
- }
571
- void IncrementHttp2MaxHeaderListSize(int value) {
572
- data_.this_cpu().http2_max_header_list_size.Increment(value);
573
- }
574
- void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
575
- data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
576
- value);
577
- }
578
- void IncrementHttp2StreamRemoteWindowUpdate(int value) {
579
- data_.this_cpu().http2_stream_remote_window_update.Increment(value);
580
- }
581
- void IncrementHttp2TransportRemoteWindowUpdate(int value) {
582
- data_.this_cpu().http2_transport_remote_window_update.Increment(value);
583
- }
584
- void IncrementHttp2TransportWindowUpdatePeriod(int value) {
585
- data_.this_cpu().http2_transport_window_update_period.Increment(value);
586
- }
587
- void IncrementHttp2StreamWindowUpdatePeriod(int value) {
588
- data_.this_cpu().http2_stream_window_update_period.Increment(value);
589
- }
590
- void IncrementHttp2WriteTargetSize(int value) {
591
- data_.this_cpu().http2_write_target_size.Increment(value);
592
- }
593
- void IncrementHttp2WriteDataFrameSize(int value) {
594
- data_.this_cpu().http2_write_data_frame_size.Increment(value);
595
- }
596
- void IncrementHttp2ReadDataFrameSize(int value) {
597
- data_.this_cpu().http2_read_data_frame_size.Increment(value);
598
- }
599
529
  void IncrementWrrSubchannelListSize(int value) {
600
530
  data_.this_cpu().wrr_subchannel_list_size.Increment(value);
601
531
  }
@@ -659,6 +589,8 @@ class GlobalStatsCollector {
659
589
  }
660
590
 
661
591
  private:
592
+ friend class Http2GlobalStatsCollector;
593
+ friend class Http2StatsCollector;
662
594
  struct Data {
663
595
  std::atomic<uint64_t> client_calls_created{0};
664
596
  std::atomic<uint64_t> server_calls_created{0};
@@ -673,13 +605,6 @@ class GlobalStatsCollector {
673
605
  std::atomic<uint64_t> syscall_read{0};
674
606
  std::atomic<uint64_t> tcp_read_alloc_8k{0};
675
607
  std::atomic<uint64_t> tcp_read_alloc_64k{0};
676
- std::atomic<uint64_t> http2_settings_writes{0};
677
- std::atomic<uint64_t> http2_pings_sent{0};
678
- std::atomic<uint64_t> http2_writes_begun{0};
679
- std::atomic<uint64_t> http2_transport_stalls{0};
680
- std::atomic<uint64_t> http2_stream_stalls{0};
681
- std::atomic<uint64_t> http2_hpack_hits{0};
682
- std::atomic<uint64_t> http2_hpack_misses{0};
683
608
  std::atomic<uint64_t> cq_pluck_creates{0};
684
609
  std::atomic<uint64_t> cq_next_creates{0};
685
610
  std::atomic<uint64_t> cq_callback_creates{0};
@@ -697,51 +622,317 @@ class GlobalStatsCollector {
697
622
  std::atomic<uint64_t> enobufs_count{0};
698
623
  std::atomic<uint64_t> uncommon_io_error_count{0};
699
624
  std::atomic<uint64_t> msg_errqueue_error_count{0};
700
- HistogramCollector_65536_26 call_initial_size;
701
- HistogramCollector_16777216_20 tcp_write_size;
702
- HistogramCollector_80_10 tcp_write_iov_size;
703
- HistogramCollector_16777216_20 tcp_read_size;
704
- HistogramCollector_16777216_20 tcp_read_offer;
705
- HistogramCollector_80_10 tcp_read_offer_iov_size;
706
- HistogramCollector_16777216_20 http2_send_message_size;
707
- HistogramCollector_65536_26 http2_metadata_size;
708
- HistogramCollector_1800000_40 http2_hpack_entry_lifetime;
709
- HistogramCollector_16777216_20 http2_header_table_size;
710
- HistogramCollector_16777216_50 http2_initial_window_size;
711
- HistogramCollector_16777216_20 http2_max_concurrent_streams;
712
- HistogramCollector_16777216_50 http2_max_frame_size;
713
- HistogramCollector_16777216_20 http2_max_header_list_size;
714
- HistogramCollector_16777216_20 http2_preferred_receive_crypto_message_size;
715
- HistogramCollector_16777216_20 http2_stream_remote_window_update;
716
- HistogramCollector_16777216_20 http2_transport_remote_window_update;
717
- HistogramCollector_100000_20 http2_transport_window_update_period;
718
- HistogramCollector_100000_20 http2_stream_window_update_period;
719
- HistogramCollector_16777216_50 http2_write_target_size;
720
- HistogramCollector_16777216_50 http2_write_data_frame_size;
721
- HistogramCollector_16777216_50 http2_read_data_frame_size;
722
- HistogramCollector_10000_20 wrr_subchannel_list_size;
723
- HistogramCollector_10000_20 wrr_subchannel_ready_size;
724
- HistogramCollector_100000_20 work_serializer_run_time_ms;
725
- HistogramCollector_100000_20 work_serializer_work_time_ms;
726
- HistogramCollector_100000_20 work_serializer_work_time_per_item_ms;
727
- HistogramCollector_10000_20 work_serializer_items_per_run;
728
- HistogramCollector_100_20 chaotic_good_sendmsgs_per_write_control;
729
- HistogramCollector_100_20 chaotic_good_recvmsgs_per_read_control;
730
- HistogramCollector_100_20 chaotic_good_sendmsgs_per_write_data;
731
- HistogramCollector_100_20 chaotic_good_recvmsgs_per_read_data;
732
- HistogramCollector_100_20 chaotic_good_thread_hops_per_write_control;
733
- HistogramCollector_100_20 chaotic_good_thread_hops_per_read_control;
734
- HistogramCollector_100_20 chaotic_good_thread_hops_per_write_data;
735
- HistogramCollector_100_20 chaotic_good_thread_hops_per_read_data;
736
- HistogramCollector_16777216_20 chaotic_good_tcp_read_size_data;
737
- HistogramCollector_16777216_20 chaotic_good_tcp_read_size_control;
738
- HistogramCollector_16777216_20 chaotic_good_tcp_read_offer_data;
739
- HistogramCollector_16777216_20 chaotic_good_tcp_read_offer_control;
740
- HistogramCollector_16777216_20 chaotic_good_tcp_write_size_data;
741
- HistogramCollector_16777216_20 chaotic_good_tcp_write_size_control;
625
+ HistogramCollector_65536_26_64 call_initial_size;
626
+ HistogramCollector_16777216_20_64 tcp_write_size;
627
+ HistogramCollector_80_10_64 tcp_write_iov_size;
628
+ HistogramCollector_16777216_20_64 tcp_read_size;
629
+ HistogramCollector_16777216_20_64 tcp_read_offer;
630
+ HistogramCollector_80_10_64 tcp_read_offer_iov_size;
631
+ HistogramCollector_10000_20_64 wrr_subchannel_list_size;
632
+ HistogramCollector_10000_20_64 wrr_subchannel_ready_size;
633
+ HistogramCollector_100000_20_64 work_serializer_run_time_ms;
634
+ HistogramCollector_100000_20_64 work_serializer_work_time_ms;
635
+ HistogramCollector_100000_20_64 work_serializer_work_time_per_item_ms;
636
+ HistogramCollector_10000_20_64 work_serializer_items_per_run;
637
+ HistogramCollector_100_20_64 chaotic_good_sendmsgs_per_write_control;
638
+ HistogramCollector_100_20_64 chaotic_good_recvmsgs_per_read_control;
639
+ HistogramCollector_100_20_64 chaotic_good_sendmsgs_per_write_data;
640
+ HistogramCollector_100_20_64 chaotic_good_recvmsgs_per_read_data;
641
+ HistogramCollector_100_20_64 chaotic_good_thread_hops_per_write_control;
642
+ HistogramCollector_100_20_64 chaotic_good_thread_hops_per_read_control;
643
+ HistogramCollector_100_20_64 chaotic_good_thread_hops_per_write_data;
644
+ HistogramCollector_100_20_64 chaotic_good_thread_hops_per_read_data;
645
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_read_size_data;
646
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_read_size_control;
647
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_read_offer_data;
648
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_read_offer_control;
649
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_write_size_data;
650
+ HistogramCollector_16777216_20_64 chaotic_good_tcp_write_size_control;
651
+ };
652
+ PerCpu<Data> data_{PerCpuOptions().SetCpusPerShard(4).SetMaxShards(32)};
653
+ };
654
+ inline GlobalStatsCollector& global_stats() {
655
+ return *NoDestructSingleton<GlobalStatsCollector>::Get();
656
+ }
657
+ struct Http2GlobalStats {
658
+ enum class Counter {
659
+ kHttp2SettingsWrites,
660
+ kHttp2PingsSent,
661
+ kHttp2TransportStalls,
662
+ kHttp2StreamStalls,
663
+ kHttp2HpackHits,
664
+ kHttp2HpackMisses,
665
+ kHttp2WritesBegun,
666
+ COUNT
667
+ };
668
+ enum class Histogram {
669
+ kHttp2SendMessageSize,
670
+ kHttp2MetadataSize,
671
+ kHttp2HpackEntryLifetime,
672
+ kHttp2HeaderTableSize,
673
+ kHttp2InitialWindowSize,
674
+ kHttp2MaxConcurrentStreams,
675
+ kHttp2MaxFrameSize,
676
+ kHttp2MaxHeaderListSize,
677
+ kHttp2PreferredReceiveCryptoMessageSize,
678
+ kHttp2StreamRemoteWindowUpdate,
679
+ kHttp2TransportRemoteWindowUpdate,
680
+ kHttp2TransportWindowUpdatePeriod,
681
+ kHttp2StreamWindowUpdatePeriod,
682
+ kHttp2WriteDataFrameSize,
683
+ kHttp2ReadDataFrameSize,
684
+ kHttp2WriteTargetSize,
685
+ COUNT
686
+ };
687
+ Http2GlobalStats();
688
+ static const absl::string_view counter_name[static_cast<int>(Counter::COUNT)];
689
+ static const absl::string_view
690
+ histogram_name[static_cast<int>(Histogram::COUNT)];
691
+ static const absl::string_view counter_doc[static_cast<int>(Counter::COUNT)];
692
+ static const absl::string_view
693
+ histogram_doc[static_cast<int>(Histogram::COUNT)];
694
+ union {
695
+ struct {
696
+ uint64_t http2_settings_writes;
697
+ uint64_t http2_pings_sent;
698
+ uint64_t http2_transport_stalls;
699
+ uint64_t http2_stream_stalls;
700
+ uint64_t http2_hpack_hits;
701
+ uint64_t http2_hpack_misses;
702
+ uint64_t http2_writes_begun;
703
+ };
704
+ uint64_t counters[static_cast<int>(Counter::COUNT)];
705
+ };
706
+ Histogram_16777216_20_64 http2_send_message_size;
707
+ Histogram_65536_26_64 http2_metadata_size;
708
+ Histogram_1800000_40_64 http2_hpack_entry_lifetime;
709
+ Histogram_16777216_20_64 http2_header_table_size;
710
+ Histogram_16777216_50_64 http2_initial_window_size;
711
+ Histogram_16777216_20_64 http2_max_concurrent_streams;
712
+ Histogram_16777216_50_64 http2_max_frame_size;
713
+ Histogram_16777216_20_64 http2_max_header_list_size;
714
+ Histogram_16777216_20_64 http2_preferred_receive_crypto_message_size;
715
+ Histogram_16777216_20_64 http2_stream_remote_window_update;
716
+ Histogram_16777216_20_64 http2_transport_remote_window_update;
717
+ Histogram_100000_20_64 http2_transport_window_update_period;
718
+ Histogram_100000_20_64 http2_stream_window_update_period;
719
+ Histogram_16777216_50_64 http2_write_data_frame_size;
720
+ Histogram_16777216_50_64 http2_read_data_frame_size;
721
+ Histogram_16777216_50_64 http2_write_target_size;
722
+ HistogramView histogram(Histogram which) const;
723
+ std::unique_ptr<Http2GlobalStats> Diff(const Http2GlobalStats& other) const;
724
+ };
725
+ class Http2GlobalStatsCollector {
726
+ public:
727
+ std::unique_ptr<Http2GlobalStats> Collect() const;
728
+ void IncrementHttp2SettingsWrites() {
729
+ data_.this_cpu().http2_settings_writes.fetch_add(1,
730
+ std::memory_order_relaxed);
731
+ }
732
+ void IncrementHttp2PingsSent() {
733
+ data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
734
+ }
735
+ void IncrementHttp2TransportStalls() {
736
+ data_.this_cpu().http2_transport_stalls.fetch_add(
737
+ 1, std::memory_order_relaxed);
738
+ }
739
+ void IncrementHttp2StreamStalls() {
740
+ data_.this_cpu().http2_stream_stalls.fetch_add(1,
741
+ std::memory_order_relaxed);
742
+ }
743
+ void IncrementHttp2HpackHits() {
744
+ data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
745
+ }
746
+ void IncrementHttp2HpackMisses() {
747
+ data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
748
+ }
749
+
750
+ private:
751
+ void IncrementHttp2WritesBegun() {
752
+ data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
753
+ }
754
+
755
+ public:
756
+ void IncrementHttp2SendMessageSize(int value) {
757
+ data_.this_cpu().http2_send_message_size.Increment(value);
758
+ }
759
+ void IncrementHttp2MetadataSize(int value) {
760
+ data_.this_cpu().http2_metadata_size.Increment(value);
761
+ }
762
+ void IncrementHttp2HpackEntryLifetime(int value) {
763
+ data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
764
+ }
765
+ void IncrementHttp2HeaderTableSize(int value) {
766
+ data_.this_cpu().http2_header_table_size.Increment(value);
767
+ }
768
+ void IncrementHttp2InitialWindowSize(int value) {
769
+ data_.this_cpu().http2_initial_window_size.Increment(value);
770
+ }
771
+ void IncrementHttp2MaxConcurrentStreams(int value) {
772
+ data_.this_cpu().http2_max_concurrent_streams.Increment(value);
773
+ }
774
+ void IncrementHttp2MaxFrameSize(int value) {
775
+ data_.this_cpu().http2_max_frame_size.Increment(value);
776
+ }
777
+ void IncrementHttp2MaxHeaderListSize(int value) {
778
+ data_.this_cpu().http2_max_header_list_size.Increment(value);
779
+ }
780
+ void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
781
+ data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
782
+ value);
783
+ }
784
+ void IncrementHttp2StreamRemoteWindowUpdate(int value) {
785
+ data_.this_cpu().http2_stream_remote_window_update.Increment(value);
786
+ }
787
+ void IncrementHttp2TransportRemoteWindowUpdate(int value) {
788
+ data_.this_cpu().http2_transport_remote_window_update.Increment(value);
789
+ }
790
+ void IncrementHttp2TransportWindowUpdatePeriod(int value) {
791
+ data_.this_cpu().http2_transport_window_update_period.Increment(value);
792
+ }
793
+ void IncrementHttp2StreamWindowUpdatePeriod(int value) {
794
+ data_.this_cpu().http2_stream_window_update_period.Increment(value);
795
+ }
796
+ void IncrementHttp2WriteDataFrameSize(int value) {
797
+ data_.this_cpu().http2_write_data_frame_size.Increment(value);
798
+ }
799
+ void IncrementHttp2ReadDataFrameSize(int value) {
800
+ data_.this_cpu().http2_read_data_frame_size.Increment(value);
801
+ }
802
+
803
+ private:
804
+ void IncrementHttp2WriteTargetSize(int value) {
805
+ data_.this_cpu().http2_write_target_size.Increment(value);
806
+ }
807
+ friend class GlobalStatsCollector;
808
+ friend class Http2StatsCollector;
809
+ struct Data {
810
+ std::atomic<uint64_t> http2_settings_writes{0};
811
+ std::atomic<uint64_t> http2_pings_sent{0};
812
+ std::atomic<uint64_t> http2_transport_stalls{0};
813
+ std::atomic<uint64_t> http2_stream_stalls{0};
814
+ std::atomic<uint64_t> http2_hpack_hits{0};
815
+ std::atomic<uint64_t> http2_hpack_misses{0};
816
+ std::atomic<uint64_t> http2_writes_begun{0};
817
+ HistogramCollector_16777216_20_64 http2_send_message_size;
818
+ HistogramCollector_65536_26_64 http2_metadata_size;
819
+ HistogramCollector_1800000_40_64 http2_hpack_entry_lifetime;
820
+ HistogramCollector_16777216_20_64 http2_header_table_size;
821
+ HistogramCollector_16777216_50_64 http2_initial_window_size;
822
+ HistogramCollector_16777216_20_64 http2_max_concurrent_streams;
823
+ HistogramCollector_16777216_50_64 http2_max_frame_size;
824
+ HistogramCollector_16777216_20_64 http2_max_header_list_size;
825
+ HistogramCollector_16777216_20_64
826
+ http2_preferred_receive_crypto_message_size;
827
+ HistogramCollector_16777216_20_64 http2_stream_remote_window_update;
828
+ HistogramCollector_16777216_20_64 http2_transport_remote_window_update;
829
+ HistogramCollector_100000_20_64 http2_transport_window_update_period;
830
+ HistogramCollector_100000_20_64 http2_stream_window_update_period;
831
+ HistogramCollector_16777216_50_64 http2_write_data_frame_size;
832
+ HistogramCollector_16777216_50_64 http2_read_data_frame_size;
833
+ HistogramCollector_16777216_50_64 http2_write_target_size;
742
834
  };
743
835
  PerCpu<Data> data_{PerCpuOptions().SetCpusPerShard(4).SetMaxShards(32)};
744
836
  };
837
+ inline Http2GlobalStatsCollector& http2_global_stats() {
838
+ return *NoDestructSingleton<Http2GlobalStatsCollector>::Get();
839
+ }
840
+ struct Http2Stats {
841
+ enum class Counter { kHttp2WritesBegun, COUNT };
842
+ enum class Histogram { kHttp2WriteTargetSize, COUNT };
843
+ Http2Stats();
844
+ static const absl::string_view counter_name[static_cast<int>(Counter::COUNT)];
845
+ static const absl::string_view
846
+ histogram_name[static_cast<int>(Histogram::COUNT)];
847
+ static const absl::string_view counter_doc[static_cast<int>(Counter::COUNT)];
848
+ static const absl::string_view
849
+ histogram_doc[static_cast<int>(Histogram::COUNT)];
850
+ union {
851
+ struct {
852
+ uint64_t http2_writes_begun;
853
+ };
854
+ uint64_t counters[static_cast<int>(Counter::COUNT)];
855
+ };
856
+ Histogram_16777216_8_8 http2_write_target_size;
857
+ };
858
+ class Http2StatsCollector {
859
+ public:
860
+ const Http2Stats& View() const { return data_; };
861
+ void IncrementHttp2SettingsWrites() {
862
+ http2_global_stats().IncrementHttp2SettingsWrites();
863
+ }
864
+ void IncrementHttp2PingsSent() {
865
+ http2_global_stats().IncrementHttp2PingsSent();
866
+ }
867
+ void IncrementHttp2TransportStalls() {
868
+ http2_global_stats().IncrementHttp2TransportStalls();
869
+ }
870
+ void IncrementHttp2StreamStalls() {
871
+ http2_global_stats().IncrementHttp2StreamStalls();
872
+ }
873
+ void IncrementHttp2HpackHits() {
874
+ http2_global_stats().IncrementHttp2HpackHits();
875
+ }
876
+ void IncrementHttp2HpackMisses() {
877
+ http2_global_stats().IncrementHttp2HpackMisses();
878
+ }
879
+ void IncrementHttp2WritesBegun() {
880
+ ++data_.http2_writes_begun;
881
+ http2_global_stats().IncrementHttp2WritesBegun();
882
+ }
883
+ void IncrementHttp2SendMessageSize(int value) {
884
+ http2_global_stats().IncrementHttp2SendMessageSize(value);
885
+ }
886
+ void IncrementHttp2MetadataSize(int value) {
887
+ http2_global_stats().IncrementHttp2MetadataSize(value);
888
+ }
889
+ void IncrementHttp2HpackEntryLifetime(int value) {
890
+ http2_global_stats().IncrementHttp2HpackEntryLifetime(value);
891
+ }
892
+ void IncrementHttp2HeaderTableSize(int value) {
893
+ http2_global_stats().IncrementHttp2HeaderTableSize(value);
894
+ }
895
+ void IncrementHttp2InitialWindowSize(int value) {
896
+ http2_global_stats().IncrementHttp2InitialWindowSize(value);
897
+ }
898
+ void IncrementHttp2MaxConcurrentStreams(int value) {
899
+ http2_global_stats().IncrementHttp2MaxConcurrentStreams(value);
900
+ }
901
+ void IncrementHttp2MaxFrameSize(int value) {
902
+ http2_global_stats().IncrementHttp2MaxFrameSize(value);
903
+ }
904
+ void IncrementHttp2MaxHeaderListSize(int value) {
905
+ http2_global_stats().IncrementHttp2MaxHeaderListSize(value);
906
+ }
907
+ void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
908
+ http2_global_stats().IncrementHttp2PreferredReceiveCryptoMessageSize(value);
909
+ }
910
+ void IncrementHttp2StreamRemoteWindowUpdate(int value) {
911
+ http2_global_stats().IncrementHttp2StreamRemoteWindowUpdate(value);
912
+ }
913
+ void IncrementHttp2TransportRemoteWindowUpdate(int value) {
914
+ http2_global_stats().IncrementHttp2TransportRemoteWindowUpdate(value);
915
+ }
916
+ void IncrementHttp2TransportWindowUpdatePeriod(int value) {
917
+ http2_global_stats().IncrementHttp2TransportWindowUpdatePeriod(value);
918
+ }
919
+ void IncrementHttp2StreamWindowUpdatePeriod(int value) {
920
+ http2_global_stats().IncrementHttp2StreamWindowUpdatePeriod(value);
921
+ }
922
+ void IncrementHttp2WriteDataFrameSize(int value) {
923
+ http2_global_stats().IncrementHttp2WriteDataFrameSize(value);
924
+ }
925
+ void IncrementHttp2ReadDataFrameSize(int value) {
926
+ http2_global_stats().IncrementHttp2ReadDataFrameSize(value);
927
+ }
928
+ void IncrementHttp2WriteTargetSize(int value) {
929
+ data_.http2_write_target_size.Increment(value);
930
+ http2_global_stats().IncrementHttp2WriteTargetSize(value);
931
+ }
932
+
933
+ private:
934
+ Http2Stats data_;
935
+ };
745
936
  } // namespace grpc_core
746
937
 
747
938
  #endif // GRPC_SRC_CORE_TELEMETRY_STATS_DATA_H