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
@@ -330,7 +330,7 @@ size_t GetPageSize() {
330
330
  GetSystemInfo(&system_info);
331
331
  return std::max(system_info.dwPageSize, system_info.dwAllocationGranularity);
332
332
  #elif defined(__wasm__) || defined(__asmjs__) || defined(__hexagon__)
333
- return getpagesize();
333
+ return static_cast<size_t>(getpagesize());
334
334
  #else
335
335
  return static_cast<size_t>(sysconf(_SC_PAGESIZE));
336
336
  #endif
@@ -448,8 +448,8 @@ static inline uintptr_t RoundUp(uintptr_t addr, uintptr_t align) {
448
448
  // that the freelist is in the correct order, that it
449
449
  // consists of regions marked "unallocated", and that no two regions
450
450
  // are adjacent in memory (they should have been coalesced).
451
- // L >= arena->mu
452
- static AllocList *Next(int i, AllocList *prev, LowLevelAlloc::Arena *arena) {
451
+ static AllocList *Next(int i, AllocList *prev, LowLevelAlloc::Arena *arena)
452
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(arena->mu) {
453
453
  ABSL_RAW_CHECK(i < prev->levels, "too few levels in Next()");
454
454
  AllocList *next = prev->next[i];
455
455
  if (next != nullptr) {
@@ -473,6 +473,7 @@ static void Coalesce(AllocList *a) {
473
473
  if (n != nullptr && reinterpret_cast<char *>(a) + a->header.size ==
474
474
  reinterpret_cast<char *>(n)) {
475
475
  LowLevelAlloc::Arena *arena = a->header.arena;
476
+ arena->mu.AssertHeld();
476
477
  a->header.size += n->header.size;
477
478
  n->header.magic = 0;
478
479
  n->header.arena = nullptr;
@@ -486,8 +487,8 @@ static void Coalesce(AllocList *a) {
486
487
  }
487
488
 
488
489
  // Adds block at location "v" to the free list
489
- // L >= arena->mu
490
- static void AddToFreelist(void *v, LowLevelAlloc::Arena *arena) {
490
+ static void AddToFreelist(void *v, LowLevelAlloc::Arena *arena)
491
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(arena->mu) {
491
492
  AllocList *f = reinterpret_cast<AllocList *>(reinterpret_cast<char *>(v) -
492
493
  sizeof(f->header));
493
494
  ABSL_RAW_CHECK(f->header.magic == Magic(kMagicAllocated, &f->header),
@@ -0,0 +1,106 @@
1
+ // Copyright 2023 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ #ifndef ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
15
+ #define ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
16
+
17
+ #include "absl/base/attributes.h"
18
+ #include "absl/base/config.h"
19
+
20
+ namespace absl {
21
+ ABSL_NAMESPACE_BEGIN
22
+ namespace nullability_internal {
23
+
24
+ template <typename T>
25
+ using NullableImpl
26
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
27
+ [[clang::annotate("Nullable")]]
28
+ #endif
29
+ // Don't add the _Nullable attribute in Objective-C compiles. Many Objective-C
30
+ // projects enable the `-Wnullable-to-nonnull-conversion warning`, which is
31
+ // liable to produce false positives.
32
+ #if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
33
+ = T _Nullable;
34
+ #else
35
+ = T;
36
+ #endif
37
+
38
+ template <typename T>
39
+ using NonnullImpl
40
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
41
+ [[clang::annotate("Nonnull")]]
42
+ #endif
43
+ #if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
44
+ = T _Nonnull;
45
+ #else
46
+ = T;
47
+ #endif
48
+
49
+ template <typename T>
50
+ using NullabilityUnknownImpl
51
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
52
+ [[clang::annotate("Nullability_Unspecified")]]
53
+ #endif
54
+ #if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
55
+ = T _Null_unspecified;
56
+ #else
57
+ = T;
58
+ #endif
59
+
60
+ } // namespace nullability_internal
61
+
62
+ // The following template aliases are deprecated forms of nullability
63
+ // annotations. They have some limitations, for example, an incompatibility with
64
+ // `auto*` pointers, as `auto` cannot be used in a template argument.
65
+ //
66
+ // It is important to note that these annotations are not distinct strong
67
+ // *types*. They are alias templates defined to be equal to the underlying
68
+ // pointer type. A pointer annotated `Nonnull<T*>`, for example, is simply a
69
+ // pointer of type `T*`.
70
+ //
71
+ // Prefer the macro style annotations in `absl/base/nullability.h` instead.
72
+
73
+ // absl::Nonnull, analogous to absl_nonnull
74
+ //
75
+ // Example:
76
+ // absl::Nonnull<int*> foo;
77
+ // Is equivalent to:
78
+ // int* absl_nonnull foo;
79
+ template <typename T>
80
+ using Nonnull [[deprecated("Use `absl_nonnull`.")]] =
81
+ nullability_internal::NonnullImpl<T>;
82
+
83
+ // absl::Nullable, analogous to absl_nullable
84
+ //
85
+ // Example:
86
+ // absl::Nullable<int*> foo;
87
+ // Is equivalent to:
88
+ // int* absl_nullable foo;
89
+ template <typename T>
90
+ using Nullable [[deprecated("Use `absl_nullable`.")]] =
91
+ nullability_internal::NullableImpl<T>;
92
+
93
+ // absl::NullabilityUnknown, analogous to absl_nullability_unknown
94
+ //
95
+ // Example:
96
+ // absl::NullabilityUnknown<int*> foo;
97
+ // Is equivalent to:
98
+ // int* absl_nullability_unknown foo;
99
+ template <typename T>
100
+ using NullabilityUnknown [[deprecated("Use `absl_nullability_unknown`.")]] =
101
+ nullability_internal::NullabilityUnknownImpl<T>;
102
+
103
+ ABSL_NAMESPACE_END
104
+ } // namespace absl
105
+
106
+ #endif // ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
@@ -175,7 +175,7 @@ void RawLogVA(absl::LogSeverity severity, const char* file, int line,
175
175
  } else {
176
176
  DoRawLog(&buf, &size, "%s", kTruncated);
177
177
  }
178
- AsyncSignalSafeWriteError(buffer, strlen(buffer));
178
+ AsyncSignalSafeWriteError(buffer, static_cast<size_t>(buf - buffer));
179
179
  }
180
180
  #else
181
181
  static_cast<void>(format);
@@ -67,15 +67,6 @@ void RegisterSpinLockProfiler(void (*fn)(const void *contendedlock,
67
67
  submit_profile_data.Store(fn);
68
68
  }
69
69
 
70
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
71
- // Static member variable definitions.
72
- constexpr uint32_t SpinLock::kSpinLockHeld;
73
- constexpr uint32_t SpinLock::kSpinLockCooperative;
74
- constexpr uint32_t SpinLock::kSpinLockDisabledScheduling;
75
- constexpr uint32_t SpinLock::kSpinLockSleeper;
76
- constexpr uint32_t SpinLock::kWaitTimeMask;
77
- #endif
78
-
79
70
  // Uncommon constructors.
80
71
  SpinLock::SpinLock(base_internal::SchedulingMode mode)
81
72
  : lockword_(IsCooperative(mode) ? kSpinLockCooperative : 0) {
@@ -89,8 +89,7 @@ class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED SpinLock {
89
89
  // acquisition was successful. If the lock was not acquired, false is
90
90
  // returned. If this SpinLock is free at the time of the call, TryLock
91
91
  // will return true with high probability.
92
- ABSL_MUST_USE_RESULT inline bool TryLock()
93
- ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
92
+ [[nodiscard]] inline bool TryLock() ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
94
93
  ABSL_TSAN_MUTEX_PRE_LOCK(this, __tsan_mutex_try_lock);
95
94
  bool res = TryLockImpl();
96
95
  ABSL_TSAN_MUTEX_POST_LOCK(
@@ -121,7 +120,7 @@ class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED SpinLock {
121
120
  // Determine if the lock is held. When the lock is held by the invoking
122
121
  // thread, true will always be returned. Intended to be used as
123
122
  // CHECK(lock.IsHeld()).
124
- ABSL_MUST_USE_RESULT inline bool IsHeld() const {
123
+ [[nodiscard]] inline bool IsHeld() const {
125
124
  return (lockword_.load(std::memory_order_relaxed) & kSpinLockHeld) != 0;
126
125
  }
127
126
 
@@ -203,16 +202,7 @@ class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED SpinLock {
203
202
 
204
203
  // Corresponding locker object that arranges to acquire a spinlock for
205
204
  // the duration of a C++ scope.
206
- //
207
- // TODO(b/176172494): Use only [[nodiscard]] when baseline is raised.
208
- // TODO(b/6695610): Remove forward declaration when #ifdef is no longer needed.
209
- #if ABSL_HAVE_CPP_ATTRIBUTE(nodiscard)
210
- class [[nodiscard]] SpinLockHolder;
211
- #else
212
- class ABSL_MUST_USE_RESULT ABSL_ATTRIBUTE_TRIVIAL_ABI SpinLockHolder;
213
- #endif
214
-
215
- class ABSL_SCOPED_LOCKABLE SpinLockHolder {
205
+ class ABSL_SCOPED_LOCKABLE [[nodiscard]] SpinLockHolder {
216
206
  public:
217
207
  inline explicit SpinLockHolder(SpinLock* l) ABSL_EXCLUSIVE_LOCK_FUNCTION(l)
218
208
  : lock_(l) {
@@ -46,6 +46,10 @@
46
46
  #include <rtems.h>
47
47
  #endif
48
48
 
49
+ #if defined(__Fuchsia__)
50
+ #include <zircon/process.h>
51
+ #endif
52
+
49
53
  #include <string.h>
50
54
 
51
55
  #include <cassert>
@@ -461,6 +465,16 @@ pid_t GetTID() {
461
465
  return reinterpret_cast<pid_t>(thread);
462
466
  }
463
467
 
468
+ #elif defined(__Fuchsia__)
469
+
470
+ pid_t GetTID() {
471
+ // Use our thread handle as the TID, which should be unique within this
472
+ // process (but may not be globally unique). The handle value was chosen over
473
+ // a kernel object ID (KOID) because zx_handle_t (32-bits) can be cast to a
474
+ // pid_t type without loss of precision, but a zx_koid_t (64-bits) cannot.
475
+ return static_cast<pid_t>(zx_thread_self());
476
+ }
477
+
464
478
  #else
465
479
 
466
480
  // Fallback implementation of `GetTID` using `pthread_self`.
@@ -130,7 +130,11 @@ struct PerThreadSynch {
130
130
  };
131
131
 
132
132
  // The instances of this class are allocated in NewThreadIdentity() with an
133
- // alignment of PerThreadSynch::kAlignment.
133
+ // alignment of PerThreadSynch::kAlignment and never destroyed. Initialization
134
+ // should happen in OneTimeInitThreadIdentity().
135
+ //
136
+ // Instances may be reused by new threads - fields should be reset in
137
+ // ResetThreadIdentityBetweenReuse().
134
138
  //
135
139
  // NOTE: The layout of fields in this structure is critical, please do not
136
140
  // add, remove, or modify the field placements without fully auditing the
@@ -0,0 +1,39 @@
1
+ // Copyright 2024 The Abseil Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "absl/base/internal/tracing.h"
16
+
17
+ #include "absl/base/attributes.h"
18
+ #include "absl/base/config.h"
19
+
20
+ namespace absl {
21
+ ABSL_NAMESPACE_BEGIN
22
+ namespace base_internal {
23
+
24
+ extern "C" {
25
+
26
+ ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceWait)(
27
+ const void*, ObjectKind) {}
28
+ ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceContinue)(
29
+ const void*, ObjectKind) {}
30
+ ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceSignal)(
31
+ const void*, ObjectKind) {}
32
+ ABSL_ATTRIBUTE_WEAK void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceObserved)(
33
+ const void*, ObjectKind) {}
34
+
35
+ } // extern "C"
36
+
37
+ } // namespace base_internal
38
+ ABSL_NAMESPACE_END
39
+ } // namespace absl
@@ -0,0 +1,81 @@
1
+ // Copyright 2024 The Abseil Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef ABSL_BASE_INTERNAL_TRACING_H_
16
+ #define ABSL_BASE_INTERNAL_TRACING_H_
17
+
18
+ #include "absl/base/config.h"
19
+
20
+ namespace absl {
21
+ ABSL_NAMESPACE_BEGIN
22
+ namespace base_internal {
23
+
24
+ // Well known Abseil object types that have causality.
25
+ enum class ObjectKind { kUnknown, kBlockingCounter, kNotification };
26
+
27
+ // `TraceWait` and `TraceContinue` record the start and end of a potentially
28
+ // blocking wait operation on `object`. `object` typically represents a higher
29
+ // level synchronization object such as `absl::Notification`.
30
+ void TraceWait(const void* object, ObjectKind kind);
31
+ void TraceContinue(const void* object, ObjectKind kind);
32
+
33
+ // `TraceSignal` records a signal on `object`.
34
+ void TraceSignal(const void* object, ObjectKind kind);
35
+
36
+ // `TraceObserved` records the non-blocking observation of a signaled object.
37
+ void TraceObserved(const void* object, ObjectKind kind);
38
+
39
+ // ---------------------------------------------------------------------------
40
+ // Weak implementation detail:
41
+ //
42
+ // We define the weak API as extern "C": in some build configurations we pass
43
+ // `--detect-odr-violations` to the gold linker. This causes it to flag weak
44
+ // symbol overrides as ODR violations. Because ODR only applies to C++ and not
45
+ // C, `--detect-odr-violations` ignores symbols not mangled with C++ names.
46
+ // By changing our extension points to be extern "C", we dodge this check.
47
+ // ---------------------------------------------------------------------------
48
+ extern "C" {
49
+
50
+ void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceWait)(const void* object,
51
+ ObjectKind kind);
52
+ void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceContinue)(const void* object,
53
+ ObjectKind kind);
54
+ void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceSignal)(const void* object,
55
+ ObjectKind kind);
56
+ void ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceObserved)(const void* object,
57
+ ObjectKind kind);
58
+
59
+ } // extern "C"
60
+
61
+ inline void TraceWait(const void* object, ObjectKind kind) {
62
+ ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceWait)(object, kind);
63
+ }
64
+
65
+ inline void TraceContinue(const void* object, ObjectKind kind) {
66
+ ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceContinue)(object, kind);
67
+ }
68
+
69
+ inline void TraceSignal(const void* object, ObjectKind kind) {
70
+ ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceSignal)(object, kind);
71
+ }
72
+
73
+ inline void TraceObserved(const void* object, ObjectKind kind) {
74
+ ABSL_INTERNAL_C_SYMBOL(AbslInternalTraceObserved)(object, kind);
75
+ }
76
+
77
+ } // namespace base_internal
78
+ ABSL_NAMESPACE_END
79
+ } // namespace absl
80
+
81
+ #endif // ABSL_BASE_INTERNAL_TRACING_H_
@@ -36,33 +36,33 @@ namespace absl {
36
36
  ABSL_NAMESPACE_BEGIN
37
37
  namespace base_internal {
38
38
 
39
- inline uint16_t UnalignedLoad16(absl::Nonnull<const void *> p) {
39
+ inline uint16_t UnalignedLoad16(const void* absl_nonnull p) {
40
40
  uint16_t t;
41
41
  memcpy(&t, p, sizeof t);
42
42
  return t;
43
43
  }
44
44
 
45
- inline uint32_t UnalignedLoad32(absl::Nonnull<const void *> p) {
45
+ inline uint32_t UnalignedLoad32(const void* absl_nonnull p) {
46
46
  uint32_t t;
47
47
  memcpy(&t, p, sizeof t);
48
48
  return t;
49
49
  }
50
50
 
51
- inline uint64_t UnalignedLoad64(absl::Nonnull<const void *> p) {
51
+ inline uint64_t UnalignedLoad64(const void* absl_nonnull p) {
52
52
  uint64_t t;
53
53
  memcpy(&t, p, sizeof t);
54
54
  return t;
55
55
  }
56
56
 
57
- inline void UnalignedStore16(absl::Nonnull<void *> p, uint16_t v) {
57
+ inline void UnalignedStore16(void* absl_nonnull p, uint16_t v) {
58
58
  memcpy(p, &v, sizeof v);
59
59
  }
60
60
 
61
- inline void UnalignedStore32(absl::Nonnull<void *> p, uint32_t v) {
61
+ inline void UnalignedStore32(void* absl_nonnull p, uint32_t v) {
62
62
  memcpy(p, &v, sizeof v);
63
63
  }
64
64
 
65
- inline void UnalignedStore64(absl::Nonnull<void *> p, uint64_t v) {
65
+ inline void UnalignedStore64(void* absl_nonnull p, uint64_t v) {
66
66
  memcpy(p, &v, sizeof v);
67
67
  }
68
68
 
@@ -105,16 +105,6 @@ double UnscaledCycleClock::Frequency() {
105
105
 
106
106
  #elif defined(__aarch64__)
107
107
 
108
- // System timer of ARMv8 runs at a different frequency than the CPU's.
109
- // The frequency is fixed, typically in the range 1-50MHz. It can be
110
- // read at CNTFRQ special register. We assume the OS has set up
111
- // the virtual timer properly.
112
- int64_t UnscaledCycleClock::Now() {
113
- int64_t virtual_timer_value;
114
- asm volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer_value));
115
- return virtual_timer_value;
116
- }
117
-
118
108
  double UnscaledCycleClock::Frequency() {
119
109
  uint64_t aarch64_timer_frequency;
120
110
  asm volatile("mrs %0, cntfrq_el0" : "=r"(aarch64_timer_frequency));
@@ -85,6 +85,23 @@ inline int64_t UnscaledCycleClock::Now() {
85
85
  return static_cast<int64_t>((high << 32) | low);
86
86
  }
87
87
 
88
+ #elif defined(__aarch64__)
89
+
90
+ // System timer of ARMv8 runs at a different frequency than the CPU's.
91
+ //
92
+ // Frequency is fixed. From Armv8.6-A and Armv9.1-A on, the frequency is 1GHz.
93
+ // Pre-Armv8.6-A, the frequency was a system design choice, typically in the
94
+ // range of 1MHz to 50MHz. See also:
95
+ // https://developer.arm.com/documentation/102379/0101/What-is-the-Generic-Timer-
96
+ //
97
+ // It can be read at CNTFRQ special register. We assume the OS has set up the
98
+ // virtual timer properly.
99
+ inline int64_t UnscaledCycleClock::Now() {
100
+ int64_t virtual_timer_value;
101
+ asm volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer_value));
102
+ return virtual_timer_value;
103
+ }
104
+
88
105
  #endif
89
106
 
90
107
  } // namespace base_internal
@@ -34,6 +34,7 @@
34
34
  #include "absl/base/attributes.h"
35
35
  #include "absl/base/config.h"
36
36
  #include "absl/base/optimization.h"
37
+ #include "absl/base/options.h"
37
38
  #include "absl/base/port.h"
38
39
 
39
40
  // ABSL_ARRAYSIZE()
@@ -81,8 +82,9 @@ ABSL_NAMESPACE_END
81
82
  // ABSL_ASSERT()
82
83
  //
83
84
  // In C++11, `assert` can't be used portably within constexpr functions.
85
+ // `assert` also generates spurious unused-symbol warnings.
84
86
  // ABSL_ASSERT functions as a runtime assert but works in C++11 constexpr
85
- // functions. Example:
87
+ // functions, and maintains references to symbols. Example:
86
88
  //
87
89
  // constexpr double Divide(double a, double b) {
88
90
  // return ABSL_ASSERT(b != 0), a / b;
@@ -91,8 +93,18 @@ ABSL_NAMESPACE_END
91
93
  // This macro is inspired by
92
94
  // https://akrzemi1.wordpress.com/2017/05/18/asserts-in-constexpr-functions/
93
95
  #if defined(NDEBUG)
94
- #define ABSL_ASSERT(expr) \
95
- (false ? static_cast<void>(expr) : static_cast<void>(0))
96
+ #if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
97
+ // We use `decltype` here to avoid generating unnecessary code that the
98
+ // optimizer then has to optimize away.
99
+ // This not only improves compilation performance by reducing codegen bloat
100
+ // and optimization work, but also guarantees fast run-time performance without
101
+ // having to rely on the optimizer.
102
+ #define ABSL_ASSERT(expr) (decltype((expr) ? void() : void())())
103
+ #else
104
+ // Pre-C++20, lambdas can't be inside unevaluated operands, so we're forced to
105
+ // rely on the optimizer.
106
+ #define ABSL_ASSERT(expr) (false ? ((expr) ? void() : void()) : void())
107
+ #endif
96
108
  #else
97
109
  #define ABSL_ASSERT(expr) \
98
110
  (ABSL_PREDICT_TRUE((expr)) ? static_cast<void>(0) \
@@ -120,7 +132,7 @@ ABSL_NAMESPACE_END
120
132
  //
121
133
  // See `ABSL_OPTION_HARDENED` in `absl/base/options.h` for more information on
122
134
  // hardened mode.
123
- #if ABSL_OPTION_HARDENED == 1 && defined(NDEBUG)
135
+ #if (ABSL_OPTION_HARDENED == 1 || ABSL_OPTION_HARDENED == 2) && defined(NDEBUG)
124
136
  #define ABSL_HARDENING_ASSERT(expr) \
125
137
  (ABSL_PREDICT_TRUE((expr)) ? static_cast<void>(0) \
126
138
  : [] { ABSL_INTERNAL_HARDENING_ABORT(); }())
@@ -128,6 +140,25 @@ ABSL_NAMESPACE_END
128
140
  #define ABSL_HARDENING_ASSERT(expr) ABSL_ASSERT(expr)
129
141
  #endif
130
142
 
143
+ // ABSL_HARDENING_ASSERT_SLOW()
144
+ //
145
+ // `ABSL_HARDENING_ASSERT()` is like `ABSL_HARDENING_ASSERT()`,
146
+ // but specifically for assertions whose predicates are too slow
147
+ // to be enabled in many applications.
148
+ //
149
+ // When `NDEBUG` is not defined, `ABSL_HARDENING_ASSERT_SLOW()` is identical to
150
+ // `ABSL_ASSERT()`.
151
+ //
152
+ // See `ABSL_OPTION_HARDENED` in `absl/base/options.h` for more information on
153
+ // hardened mode.
154
+ #if ABSL_OPTION_HARDENED == 1 && defined(NDEBUG)
155
+ #define ABSL_HARDENING_ASSERT_SLOW(expr) \
156
+ (ABSL_PREDICT_TRUE((expr)) ? static_cast<void>(0) \
157
+ : [] { ABSL_INTERNAL_HARDENING_ABORT(); }())
158
+ #else
159
+ #define ABSL_HARDENING_ASSERT_SLOW(expr) ABSL_ASSERT(expr)
160
+ #endif
161
+
131
162
  #ifdef ABSL_HAVE_EXCEPTIONS
132
163
  #define ABSL_INTERNAL_TRY try
133
164
  #define ABSL_INTERNAL_CATCH_ANY catch (...)
@@ -135,11 +135,11 @@ class NoDestructor {
135
135
  // Pretend to be a smart pointer to T with deep constness.
136
136
  // Never returns a null pointer.
137
137
  T& operator*() { return *get(); }
138
- absl::Nonnull<T*> operator->() { return get(); }
139
- absl::Nonnull<T*> get() { return impl_.get(); }
138
+ T* absl_nonnull operator->() { return get(); }
139
+ T* absl_nonnull get() { return impl_.get(); }
140
140
  const T& operator*() const { return *get(); }
141
- absl::Nonnull<const T*> operator->() const { return get(); }
142
- absl::Nonnull<const T*> get() const { return impl_.get(); }
141
+ const T* absl_nonnull operator->() const { return get(); }
142
+ const T* absl_nonnull get() const { return impl_.get(); }
143
143
 
144
144
  private:
145
145
  class DirectImpl {
@@ -147,8 +147,8 @@ class NoDestructor {
147
147
  template <typename... Args>
148
148
  explicit constexpr DirectImpl(Args&&... args)
149
149
  : value_(std::forward<Args>(args)...) {}
150
- absl::Nonnull<const T*> get() const { return &value_; }
151
- absl::Nonnull<T*> get() { return &value_; }
150
+ const T* absl_nonnull get() const { return &value_; }
151
+ T* absl_nonnull get() { return &value_; }
152
152
 
153
153
  private:
154
154
  T value_;
@@ -160,33 +160,14 @@ class NoDestructor {
160
160
  explicit PlacementImpl(Args&&... args) {
161
161
  new (&space_) T(std::forward<Args>(args)...);
162
162
  }
163
- absl::Nonnull<const T*> get() const {
164
- return Launder(reinterpret_cast<const T*>(&space_));
163
+ const T* absl_nonnull get() const {
164
+ return std::launder(reinterpret_cast<const T*>(&space_));
165
165
  }
166
- absl::Nonnull<T*> get() { return Launder(reinterpret_cast<T*>(&space_)); }
167
-
168
- private:
169
- template <typename P>
170
- static absl::Nonnull<P*> Launder(absl::Nonnull<P*> p) {
171
- #if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606L
172
- return std::launder(p);
173
- #elif ABSL_HAVE_BUILTIN(__builtin_launder)
174
- return __builtin_launder(p);
175
- #else
176
- // When `std::launder` or equivalent are not available, we rely on
177
- // undefined behavior, which works as intended on Abseil's officially
178
- // supported platforms as of Q3 2023.
179
- #if defined(__GNUC__) && !defined(__clang__)
180
- #pragma GCC diagnostic push
181
- #pragma GCC diagnostic ignored "-Wstrict-aliasing"
182
- #endif
183
- return p;
184
- #if defined(__GNUC__) && !defined(__clang__)
185
- #pragma GCC diagnostic pop
186
- #endif
187
- #endif
166
+ T* absl_nonnull get() {
167
+ return std::launder(reinterpret_cast<T*>(&space_));
188
168
  }
189
169
 
170
+ private:
190
171
  alignas(T) unsigned char space_[sizeof(T)];
191
172
  };
192
173
 
@@ -199,12 +180,10 @@ class NoDestructor {
199
180
  impl_;
200
181
  };
201
182
 
202
- #ifdef ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
203
183
  // Provide 'Class Template Argument Deduction': the type of NoDestructor's T
204
184
  // will be the same type as the argument passed to NoDestructor's constructor.
205
185
  template <typename T>
206
186
  NoDestructor(T) -> NoDestructor<T>;
207
- #endif // ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
208
187
 
209
188
  ABSL_NAMESPACE_END
210
189
  } // namespace absl