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
@@ -26,334 +26,151 @@ union DblUint {
26
26
  uint64_t uint;
27
27
  };
28
28
  } // namespace
29
- void HistogramCollector_100000_20::Collect(Histogram_100000_20* result) const {
29
+ void HistogramCollector_16777216_20_64::Collect(
30
+ Histogram_16777216_20_64* result) const {
30
31
  for (int i = 0; i < 20; i++) {
31
32
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
32
33
  }
33
34
  }
34
- Histogram_100000_20 operator-(const Histogram_100000_20& left,
35
- const Histogram_100000_20& right) {
36
- Histogram_100000_20 result;
35
+ Histogram_16777216_20_64 operator-(const Histogram_16777216_20_64& left,
36
+ const Histogram_16777216_20_64& right) {
37
+ Histogram_16777216_20_64 result;
37
38
  for (int i = 0; i < 20; i++) {
38
39
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
39
40
  }
40
41
  return result;
41
42
  }
42
- void HistogramCollector_65536_26::Collect(Histogram_65536_26* result) const {
43
- for (int i = 0; i < 26; i++) {
43
+ void HistogramCollector_100000_20_64::Collect(
44
+ Histogram_100000_20_64* result) const {
45
+ for (int i = 0; i < 20; i++) {
44
46
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
45
47
  }
46
48
  }
47
- Histogram_65536_26 operator-(const Histogram_65536_26& left,
48
- const Histogram_65536_26& right) {
49
- Histogram_65536_26 result;
50
- for (int i = 0; i < 26; i++) {
49
+ Histogram_100000_20_64 operator-(const Histogram_100000_20_64& left,
50
+ const Histogram_100000_20_64& right) {
51
+ Histogram_100000_20_64 result;
52
+ for (int i = 0; i < 20; i++) {
51
53
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
52
54
  }
53
55
  return result;
54
56
  }
55
- void HistogramCollector_100_20::Collect(Histogram_100_20* result) const {
57
+ void HistogramCollector_10000_20_64::Collect(
58
+ Histogram_10000_20_64* result) const {
56
59
  for (int i = 0; i < 20; i++) {
57
60
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
58
61
  }
59
62
  }
60
- Histogram_100_20 operator-(const Histogram_100_20& left,
61
- const Histogram_100_20& right) {
62
- Histogram_100_20 result;
63
+ Histogram_10000_20_64 operator-(const Histogram_10000_20_64& left,
64
+ const Histogram_10000_20_64& right) {
65
+ Histogram_10000_20_64 result;
63
66
  for (int i = 0; i < 20; i++) {
64
67
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
65
68
  }
66
69
  return result;
67
70
  }
68
- void HistogramCollector_16777216_20::Collect(
69
- Histogram_16777216_20* result) const {
70
- for (int i = 0; i < 20; i++) {
71
+ void HistogramCollector_65536_26_64::Collect(
72
+ Histogram_65536_26_64* result) const {
73
+ for (int i = 0; i < 26; i++) {
71
74
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
72
75
  }
73
76
  }
74
- Histogram_16777216_20 operator-(const Histogram_16777216_20& left,
75
- const Histogram_16777216_20& right) {
76
- Histogram_16777216_20 result;
77
- for (int i = 0; i < 20; i++) {
77
+ Histogram_65536_26_64 operator-(const Histogram_65536_26_64& left,
78
+ const Histogram_65536_26_64& right) {
79
+ Histogram_65536_26_64 result;
80
+ for (int i = 0; i < 26; i++) {
78
81
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
79
82
  }
80
83
  return result;
81
84
  }
82
- void HistogramCollector_80_10::Collect(Histogram_80_10* result) const {
83
- for (int i = 0; i < 10; i++) {
85
+ void HistogramCollector_100_20_64::Collect(Histogram_100_20_64* result) const {
86
+ for (int i = 0; i < 20; i++) {
84
87
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
85
88
  }
86
89
  }
87
- Histogram_80_10 operator-(const Histogram_80_10& left,
88
- const Histogram_80_10& right) {
89
- Histogram_80_10 result;
90
- for (int i = 0; i < 10; i++) {
90
+ Histogram_100_20_64 operator-(const Histogram_100_20_64& left,
91
+ const Histogram_100_20_64& right) {
92
+ Histogram_100_20_64 result;
93
+ for (int i = 0; i < 20; i++) {
91
94
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
92
95
  }
93
96
  return result;
94
97
  }
95
- void HistogramCollector_10000_20::Collect(Histogram_10000_20* result) const {
96
- for (int i = 0; i < 20; i++) {
98
+ void HistogramCollector_16777216_50_64::Collect(
99
+ Histogram_16777216_50_64* result) const {
100
+ for (int i = 0; i < 50; i++) {
97
101
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
98
102
  }
99
103
  }
100
- Histogram_10000_20 operator-(const Histogram_10000_20& left,
101
- const Histogram_10000_20& right) {
102
- Histogram_10000_20 result;
103
- for (int i = 0; i < 20; i++) {
104
+ Histogram_16777216_50_64 operator-(const Histogram_16777216_50_64& left,
105
+ const Histogram_16777216_50_64& right) {
106
+ Histogram_16777216_50_64 result;
107
+ for (int i = 0; i < 50; i++) {
104
108
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
105
109
  }
106
110
  return result;
107
111
  }
108
- void HistogramCollector_1800000_40::Collect(
109
- Histogram_1800000_40* result) const {
110
- for (int i = 0; i < 40; i++) {
112
+ void HistogramCollector_80_10_64::Collect(Histogram_80_10_64* result) const {
113
+ for (int i = 0; i < 10; i++) {
111
114
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
112
115
  }
113
116
  }
114
- Histogram_1800000_40 operator-(const Histogram_1800000_40& left,
115
- const Histogram_1800000_40& right) {
116
- Histogram_1800000_40 result;
117
- for (int i = 0; i < 40; i++) {
117
+ Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
118
+ const Histogram_80_10_64& right) {
119
+ Histogram_80_10_64 result;
120
+ for (int i = 0; i < 10; i++) {
118
121
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
119
122
  }
120
123
  return result;
121
124
  }
122
- void HistogramCollector_16777216_50::Collect(
123
- Histogram_16777216_50* result) const {
124
- for (int i = 0; i < 50; i++) {
125
+ void HistogramCollector_1800000_40_64::Collect(
126
+ Histogram_1800000_40_64* result) const {
127
+ for (int i = 0; i < 40; i++) {
125
128
  result->buckets_[i] += buckets_[i].load(std::memory_order_relaxed);
126
129
  }
127
130
  }
128
- Histogram_16777216_50 operator-(const Histogram_16777216_50& left,
129
- const Histogram_16777216_50& right) {
130
- Histogram_16777216_50 result;
131
- for (int i = 0; i < 50; i++) {
131
+ Histogram_1800000_40_64 operator-(const Histogram_1800000_40_64& left,
132
+ const Histogram_1800000_40_64& right) {
133
+ Histogram_1800000_40_64 result;
134
+ for (int i = 0; i < 40; i++) {
132
135
  result.buckets_[i] = left.buckets_[i] - right.buckets_[i];
133
136
  }
134
137
  return result;
135
138
  }
136
- const absl::string_view
137
- GlobalStats::counter_name[static_cast<int>(Counter::COUNT)] = {
138
- "client_calls_created",
139
- "server_calls_created",
140
- "client_channels_created",
141
- "client_subchannels_created",
142
- "server_channels_created",
143
- "insecure_connections_created",
144
- "rq_connections_dropped",
145
- "rq_calls_dropped",
146
- "rq_calls_rejected",
147
- "syscall_write",
148
- "syscall_read",
149
- "tcp_read_alloc_8k",
150
- "tcp_read_alloc_64k",
151
- "http2_settings_writes",
152
- "http2_pings_sent",
153
- "http2_writes_begun",
154
- "http2_transport_stalls",
155
- "http2_stream_stalls",
156
- "http2_hpack_hits",
157
- "http2_hpack_misses",
158
- "cq_pluck_creates",
159
- "cq_next_creates",
160
- "cq_callback_creates",
161
- "wrr_updates",
162
- "work_serializer_items_enqueued",
163
- "work_serializer_items_dequeued",
164
- "econnaborted_count",
165
- "econnreset_count",
166
- "epipe_count",
167
- "etimedout_count",
168
- "econnrefused_count",
169
- "enetunreach_count",
170
- "enomsg_count",
171
- "enotconn_count",
172
- "enobufs_count",
173
- "uncommon_io_error_count",
174
- "msg_errqueue_error_count",
175
- };
176
- const absl::string_view GlobalStats::counter_doc[static_cast<int>(
177
- Counter::COUNT)] = {
178
- "Number of client side calls created by this process",
179
- "Number of server side calls created by this process",
180
- "Number of client channels created",
181
- "Number of client subchannels created",
182
- "Number of server channels created",
183
- "Number of insecure connections created",
184
- "Number of connections dropped due to resource quota exceeded",
185
- "Number of calls dropped due to resource quota exceeded",
186
- "Number of calls rejected (never started) due to resource quota exceeded",
187
- "Number of write syscalls (or equivalent - eg sendmsg) made by this "
188
- "process",
189
- "Number of read syscalls (or equivalent - eg recvmsg) made by this process",
190
- "Number of 8k allocations by the TCP subsystem for reading",
191
- "Number of 64k allocations by the TCP subsystem for reading",
192
- "Number of settings frames sent",
193
- "Number of HTTP2 pings sent by process",
194
- "Number of HTTP2 writes initiated",
195
- "Number of times sending was completely stalled by the transport flow "
196
- "control window",
197
- "Number of times sending was completely stalled by the stream flow control "
198
- "window",
199
- "Number of HPACK cache hits",
200
- "Number of HPACK cache misses (entries added but never used)",
201
- "Number of completion queues created for cq_pluck (indicates sync api "
202
- "usage)",
203
- "Number of completion queues created for cq_next (indicates cq async api "
204
- "usage)",
205
- "Number of completion queues created for cq_callback (indicates callback "
206
- "api usage)",
207
- "Number of wrr updates that have been received",
208
- "Number of items enqueued onto work serializers",
209
- "Number of items dequeued from work serializers",
210
- "Number of ECONNABORTED errors",
211
- "Number of ECONNRESET errors",
212
- "Number of EPIPE errors",
213
- "Number of ETIMEDOUT errors",
214
- "Number of ECONNREFUSED errors",
215
- "Number of ENETUNREACH errors",
216
- "Number of ENOMSG errors",
217
- "Number of ENOTCONN errors",
218
- "Number of ENOBUFS errors",
219
- "Number of uncommon io errors",
220
- "Number of uncommon errors returned by MSG_ERRQUEUE",
221
- };
222
- const absl::string_view
223
- GlobalStats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
224
- "call_initial_size",
225
- "tcp_write_size",
226
- "tcp_write_iov_size",
227
- "tcp_read_size",
228
- "tcp_read_offer",
229
- "tcp_read_offer_iov_size",
230
- "http2_send_message_size",
231
- "http2_metadata_size",
232
- "http2_hpack_entry_lifetime",
233
- "http2_header_table_size",
234
- "http2_initial_window_size",
235
- "http2_max_concurrent_streams",
236
- "http2_max_frame_size",
237
- "http2_max_header_list_size",
238
- "http2_preferred_receive_crypto_message_size",
239
- "http2_stream_remote_window_update",
240
- "http2_transport_remote_window_update",
241
- "http2_transport_window_update_period",
242
- "http2_stream_window_update_period",
243
- "http2_write_target_size",
244
- "http2_write_data_frame_size",
245
- "http2_read_data_frame_size",
246
- "wrr_subchannel_list_size",
247
- "wrr_subchannel_ready_size",
248
- "work_serializer_run_time_ms",
249
- "work_serializer_work_time_ms",
250
- "work_serializer_work_time_per_item_ms",
251
- "work_serializer_items_per_run",
252
- "chaotic_good_sendmsgs_per_write_control",
253
- "chaotic_good_recvmsgs_per_read_control",
254
- "chaotic_good_sendmsgs_per_write_data",
255
- "chaotic_good_recvmsgs_per_read_data",
256
- "chaotic_good_thread_hops_per_write_control",
257
- "chaotic_good_thread_hops_per_read_control",
258
- "chaotic_good_thread_hops_per_write_data",
259
- "chaotic_good_thread_hops_per_read_data",
260
- "chaotic_good_tcp_read_size_data",
261
- "chaotic_good_tcp_read_size_control",
262
- "chaotic_good_tcp_read_offer_data",
263
- "chaotic_good_tcp_read_offer_control",
264
- "chaotic_good_tcp_write_size_data",
265
- "chaotic_good_tcp_write_size_control",
266
- };
267
- const absl::string_view GlobalStats::histogram_doc[static_cast<int>(
268
- Histogram::COUNT)] = {
269
- "Initial size of the grpc_call arena created at call start",
270
- "Number of bytes offered to each syscall_write",
271
- "Number of byte segments offered to each syscall_write",
272
- "Number of bytes received by each syscall_read",
273
- "Number of bytes offered to each syscall_read",
274
- "Number of byte segments offered to each syscall_read",
275
- "Size of messages received by HTTP2 transport",
276
- "Number of bytes consumed by metadata, according to HPACK accounting rules",
277
- "Lifetime of HPACK entries in the cache (in milliseconds)",
278
- "Http2 header table size received through SETTINGS frame",
279
- "Http2 initial window size received through SETTINGS frame",
280
- "Http2 max concurrent streams received through SETTINGS frame",
281
- "Http2 max frame size received through SETTINGS frame",
282
- "Http2 max header list size received through SETTINGS frame",
283
- "Http2 preferred receive crypto message size received through SETTINGS "
284
- "frame",
285
- "Stream window update sent by peer",
286
- "Transport window update sent by peer",
287
- "Period in milliseconds at which peer sends transport window update",
288
- "Period in milliseconds at which peer sends stream window update",
289
- "Number of bytes targetted for http2 writes",
290
- "Number of bytes for each data frame written",
291
- "Number of bytes for each data frame read",
292
- "Number of subchannels in a subchannel list at picker creation time",
293
- "Number of READY subchannels in a subchannel list at picker creation time",
294
- "Number of milliseconds work serializers run for",
295
- "When running, how many milliseconds are work serializers actually doing "
296
- "work",
297
- "How long do individual items take to process in work serializers",
298
- "How many callbacks are executed when a work serializer runs",
299
- "Number of sendmsgs per control channel endpoint write",
300
- "Number of recvmsgs per control channel endpoint read",
301
- "Number of sendmsgs per data channel endpoint write",
302
- "Number of recvmsgs per data channel endpoint read",
303
- "Number of thread hops per control channel endpoint write",
304
- "Number of thread hops per control channel endpoint read",
305
- "Number of thread hops per data channel endpoint write",
306
- "Number of thread hops per data channel endpoint read",
307
- "Number of bytes received by each syscall_read in the data channel",
308
- "Number of bytes received by each syscall_read in the control channel",
309
- "Number of bytes offered to each syscall_read in the data channel",
310
- "Number of bytes offered to each syscall_read in the control channel",
311
- "Number of bytes offered to each syscall_write in the data channel",
312
- "Number of bytes offered to each syscall_write in the control channel",
313
- };
314
139
  namespace {
315
- const int kStatsTable0[21] = {0, 1, 2, 4, 8, 15, 27,
140
+ const int kStatsTable0[21] = {
141
+ 0, 1, 3, 8, 19, 45, 106,
142
+ 250, 588, 1383, 3252, 7646, 17976, 42262,
143
+ 99359, 233593, 549177, 1291113, 3035402, 7136218, 16777216};
144
+ const uint8_t kStatsTable1[23] = {2, 3, 3, 4, 5, 6, 7, 8,
145
+ 8, 9, 10, 11, 12, 12, 13, 14,
146
+ 15, 16, 16, 17, 18, 19, 20};
147
+ const int kStatsTable2[21] = {0, 1, 2, 4, 8, 15, 27,
316
148
  49, 89, 160, 288, 517, 928, 1666,
317
149
  2991, 5369, 9637, 17297, 31045, 55719, 100000};
318
- const uint8_t kStatsTable1[30] = {3, 3, 4, 4, 5, 6, 6, 7, 7, 8,
150
+ const uint8_t kStatsTable3[30] = {3, 3, 4, 4, 5, 6, 6, 7, 7, 8,
319
151
  9, 9, 10, 10, 11, 11, 12, 13, 13, 14,
320
152
  15, 15, 16, 16, 17, 17, 18, 19, 19, 20};
321
- const int kStatsTable2[27] = {0, 1, 2, 4, 7, 11, 17,
153
+ const int kStatsTable4[21] = {0, 1, 2, 4, 7, 12, 19,
154
+ 30, 47, 74, 116, 182, 285, 445,
155
+ 695, 1084, 1691, 2637, 4113, 6414, 10000};
156
+ const uint8_t kStatsTable5[23] = {3, 3, 4, 5, 5, 6, 7, 8,
157
+ 9, 9, 10, 11, 12, 12, 13, 14,
158
+ 15, 15, 16, 17, 18, 18, 19};
159
+ const int kStatsTable6[27] = {0, 1, 2, 4, 7, 11, 17,
322
160
  26, 40, 61, 92, 139, 210, 317,
323
161
  478, 721, 1087, 1638, 2468, 3719, 5604,
324
162
  8443, 12721, 19166, 28875, 43502, 65536};
325
- const uint8_t kStatsTable3[29] = {3, 3, 4, 5, 6, 6, 7, 8, 9, 10,
163
+ const uint8_t kStatsTable7[29] = {3, 3, 4, 5, 6, 6, 7, 8, 9, 10,
326
164
  11, 11, 12, 13, 14, 15, 16, 16, 17, 18,
327
165
  19, 20, 21, 21, 22, 23, 24, 25, 26};
328
- const int kStatsTable4[21] = {0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17,
329
- 21, 25, 30, 36, 43, 51, 61, 72, 85, 100};
330
- const uint8_t kStatsTable5[16] = {6, 6, 7, 8, 9, 9, 10, 11,
331
- 12, 13, 14, 15, 16, 17, 18, 19};
332
- const int kStatsTable6[21] = {
333
- 0, 1, 3, 8, 19, 45, 106,
334
- 250, 588, 1383, 3252, 7646, 17976, 42262,
335
- 99359, 233593, 549177, 1291113, 3035402, 7136218, 16777216};
336
- const uint8_t kStatsTable7[23] = {2, 3, 3, 4, 5, 6, 7, 8,
337
- 8, 9, 10, 11, 12, 12, 13, 14,
338
- 15, 16, 16, 17, 18, 19, 20};
339
- const int kStatsTable8[11] = {0, 1, 2, 4, 7, 11, 17, 26, 38, 56, 80};
340
- const uint8_t kStatsTable9[9] = {3, 3, 4, 5, 6, 6, 7, 8, 9};
341
- const int kStatsTable10[21] = {0, 1, 2, 4, 7, 12, 19,
342
- 30, 47, 74, 116, 182, 285, 445,
343
- 695, 1084, 1691, 2637, 4113, 6414, 10000};
344
- const uint8_t kStatsTable11[23] = {3, 3, 4, 5, 5, 6, 7, 8,
345
- 9, 9, 10, 11, 12, 12, 13, 14,
346
- 15, 15, 16, 17, 18, 18, 19};
347
- const int kStatsTable12[41] = {
348
- 0, 1, 2, 3, 5, 8, 12, 18, 26,
349
- 37, 53, 76, 108, 153, 217, 308, 436, 617,
350
- 873, 1235, 1748, 2473, 3499, 4950, 7003, 9907, 14015,
351
- 19825, 28044, 39670, 56116, 79379, 112286, 158835, 224680, 317821,
352
- 449574, 635945, 899575, 1272492, 1800000};
353
- const uint8_t kStatsTable13[37] = {
354
- 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
355
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39};
356
- const int kStatsTable14[51] = {
166
+ const int kStatsTable8[9] = {0, 1, 11, 119, 1275,
167
+ 13656, 146259, 1566467, 16777216};
168
+ const uint8_t kStatsTable9[11] = {2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 8};
169
+ const int kStatsTable10[21] = {0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17,
170
+ 21, 25, 30, 36, 43, 51, 61, 72, 85, 100};
171
+ const uint8_t kStatsTable11[16] = {6, 6, 7, 8, 9, 9, 10, 11,
172
+ 12, 13, 14, 15, 16, 17, 18, 19};
173
+ const int kStatsTable12[51] = {
357
174
  0, 1, 2, 3, 5, 7, 10, 14,
358
175
  20, 28, 39, 54, 75, 104, 144, 200,
359
176
  277, 383, 530, 733, 1014, 1402, 1939, 2681,
@@ -361,33 +178,44 @@ const int kStatsTable14[51] = {
361
178
  49412, 68303, 94416, 130512, 180408, 249380, 344720, 476509,
362
179
  658682, 910501, 1258592, 1739760, 2404882, 3324285, 4595181, 6351949,
363
180
  8780340, 12137120, 16777216};
364
- const uint8_t kStatsTable15[88] = {
181
+ const uint8_t kStatsTable13[88] = {
365
182
  4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 12, 12, 13,
366
183
  13, 14, 14, 15, 15, 16, 16, 17, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22,
367
184
  23, 23, 24, 24, 25, 25, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32,
368
185
  32, 33, 33, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 42,
369
186
  42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 50, 50};
187
+ const int kStatsTable14[11] = {0, 1, 2, 4, 7, 11, 17, 26, 38, 56, 80};
188
+ const uint8_t kStatsTable15[9] = {3, 3, 4, 5, 6, 6, 7, 8, 9};
189
+ const int kStatsTable16[41] = {
190
+ 0, 1, 2, 3, 5, 8, 12, 18, 26,
191
+ 37, 53, 76, 108, 153, 217, 308, 436, 617,
192
+ 873, 1235, 1748, 2473, 3499, 4950, 7003, 9907, 14015,
193
+ 19825, 28044, 39670, 56116, 79379, 112286, 158835, 224680, 317821,
194
+ 449574, 635945, 899575, 1272492, 1800000};
195
+ const uint8_t kStatsTable17[37] = {
196
+ 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
197
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39};
370
198
  } // namespace
371
- int Histogram_100000_20::BucketFor(int value) {
372
- if (value < 3) {
199
+ int Histogram_16777216_20_64::BucketFor(int value) {
200
+ if (value < 2) {
373
201
  if (value < 0) {
374
202
  return 0;
375
203
  } else {
376
204
  return value;
377
205
  }
378
206
  } else {
379
- if (value < 65537) {
207
+ if (value < 8388609) {
380
208
  DblUint val;
381
209
  val.dbl = value;
382
210
  const int bucket =
383
- kStatsTable1[((val.uint - 4613937818241073152ull) >> 51)];
211
+ kStatsTable1[((val.uint - 4611686018427387904ull) >> 52)];
384
212
  return bucket - (value < kStatsTable0[bucket]);
385
213
  } else {
386
214
  return 19;
387
215
  }
388
216
  }
389
217
  }
390
- int Histogram_65536_26::BucketFor(int value) {
218
+ int Histogram_100000_20_64::BucketFor(int value) {
391
219
  if (value < 3) {
392
220
  if (value < 0) {
393
221
  return 0;
@@ -395,33 +223,33 @@ int Histogram_65536_26::BucketFor(int value) {
395
223
  return value;
396
224
  }
397
225
  } else {
398
- if (value < 49153) {
226
+ if (value < 65537) {
399
227
  DblUint val;
400
228
  val.dbl = value;
401
229
  const int bucket =
402
230
  kStatsTable3[((val.uint - 4613937818241073152ull) >> 51)];
403
231
  return bucket - (value < kStatsTable2[bucket]);
404
232
  } else {
405
- return 25;
233
+ return 19;
406
234
  }
407
235
  }
408
236
  }
409
- int Histogram_100_20::BucketFor(int value) {
410
- if (value < 6) {
237
+ int Histogram_10000_20_64::BucketFor(int value) {
238
+ if (value < 3) {
411
239
  if (value < 0) {
412
240
  return 0;
413
241
  } else {
414
242
  return value;
415
243
  }
416
244
  } else {
417
- if (value < 81) {
245
+ if (value < 6145) {
418
246
  DblUint val;
419
247
  val.dbl = value;
420
248
  const int bucket =
421
- kStatsTable5[((val.uint - 4618441417868443648ull) >> 50)];
249
+ kStatsTable5[((val.uint - 4613937818241073152ull) >> 51)];
422
250
  return bucket - (value < kStatsTable4[bucket]);
423
251
  } else {
424
- if (value < 85) {
252
+ if (value < 6414) {
425
253
  return 18;
426
254
  } else {
427
255
  return 19;
@@ -429,64 +257,60 @@ int Histogram_100_20::BucketFor(int value) {
429
257
  }
430
258
  }
431
259
  }
432
- int Histogram_16777216_20::BucketFor(int value) {
433
- if (value < 2) {
260
+ int Histogram_65536_26_64::BucketFor(int value) {
261
+ if (value < 3) {
434
262
  if (value < 0) {
435
263
  return 0;
436
264
  } else {
437
265
  return value;
438
266
  }
439
267
  } else {
440
- if (value < 8388609) {
268
+ if (value < 49153) {
441
269
  DblUint val;
442
270
  val.dbl = value;
443
271
  const int bucket =
444
- kStatsTable7[((val.uint - 4611686018427387904ull) >> 52)];
272
+ kStatsTable7[((val.uint - 4613937818241073152ull) >> 51)];
445
273
  return bucket - (value < kStatsTable6[bucket]);
446
274
  } else {
447
- return 19;
275
+ return 25;
448
276
  }
449
277
  }
450
278
  }
451
- int Histogram_80_10::BucketFor(int value) {
452
- if (value < 3) {
279
+ int Histogram_16777216_8_8::BucketFor(int value) {
280
+ if (value < 2) {
453
281
  if (value < 0) {
454
282
  return 0;
455
283
  } else {
456
284
  return value;
457
285
  }
458
286
  } else {
459
- if (value < 49) {
287
+ if (value < 2097153) {
460
288
  DblUint val;
461
289
  val.dbl = value;
462
290
  const int bucket =
463
- kStatsTable9[((val.uint - 4613937818241073152ull) >> 51)];
291
+ kStatsTable9[((val.uint - 4611686018427387904ull) >> 53)];
464
292
  return bucket - (value < kStatsTable8[bucket]);
465
293
  } else {
466
- if (value < 56) {
467
- return 8;
468
- } else {
469
- return 9;
470
- }
294
+ return 7;
471
295
  }
472
296
  }
473
297
  }
474
- int Histogram_10000_20::BucketFor(int value) {
475
- if (value < 3) {
298
+ int Histogram_100_20_64::BucketFor(int value) {
299
+ if (value < 6) {
476
300
  if (value < 0) {
477
301
  return 0;
478
302
  } else {
479
303
  return value;
480
304
  }
481
305
  } else {
482
- if (value < 6145) {
306
+ if (value < 81) {
483
307
  DblUint val;
484
308
  val.dbl = value;
485
309
  const int bucket =
486
- kStatsTable11[((val.uint - 4613937818241073152ull) >> 51)];
310
+ kStatsTable11[((val.uint - 4618441417868443648ull) >> 50)];
487
311
  return bucket - (value < kStatsTable10[bucket]);
488
312
  } else {
489
- if (value < 6414) {
313
+ if (value < 85) {
490
314
  return 18;
491
315
  } else {
492
316
  return 19;
@@ -494,7 +318,7 @@ int Histogram_10000_20::BucketFor(int value) {
494
318
  }
495
319
  }
496
320
  }
497
- int Histogram_1800000_40::BucketFor(int value) {
321
+ int Histogram_16777216_50_64::BucketFor(int value) {
498
322
  if (value < 4) {
499
323
  if (value < 0) {
500
324
  return 0;
@@ -502,40 +326,192 @@ int Histogram_1800000_40::BucketFor(int value) {
502
326
  return value;
503
327
  }
504
328
  } else {
505
- if (value < 1048577) {
329
+ if (value < 14680065) {
506
330
  DblUint val;
507
331
  val.dbl = value;
508
332
  const int bucket =
509
- kStatsTable13[((val.uint - 4616189618054758400ull) >> 51)];
333
+ kStatsTable13[((val.uint - 4616189618054758400ull) >> 50)];
510
334
  return bucket - (value < kStatsTable12[bucket]);
511
335
  } else {
512
- if (value < 1272492) {
513
- return 38;
514
- } else {
515
- return 39;
516
- }
336
+ return 49;
517
337
  }
518
338
  }
519
339
  }
520
- int Histogram_16777216_50::BucketFor(int value) {
521
- if (value < 4) {
340
+ int Histogram_80_10_64::BucketFor(int value) {
341
+ if (value < 3) {
522
342
  if (value < 0) {
523
343
  return 0;
524
344
  } else {
525
345
  return value;
526
346
  }
527
347
  } else {
528
- if (value < 14680065) {
348
+ if (value < 49) {
529
349
  DblUint val;
530
350
  val.dbl = value;
531
351
  const int bucket =
532
- kStatsTable15[((val.uint - 4616189618054758400ull) >> 50)];
352
+ kStatsTable15[((val.uint - 4613937818241073152ull) >> 51)];
533
353
  return bucket - (value < kStatsTable14[bucket]);
534
354
  } else {
535
- return 49;
355
+ if (value < 56) {
356
+ return 8;
357
+ } else {
358
+ return 9;
359
+ }
360
+ }
361
+ }
362
+ }
363
+ int Histogram_1800000_40_64::BucketFor(int value) {
364
+ if (value < 4) {
365
+ if (value < 0) {
366
+ return 0;
367
+ } else {
368
+ return value;
369
+ }
370
+ } else {
371
+ if (value < 1048577) {
372
+ DblUint val;
373
+ val.dbl = value;
374
+ const int bucket =
375
+ kStatsTable17[((val.uint - 4616189618054758400ull) >> 51)];
376
+ return bucket - (value < kStatsTable16[bucket]);
377
+ } else {
378
+ if (value < 1272492) {
379
+ return 38;
380
+ } else {
381
+ return 39;
382
+ }
536
383
  }
537
384
  }
538
385
  }
386
+ const absl::string_view
387
+ GlobalStats::counter_name[static_cast<int>(Counter::COUNT)] = {
388
+ "client_calls_created",
389
+ "server_calls_created",
390
+ "client_channels_created",
391
+ "client_subchannels_created",
392
+ "server_channels_created",
393
+ "insecure_connections_created",
394
+ "rq_connections_dropped",
395
+ "rq_calls_dropped",
396
+ "rq_calls_rejected",
397
+ "syscall_write",
398
+ "syscall_read",
399
+ "tcp_read_alloc_8k",
400
+ "tcp_read_alloc_64k",
401
+ "cq_pluck_creates",
402
+ "cq_next_creates",
403
+ "cq_callback_creates",
404
+ "wrr_updates",
405
+ "work_serializer_items_enqueued",
406
+ "work_serializer_items_dequeued",
407
+ "econnaborted_count",
408
+ "econnreset_count",
409
+ "epipe_count",
410
+ "etimedout_count",
411
+ "econnrefused_count",
412
+ "enetunreach_count",
413
+ "enomsg_count",
414
+ "enotconn_count",
415
+ "enobufs_count",
416
+ "uncommon_io_error_count",
417
+ "msg_errqueue_error_count",
418
+ };
419
+ const absl::string_view GlobalStats::counter_doc[static_cast<int>(
420
+ Counter::COUNT)] = {
421
+ "Number of client side calls created by this process",
422
+ "Number of server side calls created by this process",
423
+ "Number of client channels created",
424
+ "Number of client subchannels created",
425
+ "Number of server channels created",
426
+ "Number of insecure connections created",
427
+ "Number of connections dropped due to resource quota exceeded",
428
+ "Number of calls dropped due to resource quota exceeded",
429
+ "Number of calls rejected (never started) due to resource quota exceeded",
430
+ "Number of write syscalls (or equivalent - eg sendmsg) made by this "
431
+ "process",
432
+ "Number of read syscalls (or equivalent - eg recvmsg) made by this process",
433
+ "Number of 8k allocations by the TCP subsystem for reading",
434
+ "Number of 64k allocations by the TCP subsystem for reading",
435
+ "Number of completion queues created for cq_pluck (indicates sync api "
436
+ "usage)",
437
+ "Number of completion queues created for cq_next (indicates cq async api "
438
+ "usage)",
439
+ "Number of completion queues created for cq_callback (indicates callback "
440
+ "api usage)",
441
+ "Number of wrr updates that have been received",
442
+ "Number of items enqueued onto work serializers",
443
+ "Number of items dequeued from work serializers",
444
+ "Number of ECONNABORTED errors",
445
+ "Number of ECONNRESET errors",
446
+ "Number of EPIPE errors",
447
+ "Number of ETIMEDOUT errors",
448
+ "Number of ECONNREFUSED errors",
449
+ "Number of ENETUNREACH errors",
450
+ "Number of ENOMSG errors",
451
+ "Number of ENOTCONN errors",
452
+ "Number of ENOBUFS errors",
453
+ "Number of uncommon io errors",
454
+ "Number of uncommon errors returned by MSG_ERRQUEUE",
455
+ };
456
+ const absl::string_view
457
+ GlobalStats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
458
+ "call_initial_size",
459
+ "tcp_write_size",
460
+ "tcp_write_iov_size",
461
+ "tcp_read_size",
462
+ "tcp_read_offer",
463
+ "tcp_read_offer_iov_size",
464
+ "wrr_subchannel_list_size",
465
+ "wrr_subchannel_ready_size",
466
+ "work_serializer_run_time_ms",
467
+ "work_serializer_work_time_ms",
468
+ "work_serializer_work_time_per_item_ms",
469
+ "work_serializer_items_per_run",
470
+ "chaotic_good_sendmsgs_per_write_control",
471
+ "chaotic_good_recvmsgs_per_read_control",
472
+ "chaotic_good_sendmsgs_per_write_data",
473
+ "chaotic_good_recvmsgs_per_read_data",
474
+ "chaotic_good_thread_hops_per_write_control",
475
+ "chaotic_good_thread_hops_per_read_control",
476
+ "chaotic_good_thread_hops_per_write_data",
477
+ "chaotic_good_thread_hops_per_read_data",
478
+ "chaotic_good_tcp_read_size_data",
479
+ "chaotic_good_tcp_read_size_control",
480
+ "chaotic_good_tcp_read_offer_data",
481
+ "chaotic_good_tcp_read_offer_control",
482
+ "chaotic_good_tcp_write_size_data",
483
+ "chaotic_good_tcp_write_size_control",
484
+ };
485
+ const absl::string_view GlobalStats::histogram_doc[static_cast<int>(
486
+ Histogram::COUNT)] = {
487
+ "Initial size of the grpc_call arena created at call start",
488
+ "Number of bytes offered to each syscall_write",
489
+ "Number of byte segments offered to each syscall_write",
490
+ "Number of bytes received by each syscall_read",
491
+ "Number of bytes offered to each syscall_read",
492
+ "Number of byte segments offered to each syscall_read",
493
+ "Number of subchannels in a subchannel list at picker creation time",
494
+ "Number of READY subchannels in a subchannel list at picker creation time",
495
+ "Number of milliseconds work serializers run for",
496
+ "When running, how many milliseconds are work serializers actually doing "
497
+ "work",
498
+ "How long do individual items take to process in work serializers",
499
+ "How many callbacks are executed when a work serializer runs",
500
+ "Number of sendmsgs per control channel endpoint write",
501
+ "Number of recvmsgs per control channel endpoint read",
502
+ "Number of sendmsgs per data channel endpoint write",
503
+ "Number of recvmsgs per data channel endpoint read",
504
+ "Number of thread hops per control channel endpoint write",
505
+ "Number of thread hops per control channel endpoint read",
506
+ "Number of thread hops per data channel endpoint write",
507
+ "Number of thread hops per data channel endpoint read",
508
+ "Number of bytes received by each syscall_read in the data channel",
509
+ "Number of bytes received by each syscall_read in the control channel",
510
+ "Number of bytes offered to each syscall_read in the data channel",
511
+ "Number of bytes offered to each syscall_read in the control channel",
512
+ "Number of bytes offered to each syscall_write in the data channel",
513
+ "Number of bytes offered to each syscall_write in the control channel",
514
+ };
539
515
  GlobalStats::GlobalStats()
540
516
  : client_calls_created{0},
541
517
  server_calls_created{0},
@@ -550,13 +526,6 @@ GlobalStats::GlobalStats()
550
526
  syscall_read{0},
551
527
  tcp_read_alloc_8k{0},
552
528
  tcp_read_alloc_64k{0},
553
- http2_settings_writes{0},
554
- http2_pings_sent{0},
555
- http2_writes_begun{0},
556
- http2_transport_stalls{0},
557
- http2_stream_stalls{0},
558
- http2_hpack_hits{0},
559
- http2_hpack_misses{0},
560
529
  cq_pluck_creates{0},
561
530
  cq_next_creates{0},
562
531
  cq_callback_creates{0},
@@ -579,133 +548,84 @@ HistogramView GlobalStats::histogram(Histogram which) const {
579
548
  default:
580
549
  GPR_UNREACHABLE_CODE(return HistogramView());
581
550
  case Histogram::kCallInitialSize:
582
- return HistogramView{&Histogram_65536_26::BucketFor, kStatsTable2, 26,
551
+ return HistogramView{&Histogram_65536_26_64::BucketFor, kStatsTable6, 26,
583
552
  call_initial_size.buckets()};
584
553
  case Histogram::kTcpWriteSize:
585
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
586
- tcp_write_size.buckets()};
554
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
555
+ 20, tcp_write_size.buckets()};
587
556
  case Histogram::kTcpWriteIovSize:
588
- return HistogramView{&Histogram_80_10::BucketFor, kStatsTable8, 10,
557
+ return HistogramView{&Histogram_80_10_64::BucketFor, kStatsTable14, 10,
589
558
  tcp_write_iov_size.buckets()};
590
559
  case Histogram::kTcpReadSize:
591
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
592
- tcp_read_size.buckets()};
560
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
561
+ 20, tcp_read_size.buckets()};
593
562
  case Histogram::kTcpReadOffer:
594
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
595
- tcp_read_offer.buckets()};
563
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
564
+ 20, tcp_read_offer.buckets()};
596
565
  case Histogram::kTcpReadOfferIovSize:
597
- return HistogramView{&Histogram_80_10::BucketFor, kStatsTable8, 10,
566
+ return HistogramView{&Histogram_80_10_64::BucketFor, kStatsTable14, 10,
598
567
  tcp_read_offer_iov_size.buckets()};
599
- case Histogram::kHttp2SendMessageSize:
600
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
601
- http2_send_message_size.buckets()};
602
- case Histogram::kHttp2MetadataSize:
603
- return HistogramView{&Histogram_65536_26::BucketFor, kStatsTable2, 26,
604
- http2_metadata_size.buckets()};
605
- case Histogram::kHttp2HpackEntryLifetime:
606
- return HistogramView{&Histogram_1800000_40::BucketFor, kStatsTable12, 40,
607
- http2_hpack_entry_lifetime.buckets()};
608
- case Histogram::kHttp2HeaderTableSize:
609
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
610
- http2_header_table_size.buckets()};
611
- case Histogram::kHttp2InitialWindowSize:
612
- return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
613
- http2_initial_window_size.buckets()};
614
- case Histogram::kHttp2MaxConcurrentStreams:
615
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
616
- http2_max_concurrent_streams.buckets()};
617
- case Histogram::kHttp2MaxFrameSize:
618
- return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
619
- http2_max_frame_size.buckets()};
620
- case Histogram::kHttp2MaxHeaderListSize:
621
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
622
- http2_max_header_list_size.buckets()};
623
- case Histogram::kHttp2PreferredReceiveCryptoMessageSize:
624
- return HistogramView{
625
- &Histogram_16777216_20::BucketFor, kStatsTable6, 20,
626
- http2_preferred_receive_crypto_message_size.buckets()};
627
- case Histogram::kHttp2StreamRemoteWindowUpdate:
628
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
629
- http2_stream_remote_window_update.buckets()};
630
- case Histogram::kHttp2TransportRemoteWindowUpdate:
631
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
632
- http2_transport_remote_window_update.buckets()};
633
- case Histogram::kHttp2TransportWindowUpdatePeriod:
634
- return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
635
- http2_transport_window_update_period.buckets()};
636
- case Histogram::kHttp2StreamWindowUpdatePeriod:
637
- return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
638
- http2_stream_window_update_period.buckets()};
639
- case Histogram::kHttp2WriteTargetSize:
640
- return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
641
- http2_write_target_size.buckets()};
642
- case Histogram::kHttp2WriteDataFrameSize:
643
- return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
644
- http2_write_data_frame_size.buckets()};
645
- case Histogram::kHttp2ReadDataFrameSize:
646
- return HistogramView{&Histogram_16777216_50::BucketFor, kStatsTable14, 50,
647
- http2_read_data_frame_size.buckets()};
648
568
  case Histogram::kWrrSubchannelListSize:
649
- return HistogramView{&Histogram_10000_20::BucketFor, kStatsTable10, 20,
569
+ return HistogramView{&Histogram_10000_20_64::BucketFor, kStatsTable4, 20,
650
570
  wrr_subchannel_list_size.buckets()};
651
571
  case Histogram::kWrrSubchannelReadySize:
652
- return HistogramView{&Histogram_10000_20::BucketFor, kStatsTable10, 20,
572
+ return HistogramView{&Histogram_10000_20_64::BucketFor, kStatsTable4, 20,
653
573
  wrr_subchannel_ready_size.buckets()};
654
574
  case Histogram::kWorkSerializerRunTimeMs:
655
- return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
575
+ return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
656
576
  work_serializer_run_time_ms.buckets()};
657
577
  case Histogram::kWorkSerializerWorkTimeMs:
658
- return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
578
+ return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
659
579
  work_serializer_work_time_ms.buckets()};
660
580
  case Histogram::kWorkSerializerWorkTimePerItemMs:
661
- return HistogramView{&Histogram_100000_20::BucketFor, kStatsTable0, 20,
581
+ return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
662
582
  work_serializer_work_time_per_item_ms.buckets()};
663
583
  case Histogram::kWorkSerializerItemsPerRun:
664
- return HistogramView{&Histogram_10000_20::BucketFor, kStatsTable10, 20,
584
+ return HistogramView{&Histogram_10000_20_64::BucketFor, kStatsTable4, 20,
665
585
  work_serializer_items_per_run.buckets()};
666
586
  case Histogram::kChaoticGoodSendmsgsPerWriteControl:
667
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
587
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
668
588
  chaotic_good_sendmsgs_per_write_control.buckets()};
669
589
  case Histogram::kChaoticGoodRecvmsgsPerReadControl:
670
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
590
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
671
591
  chaotic_good_recvmsgs_per_read_control.buckets()};
672
592
  case Histogram::kChaoticGoodSendmsgsPerWriteData:
673
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
593
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
674
594
  chaotic_good_sendmsgs_per_write_data.buckets()};
675
595
  case Histogram::kChaoticGoodRecvmsgsPerReadData:
676
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
596
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
677
597
  chaotic_good_recvmsgs_per_read_data.buckets()};
678
598
  case Histogram::kChaoticGoodThreadHopsPerWriteControl:
679
599
  return HistogramView{
680
- &Histogram_100_20::BucketFor, kStatsTable4, 20,
600
+ &Histogram_100_20_64::BucketFor, kStatsTable10, 20,
681
601
  chaotic_good_thread_hops_per_write_control.buckets()};
682
602
  case Histogram::kChaoticGoodThreadHopsPerReadControl:
683
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
603
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
684
604
  chaotic_good_thread_hops_per_read_control.buckets()};
685
605
  case Histogram::kChaoticGoodThreadHopsPerWriteData:
686
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
606
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
687
607
  chaotic_good_thread_hops_per_write_data.buckets()};
688
608
  case Histogram::kChaoticGoodThreadHopsPerReadData:
689
- return HistogramView{&Histogram_100_20::BucketFor, kStatsTable4, 20,
609
+ return HistogramView{&Histogram_100_20_64::BucketFor, kStatsTable10, 20,
690
610
  chaotic_good_thread_hops_per_read_data.buckets()};
691
611
  case Histogram::kChaoticGoodTcpReadSizeData:
692
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
693
- chaotic_good_tcp_read_size_data.buckets()};
612
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
613
+ 20, chaotic_good_tcp_read_size_data.buckets()};
694
614
  case Histogram::kChaoticGoodTcpReadSizeControl:
695
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
696
- chaotic_good_tcp_read_size_control.buckets()};
615
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
616
+ 20, chaotic_good_tcp_read_size_control.buckets()};
697
617
  case Histogram::kChaoticGoodTcpReadOfferData:
698
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
699
- chaotic_good_tcp_read_offer_data.buckets()};
618
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
619
+ 20, chaotic_good_tcp_read_offer_data.buckets()};
700
620
  case Histogram::kChaoticGoodTcpReadOfferControl:
701
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
702
- chaotic_good_tcp_read_offer_control.buckets()};
621
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
622
+ 20, chaotic_good_tcp_read_offer_control.buckets()};
703
623
  case Histogram::kChaoticGoodTcpWriteSizeData:
704
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
705
- chaotic_good_tcp_write_size_data.buckets()};
624
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
625
+ 20, chaotic_good_tcp_write_size_data.buckets()};
706
626
  case Histogram::kChaoticGoodTcpWriteSizeControl:
707
- return HistogramView{&Histogram_16777216_20::BucketFor, kStatsTable6, 20,
708
- chaotic_good_tcp_write_size_control.buckets()};
627
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
628
+ 20, chaotic_good_tcp_write_size_control.buckets()};
709
629
  }
710
630
  }
711
631
  std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
@@ -735,20 +655,6 @@ std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
735
655
  data.tcp_read_alloc_8k.load(std::memory_order_relaxed);
736
656
  result->tcp_read_alloc_64k +=
737
657
  data.tcp_read_alloc_64k.load(std::memory_order_relaxed);
738
- result->http2_settings_writes +=
739
- data.http2_settings_writes.load(std::memory_order_relaxed);
740
- result->http2_pings_sent +=
741
- data.http2_pings_sent.load(std::memory_order_relaxed);
742
- result->http2_writes_begun +=
743
- data.http2_writes_begun.load(std::memory_order_relaxed);
744
- result->http2_transport_stalls +=
745
- data.http2_transport_stalls.load(std::memory_order_relaxed);
746
- result->http2_stream_stalls +=
747
- data.http2_stream_stalls.load(std::memory_order_relaxed);
748
- result->http2_hpack_hits +=
749
- data.http2_hpack_hits.load(std::memory_order_relaxed);
750
- result->http2_hpack_misses +=
751
- data.http2_hpack_misses.load(std::memory_order_relaxed);
752
658
  result->cq_pluck_creates +=
753
659
  data.cq_pluck_creates.load(std::memory_order_relaxed);
754
660
  result->cq_next_creates +=
@@ -785,32 +691,6 @@ std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
785
691
  data.tcp_read_size.Collect(&result->tcp_read_size);
786
692
  data.tcp_read_offer.Collect(&result->tcp_read_offer);
787
693
  data.tcp_read_offer_iov_size.Collect(&result->tcp_read_offer_iov_size);
788
- data.http2_send_message_size.Collect(&result->http2_send_message_size);
789
- data.http2_metadata_size.Collect(&result->http2_metadata_size);
790
- data.http2_hpack_entry_lifetime.Collect(
791
- &result->http2_hpack_entry_lifetime);
792
- data.http2_header_table_size.Collect(&result->http2_header_table_size);
793
- data.http2_initial_window_size.Collect(&result->http2_initial_window_size);
794
- data.http2_max_concurrent_streams.Collect(
795
- &result->http2_max_concurrent_streams);
796
- data.http2_max_frame_size.Collect(&result->http2_max_frame_size);
797
- data.http2_max_header_list_size.Collect(
798
- &result->http2_max_header_list_size);
799
- data.http2_preferred_receive_crypto_message_size.Collect(
800
- &result->http2_preferred_receive_crypto_message_size);
801
- data.http2_stream_remote_window_update.Collect(
802
- &result->http2_stream_remote_window_update);
803
- data.http2_transport_remote_window_update.Collect(
804
- &result->http2_transport_remote_window_update);
805
- data.http2_transport_window_update_period.Collect(
806
- &result->http2_transport_window_update_period);
807
- data.http2_stream_window_update_period.Collect(
808
- &result->http2_stream_window_update_period);
809
- data.http2_write_target_size.Collect(&result->http2_write_target_size);
810
- data.http2_write_data_frame_size.Collect(
811
- &result->http2_write_data_frame_size);
812
- data.http2_read_data_frame_size.Collect(
813
- &result->http2_read_data_frame_size);
814
694
  data.wrr_subchannel_list_size.Collect(&result->wrr_subchannel_list_size);
815
695
  data.wrr_subchannel_ready_size.Collect(&result->wrr_subchannel_ready_size);
816
696
  data.work_serializer_run_time_ms.Collect(
@@ -874,15 +754,6 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
874
754
  result->syscall_read = syscall_read - other.syscall_read;
875
755
  result->tcp_read_alloc_8k = tcp_read_alloc_8k - other.tcp_read_alloc_8k;
876
756
  result->tcp_read_alloc_64k = tcp_read_alloc_64k - other.tcp_read_alloc_64k;
877
- result->http2_settings_writes =
878
- http2_settings_writes - other.http2_settings_writes;
879
- result->http2_pings_sent = http2_pings_sent - other.http2_pings_sent;
880
- result->http2_writes_begun = http2_writes_begun - other.http2_writes_begun;
881
- result->http2_transport_stalls =
882
- http2_transport_stalls - other.http2_transport_stalls;
883
- result->http2_stream_stalls = http2_stream_stalls - other.http2_stream_stalls;
884
- result->http2_hpack_hits = http2_hpack_hits - other.http2_hpack_hits;
885
- result->http2_hpack_misses = http2_hpack_misses - other.http2_hpack_misses;
886
757
  result->cq_pluck_creates = cq_pluck_creates - other.cq_pluck_creates;
887
758
  result->cq_next_creates = cq_next_creates - other.cq_next_creates;
888
759
  result->cq_callback_creates = cq_callback_creates - other.cq_callback_creates;
@@ -911,42 +782,6 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
911
782
  result->tcp_read_offer = tcp_read_offer - other.tcp_read_offer;
912
783
  result->tcp_read_offer_iov_size =
913
784
  tcp_read_offer_iov_size - other.tcp_read_offer_iov_size;
914
- result->http2_send_message_size =
915
- http2_send_message_size - other.http2_send_message_size;
916
- result->http2_metadata_size = http2_metadata_size - other.http2_metadata_size;
917
- result->http2_hpack_entry_lifetime =
918
- http2_hpack_entry_lifetime - other.http2_hpack_entry_lifetime;
919
- result->http2_header_table_size =
920
- http2_header_table_size - other.http2_header_table_size;
921
- result->http2_initial_window_size =
922
- http2_initial_window_size - other.http2_initial_window_size;
923
- result->http2_max_concurrent_streams =
924
- http2_max_concurrent_streams - other.http2_max_concurrent_streams;
925
- result->http2_max_frame_size =
926
- http2_max_frame_size - other.http2_max_frame_size;
927
- result->http2_max_header_list_size =
928
- http2_max_header_list_size - other.http2_max_header_list_size;
929
- result->http2_preferred_receive_crypto_message_size =
930
- http2_preferred_receive_crypto_message_size -
931
- other.http2_preferred_receive_crypto_message_size;
932
- result->http2_stream_remote_window_update =
933
- http2_stream_remote_window_update -
934
- other.http2_stream_remote_window_update;
935
- result->http2_transport_remote_window_update =
936
- http2_transport_remote_window_update -
937
- other.http2_transport_remote_window_update;
938
- result->http2_transport_window_update_period =
939
- http2_transport_window_update_period -
940
- other.http2_transport_window_update_period;
941
- result->http2_stream_window_update_period =
942
- http2_stream_window_update_period -
943
- other.http2_stream_window_update_period;
944
- result->http2_write_target_size =
945
- http2_write_target_size - other.http2_write_target_size;
946
- result->http2_write_data_frame_size =
947
- http2_write_data_frame_size - other.http2_write_data_frame_size;
948
- result->http2_read_data_frame_size =
949
- http2_read_data_frame_size - other.http2_read_data_frame_size;
950
785
  result->wrr_subchannel_list_size =
951
786
  wrr_subchannel_list_size - other.wrr_subchannel_list_size;
952
787
  result->wrr_subchannel_ready_size =
@@ -1001,4 +836,237 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
1001
836
  other.chaotic_good_tcp_write_size_control;
1002
837
  return result;
1003
838
  }
839
+ const absl::string_view
840
+ Http2GlobalStats::counter_name[static_cast<int>(Counter::COUNT)] = {
841
+ "http2_settings_writes", "http2_pings_sent", "http2_transport_stalls",
842
+ "http2_stream_stalls", "http2_hpack_hits", "http2_hpack_misses",
843
+ "http2_writes_begun",
844
+ };
845
+ const absl::string_view
846
+ Http2GlobalStats::counter_doc[static_cast<int>(Counter::COUNT)] = {
847
+ "Number of settings frames sent",
848
+ "Number of HTTP2 pings sent by process",
849
+ "Number of times sending was completely stalled by the transport flow "
850
+ "control window",
851
+ "Number of times sending was completely stalled by the stream flow "
852
+ "control window",
853
+ "Number of HPACK cache hits",
854
+ "Number of HPACK cache misses (entries added but never used)",
855
+ "Number of HTTP2 writes initiated",
856
+ };
857
+ const absl::string_view
858
+ Http2GlobalStats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
859
+ "http2_send_message_size",
860
+ "http2_metadata_size",
861
+ "http2_hpack_entry_lifetime",
862
+ "http2_header_table_size",
863
+ "http2_initial_window_size",
864
+ "http2_max_concurrent_streams",
865
+ "http2_max_frame_size",
866
+ "http2_max_header_list_size",
867
+ "http2_preferred_receive_crypto_message_size",
868
+ "http2_stream_remote_window_update",
869
+ "http2_transport_remote_window_update",
870
+ "http2_transport_window_update_period",
871
+ "http2_stream_window_update_period",
872
+ "http2_write_data_frame_size",
873
+ "http2_read_data_frame_size",
874
+ "http2_write_target_size",
875
+ };
876
+ const absl::string_view Http2GlobalStats::histogram_doc[static_cast<int>(
877
+ Histogram::COUNT)] = {
878
+ "Size of messages received by HTTP2 transport",
879
+ "Number of bytes consumed by metadata, according to HPACK accounting rules",
880
+ "Lifetime of HPACK entries in the cache (in milliseconds)",
881
+ "Http2 header table size received through SETTINGS frame",
882
+ "Http2 initial window size received through SETTINGS frame",
883
+ "Http2 max concurrent streams received through SETTINGS frame",
884
+ "Http2 max frame size received through SETTINGS frame",
885
+ "Http2 max header list size received through SETTINGS frame",
886
+ "Http2 preferred receive crypto message size received through SETTINGS "
887
+ "frame",
888
+ "Stream window update sent by peer",
889
+ "Transport window update sent by peer",
890
+ "Period in milliseconds at which peer sends transport window update",
891
+ "Period in milliseconds at which peer sends stream window update",
892
+ "Number of bytes for each data frame written",
893
+ "Number of bytes for each data frame read",
894
+ "Number of bytes targeted for http2 writes",
895
+ };
896
+ Http2GlobalStats::Http2GlobalStats()
897
+ : http2_settings_writes{0},
898
+ http2_pings_sent{0},
899
+ http2_transport_stalls{0},
900
+ http2_stream_stalls{0},
901
+ http2_hpack_hits{0},
902
+ http2_hpack_misses{0},
903
+ http2_writes_begun{0} {}
904
+ HistogramView Http2GlobalStats::histogram(Histogram which) const {
905
+ switch (which) {
906
+ default:
907
+ GPR_UNREACHABLE_CODE(return HistogramView());
908
+ case Histogram::kHttp2SendMessageSize:
909
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
910
+ 20, http2_send_message_size.buckets()};
911
+ case Histogram::kHttp2MetadataSize:
912
+ return HistogramView{&Histogram_65536_26_64::BucketFor, kStatsTable6, 26,
913
+ http2_metadata_size.buckets()};
914
+ case Histogram::kHttp2HpackEntryLifetime:
915
+ return HistogramView{&Histogram_1800000_40_64::BucketFor, kStatsTable16,
916
+ 40, http2_hpack_entry_lifetime.buckets()};
917
+ case Histogram::kHttp2HeaderTableSize:
918
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
919
+ 20, http2_header_table_size.buckets()};
920
+ case Histogram::kHttp2InitialWindowSize:
921
+ return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
922
+ 50, http2_initial_window_size.buckets()};
923
+ case Histogram::kHttp2MaxConcurrentStreams:
924
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
925
+ 20, http2_max_concurrent_streams.buckets()};
926
+ case Histogram::kHttp2MaxFrameSize:
927
+ return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
928
+ 50, http2_max_frame_size.buckets()};
929
+ case Histogram::kHttp2MaxHeaderListSize:
930
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
931
+ 20, http2_max_header_list_size.buckets()};
932
+ case Histogram::kHttp2PreferredReceiveCryptoMessageSize:
933
+ return HistogramView{
934
+ &Histogram_16777216_20_64::BucketFor, kStatsTable0, 20,
935
+ http2_preferred_receive_crypto_message_size.buckets()};
936
+ case Histogram::kHttp2StreamRemoteWindowUpdate:
937
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
938
+ 20, http2_stream_remote_window_update.buckets()};
939
+ case Histogram::kHttp2TransportRemoteWindowUpdate:
940
+ return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
941
+ 20, http2_transport_remote_window_update.buckets()};
942
+ case Histogram::kHttp2TransportWindowUpdatePeriod:
943
+ return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
944
+ http2_transport_window_update_period.buckets()};
945
+ case Histogram::kHttp2StreamWindowUpdatePeriod:
946
+ return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
947
+ http2_stream_window_update_period.buckets()};
948
+ case Histogram::kHttp2WriteDataFrameSize:
949
+ return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
950
+ 50, http2_write_data_frame_size.buckets()};
951
+ case Histogram::kHttp2ReadDataFrameSize:
952
+ return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
953
+ 50, http2_read_data_frame_size.buckets()};
954
+ case Histogram::kHttp2WriteTargetSize:
955
+ return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
956
+ 50, http2_write_target_size.buckets()};
957
+ }
958
+ }
959
+ std::unique_ptr<Http2GlobalStats> Http2GlobalStatsCollector::Collect() const {
960
+ auto result = std::make_unique<Http2GlobalStats>();
961
+ for (const auto& data : data_) {
962
+ result->http2_settings_writes +=
963
+ data.http2_settings_writes.load(std::memory_order_relaxed);
964
+ result->http2_pings_sent +=
965
+ data.http2_pings_sent.load(std::memory_order_relaxed);
966
+ result->http2_transport_stalls +=
967
+ data.http2_transport_stalls.load(std::memory_order_relaxed);
968
+ result->http2_stream_stalls +=
969
+ data.http2_stream_stalls.load(std::memory_order_relaxed);
970
+ result->http2_hpack_hits +=
971
+ data.http2_hpack_hits.load(std::memory_order_relaxed);
972
+ result->http2_hpack_misses +=
973
+ data.http2_hpack_misses.load(std::memory_order_relaxed);
974
+ result->http2_writes_begun +=
975
+ data.http2_writes_begun.load(std::memory_order_relaxed);
976
+ data.http2_send_message_size.Collect(&result->http2_send_message_size);
977
+ data.http2_metadata_size.Collect(&result->http2_metadata_size);
978
+ data.http2_hpack_entry_lifetime.Collect(
979
+ &result->http2_hpack_entry_lifetime);
980
+ data.http2_header_table_size.Collect(&result->http2_header_table_size);
981
+ data.http2_initial_window_size.Collect(&result->http2_initial_window_size);
982
+ data.http2_max_concurrent_streams.Collect(
983
+ &result->http2_max_concurrent_streams);
984
+ data.http2_max_frame_size.Collect(&result->http2_max_frame_size);
985
+ data.http2_max_header_list_size.Collect(
986
+ &result->http2_max_header_list_size);
987
+ data.http2_preferred_receive_crypto_message_size.Collect(
988
+ &result->http2_preferred_receive_crypto_message_size);
989
+ data.http2_stream_remote_window_update.Collect(
990
+ &result->http2_stream_remote_window_update);
991
+ data.http2_transport_remote_window_update.Collect(
992
+ &result->http2_transport_remote_window_update);
993
+ data.http2_transport_window_update_period.Collect(
994
+ &result->http2_transport_window_update_period);
995
+ data.http2_stream_window_update_period.Collect(
996
+ &result->http2_stream_window_update_period);
997
+ data.http2_write_data_frame_size.Collect(
998
+ &result->http2_write_data_frame_size);
999
+ data.http2_read_data_frame_size.Collect(
1000
+ &result->http2_read_data_frame_size);
1001
+ data.http2_write_target_size.Collect(&result->http2_write_target_size);
1002
+ }
1003
+ return result;
1004
+ }
1005
+ std::unique_ptr<Http2GlobalStats> Http2GlobalStats::Diff(
1006
+ const Http2GlobalStats& other) const {
1007
+ auto result = std::make_unique<Http2GlobalStats>();
1008
+ result->http2_settings_writes =
1009
+ http2_settings_writes - other.http2_settings_writes;
1010
+ result->http2_pings_sent = http2_pings_sent - other.http2_pings_sent;
1011
+ result->http2_transport_stalls =
1012
+ http2_transport_stalls - other.http2_transport_stalls;
1013
+ result->http2_stream_stalls = http2_stream_stalls - other.http2_stream_stalls;
1014
+ result->http2_hpack_hits = http2_hpack_hits - other.http2_hpack_hits;
1015
+ result->http2_hpack_misses = http2_hpack_misses - other.http2_hpack_misses;
1016
+ result->http2_writes_begun = http2_writes_begun - other.http2_writes_begun;
1017
+ result->http2_send_message_size =
1018
+ http2_send_message_size - other.http2_send_message_size;
1019
+ result->http2_metadata_size = http2_metadata_size - other.http2_metadata_size;
1020
+ result->http2_hpack_entry_lifetime =
1021
+ http2_hpack_entry_lifetime - other.http2_hpack_entry_lifetime;
1022
+ result->http2_header_table_size =
1023
+ http2_header_table_size - other.http2_header_table_size;
1024
+ result->http2_initial_window_size =
1025
+ http2_initial_window_size - other.http2_initial_window_size;
1026
+ result->http2_max_concurrent_streams =
1027
+ http2_max_concurrent_streams - other.http2_max_concurrent_streams;
1028
+ result->http2_max_frame_size =
1029
+ http2_max_frame_size - other.http2_max_frame_size;
1030
+ result->http2_max_header_list_size =
1031
+ http2_max_header_list_size - other.http2_max_header_list_size;
1032
+ result->http2_preferred_receive_crypto_message_size =
1033
+ http2_preferred_receive_crypto_message_size -
1034
+ other.http2_preferred_receive_crypto_message_size;
1035
+ result->http2_stream_remote_window_update =
1036
+ http2_stream_remote_window_update -
1037
+ other.http2_stream_remote_window_update;
1038
+ result->http2_transport_remote_window_update =
1039
+ http2_transport_remote_window_update -
1040
+ other.http2_transport_remote_window_update;
1041
+ result->http2_transport_window_update_period =
1042
+ http2_transport_window_update_period -
1043
+ other.http2_transport_window_update_period;
1044
+ result->http2_stream_window_update_period =
1045
+ http2_stream_window_update_period -
1046
+ other.http2_stream_window_update_period;
1047
+ result->http2_write_data_frame_size =
1048
+ http2_write_data_frame_size - other.http2_write_data_frame_size;
1049
+ result->http2_read_data_frame_size =
1050
+ http2_read_data_frame_size - other.http2_read_data_frame_size;
1051
+ result->http2_write_target_size =
1052
+ http2_write_target_size - other.http2_write_target_size;
1053
+ return result;
1054
+ }
1055
+ const absl::string_view
1056
+ Http2Stats::counter_name[static_cast<int>(Counter::COUNT)] = {
1057
+ "http2_writes_begun",
1058
+ };
1059
+ const absl::string_view
1060
+ Http2Stats::counter_doc[static_cast<int>(Counter::COUNT)] = {
1061
+ "Number of HTTP2 writes initiated",
1062
+ };
1063
+ const absl::string_view
1064
+ Http2Stats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
1065
+ "http2_write_target_size",
1066
+ };
1067
+ const absl::string_view
1068
+ Http2Stats::histogram_doc[static_cast<int>(Histogram::COUNT)] = {
1069
+ "Number of bytes targeted for http2 writes",
1070
+ };
1071
+ Http2Stats::Http2Stats() : http2_writes_begun{0} {}
1004
1072
  } // namespace grpc_core