grpc 1.41.1 → 1.44.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.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (1156) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +185 -102
  3. data/include/grpc/event_engine/event_engine.h +118 -54
  4. data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
  5. data/include/grpc/event_engine/memory_allocator.h +226 -0
  6. data/include/grpc/event_engine/memory_request.h +57 -0
  7. data/include/grpc/grpc.h +4 -0
  8. data/include/grpc/grpc_security.h +304 -145
  9. data/include/grpc/grpc_security_constants.h +2 -14
  10. data/include/grpc/impl/codegen/compression_types.h +0 -2
  11. data/include/grpc/impl/codegen/grpc_types.h +6 -0
  12. data/include/grpc/impl/codegen/port_platform.h +14 -3
  13. data/src/core/ext/filters/client_channel/backend_metric.cc +21 -23
  14. data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
  17. data/src/core/ext/filters/client_channel/client_channel.cc +305 -335
  18. data/src/core/ext/filters/client_channel/client_channel.h +84 -36
  19. data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
  20. data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
  21. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -15
  22. data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
  23. data/src/core/ext/filters/client_channel/config_selector.h +5 -6
  24. data/src/core/ext/filters/client_channel/connector.h +18 -18
  25. data/src/core/ext/filters/client_channel/dynamic_filters.cc +5 -5
  26. data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
  27. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
  28. data/src/core/ext/filters/client_channel/health/health_check_client.cc +25 -22
  29. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  30. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +13 -15
  31. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
  33. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
  34. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +5 -18
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +198 -116
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -6
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
  43. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  44. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
  45. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +66 -36
  46. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +21 -12
  47. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +124 -74
  48. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2514 -0
  49. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +68 -62
  50. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
  51. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +18 -6
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +51 -96
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
  54. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +101 -46
  56. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +11 -3
  57. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +101 -209
  58. data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
  59. data/src/core/ext/filters/client_channel/lb_policy.h +105 -63
  60. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
  61. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +220 -88
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
  64. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
  65. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +31 -50
  66. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +124 -240
  67. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +38 -25
  68. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  69. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +90 -77
  70. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +13 -11
  71. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
  72. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +7 -16
  73. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
  74. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +423 -396
  75. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +2 -2
  76. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
  77. data/src/core/ext/filters/client_channel/retry_filter.cc +66 -131
  78. data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
  79. data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
  80. data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
  81. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
  82. data/src/core/ext/filters/client_channel/subchannel.cc +99 -161
  83. data/src/core/ext/filters/client_channel/subchannel.h +31 -52
  84. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
  85. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
  86. data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
  87. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  88. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  89. data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
  90. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +42 -53
  91. data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -9
  92. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  93. data/src/core/ext/filters/http/client/http_client_filter.cc +70 -160
  94. data/src/core/ext/filters/http/client_authority_filter.cc +19 -36
  95. data/src/core/ext/filters/http/http_filters_plugin.cc +51 -71
  96. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +46 -139
  97. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +5 -25
  98. data/src/core/ext/filters/http/server/http_server_filter.cc +84 -183
  99. data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
  100. data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
  101. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  102. data/src/core/ext/filters/rbac/rbac_filter.cc +157 -0
  103. data/src/core/ext/filters/rbac/rbac_filter.h +74 -0
  104. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +605 -0
  105. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +70 -0
  106. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  107. data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
  108. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +270 -0
  109. data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → filters/server_config_selector/server_config_selector_filter.h} +9 -7
  110. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -23
  111. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
  112. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +26 -28
  113. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
  114. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +33 -53
  115. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +146 -113
  116. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
  117. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
  118. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
  119. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -1
  120. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -278
  121. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
  122. data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
  123. data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
  124. data/src/core/ext/transport/chttp2/transport/flow_control.cc +26 -23
  125. data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -6
  126. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -5
  127. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  128. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
  129. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  130. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  131. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
  132. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +384 -218
  133. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +89 -143
  134. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
  135. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  136. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +201 -202
  137. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -9
  138. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +106 -26
  139. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +29 -44
  140. data/src/core/ext/transport/chttp2/transport/internal.h +10 -38
  141. data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -179
  142. data/src/core/ext/transport/chttp2/transport/writing.cc +65 -127
  143. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
  144. data/src/core/ext/transport/inproc/inproc_transport.cc +114 -161
  145. data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
  146. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
  147. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
  148. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
  149. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
  150. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
  151. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  152. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +107 -82
  153. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
  154. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
  155. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
  156. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
  157. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
  158. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +277 -208
  159. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +141 -1
  160. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
  161. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
  162. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
  163. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +171 -125
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +55 -4
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +90 -71
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +17 -0
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +121 -92
  183. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  184. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
  185. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
  186. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
  187. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
  188. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
  189. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
  190. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
  191. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
  192. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
  193. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
  194. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
  195. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
  196. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -44
  197. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
  198. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
  199. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
  200. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
  201. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
  202. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
  203. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
  204. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
  205. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
  206. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
  207. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
  208. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
  209. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
  210. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
  211. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
  212. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
  213. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
  214. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +99 -78
  215. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +19 -0
  216. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
  217. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
  218. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +508 -442
  219. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +51 -19
  220. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
  221. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
  222. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
  223. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
  224. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
  225. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
  226. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
  227. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
  228. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
  229. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
  230. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +61 -0
  231. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -0
  232. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
  233. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
  234. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
  235. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
  236. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
  237. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
  238. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
  239. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
  240. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
  241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
  242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
  243. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
  244. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
  245. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
  246. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
  247. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
  248. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
  249. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
  250. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
  251. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
  252. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
  253. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
  254. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
  255. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
  256. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
  257. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
  258. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
  259. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
  260. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
  261. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
  262. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
  263. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
  267. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
  268. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
  273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
  274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
  275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
  280. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
  281. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
  282. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
  283. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
  284. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
  285. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
  286. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
  287. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
  288. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
  289. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
  290. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
  291. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
  292. data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
  293. data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
  294. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
  295. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
  296. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
  297. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
  298. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
  299. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
  300. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
  301. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
  302. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
  303. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
  304. data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
  305. data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
  306. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
  307. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
  308. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
  309. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
  310. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
  311. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
  312. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
  313. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
  314. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
  315. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
  316. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
  317. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
  318. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
  319. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
  320. data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
  321. data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
  322. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
  323. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
  324. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
  325. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
  326. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
  327. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
  328. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
  329. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
  330. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
  331. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
  332. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +68 -0
  333. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +156 -0
  334. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
  335. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
  336. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -5
  337. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  338. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
  339. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
  340. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
  341. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
  342. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
  343. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  344. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
  345. data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
  346. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +103 -0
  347. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +199 -0
  348. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +14 -3
  349. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
  350. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +25 -13
  351. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
  352. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +20 -8
  353. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
  354. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +19 -8
  355. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
  356. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +28 -16
  357. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
  358. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +19 -8
  359. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
  360. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +71 -0
  361. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +132 -0
  362. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +44 -0
  363. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +85 -0
  364. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
  365. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
  366. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
  367. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
  368. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
  369. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
  370. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +307 -336
  371. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
  372. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
  373. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
  374. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
  375. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
  376. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +100 -138
  377. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
  378. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
  379. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
  380. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
  381. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
  382. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +61 -77
  383. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
  384. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +61 -79
  385. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
  386. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
  387. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
  388. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
  389. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
  390. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
  391. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +80 -99
  392. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
  393. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
  394. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
  395. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
  396. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
  397. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
  398. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
  399. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
  400. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +188 -0
  401. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
  402. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
  403. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +325 -427
  404. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
  405. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
  406. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
  407. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
  408. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
  409. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +56 -0
  410. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  411. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
  412. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
  413. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
  414. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
  415. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
  416. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
  417. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
  418. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
  419. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
  420. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
  421. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
  422. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
  423. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
  424. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
  425. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
  426. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
  427. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
  428. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
  429. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
  430. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
  431. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
  432. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
  433. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
  434. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
  435. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
  436. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
  437. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
  438. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
  439. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
  440. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
  441. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
  442. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
  443. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  444. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +58 -0
  445. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +55 -0
  446. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +44 -0
  447. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +40 -0
  448. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
  449. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  450. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +75 -0
  451. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +55 -0
  452. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
  453. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
  454. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
  455. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
  456. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
  457. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
  458. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
  459. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
  460. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
  461. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +7 -15
  462. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +21 -30
  463. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +6 -5
  464. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +7 -10
  465. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +7 -11
  466. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
  467. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
  468. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  469. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +15 -19
  470. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +27 -33
  471. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +18 -24
  472. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +19 -23
  473. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +35 -41
  474. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +21 -25
  475. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
  476. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  477. data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
  478. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  479. data/src/core/ext/xds/upb_utils.h +65 -0
  480. data/src/core/ext/xds/xds_api.cc +159 -3468
  481. data/src/core/ext/xds/xds_api.h +57 -558
  482. data/src/core/ext/xds/xds_bootstrap.cc +189 -122
  483. data/src/core/ext/xds/xds_bootstrap.h +30 -15
  484. data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
  485. data/src/core/ext/xds/xds_certificate_provider.h +2 -2
  486. data/src/core/ext/xds/xds_channel_creds.cc +108 -0
  487. data/src/core/ext/xds/xds_channel_creds.h +50 -0
  488. data/src/core/ext/xds/xds_channel_stack_modifier.cc +112 -0
  489. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  490. data/src/core/ext/xds/xds_client.cc +751 -844
  491. data/src/core/ext/xds/xds_client.h +100 -143
  492. data/src/core/ext/xds/xds_client_stats.h +1 -1
  493. data/src/core/ext/xds/xds_cluster.cc +451 -0
  494. data/src/core/ext/xds/xds_cluster.h +111 -0
  495. data/src/core/ext/xds/xds_common_types.cc +388 -0
  496. data/src/core/ext/xds/xds_common_types.h +110 -0
  497. data/src/core/ext/xds/xds_endpoint.cc +364 -0
  498. data/src/core/ext/xds/xds_endpoint.h +135 -0
  499. data/src/core/ext/xds/xds_http_filters.cc +5 -0
  500. data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
  501. data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
  502. data/src/core/ext/xds/xds_listener.cc +1036 -0
  503. data/src/core/ext/xds/xds_listener.h +220 -0
  504. data/src/core/ext/{filters/workarounds/workaround_cronet_compression_filter.h → xds/xds_resource_type.cc} +14 -8
  505. data/src/core/ext/xds/xds_resource_type.h +98 -0
  506. data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
  507. data/src/core/ext/xds/xds_route_config.cc +993 -0
  508. data/src/core/ext/xds/xds_route_config.h +215 -0
  509. data/src/core/ext/xds/xds_routing.cc +250 -0
  510. data/src/core/ext/xds/xds_routing.h +101 -0
  511. data/src/core/ext/xds/xds_server_config_fetcher.cc +1061 -289
  512. data/src/core/lib/address_utils/parse_address.cc +22 -0
  513. data/src/core/lib/address_utils/parse_address.h +5 -0
  514. data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
  515. data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
  516. data/src/core/lib/avl/avl.h +389 -88
  517. data/src/core/lib/backoff/backoff.cc +6 -32
  518. data/src/core/lib/backoff/backoff.h +3 -3
  519. data/src/core/lib/channel/channel_args.cc +25 -8
  520. data/src/core/lib/channel/channel_args.h +11 -1
  521. data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
  522. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  523. data/src/core/lib/channel/channel_stack.cc +8 -0
  524. data/src/core/lib/channel/channel_stack.h +1 -1
  525. data/src/core/lib/channel/channel_stack_builder.cc +8 -14
  526. data/src/core/lib/channel/channel_stack_builder.h +4 -7
  527. data/src/core/lib/channel/channel_trace.cc +7 -7
  528. data/src/core/lib/channel/channel_trace.h +1 -1
  529. data/src/core/lib/channel/channelz.cc +4 -3
  530. data/src/core/lib/channel/channelz.h +2 -2
  531. data/src/core/lib/channel/channelz_registry.cc +1 -1
  532. data/src/core/lib/channel/channelz_registry.h +1 -1
  533. data/src/core/lib/channel/connected_channel.cc +1 -3
  534. data/src/core/lib/channel/connected_channel.h +1 -2
  535. data/src/core/lib/compression/compression.cc +21 -113
  536. data/src/core/lib/compression/compression_internal.cc +142 -202
  537. data/src/core/lib/compression/compression_internal.h +64 -69
  538. data/src/core/lib/compression/message_compress.cc +11 -11
  539. data/src/core/lib/compression/message_compress.h +2 -2
  540. data/src/core/lib/config/core_configuration.cc +46 -2
  541. data/src/core/lib/config/core_configuration.h +50 -1
  542. data/src/core/lib/debug/stats.cc +1 -1
  543. data/src/core/lib/debug/stats_data.cc +13 -13
  544. data/src/core/lib/debug/trace.h +2 -2
  545. data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
  546. data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
  547. data/src/core/lib/event_engine/event_engine.cc +0 -13
  548. data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
  549. data/src/core/lib/event_engine/event_engine_factory.h +33 -0
  550. data/src/core/lib/event_engine/memory_allocator.cc +70 -0
  551. data/src/core/lib/gpr/atm.cc +1 -1
  552. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  553. data/src/core/lib/gpr/string.cc +2 -2
  554. data/src/core/lib/gpr/tls.h +7 -1
  555. data/src/core/lib/gpr/useful.h +83 -32
  556. data/src/core/lib/gprpp/bitset.h +45 -16
  557. data/src/core/lib/gprpp/chunked_vector.h +253 -0
  558. data/src/core/lib/gprpp/construct_destruct.h +1 -1
  559. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  560. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  561. data/src/core/lib/gprpp/global_config_env.h +2 -2
  562. data/src/core/lib/gprpp/manual_constructor.h +2 -3
  563. data/src/core/lib/gprpp/memory.h +6 -0
  564. data/src/core/lib/gprpp/orphanable.h +1 -1
  565. data/src/core/lib/gprpp/ref_counted.h +1 -1
  566. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  567. data/src/core/lib/gprpp/status_helper.cc +35 -23
  568. data/src/core/lib/gprpp/status_helper.h +14 -16
  569. data/src/core/lib/gprpp/table.h +434 -0
  570. data/src/core/lib/http/httpcli.cc +215 -202
  571. data/src/core/lib/http/httpcli.h +17 -27
  572. data/src/core/lib/http/parser.cc +2 -2
  573. data/src/core/lib/iomgr/buffer_list.cc +9 -9
  574. data/src/core/lib/iomgr/buffer_list.h +13 -13
  575. data/src/core/lib/iomgr/call_combiner.cc +44 -16
  576. data/src/core/lib/iomgr/closure.h +29 -9
  577. data/src/core/lib/iomgr/combiner.cc +31 -24
  578. data/src/core/lib/iomgr/endpoint.h +0 -1
  579. data/src/core/lib/iomgr/endpoint_cfstream.cc +14 -30
  580. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  581. data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
  582. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
  583. data/src/core/lib/iomgr/error.cc +115 -52
  584. data/src/core/lib/iomgr/error.h +53 -9
  585. data/src/core/lib/iomgr/error_cfstream.cc +5 -0
  586. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
  587. data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
  588. data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
  589. data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
  590. data/src/core/lib/iomgr/event_engine/closure.h +10 -1
  591. data/src/core/lib/iomgr/event_engine/endpoint.cc +5 -6
  592. data/src/core/lib/iomgr/event_engine/iomgr.cc +9 -28
  593. data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
  594. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
  595. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
  596. data/src/core/lib/iomgr/event_engine/resolver.cc +68 -46
  597. data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
  598. data/src/core/lib/iomgr/event_engine/tcp.cc +16 -13
  599. data/src/core/lib/iomgr/event_engine/timer.cc +10 -4
  600. data/src/core/lib/iomgr/exec_ctx.cc +23 -18
  601. data/src/core/lib/iomgr/exec_ctx.h +11 -11
  602. data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
  603. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
  604. data/src/core/lib/iomgr/executor.cc +26 -34
  605. data/src/core/lib/iomgr/executor.h +1 -1
  606. data/src/core/lib/iomgr/fork_posix.cc +3 -2
  607. data/src/core/lib/iomgr/iomgr.cc +3 -1
  608. data/src/core/lib/iomgr/iomgr_custom.cc +4 -1
  609. data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
  610. data/src/core/lib/iomgr/iomgr_internal.h +3 -2
  611. data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
  612. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  613. data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
  614. data/src/core/lib/iomgr/load_file.cc +2 -2
  615. data/src/core/lib/iomgr/lockfree_event.cc +18 -0
  616. data/src/core/lib/iomgr/pollset_custom.cc +1 -1
  617. data/src/core/lib/iomgr/pollset_custom.h +1 -1
  618. data/src/core/lib/iomgr/port.h +2 -2
  619. data/src/core/lib/iomgr/resolve_address.cc +5 -24
  620. data/src/core/lib/iomgr/resolve_address.h +47 -44
  621. data/src/core/lib/iomgr/resolve_address_custom.cc +131 -109
  622. data/src/core/lib/iomgr/resolve_address_custom.h +101 -19
  623. data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
  624. data/src/core/lib/iomgr/resolve_address_posix.cc +87 -73
  625. data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
  626. data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
  627. data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
  628. data/src/core/lib/iomgr/resolved_address.h +39 -0
  629. data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
  630. data/src/core/lib/iomgr/socket_mutator.cc +2 -2
  631. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
  632. data/src/core/lib/iomgr/tcp_client.cc +2 -4
  633. data/src/core/lib/iomgr/tcp_client.h +1 -3
  634. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -12
  635. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -11
  636. data/src/core/lib/iomgr/tcp_client_posix.cc +16 -41
  637. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  638. data/src/core/lib/iomgr/tcp_client_windows.cc +3 -13
  639. data/src/core/lib/iomgr/tcp_custom.cc +9 -36
  640. data/src/core/lib/iomgr/tcp_custom.h +0 -1
  641. data/src/core/lib/iomgr/tcp_posix.cc +32 -38
  642. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  643. data/src/core/lib/iomgr/tcp_server.cc +4 -6
  644. data/src/core/lib/iomgr/tcp_server.h +6 -8
  645. data/src/core/lib/iomgr/tcp_server_custom.cc +7 -16
  646. data/src/core/lib/iomgr/tcp_server_posix.cc +20 -25
  647. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
  648. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
  649. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
  650. data/src/core/lib/iomgr/tcp_server_windows.cc +9 -17
  651. data/src/core/lib/iomgr/tcp_windows.cc +4 -9
  652. data/src/core/lib/iomgr/tcp_windows.h +1 -2
  653. data/src/core/lib/iomgr/timer_generic.cc +13 -13
  654. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  655. data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
  656. data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
  657. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
  658. data/src/core/lib/iomgr/work_serializer.cc +115 -44
  659. data/src/core/lib/iomgr/work_serializer.h +16 -4
  660. data/src/core/lib/json/json_reader.cc +83 -35
  661. data/src/core/lib/json/json_util.cc +69 -1
  662. data/src/core/lib/json/json_util.h +57 -99
  663. data/src/core/lib/json/json_writer.cc +0 -3
  664. data/src/core/lib/matchers/matchers.cc +1 -1
  665. data/src/core/lib/promise/activity.cc +115 -0
  666. data/src/core/lib/promise/activity.h +528 -0
  667. data/src/core/lib/promise/context.h +86 -0
  668. data/src/core/lib/promise/detail/basic_seq.h +407 -0
  669. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  670. data/src/core/lib/promise/detail/promise_like.h +85 -0
  671. data/src/core/lib/promise/detail/status.h +49 -0
  672. data/src/core/lib/promise/detail/switch.h +1455 -0
  673. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  674. data/src/core/lib/promise/loop.h +108 -0
  675. data/src/core/lib/promise/map.h +88 -0
  676. data/src/core/lib/promise/poll.h +60 -0
  677. data/src/core/lib/promise/race.h +84 -0
  678. data/src/core/lib/promise/seq.h +71 -0
  679. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
  680. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
  681. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +12 -5
  682. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.cc +15 -17
  683. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.h +5 -7
  684. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
  685. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +5 -5
  686. data/src/core/lib/resource_quota/api.cc +108 -0
  687. data/src/core/lib/resource_quota/api.h +40 -0
  688. data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
  689. data/src/core/lib/{gprpp → resource_quota}/arena.h +32 -11
  690. data/src/core/lib/resource_quota/memory_quota.cc +454 -0
  691. data/src/core/lib/resource_quota/memory_quota.h +421 -0
  692. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  693. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  694. data/src/core/lib/{transport/authority_override.h → resource_quota/thread_quota.cc} +22 -16
  695. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  696. data/src/core/lib/resource_quota/trace.cc +19 -0
  697. data/src/core/lib/resource_quota/trace.h +24 -0
  698. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  699. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  700. data/src/core/lib/security/authorization/evaluate_args.cc +41 -30
  701. data/src/core/lib/security/authorization/evaluate_args.h +3 -1
  702. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
  703. data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
  704. data/src/core/lib/security/authorization/matchers.cc +227 -0
  705. data/src/core/lib/security/authorization/matchers.h +211 -0
  706. data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
  707. data/src/core/lib/security/authorization/rbac_policy.h +170 -0
  708. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +15 -1
  709. data/src/core/lib/security/context/security_context.cc +8 -4
  710. data/src/core/lib/security/context/security_context.h +1 -1
  711. data/src/core/lib/security/credentials/composite/composite_credentials.cc +6 -6
  712. data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -3
  713. data/src/core/lib/security/credentials/credentials.cc +4 -2
  714. data/src/core/lib/security/credentials/credentials.h +16 -21
  715. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +8 -12
  716. data/src/core/lib/security/credentials/external/external_account_credentials.cc +57 -24
  717. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -7
  718. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -4
  719. data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
  720. data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -7
  721. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -9
  722. data/src/core/lib/security/credentials/iam/iam_credentials.cc +16 -19
  723. data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -5
  724. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
  725. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +17 -29
  726. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +8 -8
  727. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -24
  728. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +53 -70
  729. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +13 -15
  730. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -9
  731. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +5 -4
  732. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
  733. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
  734. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
  735. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  736. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  737. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +15 -88
  738. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +26 -82
  739. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  740. data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
  741. data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
  742. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
  743. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  744. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +5 -6
  745. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  746. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
  747. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
  748. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
  749. data/src/core/lib/security/security_connector/security_connector.cc +9 -8
  750. data/src/core/lib/security/security_connector/security_connector.h +6 -2
  751. data/src/core/lib/security/security_connector/ssl_utils.cc +25 -27
  752. data/src/core/lib/security/security_connector/ssl_utils.h +6 -15
  753. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +347 -198
  754. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -43
  755. data/src/core/lib/security/transport/auth_filters.h +7 -0
  756. data/src/core/lib/security/transport/client_auth_filter.cc +53 -33
  757. data/src/core/lib/security/transport/security_handshaker.cc +75 -45
  758. data/src/core/lib/security/transport/server_auth_filter.cc +40 -37
  759. data/src/core/lib/security/transport/tsi_error.cc +3 -5
  760. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config.cc +2 -2
  761. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config.h +4 -4
  762. data/src/core/lib/service_config/service_config_call_data.h +72 -0
  763. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.cc +3 -3
  764. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.h +8 -6
  765. data/src/core/lib/slice/percent_encoding.cc +30 -86
  766. data/src/core/lib/slice/percent_encoding.h +5 -11
  767. data/src/core/lib/slice/slice.cc +10 -24
  768. data/src/core/lib/slice/slice.h +371 -0
  769. data/src/core/lib/{compression/stream_compression_gzip.h → slice/slice_api.cc} +18 -7
  770. data/src/core/lib/slice/slice_buffer.cc +9 -5
  771. data/src/core/lib/slice/slice_intern.cc +4 -107
  772. data/src/core/lib/slice/slice_internal.h +2 -246
  773. data/src/core/lib/slice/slice_refcount.cc +17 -0
  774. data/src/core/lib/slice/slice_refcount.h +116 -0
  775. data/src/core/lib/slice/slice_refcount_base.h +165 -0
  776. data/src/core/lib/slice/slice_split.cc +100 -0
  777. data/src/core/lib/slice/slice_split.h +40 -0
  778. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  779. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  780. data/src/core/lib/surface/builtins.cc +49 -0
  781. data/src/core/lib/surface/builtins.h +26 -0
  782. data/src/core/lib/surface/call.cc +249 -482
  783. data/src/core/lib/surface/call.h +4 -10
  784. data/src/core/lib/surface/channel.cc +53 -93
  785. data/src/core/lib/surface/channel.h +6 -25
  786. data/src/core/lib/surface/channel_init.cc +23 -76
  787. data/src/core/lib/surface/channel_init.h +52 -44
  788. data/src/core/lib/surface/completion_queue.cc +8 -7
  789. data/src/core/lib/surface/init.cc +0 -42
  790. data/src/core/lib/surface/init_secure.cc +17 -14
  791. data/src/core/lib/surface/lame_client.cc +41 -28
  792. data/src/core/lib/surface/lame_client.h +1 -1
  793. data/src/core/lib/surface/server.cc +46 -55
  794. data/src/core/lib/surface/server.h +27 -21
  795. data/src/core/lib/surface/validate_metadata.cc +7 -4
  796. data/src/core/lib/surface/version.cc +2 -2
  797. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  798. data/src/core/lib/transport/byte_stream.cc +4 -0
  799. data/src/core/lib/transport/error_utils.cc +42 -17
  800. data/src/core/lib/transport/error_utils.h +15 -1
  801. data/src/core/lib/transport/metadata_batch.h +1167 -176
  802. data/src/core/lib/transport/{authority_override.cc → parsed_metadata.cc} +14 -17
  803. data/src/core/lib/transport/parsed_metadata.h +385 -0
  804. data/src/core/lib/transport/pid_controller.cc +4 -4
  805. data/src/core/lib/transport/timeout_encoding.cc +200 -66
  806. data/src/core/lib/transport/timeout_encoding.h +40 -10
  807. data/src/core/lib/transport/transport.cc +8 -31
  808. data/src/core/lib/transport/transport.h +1 -2
  809. data/src/core/lib/transport/transport_op_string.cc +7 -20
  810. data/src/core/lib/uri/uri_parser.cc +233 -63
  811. data/src/core/lib/uri/uri_parser.h +38 -23
  812. data/src/core/plugin_registry/grpc_plugin_registry.cc +69 -45
  813. data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
  814. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  815. data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
  816. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -4
  817. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
  818. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  819. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
  820. data/src/core/tsi/fake_transport_security.cc +15 -7
  821. data/src/core/tsi/local_transport_security.cc +43 -80
  822. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
  823. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
  824. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
  825. data/src/core/tsi/ssl_transport_security.cc +93 -16
  826. data/src/core/tsi/ssl_transport_security.h +19 -6
  827. data/src/core/tsi/transport_security.cc +12 -0
  828. data/src/core/tsi/transport_security.h +16 -1
  829. data/src/core/tsi/transport_security_interface.h +26 -0
  830. data/src/ruby/ext/grpc/extconf.rb +21 -11
  831. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -10
  832. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +18 -15
  833. data/src/ruby/lib/grpc/version.rb +1 -1
  834. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
  835. data/src/ruby/spec/client_server_spec.rb +1 -1
  836. data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
  837. data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
  838. data/third_party/abseil-cpp/absl/base/config.h +67 -37
  839. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
  840. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
  841. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
  842. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
  843. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
  844. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
  845. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +15 -10
  846. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
  847. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  848. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  849. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
  850. data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
  851. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  852. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
  853. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
  854. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
  855. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  856. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
  857. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
  858. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
  859. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  860. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  861. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
  862. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  863. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  864. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  865. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
  866. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  867. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  868. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  869. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
  870. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  871. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  872. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  873. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
  874. data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
  875. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
  876. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
  877. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  878. data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
  879. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
  880. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  881. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  882. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  883. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  884. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  885. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  886. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  887. data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
  888. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  889. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  890. data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
  891. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  892. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  893. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  894. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
  895. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
  896. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  897. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  898. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  899. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
  900. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
  901. data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
  902. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  903. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  904. data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
  905. data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
  906. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
  907. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  908. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
  909. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  910. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  911. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  912. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  913. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  914. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  915. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
  916. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  917. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  918. data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
  919. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  920. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
  921. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
  922. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
  923. data/third_party/abseil-cpp/absl/random/random.h +189 -0
  924. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  925. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  926. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  927. data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
  928. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  929. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  930. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
  931. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
  932. data/third_party/abseil-cpp/absl/status/status.cc +9 -17
  933. data/third_party/abseil-cpp/absl/status/status.h +19 -15
  934. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  935. data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
  936. data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
  937. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  938. data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
  939. data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
  940. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
  941. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
  942. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
  943. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  944. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  945. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  946. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  947. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  948. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  949. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  950. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  951. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
  952. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
  953. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
  954. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
  955. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  956. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  957. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  958. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  959. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  960. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  961. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  962. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  963. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  964. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  965. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
  966. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
  967. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
  968. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  969. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  970. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
  971. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
  972. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
  973. data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
  974. data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
  975. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  976. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  977. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  978. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  979. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  980. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  981. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  982. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  983. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
  984. data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
  985. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  986. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  987. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  988. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  989. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  990. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  991. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
  992. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  993. data/third_party/abseil-cpp/absl/time/time.h +67 -36
  994. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  995. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  996. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  997. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  998. data/third_party/boringssl-with-bazel/err_data.c +681 -677
  999. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
  1000. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +20 -21
  1001. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
  1002. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +104 -114
  1003. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
  1004. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
  1005. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  1006. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  1007. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +41 -0
  1008. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
  1009. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
  1010. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  1011. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
  1012. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
  1013. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  1014. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  1015. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
  1016. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  1017. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  1018. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  1019. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
  1020. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  1021. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  1022. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
  1023. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +3 -6
  1024. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
  1025. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
  1026. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
  1027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
  1028. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
  1029. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
  1030. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
  1031. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
  1032. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
  1033. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
  1034. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
  1035. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  1036. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  1037. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
  1038. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  1039. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  1040. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
  1041. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
  1042. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
  1043. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  1044. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  1045. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
  1046. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  1047. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
  1048. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
  1049. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
  1050. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
  1051. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +0 -1
  1052. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1019 -274
  1053. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
  1054. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -2
  1055. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
  1056. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
  1057. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  1058. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
  1059. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  1060. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
  1061. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
  1062. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  1063. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +12 -13
  1064. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
  1065. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  1066. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
  1067. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +31 -13
  1068. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +491 -58
  1069. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -564
  1070. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
  1071. data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
  1072. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
  1073. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
  1074. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +0 -1
  1075. data/third_party/re2/re2/compile.cc +91 -109
  1076. data/third_party/re2/re2/dfa.cc +27 -39
  1077. data/third_party/re2/re2/filtered_re2.cc +18 -2
  1078. data/third_party/re2/re2/filtered_re2.h +10 -5
  1079. data/third_party/re2/re2/nfa.cc +1 -1
  1080. data/third_party/re2/re2/parse.cc +42 -23
  1081. data/third_party/re2/re2/perl_groups.cc +34 -34
  1082. data/third_party/re2/re2/prefilter.cc +3 -2
  1083. data/third_party/re2/re2/prog.cc +182 -4
  1084. data/third_party/re2/re2/prog.h +28 -9
  1085. data/third_party/re2/re2/re2.cc +87 -118
  1086. data/third_party/re2/re2/re2.h +156 -141
  1087. data/third_party/re2/re2/regexp.cc +12 -5
  1088. data/third_party/re2/re2/regexp.h +8 -2
  1089. data/third_party/re2/re2/set.cc +31 -9
  1090. data/third_party/re2/re2/set.h +9 -4
  1091. data/third_party/re2/re2/simplify.cc +11 -3
  1092. data/third_party/re2/re2/tostring.cc +1 -1
  1093. data/third_party/re2/re2/walker-inl.h +1 -1
  1094. data/third_party/re2/util/mutex.h +2 -2
  1095. data/third_party/re2/util/pcre.h +3 -3
  1096. data/third_party/upb/upb/decode.c +309 -178
  1097. data/third_party/upb/upb/decode_fast.c +1 -1
  1098. data/third_party/upb/upb/decode_internal.h +1 -0
  1099. data/third_party/upb/upb/def.c +330 -85
  1100. data/third_party/upb/upb/def.h +45 -14
  1101. data/third_party/upb/upb/def.hpp +17 -4
  1102. data/third_party/upb/upb/encode.c +100 -40
  1103. data/third_party/upb/upb/msg.c +22 -9
  1104. data/third_party/upb/upb/msg_internal.h +90 -8
  1105. data/third_party/upb/upb/reflection.c +98 -58
  1106. data/third_party/upb/upb/reflection.h +6 -2
  1107. data/third_party/upb/upb/text_encode.c +3 -3
  1108. data/third_party/upb/upb/upb.c +8 -0
  1109. data/third_party/xxhash/xxhash.h +607 -352
  1110. metadata +259 -115
  1111. data/include/grpc/event_engine/slice_allocator.h +0 -71
  1112. data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
  1113. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
  1114. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  1115. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  1116. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  1117. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  1118. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
  1119. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
  1120. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
  1121. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
  1122. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  1123. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  1124. data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
  1125. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  1126. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
  1127. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
  1128. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
  1129. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
  1130. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
  1131. data/src/core/lib/avl/avl.cc +0 -306
  1132. data/src/core/lib/compression/algorithm_metadata.h +0 -62
  1133. data/src/core/lib/compression/compression_args.cc +0 -136
  1134. data/src/core/lib/compression/compression_args.h +0 -56
  1135. data/src/core/lib/compression/stream_compression.cc +0 -81
  1136. data/src/core/lib/compression/stream_compression.h +0 -117
  1137. data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
  1138. data/src/core/lib/compression/stream_compression_identity.cc +0 -91
  1139. data/src/core/lib/compression/stream_compression_identity.h +0 -29
  1140. data/src/core/lib/gprpp/match.h +0 -73
  1141. data/src/core/lib/gprpp/overload.h +0 -59
  1142. data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
  1143. data/src/core/lib/iomgr/resource_quota.cc +0 -1104
  1144. data/src/core/lib/iomgr/resource_quota.h +0 -226
  1145. data/src/core/lib/iomgr/udp_server.cc +0 -747
  1146. data/src/core/lib/iomgr/udp_server.h +0 -103
  1147. data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
  1148. data/src/core/lib/transport/metadata.cc +0 -693
  1149. data/src/core/lib/transport/metadata.h +0 -448
  1150. data/src/core/lib/transport/metadata_batch.cc +0 -430
  1151. data/src/core/lib/transport/static_metadata.cc +0 -1249
  1152. data/src/core/lib/transport/static_metadata.h +0 -604
  1153. data/src/core/lib/transport/status_metadata.cc +0 -62
  1154. data/src/core/lib/transport/status_metadata.h +0 -48
  1155. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  1156. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
@@ -21,77 +21,72 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include <grpc/compression.h>
25
- #include <grpc/slice.h>
26
-
27
- #include "src/core/lib/gpr/useful.h"
28
-
29
- #ifdef __cplusplus
30
- extern "C" {
31
- #endif
32
-
33
- typedef enum {
34
- GRPC_MESSAGE_COMPRESS_NONE = 0,
35
- GRPC_MESSAGE_COMPRESS_DEFLATE,
36
- GRPC_MESSAGE_COMPRESS_GZIP,
37
- /* TODO(ctiller): snappy */
38
- GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT
39
- } grpc_message_compression_algorithm;
40
-
41
- /** Stream compression algorithms supported by gRPC */
42
- typedef enum {
43
- GRPC_STREAM_COMPRESS_NONE = 0,
44
- GRPC_STREAM_COMPRESS_GZIP,
45
- GRPC_STREAM_COMPRESS_ALGORITHMS_COUNT
46
- } grpc_stream_compression_algorithm;
47
-
48
- /* Interfaces performing transformation between compression algorithms and
49
- * levels. */
50
-
51
- grpc_message_compression_algorithm
52
- grpc_compression_algorithm_to_message_compression_algorithm(
53
- grpc_compression_algorithm algo);
54
-
55
- grpc_stream_compression_algorithm
56
- grpc_compression_algorithm_to_stream_compression_algorithm(
57
- grpc_compression_algorithm algo);
58
-
59
- uint32_t grpc_compression_bitset_to_message_bitset(uint32_t bitset);
24
+ #include <initializer_list>
60
25
 
61
- uint32_t grpc_compression_bitset_to_stream_bitset(uint32_t bitset);
26
+ #include "absl/strings/string_view.h"
27
+ #include "absl/types/optional.h"
62
28
 
63
- uint32_t grpc_compression_bitset_from_message_stream_compression_bitset(
64
- uint32_t message_bitset, uint32_t stream_bitset);
65
-
66
- int grpc_compression_algorithm_from_message_stream_compression_algorithm(
67
- grpc_compression_algorithm* algorithm,
68
- grpc_message_compression_algorithm message_algorithm,
69
- grpc_stream_compression_algorithm stream_algorithm);
70
-
71
- /* Interfaces for message compression. */
72
-
73
- int grpc_message_compression_algorithm_name(
74
- grpc_message_compression_algorithm algorithm, const char** name);
75
-
76
- grpc_message_compression_algorithm grpc_message_compression_algorithm_for_level(
77
- grpc_compression_level level, uint32_t accepted_encodings);
78
-
79
- int grpc_message_compression_algorithm_parse(
80
- grpc_slice value, grpc_message_compression_algorithm* algorithm);
81
-
82
- /* Interfaces for stream compression. */
83
-
84
- int grpc_stream_compression_algorithm_parse(
85
- grpc_slice value, grpc_stream_compression_algorithm* algorithm);
86
-
87
- #ifdef __cplusplus
88
- }
89
- #endif
29
+ #include <grpc/compression.h>
30
+ #include <grpc/impl/codegen/grpc_types.h>
31
+ #include <grpc/slice.h>
90
32
 
91
- inline int grpc_compression_options_is_algorithm_enabled_internal(
92
- const grpc_compression_options* opts,
93
- grpc_compression_algorithm algorithm) {
94
- return GPR_BITGET(opts->enabled_algorithms_bitset, algorithm);
95
- }
33
+ #include "src/core/lib/gprpp/bitset.h"
34
+ #include "src/core/lib/slice/slice.h"
35
+
36
+ namespace grpc_core {
37
+
38
+ // Given a string naming a compression algorithm, return the corresponding enum
39
+ // or nullopt on error.
40
+ absl::optional<grpc_compression_algorithm> ParseCompressionAlgorithm(
41
+ absl::string_view algorithm);
42
+ // Convert a compression algorithm to a string. Returns nullptr if a name is not
43
+ // known.
44
+ const char* CompressionAlgorithmAsString(grpc_compression_algorithm algorithm);
45
+ // Retrieve the default compression algorithm from channel args, return nullopt
46
+ // if not found.
47
+ absl::optional<grpc_compression_algorithm>
48
+ DefaultCompressionAlgorithmFromChannelArgs(const grpc_channel_args* args);
49
+
50
+ // A set of grpc_compression_algorithm values.
51
+ class CompressionAlgorithmSet {
52
+ public:
53
+ // Construct from a uint32_t bitmask - bit 0 => algorithm 0, bit 1 =>
54
+ // algorithm 1, etc.
55
+ static CompressionAlgorithmSet FromUint32(uint32_t value);
56
+ // Locate in channel args and construct from the found value.
57
+ static CompressionAlgorithmSet FromChannelArgs(const grpc_channel_args* args);
58
+ // Parse a string of comma-separated compression algorithms.
59
+ static CompressionAlgorithmSet FromString(absl::string_view str);
60
+ // Construct an empty set.
61
+ CompressionAlgorithmSet();
62
+ // Construct from a std::initializer_list of grpc_compression_algorithm
63
+ // values.
64
+ CompressionAlgorithmSet(
65
+ std::initializer_list<grpc_compression_algorithm> algorithms);
66
+
67
+ // Given a compression level, choose an appropriate algorithm from this set.
68
+ grpc_compression_algorithm CompressionAlgorithmForLevel(
69
+ grpc_compression_level level) const;
70
+ // Return true if this set contains algorithm, false otherwise.
71
+ bool IsSet(grpc_compression_algorithm algorithm) const;
72
+ // Add algorithm to this set.
73
+ void Set(grpc_compression_algorithm algorithm);
74
+
75
+ // Return a comma separated string of the algorithms in this set.
76
+ std::string ToString() const;
77
+ Slice ToSlice() const;
78
+
79
+ // Return a bitmask of the algorithms in this set.
80
+ uint32_t ToLegacyBitmask() const;
81
+
82
+ bool operator==(const CompressionAlgorithmSet& other) const {
83
+ return set_ == other.set_;
84
+ }
85
+
86
+ private:
87
+ BitSet<GRPC_COMPRESS_ALGORITHMS_COUNT> set_;
88
+ };
89
+
90
+ } // namespace grpc_core
96
91
 
97
92
  #endif /* GRPC_CORE_LIB_COMPRESSION_COMPRESSION_INTERNAL_H */
@@ -148,25 +148,25 @@ static int copy(grpc_slice_buffer* input, grpc_slice_buffer* output) {
148
148
  return 1;
149
149
  }
150
150
 
151
- static int compress_inner(grpc_message_compression_algorithm algorithm,
151
+ static int compress_inner(grpc_compression_algorithm algorithm,
152
152
  grpc_slice_buffer* input, grpc_slice_buffer* output) {
153
153
  switch (algorithm) {
154
- case GRPC_MESSAGE_COMPRESS_NONE:
154
+ case GRPC_COMPRESS_NONE:
155
155
  /* the fallback path always needs to be send uncompressed: we simply
156
156
  rely on that here */
157
157
  return 0;
158
- case GRPC_MESSAGE_COMPRESS_DEFLATE:
158
+ case GRPC_COMPRESS_DEFLATE:
159
159
  return zlib_compress(input, output, 0);
160
- case GRPC_MESSAGE_COMPRESS_GZIP:
160
+ case GRPC_COMPRESS_GZIP:
161
161
  return zlib_compress(input, output, 1);
162
- case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
162
+ case GRPC_COMPRESS_ALGORITHMS_COUNT:
163
163
  break;
164
164
  }
165
165
  gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
166
166
  return 0;
167
167
  }
168
168
 
169
- int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
169
+ int grpc_msg_compress(grpc_compression_algorithm algorithm,
170
170
  grpc_slice_buffer* input, grpc_slice_buffer* output) {
171
171
  if (!compress_inner(algorithm, input, output)) {
172
172
  copy(input, output);
@@ -175,16 +175,16 @@ int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
175
175
  return 1;
176
176
  }
177
177
 
178
- int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
178
+ int grpc_msg_decompress(grpc_compression_algorithm algorithm,
179
179
  grpc_slice_buffer* input, grpc_slice_buffer* output) {
180
180
  switch (algorithm) {
181
- case GRPC_MESSAGE_COMPRESS_NONE:
181
+ case GRPC_COMPRESS_NONE:
182
182
  return copy(input, output);
183
- case GRPC_MESSAGE_COMPRESS_DEFLATE:
183
+ case GRPC_COMPRESS_DEFLATE:
184
184
  return zlib_decompress(input, output, 0);
185
- case GRPC_MESSAGE_COMPRESS_GZIP:
185
+ case GRPC_COMPRESS_GZIP:
186
186
  return zlib_decompress(input, output, 1);
187
- case GRPC_MESSAGE_COMPRESS_ALGORITHMS_COUNT:
187
+ case GRPC_COMPRESS_ALGORITHMS_COUNT:
188
188
  break;
189
189
  }
190
190
  gpr_log(GPR_ERROR, "invalid compression algorithm %d", algorithm);
@@ -28,13 +28,13 @@
28
28
  /* compress 'input' to 'output' using 'algorithm'.
29
29
  On success, appends compressed slices to output and returns 1.
30
30
  On failure, appends uncompressed slices to output and returns 0. */
31
- int grpc_msg_compress(grpc_message_compression_algorithm algorithm,
31
+ int grpc_msg_compress(grpc_compression_algorithm algorithm,
32
32
  grpc_slice_buffer* input, grpc_slice_buffer* output);
33
33
 
34
34
  /* decompress 'input' to 'output' using 'algorithm'.
35
35
  On success, appends slices to output and returns 1.
36
36
  On failure, output is unchanged, and returns 0. */
37
- int grpc_msg_decompress(grpc_message_compression_algorithm algorithm,
37
+ int grpc_msg_decompress(grpc_compression_algorithm algorithm,
38
38
  grpc_slice_buffer* input, grpc_slice_buffer* output);
39
39
 
40
40
  #endif /* GRPC_CORE_LIB_COMPRESSION_MESSAGE_COMPRESS_H */
@@ -12,13 +12,17 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #include <grpc/impl/codegen/port_platform.h>
15
+ #include <grpc/support/port_platform.h>
16
16
 
17
17
  #include "src/core/lib/config/core_configuration.h"
18
18
 
19
+ #include <grpc/support/log.h>
20
+
19
21
  namespace grpc_core {
20
22
 
21
23
  std::atomic<CoreConfiguration*> CoreConfiguration::config_{nullptr};
24
+ std::atomic<CoreConfiguration::RegisteredBuilder*> CoreConfiguration::builders_{
25
+ nullptr};
22
26
 
23
27
  CoreConfiguration::Builder::Builder() = default;
24
28
 
@@ -27,11 +31,44 @@ CoreConfiguration* CoreConfiguration::Builder::Build() {
27
31
  }
28
32
 
29
33
  CoreConfiguration::CoreConfiguration(Builder* builder)
30
- : handshaker_registry_(builder->handshaker_registry_.Build()) {}
34
+ : channel_args_preconditioning_(
35
+ builder->channel_args_preconditioning_.Build()),
36
+ channel_init_(builder->channel_init_.Build()),
37
+ handshaker_registry_(builder->handshaker_registry_.Build()) {}
38
+
39
+ void CoreConfiguration::RegisterBuilder(std::function<void(Builder*)> builder) {
40
+ GPR_ASSERT(config_.load(std::memory_order_relaxed) == nullptr &&
41
+ "CoreConfiguration was already instantiated before builder "
42
+ "registration was completed");
43
+ RegisteredBuilder* n = new RegisteredBuilder();
44
+ n->builder = std::move(builder);
45
+ n->next = builders_.load(std::memory_order_relaxed);
46
+ while (!builders_.compare_exchange_weak(n->next, n, std::memory_order_acq_rel,
47
+ std::memory_order_relaxed)) {
48
+ }
49
+ GPR_ASSERT(config_.load(std::memory_order_relaxed) == nullptr &&
50
+ "CoreConfiguration was already instantiated before builder "
51
+ "registration was completed");
52
+ }
31
53
 
32
54
  const CoreConfiguration& CoreConfiguration::BuildNewAndMaybeSet() {
33
55
  // Construct builder, pass it up to code that knows about build configuration
34
56
  Builder builder;
57
+ // The linked list of builders stores things in reverse registration order.
58
+ // To get things registered as systems relying on this expect however, we
59
+ // actually need to run things in forward registration order, so we iterate
60
+ // once over the linked list to build a vector of builders, and then iterate
61
+ // over said vector in reverse to actually run the builders.
62
+ std::vector<RegisteredBuilder*> registered_builders;
63
+ for (RegisteredBuilder* b = builders_.load(std::memory_order_acquire);
64
+ b != nullptr; b = b->next) {
65
+ registered_builders.push_back(b);
66
+ }
67
+ for (auto it = registered_builders.rbegin(); it != registered_builders.rend();
68
+ ++it) {
69
+ (*it)->builder(&builder);
70
+ }
71
+ // Finally, call the built in configuration builder.
35
72
  BuildCoreConfiguration(&builder);
36
73
  // Use builder to construct a confguration
37
74
  CoreConfiguration* p = builder.Build();
@@ -49,6 +86,13 @@ const CoreConfiguration& CoreConfiguration::BuildNewAndMaybeSet() {
49
86
 
50
87
  void CoreConfiguration::Reset() {
51
88
  delete config_.exchange(nullptr, std::memory_order_acquire);
89
+ RegisteredBuilder* builder =
90
+ builders_.exchange(nullptr, std::memory_order_acquire);
91
+ while (builder != nullptr) {
92
+ RegisteredBuilder* next = builder->next;
93
+ delete builder;
94
+ builder = next;
95
+ }
52
96
  }
53
97
 
54
98
  } // namespace grpc_core
@@ -15,11 +15,13 @@
15
15
  #ifndef GRPC_CORE_LIB_CONFIG_CORE_CONFIGURATION_H
16
16
  #define GRPC_CORE_LIB_CONFIG_CORE_CONFIGURATION_H
17
17
 
18
- #include <grpc/impl/codegen/port_platform.h>
18
+ #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include <atomic>
21
21
 
22
+ #include "src/core/lib/channel/channel_args_preconditioning.h"
22
23
  #include "src/core/lib/channel/handshaker_registry.h"
24
+ #include "src/core/lib/surface/channel_init.h"
23
25
 
24
26
  namespace grpc_core {
25
27
 
@@ -34,6 +36,12 @@ class CoreConfiguration {
34
36
  // their configuration and assemble the published CoreConfiguration.
35
37
  class Builder {
36
38
  public:
39
+ ChannelArgsPreconditioning::Builder* channel_args_preconditioning() {
40
+ return &channel_args_preconditioning_;
41
+ }
42
+
43
+ ChannelInit::Builder* channel_init() { return &channel_init_; }
44
+
37
45
  HandshakerRegistry::Builder* handshaker_registry() {
38
46
  return &handshaker_registry_;
39
47
  }
@@ -41,6 +49,8 @@ class CoreConfiguration {
41
49
  private:
42
50
  friend class CoreConfiguration;
43
51
 
52
+ ChannelArgsPreconditioning::Builder channel_args_preconditioning_;
53
+ ChannelInit::Builder channel_init_;
44
54
  HandshakerRegistry::Builder handshaker_registry_;
45
55
 
46
56
  Builder();
@@ -77,13 +87,42 @@ class CoreConfiguration {
77
87
  delete config_.exchange(p, std::memory_order_release);
78
88
  }
79
89
 
90
+ // Attach a registration function globally.
91
+ // Each registration function is called *in addition to*
92
+ // BuildCoreConfiguration for the default core configuration. When using
93
+ // BuildSpecialConfiguration, one can use CallRegisteredBuilders to call them.
94
+ // Must be called before a configuration is built.
95
+ static void RegisterBuilder(std::function<void(Builder*)> builder);
96
+
97
+ // Call all registered builders.
98
+ // See RegisterBuilder for why you might want to call this.
99
+ static void CallRegisteredBuilders(Builder* builder);
100
+
80
101
  // Drop the core configuration. Users must ensure no other threads are
81
102
  // accessing the configuration.
82
103
  // Clears any dynamically registered builders.
83
104
  static void Reset();
84
105
 
106
+ // Helper for tests: Reset the configuration, build a special one, run some
107
+ // code, and then reset the configuration again.
108
+ // Templatized to be sure no codegen in normal builds.
109
+ template <typename BuildFunc, typename RunFunc>
110
+ static void RunWithSpecialConfiguration(BuildFunc build_configuration,
111
+ RunFunc code_to_run) {
112
+ Reset();
113
+ BuildSpecialConfiguration(build_configuration);
114
+ code_to_run();
115
+ Reset();
116
+ }
117
+
85
118
  // Accessors
86
119
 
120
+ const ChannelArgsPreconditioning& channel_args_preconditioning() const {
121
+ return channel_args_preconditioning_;
122
+ }
123
+
124
+ const ChannelInit& channel_init() const { return channel_init_; }
125
+
87
126
  const HandshakerRegistry& handshaker_registry() const {
88
127
  return handshaker_registry_;
89
128
  }
@@ -91,13 +130,23 @@ class CoreConfiguration {
91
130
  private:
92
131
  explicit CoreConfiguration(Builder* builder);
93
132
 
133
+ // Stores a builder for RegisterBuilder
134
+ struct RegisteredBuilder {
135
+ std::function<void(Builder*)> builder;
136
+ RegisteredBuilder* next;
137
+ };
138
+
94
139
  // Create a new CoreConfiguration, and either set it or throw it away.
95
140
  // We allow multiple CoreConfiguration's to be created in parallel.
96
141
  static const CoreConfiguration& BuildNewAndMaybeSet();
97
142
 
98
143
  // The configuration
99
144
  static std::atomic<CoreConfiguration*> config_;
145
+ // Extra registered builders
146
+ static std::atomic<RegisteredBuilder*> builders_;
100
147
 
148
+ ChannelArgsPreconditioning channel_args_preconditioning_;
149
+ ChannelInit channel_init_;
101
150
  HandshakerRegistry handshaker_registry_;
102
151
  };
103
152
 
@@ -38,7 +38,7 @@ grpc_stats_data* grpc_stats_per_cpu_storage = nullptr;
38
38
  static size_t g_num_cores;
39
39
 
40
40
  void grpc_stats_init(void) {
41
- g_num_cores = GPR_MAX(1, gpr_cpu_num_cores());
41
+ g_num_cores = std::max(1u, gpr_cpu_num_cores());
42
42
  grpc_stats_per_cpu_storage = static_cast<grpc_stats_data*>(
43
43
  gpr_zalloc(sizeof(grpc_stats_data) * g_num_cores));
44
44
  }
@@ -353,7 +353,7 @@ const uint8_t grpc_stats_table_7[102] = {
353
353
  const int grpc_stats_table_8[9] = {0, 1, 2, 4, 7, 13, 23, 39, 64};
354
354
  const uint8_t grpc_stats_table_9[9] = {0, 0, 1, 2, 2, 3, 4, 4, 5};
355
355
  void grpc_stats_inc_call_initial_size(int value) {
356
- value = GPR_CLAMP(value, 0, 262144);
356
+ value = grpc_core::Clamp(value, 0, 262144);
357
357
  if (value < 6) {
358
358
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_CALL_INITIAL_SIZE, value);
359
359
  return;
@@ -376,7 +376,7 @@ void grpc_stats_inc_call_initial_size(int value) {
376
376
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_0, 64));
377
377
  }
378
378
  void grpc_stats_inc_poll_events_returned(int value) {
379
- value = GPR_CLAMP(value, 0, 1024);
379
+ value = grpc_core::Clamp(value, 0, 1024);
380
380
  if (value < 29) {
381
381
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_POLL_EVENTS_RETURNED, value);
382
382
  return;
@@ -399,7 +399,7 @@ void grpc_stats_inc_poll_events_returned(int value) {
399
399
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_2, 128));
400
400
  }
401
401
  void grpc_stats_inc_tcp_write_size(int value) {
402
- value = GPR_CLAMP(value, 0, 16777216);
402
+ value = grpc_core::Clamp(value, 0, 16777216);
403
403
  if (value < 5) {
404
404
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, value);
405
405
  return;
@@ -422,7 +422,7 @@ void grpc_stats_inc_tcp_write_size(int value) {
422
422
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_4, 64));
423
423
  }
424
424
  void grpc_stats_inc_tcp_write_iov_size(int value) {
425
- value = GPR_CLAMP(value, 0, 1024);
425
+ value = grpc_core::Clamp(value, 0, 1024);
426
426
  if (value < 13) {
427
427
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, value);
428
428
  return;
@@ -445,7 +445,7 @@ void grpc_stats_inc_tcp_write_iov_size(int value) {
445
445
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
446
446
  }
447
447
  void grpc_stats_inc_tcp_read_size(int value) {
448
- value = GPR_CLAMP(value, 0, 16777216);
448
+ value = grpc_core::Clamp(value, 0, 16777216);
449
449
  if (value < 5) {
450
450
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, value);
451
451
  return;
@@ -468,7 +468,7 @@ void grpc_stats_inc_tcp_read_size(int value) {
468
468
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_4, 64));
469
469
  }
470
470
  void grpc_stats_inc_tcp_read_offer(int value) {
471
- value = GPR_CLAMP(value, 0, 16777216);
471
+ value = grpc_core::Clamp(value, 0, 16777216);
472
472
  if (value < 5) {
473
473
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_TCP_READ_OFFER, value);
474
474
  return;
@@ -491,7 +491,7 @@ void grpc_stats_inc_tcp_read_offer(int value) {
491
491
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_4, 64));
492
492
  }
493
493
  void grpc_stats_inc_tcp_read_offer_iov_size(int value) {
494
- value = GPR_CLAMP(value, 0, 1024);
494
+ value = grpc_core::Clamp(value, 0, 1024);
495
495
  if (value < 13) {
496
496
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_TCP_READ_OFFER_IOV_SIZE,
497
497
  value);
@@ -516,7 +516,7 @@ void grpc_stats_inc_tcp_read_offer_iov_size(int value) {
516
516
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
517
517
  }
518
518
  void grpc_stats_inc_http2_send_message_size(int value) {
519
- value = GPR_CLAMP(value, 0, 16777216);
519
+ value = grpc_core::Clamp(value, 0, 16777216);
520
520
  if (value < 5) {
521
521
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE,
522
522
  value);
@@ -541,7 +541,7 @@ void grpc_stats_inc_http2_send_message_size(int value) {
541
541
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_4, 64));
542
542
  }
543
543
  void grpc_stats_inc_http2_send_initial_metadata_per_write(int value) {
544
- value = GPR_CLAMP(value, 0, 1024);
544
+ value = grpc_core::Clamp(value, 0, 1024);
545
545
  if (value < 13) {
546
546
  GRPC_STATS_INC_HISTOGRAM(
547
547
  GRPC_STATS_HISTOGRAM_HTTP2_SEND_INITIAL_METADATA_PER_WRITE, value);
@@ -566,7 +566,7 @@ void grpc_stats_inc_http2_send_initial_metadata_per_write(int value) {
566
566
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
567
567
  }
568
568
  void grpc_stats_inc_http2_send_message_per_write(int value) {
569
- value = GPR_CLAMP(value, 0, 1024);
569
+ value = grpc_core::Clamp(value, 0, 1024);
570
570
  if (value < 13) {
571
571
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_PER_WRITE,
572
572
  value);
@@ -591,7 +591,7 @@ void grpc_stats_inc_http2_send_message_per_write(int value) {
591
591
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
592
592
  }
593
593
  void grpc_stats_inc_http2_send_trailing_metadata_per_write(int value) {
594
- value = GPR_CLAMP(value, 0, 1024);
594
+ value = grpc_core::Clamp(value, 0, 1024);
595
595
  if (value < 13) {
596
596
  GRPC_STATS_INC_HISTOGRAM(
597
597
  GRPC_STATS_HISTOGRAM_HTTP2_SEND_TRAILING_METADATA_PER_WRITE, value);
@@ -616,7 +616,7 @@ void grpc_stats_inc_http2_send_trailing_metadata_per_write(int value) {
616
616
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
617
617
  }
618
618
  void grpc_stats_inc_http2_send_flowctl_per_write(int value) {
619
- value = GPR_CLAMP(value, 0, 1024);
619
+ value = grpc_core::Clamp(value, 0, 1024);
620
620
  if (value < 13) {
621
621
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_HTTP2_SEND_FLOWCTL_PER_WRITE,
622
622
  value);
@@ -641,7 +641,7 @@ void grpc_stats_inc_http2_send_flowctl_per_write(int value) {
641
641
  grpc_stats_histo_find_bucket_slow(value, grpc_stats_table_6, 64));
642
642
  }
643
643
  void grpc_stats_inc_server_cqs_checked(int value) {
644
- value = GPR_CLAMP(value, 0, 64);
644
+ value = grpc_core::Clamp(value, 0, 64);
645
645
  if (value < 3) {
646
646
  GRPC_STATS_INC_HISTOGRAM(GRPC_STATS_HISTOGRAM_SERVER_CQS_CHECKED, value);
647
647
  return;
@@ -56,7 +56,7 @@ class TraceFlagList {
56
56
  };
57
57
 
58
58
  namespace testing {
59
- void grpc_tracer_enable_flag(grpc_core::TraceFlag* flag);
59
+ void grpc_tracer_enable_flag(TraceFlag* flag);
60
60
  }
61
61
 
62
62
  class TraceFlag {
@@ -90,7 +90,7 @@ class TraceFlag {
90
90
  #endif /* defined(GRPC_USE_TRACERS) || !defined(NDEBUG) */
91
91
 
92
92
  private:
93
- friend void grpc_core::testing::grpc_tracer_enable_flag(TraceFlag* flag);
93
+ friend void testing::grpc_tracer_enable_flag(TraceFlag* flag);
94
94
  friend class TraceFlagList;
95
95
 
96
96
  void set_enabled(bool enabled) {
@@ -13,12 +13,13 @@
13
13
  // limitations under the License.
14
14
  #include <grpc/support/port_platform.h>
15
15
 
16
+ #include "src/core/lib/event_engine/channel_args_endpoint_config.h"
17
+
16
18
  #include <grpc/event_engine/endpoint_config.h>
17
19
  #include <grpc/impl/codegen/grpc_types.h>
18
20
  #include <grpc/impl/codegen/log.h>
19
21
 
20
22
  #include "src/core/lib/channel/channel_args.h"
21
- #include "src/core/lib/event_engine/endpoint_config_internal.h"
22
23
  #include "src/core/lib/gpr/useful.h"
23
24
 
24
25
  namespace grpc_event_engine {
@@ -11,8 +11,8 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- #ifndef GRPC_CORE_LIB_EVENT_ENGINE_ENDPOINT_CONFIG_INTERNAL_H
15
- #define GRPC_CORE_LIB_EVENT_ENGINE_ENDPOINT_CONFIG_INTERNAL_H
14
+ #ifndef GRPC_CORE_LIB_EVENT_ENGINE_CHANNEL_ARGS_ENDPOINT_CONFIG_H
15
+ #define GRPC_CORE_LIB_EVENT_ENGINE_CHANNEL_ARGS_ENDPOINT_CONFIG_H
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
@@ -39,4 +39,4 @@ class ChannelArgsEndpointConfig : public EndpointConfig {
39
39
  } // namespace experimental
40
40
  } // namespace grpc_event_engine
41
41
 
42
- #endif // GRPC_CORE_LIB_EVENT_ENGINE_ENDPOINT_CONFIG_INTERNAL_H
42
+ #endif // GRPC_CORE_LIB_EVENT_ENGINE_CHANNEL_ARGS_ENDPOINT_CONFIG_H
@@ -13,17 +13,10 @@
13
13
  // limitations under the License.
14
14
  #include <grpc/support/port_platform.h>
15
15
 
16
- #include "absl/strings/str_format.h"
17
- #include "absl/strings/str_join.h"
18
-
19
- #include <grpc/event_engine/endpoint_config.h>
20
16
  #include <grpc/event_engine/event_engine.h>
21
17
  #include <grpc/event_engine/port.h>
22
- #include <grpc/impl/codegen/grpc_types.h>
23
18
  #include <grpc/support/log.h>
24
19
 
25
- #include "src/core/lib/event_engine/sockaddr.h"
26
-
27
20
  namespace grpc_event_engine {
28
21
  namespace experimental {
29
22
 
@@ -40,11 +33,5 @@ const struct sockaddr* EventEngine::ResolvedAddress::address() const {
40
33
 
41
34
  socklen_t EventEngine::ResolvedAddress::size() const { return size_; }
42
35
 
43
- std::shared_ptr<grpc_event_engine::experimental::EventEngine>
44
- DefaultEventEngineFactory() {
45
- // TODO(nnoble): delete when uv-ee is merged
46
- abort();
47
- }
48
-
49
36
  } // namespace experimental
50
37
  } // namespace grpc_event_engine
@@ -0,0 +1,49 @@
1
+ // Copyright 2021 The gRPC 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
+ // http://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
+ #include <grpc/support/port_platform.h>
15
+
16
+ #include <grpc/event_engine/event_engine.h>
17
+
18
+ #include "src/core/lib/gprpp/sync.h"
19
+
20
+ namespace grpc_event_engine {
21
+ namespace experimental {
22
+
23
+ namespace {
24
+ std::function<std::unique_ptr<EventEngine>()>* g_event_engine_factory = nullptr;
25
+ grpc_core::Mutex* g_mu = new grpc_core::Mutex();
26
+ } // namespace
27
+
28
+ EventEngine* GetDefaultEventEngine() {
29
+ static EventEngine* default_event_engine = CreateEventEngine().release();
30
+ return default_event_engine;
31
+ }
32
+
33
+ void SetDefaultEventEngineFactory(
34
+ std::function<std::unique_ptr<EventEngine>()>* factory) {
35
+ grpc_core::MutexLock lock(g_mu);
36
+ g_event_engine_factory = factory;
37
+ }
38
+
39
+ std::unique_ptr<EventEngine> CreateEventEngine() {
40
+ grpc_core::MutexLock lock(g_mu);
41
+ if (g_event_engine_factory == nullptr) {
42
+ // TODO(hork): call LibuvEventEngineFactory
43
+ abort();
44
+ }
45
+ return (*g_event_engine_factory)();
46
+ }
47
+
48
+ } // namespace experimental
49
+ } // namespace grpc_event_engine