grpc 1.48.0 → 1.50.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (846) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +114 -150
  3. data/include/grpc/event_engine/endpoint_config.h +11 -5
  4. data/include/grpc/event_engine/event_engine.h +20 -17
  5. data/include/grpc/impl/codegen/atm_gcc_atomic.h +19 -28
  6. data/include/grpc/impl/codegen/atm_gcc_sync.h +0 -2
  7. data/include/grpc/impl/codegen/atm_windows.h +0 -2
  8. data/include/grpc/impl/codegen/grpc_types.h +9 -8
  9. data/include/grpc/impl/codegen/port_platform.h +0 -8
  10. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +6 -6
  11. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
  12. data/src/core/ext/filters/client_channel/backup_poller.cc +4 -6
  13. data/src/core/ext/filters/client_channel/client_channel.cc +154 -218
  14. data/src/core/ext/filters/client_channel/client_channel.h +16 -9
  15. data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
  16. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
  17. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +0 -16
  18. data/src/core/ext/filters/client_channel/config_selector.h +12 -4
  19. data/src/core/ext/filters/client_channel/connector.h +4 -5
  20. data/src/core/ext/filters/client_channel/http_proxy.cc +55 -74
  21. data/src/core/ext/filters/client_channel/http_proxy.h +15 -11
  22. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +20 -16
  23. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +11 -10
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +181 -194
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
  30. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +20 -11
  31. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +250 -146
  33. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +41 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +35 -32
  35. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +195 -299
  36. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +237 -250
  37. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +12 -7
  38. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +431 -498
  39. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +31 -30
  40. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +27 -27
  41. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +108 -124
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +68 -76
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +131 -227
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +126 -121
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +325 -304
  46. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +172 -101
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
  50. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -16
  51. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
  52. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
  53. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +51 -32
  54. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +87 -41
  55. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +16 -6
  56. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -13
  57. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +167 -168
  58. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +40 -32
  59. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
  60. data/src/core/ext/filters/client_channel/retry_filter.cc +25 -36
  61. data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
  62. data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
  63. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
  64. data/src/core/ext/filters/client_channel/subchannel.cc +86 -121
  65. data/src/core/ext/filters/client_channel/subchannel.h +20 -11
  66. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
  67. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  68. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
  69. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +4 -6
  70. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
  71. data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
  72. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +24 -19
  73. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +9 -1
  74. data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
  75. data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
  76. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -5
  77. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  78. data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
  79. data/src/core/ext/filters/http/client_authority_filter.h +1 -1
  80. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -4
  81. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -2
  82. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -5
  83. data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
  85. data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
  86. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
  87. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
  88. data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
  89. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
  90. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +40 -63
  91. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +86 -107
  92. data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
  93. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -1
  94. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +155 -295
  95. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
  96. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +287 -0
  97. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1018 -0
  98. data/src/core/ext/transport/chttp2/transport/flow_control.cc +139 -42
  99. data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -6
  100. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -2
  101. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
  102. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +27 -28
  103. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
  104. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +30 -38
  107. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -10
  108. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +11 -6
  109. data/src/core/ext/transport/chttp2/transport/internal.h +4 -1
  110. data/src/core/ext/transport/chttp2/transport/parsing.cc +44 -0
  111. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -14
  112. data/src/core/ext/transport/inproc/inproc_transport.cc +41 -77
  113. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
  114. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
  115. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
  116. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
  117. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
  118. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
  119. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
  120. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
  121. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
  122. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
  123. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
  124. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
  125. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
  126. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
  127. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
  128. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
  129. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
  130. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
  131. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
  132. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
  133. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  134. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
  135. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
  136. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
  137. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
  138. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
  139. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
  140. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
  141. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
  142. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
  143. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
  144. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
  145. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
  147. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
  148. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
  180. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
  181. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
  182. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
  183. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
  184. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
  185. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
  186. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
  187. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
  188. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
  189. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
  190. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
  191. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
  192. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
  193. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
  194. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
  195. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
  196. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
  197. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
  198. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
  199. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
  200. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
  201. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
  202. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
  203. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
  204. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
  205. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
  206. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
  207. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
  208. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
  209. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
  210. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
  211. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
  215. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
  216. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
  217. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
  218. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
  219. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
  220. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
  221. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
  222. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
  223. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
  224. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
  225. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
  226. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
  227. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
  228. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
  229. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
  230. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
  231. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
  232. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
  233. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
  234. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
  235. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
  236. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
  237. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
  238. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
  239. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
  240. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
  241. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
  242. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
  243. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
  244. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
  245. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
  246. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
  247. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
  248. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
  249. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
  250. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
  251. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
  252. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
  253. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
  254. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
  255. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
  256. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
  257. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  258. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
  259. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
  260. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
  261. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
  262. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
  263. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
  264. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
  265. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
  266. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
  267. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
  268. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
  273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
  274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
  275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
  280. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
  281. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
  282. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
  283. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
  284. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
  285. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  286. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
  287. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  288. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
  289. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
  290. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
  291. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
  292. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
  293. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
  294. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
  295. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
  296. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
  297. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
  298. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  299. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  300. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  301. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
  302. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
  303. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  304. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
  305. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
  306. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
  307. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
  308. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  309. data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
  310. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
  311. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
  312. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  313. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
  314. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
  315. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
  316. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  317. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
  318. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  319. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
  320. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
  321. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
  322. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  323. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
  324. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
  325. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
  326. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  327. data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
  328. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
  329. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
  330. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
  331. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
  332. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
  333. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
  334. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
  335. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  336. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
  337. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
  338. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
  339. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
  340. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
  341. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
  342. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
  343. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  344. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
  345. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  346. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
  347. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
  348. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  349. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
  350. data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
  351. data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
  352. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
  353. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
  354. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
  355. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
  356. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
  357. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
  358. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
  359. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
  360. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  361. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
  362. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
  363. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
  364. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  365. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
  366. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
  367. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
  368. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  369. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
  370. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  371. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
  372. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  373. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
  374. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
  375. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
  376. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
  377. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
  378. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
  379. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
  380. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
  381. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
  382. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
  383. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
  384. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
  385. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
  386. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
  389. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
  390. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
  391. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  392. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
  393. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
  394. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
  395. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
  396. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
  397. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  398. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
  399. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
  400. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  401. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
  402. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
  403. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
  404. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  405. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
  406. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
  407. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
  408. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  409. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
  410. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
  411. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
  412. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
  413. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
  414. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
  415. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
  416. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
  417. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  418. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  419. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
  420. data/src/core/ext/xds/certificate_provider_store.cc +63 -3
  421. data/src/core/ext/xds/certificate_provider_store.h +9 -1
  422. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +5 -5
  423. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -1
  424. data/src/core/ext/xds/upb_utils.h +0 -21
  425. data/src/core/ext/xds/xds_api.cc +73 -102
  426. data/src/core/ext/xds/xds_api.h +26 -28
  427. data/src/core/ext/xds/xds_bootstrap.cc +5 -550
  428. data/src/core/ext/xds/xds_bootstrap.h +39 -91
  429. data/src/core/ext/xds/xds_bootstrap_grpc.cc +370 -0
  430. data/src/core/ext/xds/xds_bootstrap_grpc.h +169 -0
  431. data/src/core/ext/xds/xds_certificate_provider.h +9 -0
  432. data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
  433. data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
  434. data/src/core/ext/xds/xds_client.cc +732 -1317
  435. data/src/core/ext/xds/xds_client.h +33 -59
  436. data/src/core/ext/xds/xds_client_grpc.cc +229 -0
  437. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  438. data/src/core/ext/xds/xds_client_stats.cc +4 -4
  439. data/src/core/ext/xds/xds_cluster.cc +162 -165
  440. data/src/core/ext/xds/xds_cluster.h +8 -7
  441. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +12 -14
  442. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
  443. data/src/core/ext/xds/xds_common_types.cc +140 -108
  444. data/src/core/ext/xds/xds_common_types.h +6 -7
  445. data/src/core/ext/xds/xds_endpoint.cc +87 -85
  446. data/src/core/ext/xds/xds_endpoint.h +4 -5
  447. data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
  448. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  449. data/src/core/ext/xds/xds_http_filters.h +3 -3
  450. data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
  451. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  452. data/src/core/ext/xds/xds_lb_policy_registry.cc +21 -22
  453. data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
  454. data/src/core/ext/xds/xds_listener.cc +348 -313
  455. data/src/core/ext/xds/xds_listener.h +4 -5
  456. data/src/core/ext/xds/xds_resource_type.h +23 -9
  457. data/src/core/ext/xds/xds_route_config.cc +193 -191
  458. data/src/core/ext/xds/xds_route_config.h +31 -17
  459. data/src/core/ext/xds/xds_routing.cc +3 -6
  460. data/src/core/ext/xds/xds_routing.h +7 -9
  461. data/src/core/ext/xds/xds_server_config_fetcher.cc +81 -84
  462. data/src/core/ext/xds/xds_transport.h +86 -0
  463. data/src/core/ext/xds/xds_transport_grpc.cc +357 -0
  464. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  465. data/src/core/lib/address_utils/parse_address.cc +19 -17
  466. data/src/core/lib/address_utils/parse_address.h +8 -5
  467. data/src/core/lib/avl/avl.h +47 -25
  468. data/src/core/lib/backoff/backoff.cc +2 -4
  469. data/src/core/lib/channel/call_finalization.h +1 -3
  470. data/src/core/lib/channel/call_tracer.h +1 -1
  471. data/src/core/lib/channel/channel_args.cc +88 -19
  472. data/src/core/lib/channel/channel_args.h +218 -67
  473. data/src/core/lib/channel/channel_stack.cc +0 -1
  474. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  475. data/src/core/lib/channel/channel_stack_builder.h +2 -2
  476. data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
  477. data/src/core/lib/channel/channel_trace.cc +3 -4
  478. data/src/core/lib/channel/channelz.cc +27 -37
  479. data/src/core/lib/channel/channelz.h +9 -0
  480. data/src/core/lib/channel/promise_based_filter.cc +18 -19
  481. data/src/core/lib/channel/promise_based_filter.h +0 -1
  482. data/src/core/lib/channel/status_util.cc +27 -0
  483. data/src/core/lib/channel/status_util.h +10 -0
  484. data/src/core/lib/config/core_configuration.cc +5 -1
  485. data/src/core/lib/config/core_configuration.h +81 -35
  486. data/src/core/lib/debug/stats.cc +39 -46
  487. data/src/core/lib/debug/stats.h +11 -13
  488. data/src/core/lib/debug/stats_data.cc +118 -614
  489. data/src/core/lib/debug/stats_data.h +67 -465
  490. data/src/core/lib/debug/trace.cc +0 -2
  491. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +12 -20
  492. data/src/core/lib/event_engine/channel_args_endpoint_config.h +13 -7
  493. data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
  494. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
  495. data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
  496. data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
  497. data/src/core/lib/event_engine/executor/executor.h +38 -0
  498. data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
  499. data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
  500. data/src/core/lib/event_engine/forkable.cc +101 -0
  501. data/src/core/lib/event_engine/forkable.h +61 -0
  502. data/src/core/lib/event_engine/poller.h +56 -0
  503. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
  504. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
  505. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
  506. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
  507. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
  508. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
  509. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +87 -30
  510. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +40 -9
  511. data/src/core/lib/event_engine/socket_notifier.h +55 -0
  512. data/src/core/lib/event_engine/thread_pool.cc +195 -0
  513. data/src/core/lib/event_engine/thread_pool.h +114 -0
  514. data/src/core/lib/event_engine/time_util.cc +30 -0
  515. data/src/core/lib/event_engine/time_util.h +32 -0
  516. data/src/core/lib/event_engine/utils.cc +44 -0
  517. data/src/core/lib/event_engine/utils.h +36 -0
  518. data/src/core/lib/event_engine/windows/iocp.cc +155 -0
  519. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  520. data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
  521. data/src/core/lib/event_engine/windows/win_socket.h +120 -0
  522. data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
  523. data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
  524. data/src/core/lib/experiments/config.cc +146 -0
  525. data/src/core/lib/experiments/config.h +43 -0
  526. data/src/core/lib/experiments/experiments.cc +75 -0
  527. data/src/core/lib/experiments/experiments.h +56 -0
  528. data/src/core/lib/gpr/alloc.cc +1 -9
  529. data/src/core/lib/gpr/log_windows.cc +0 -1
  530. data/src/core/lib/gpr/string_util_windows.cc +3 -30
  531. data/src/core/lib/gpr/sync_abseil.cc +0 -14
  532. data/src/core/lib/gpr/sync_posix.cc +0 -14
  533. data/src/core/lib/gpr/time.cc +11 -9
  534. data/src/core/lib/gpr/time_posix.cc +0 -6
  535. data/src/core/lib/gpr/time_precise.h +1 -1
  536. data/src/core/lib/gpr/tmpfile_windows.cc +5 -7
  537. data/src/core/lib/gpr/useful.h +40 -0
  538. data/src/core/lib/gprpp/bitset.h +3 -13
  539. data/src/core/lib/gprpp/debug_location.h +39 -7
  540. data/src/core/lib/{gpr → gprpp}/env.h +25 -12
  541. data/src/core/lib/{gpr → gprpp}/env_linux.cc +20 -15
  542. data/src/core/lib/{gpr → gprpp}/env_posix.cc +11 -10
  543. data/src/core/lib/gprpp/env_windows.cc +56 -0
  544. data/src/core/lib/gprpp/fork.cc +14 -22
  545. data/src/core/lib/gprpp/fork.h +0 -8
  546. data/src/core/lib/gprpp/global_config_env.cc +7 -6
  547. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  548. data/src/core/lib/gprpp/no_destruct.h +94 -0
  549. data/src/core/lib/gprpp/notification.h +67 -0
  550. data/src/core/lib/gprpp/packed_table.h +40 -0
  551. data/src/core/lib/gprpp/ref_counted_ptr.h +20 -34
  552. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  553. data/src/core/lib/gprpp/status_helper.cc +1 -0
  554. data/src/core/lib/gprpp/status_helper.h +6 -0
  555. data/src/core/lib/gprpp/table.h +9 -2
  556. data/src/core/lib/gprpp/tchar.cc +49 -0
  557. data/src/core/lib/gprpp/tchar.h +33 -0
  558. data/src/core/lib/gprpp/time.cc +21 -0
  559. data/src/core/lib/gprpp/time.h +55 -0
  560. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
  561. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
  562. data/src/core/lib/gprpp/validation_errors.cc +61 -0
  563. data/src/core/lib/gprpp/validation_errors.h +110 -0
  564. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  565. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  566. data/src/core/{ext/filters/client_channel → lib/handshaker}/proxy_mapper.h +16 -17
  567. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  568. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  569. data/src/core/lib/http/httpcli.cc +12 -24
  570. data/src/core/lib/http/httpcli_security_connector.cc +11 -11
  571. data/src/core/lib/iomgr/call_combiner.cc +0 -34
  572. data/src/core/lib/iomgr/closure.h +0 -10
  573. data/src/core/lib/iomgr/combiner.cc +0 -20
  574. data/src/core/lib/iomgr/endpoint_pair_posix.cc +14 -9
  575. data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
  576. data/src/core/lib/iomgr/error.cc +0 -773
  577. data/src/core/lib/iomgr/error.h +0 -145
  578. data/src/core/lib/iomgr/error_cfstream.cc +0 -5
  579. data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -38
  580. data/src/core/lib/iomgr/ev_poll_posix.cc +19 -26
  581. data/src/core/lib/iomgr/exec_ctx.cc +0 -22
  582. data/src/core/lib/iomgr/exec_ctx.h +7 -31
  583. data/src/core/lib/iomgr/executor.cc +0 -10
  584. data/src/core/lib/iomgr/executor.h +0 -3
  585. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  586. data/src/core/lib/iomgr/iomgr.cc +6 -8
  587. data/src/core/lib/iomgr/iomgr_fwd.h +1 -0
  588. data/src/core/lib/iomgr/lockfree_event.cc +0 -17
  589. data/src/core/lib/iomgr/pollset.h +1 -1
  590. data/src/core/lib/iomgr/pollset_set.h +0 -1
  591. data/src/core/lib/iomgr/port.h +3 -0
  592. data/src/core/lib/iomgr/resolve_address.h +30 -6
  593. data/src/core/lib/iomgr/resolve_address_impl.h +1 -0
  594. data/src/core/lib/iomgr/resolve_address_posix.cc +43 -8
  595. data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
  596. data/src/core/lib/iomgr/resolve_address_windows.cc +45 -10
  597. data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
  598. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +2 -1
  599. data/src/core/lib/iomgr/socket_utils_common_posix.cc +12 -34
  600. data/src/core/lib/iomgr/socket_utils_posix.cc +83 -1
  601. data/src/core/lib/iomgr/socket_utils_posix.h +98 -6
  602. data/src/core/lib/iomgr/socket_windows.h +0 -2
  603. data/src/core/lib/iomgr/tcp_client.cc +6 -7
  604. data/src/core/lib/iomgr/tcp_client.h +11 -11
  605. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -6
  606. data/src/core/lib/iomgr/tcp_client_posix.cc +33 -29
  607. data/src/core/lib/iomgr/tcp_client_posix.h +12 -9
  608. data/src/core/lib/iomgr/tcp_client_windows.cc +6 -6
  609. data/src/core/lib/iomgr/tcp_posix.cc +249 -120
  610. data/src/core/lib/iomgr/tcp_posix.h +3 -1
  611. data/src/core/lib/iomgr/tcp_server.cc +5 -4
  612. data/src/core/lib/iomgr/tcp_server.h +9 -6
  613. data/src/core/lib/iomgr/tcp_server_posix.cc +17 -28
  614. data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
  615. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +3 -3
  616. data/src/core/lib/iomgr/tcp_server_windows.cc +6 -7
  617. data/src/core/lib/iomgr/tcp_windows.cc +0 -1
  618. data/src/core/lib/iomgr/tcp_windows.h +0 -1
  619. data/src/core/lib/iomgr/timer_generic.cc +10 -12
  620. data/src/core/lib/iomgr/timer_manager.cc +1 -2
  621. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
  622. data/src/core/lib/json/json.h +19 -22
  623. data/src/core/lib/json/json_args.h +34 -0
  624. data/src/core/lib/json/json_object_loader.cc +202 -0
  625. data/src/core/lib/json/json_object_loader.h +598 -0
  626. data/src/core/lib/json/json_reader.cc +86 -62
  627. data/src/core/lib/json/json_util.cc +9 -36
  628. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
  629. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +20 -29
  630. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  631. data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
  632. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  633. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
  634. data/src/core/lib/promise/activity.h +57 -10
  635. data/src/core/lib/promise/arena_promise.h +84 -81
  636. data/src/core/lib/promise/context.h +1 -2
  637. data/src/core/lib/promise/detail/basic_seq.h +43 -23
  638. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  639. data/src/core/lib/promise/map.h +0 -1
  640. data/src/core/lib/promise/seq.h +25 -4
  641. data/src/core/lib/promise/sleep.cc +50 -42
  642. data/src/core/lib/promise/sleep.h +32 -23
  643. data/src/core/lib/promise/try_seq.h +26 -6
  644. data/src/core/lib/resolver/resolver.cc +0 -47
  645. data/src/core/lib/resolver/resolver.h +15 -15
  646. data/src/core/lib/resolver/resolver_factory.h +2 -3
  647. data/src/core/lib/resolver/resolver_registry.cc +1 -1
  648. data/src/core/lib/resolver/resolver_registry.h +2 -3
  649. data/src/core/lib/resolver/server_address.cc +11 -15
  650. data/src/core/lib/resolver/server_address.h +4 -8
  651. data/src/core/lib/resource_quota/api.cc +10 -1
  652. data/src/core/lib/resource_quota/api.h +6 -0
  653. data/src/core/lib/resource_quota/arena.cc +19 -1
  654. data/src/core/lib/resource_quota/arena.h +24 -2
  655. data/src/core/lib/resource_quota/memory_quota.cc +143 -19
  656. data/src/core/lib/resource_quota/memory_quota.h +85 -17
  657. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  658. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  659. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  660. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
  661. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  662. data/src/core/lib/security/authorization/matchers.cc +13 -10
  663. data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
  664. data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +3 -3
  665. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
  666. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
  667. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
  668. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
  669. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +1 -0
  670. data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
  671. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
  672. data/src/core/lib/security/credentials/credentials.h +16 -12
  673. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +33 -27
  674. data/src/core/lib/security/credentials/external/external_account_credentials.cc +34 -24
  675. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  676. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
  677. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
  678. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
  679. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -8
  680. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +35 -32
  681. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
  682. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  683. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  684. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
  685. data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
  686. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
  687. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +14 -15
  688. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  689. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  690. data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
  691. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -20
  692. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
  693. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
  694. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
  695. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -3
  696. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +10 -2
  697. data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
  698. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
  699. data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
  700. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
  701. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  702. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
  703. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
  704. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  705. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  706. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
  707. data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
  708. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  709. data/src/core/lib/security/security_connector/security_connector.h +5 -3
  710. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
  711. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
  712. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
  713. data/src/core/lib/security/transport/auth_filters.h +1 -1
  714. data/src/core/lib/security/transport/client_auth_filter.cc +15 -5
  715. data/src/core/lib/security/transport/secure_endpoint.cc +0 -4
  716. data/src/core/lib/security/transport/security_handshaker.cc +32 -44
  717. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  718. data/src/core/lib/service_config/service_config.h +11 -0
  719. data/src/core/lib/service_config/service_config_impl.cc +98 -97
  720. data/src/core/lib/service_config/service_config_impl.h +11 -13
  721. data/src/core/lib/service_config/service_config_parser.cc +26 -27
  722. data/src/core/lib/service_config/service_config_parser.h +10 -22
  723. data/src/core/lib/slice/percent_encoding.cc +4 -13
  724. data/src/core/lib/slice/slice.cc +10 -4
  725. data/src/core/lib/surface/call.cc +9 -13
  726. data/src/core/lib/surface/channel.cc +9 -8
  727. data/src/core/lib/surface/channel.h +1 -1
  728. data/src/core/lib/surface/completion_queue.cc +16 -30
  729. data/src/core/lib/surface/completion_queue.h +1 -4
  730. data/src/core/lib/surface/completion_queue_factory.cc +5 -0
  731. data/src/core/lib/surface/init.cc +17 -16
  732. data/src/core/lib/surface/init_internally.cc +24 -0
  733. data/src/core/lib/surface/init_internally.h +28 -0
  734. data/src/core/lib/surface/lame_client.cc +2 -3
  735. data/src/core/lib/surface/lame_client.h +1 -1
  736. data/src/core/lib/surface/server.cc +8 -19
  737. data/src/core/lib/surface/server.h +11 -13
  738. data/src/core/lib/surface/validate_metadata.cc +4 -14
  739. data/src/core/lib/surface/version.cc +2 -2
  740. data/src/core/lib/transport/bdp_estimator.cc +1 -3
  741. data/src/core/lib/transport/connectivity_state.cc +0 -1
  742. data/src/core/lib/transport/connectivity_state.h +1 -1
  743. data/src/core/lib/transport/error_utils.cc +0 -36
  744. data/src/core/lib/transport/handshaker.cc +7 -9
  745. data/src/core/lib/transport/handshaker.h +4 -5
  746. data/src/core/lib/transport/handshaker_factory.h +2 -3
  747. data/src/core/lib/transport/handshaker_registry.cc +2 -1
  748. data/src/core/lib/transport/handshaker_registry.h +2 -4
  749. data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
  750. data/src/core/lib/transport/metadata_batch.cc +7 -3
  751. data/src/core/lib/transport/metadata_batch.h +61 -14
  752. data/src/core/lib/transport/parsed_metadata.h +4 -3
  753. data/src/core/lib/transport/status_conversion.cc +1 -3
  754. data/src/core/lib/transport/tcp_connect_handshaker.cc +20 -22
  755. data/src/core/lib/transport/transport.h +0 -8
  756. data/src/core/lib/transport/transport_impl.h +0 -1
  757. data/src/core/plugin_registry/grpc_plugin_registry.cc +23 -46
  758. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +13 -25
  759. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
  760. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
  761. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
  762. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
  763. data/src/core/tsi/fake_transport_security.cc +53 -30
  764. data/src/core/tsi/local_transport_security.cc +9 -5
  765. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
  766. data/src/core/tsi/ssl_transport_security.cc +47 -23
  767. data/src/core/tsi/transport_security.cc +18 -6
  768. data/src/core/tsi/transport_security.h +2 -1
  769. data/src/core/tsi/transport_security_interface.h +17 -5
  770. data/src/ruby/ext/grpc/extconf.rb +2 -0
  771. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  772. data/src/ruby/lib/grpc/version.rb +1 -1
  773. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  774. data/src/ruby/spec/channel_spec.rb +5 -0
  775. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  776. data/src/ruby/spec/user_agent_spec.rb +1 -1
  777. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  778. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  779. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  780. data/third_party/upb/upb/arena.c +277 -0
  781. data/third_party/upb/upb/arena.h +225 -0
  782. data/third_party/upb/upb/array.c +114 -0
  783. data/third_party/upb/upb/array.h +83 -0
  784. data/third_party/upb/upb/collections.h +36 -0
  785. data/third_party/upb/upb/decode.c +161 -65
  786. data/third_party/upb/upb/decode.h +1 -0
  787. data/third_party/upb/upb/decode_fast.c +1 -1
  788. data/third_party/upb/upb/def.c +10 -2
  789. data/third_party/upb/upb/def.h +8 -1
  790. data/third_party/upb/upb/def.hpp +7 -4
  791. data/third_party/upb/upb/encode.c +29 -20
  792. data/third_party/upb/upb/encode.h +16 -6
  793. data/third_party/upb/upb/extension_registry.c +93 -0
  794. data/third_party/upb/upb/extension_registry.h +84 -0
  795. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  796. data/third_party/upb/upb/internal/table.h +385 -0
  797. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  798. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  799. data/third_party/upb/upb/json_decode.c +1512 -0
  800. data/third_party/upb/upb/json_decode.h +47 -0
  801. data/third_party/upb/upb/json_encode.c +7 -3
  802. data/third_party/upb/upb/json_encode.h +6 -3
  803. data/third_party/upb/upb/map.c +108 -0
  804. data/third_party/upb/upb/map.h +117 -0
  805. data/third_party/upb/upb/message_value.h +66 -0
  806. data/third_party/upb/upb/mini_table.c +1147 -0
  807. data/third_party/upb/upb/mini_table.h +189 -0
  808. data/third_party/upb/upb/mini_table.hpp +112 -0
  809. data/third_party/upb/upb/msg.c +2 -62
  810. data/third_party/upb/upb/msg.h +2 -45
  811. data/third_party/upb/upb/msg_internal.h +28 -22
  812. data/third_party/upb/upb/port_def.inc +2 -1
  813. data/third_party/upb/upb/port_undef.inc +1 -0
  814. data/third_party/upb/upb/reflection.c +2 -159
  815. data/third_party/upb/upb/reflection.h +2 -112
  816. data/third_party/upb/upb/status.c +86 -0
  817. data/third_party/upb/upb/status.h +66 -0
  818. data/third_party/upb/upb/table.c +2 -2
  819. data/third_party/upb/upb/table_internal.h +3 -352
  820. data/third_party/upb/upb/text_encode.c +3 -2
  821. data/third_party/upb/upb/upb.c +4 -290
  822. data/third_party/upb/upb/upb.h +7 -196
  823. metadata +117 -51
  824. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  825. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
  826. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
  827. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
  828. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
  829. data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
  830. data/src/core/ext/xds/certificate_provider_registry.h +0 -59
  831. data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
  832. data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
  833. data/src/core/lib/event_engine/promise.h +0 -69
  834. data/src/core/lib/gpr/env_windows.cc +0 -74
  835. data/src/core/lib/gpr/string_windows.h +0 -32
  836. data/src/core/lib/iomgr/error_internal.h +0 -66
  837. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  838. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  839. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  840. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  841. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  842. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  843. data/src/core/lib/profiling/basic_timers.cc +0 -295
  844. data/src/core/lib/profiling/stap_timers.cc +0 -50
  845. data/src/core/lib/profiling/timers.h +0 -94
  846. data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -23,13 +23,16 @@
23
23
  #include <stdlib.h>
24
24
  #include <string.h>
25
25
 
26
+ #include <string>
26
27
  #include <utility>
27
28
 
28
29
  #include "absl/status/status.h"
29
30
  #include "absl/strings/str_cat.h"
30
31
  #include "absl/strings/string_view.h"
32
+ #include "absl/types/optional.h"
31
33
 
32
34
  #include <grpc/grpc_security_constants.h>
35
+ #include <grpc/impl/codegen/grpc_types.h>
33
36
  #include <grpc/support/alloc.h>
34
37
  #include <grpc/support/log.h>
35
38
  #include <grpc/support/string_util.h>
@@ -47,7 +50,6 @@
47
50
  #include "src/core/lib/iomgr/exec_ctx.h"
48
51
  #include "src/core/lib/iomgr/iomgr_fwd.h"
49
52
  #include "src/core/lib/promise/arena_promise.h"
50
- #include "src/core/lib/promise/poll.h"
51
53
  #include "src/core/lib/promise/promise.h"
52
54
  #include "src/core/lib/security/context/security_context.h"
53
55
  #include "src/core/lib/security/credentials/credentials.h"
@@ -64,33 +66,22 @@ class grpc_fake_channel_security_connector final
64
66
  grpc_fake_channel_security_connector(
65
67
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
66
68
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
67
- const char* target, const grpc_channel_args* args)
69
+ const char* target, const grpc_core::ChannelArgs& args)
68
70
  : grpc_channel_security_connector(GRPC_FAKE_SECURITY_URL_SCHEME,
69
71
  std::move(channel_creds),
70
72
  std::move(request_metadata_creds)),
71
73
  target_(gpr_strdup(target)),
72
74
  expected_targets_(
73
- gpr_strdup(grpc_fake_transport_get_expected_targets(args))),
74
- is_lb_channel_(grpc_channel_args_find(
75
- args, GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER) !=
76
- nullptr) {
77
- const grpc_arg* target_name_override_arg =
78
- grpc_channel_args_find(args, GRPC_SSL_TARGET_NAME_OVERRIDE_ARG);
79
- if (target_name_override_arg != nullptr) {
80
- target_name_override_ =
81
- gpr_strdup(grpc_channel_arg_get_string(target_name_override_arg));
82
- } else {
83
- target_name_override_ = nullptr;
84
- }
85
- }
75
+ args.GetOwnedString(GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS)),
76
+ is_lb_channel_(args.GetBool(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER)
77
+ .value_or(false)),
78
+ target_name_override_(
79
+ args.GetOwnedString(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG)) {}
86
80
 
87
- ~grpc_fake_channel_security_connector() override {
88
- gpr_free(target_);
89
- gpr_free(expected_targets_);
90
- if (target_name_override_ != nullptr) gpr_free(target_name_override_);
91
- }
81
+ ~grpc_fake_channel_security_connector() override { gpr_free(target_); }
92
82
 
93
83
  void check_peer(tsi_peer peer, grpc_endpoint* ep,
84
+ const grpc_core::ChannelArgs& /*args*/,
94
85
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
95
86
  grpc_closure* on_peer_checked) override;
96
87
 
@@ -106,16 +97,12 @@ class grpc_fake_channel_security_connector final
106
97
  if (c != 0) return c;
107
98
  c = strcmp(target_, other->target_);
108
99
  if (c != 0) return c;
109
- if (expected_targets_ == nullptr || other->expected_targets_ == nullptr) {
110
- c = grpc_core::QsortCompare(expected_targets_, other->expected_targets_);
111
- } else {
112
- c = strcmp(expected_targets_, other->expected_targets_);
113
- }
100
+ c = grpc_core::QsortCompare(expected_targets_, other->expected_targets_);
114
101
  if (c != 0) return c;
115
102
  return grpc_core::QsortCompare(is_lb_channel_, other->is_lb_channel_);
116
103
  }
117
104
 
118
- void add_handshakers(const grpc_channel_args* args,
105
+ void add_handshakers(const grpc_core::ChannelArgs& args,
119
106
  grpc_pollset_set* /*interested_parties*/,
120
107
  grpc_core::HandshakeManager* handshake_mgr) override {
121
108
  handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(
@@ -131,11 +118,12 @@ class grpc_fake_channel_security_connector final
131
118
  grpc_core::SplitHostPort(host, &authority_hostname,
132
119
  &authority_ignored_port);
133
120
  grpc_core::SplitHostPort(target_, &target_hostname, &target_ignored_port);
134
- if (target_name_override_ != nullptr) {
121
+ if (target_name_override_.has_value()) {
135
122
  absl::string_view fake_security_target_name_override_hostname;
136
123
  absl::string_view fake_security_target_name_override_ignored_port;
137
124
  grpc_core::SplitHostPort(
138
- target_name_override_, &fake_security_target_name_override_hostname,
125
+ target_name_override_->c_str(),
126
+ &fake_security_target_name_override_hostname,
139
127
  &fake_security_target_name_override_ignored_port);
140
128
  if (authority_hostname != fake_security_target_name_override_hostname) {
141
129
  gpr_log(GPR_ERROR,
@@ -153,9 +141,7 @@ class grpc_fake_channel_security_connector final
153
141
  }
154
142
 
155
143
  char* target() const { return target_; }
156
- char* expected_targets() const { return expected_targets_; }
157
144
  bool is_lb_channel() const { return is_lb_channel_; }
158
- char* target_name_override() const { return target_name_override_; }
159
145
 
160
146
  private:
161
147
  bool fake_check_target(const char* target, const char* set_str) const {
@@ -175,15 +161,15 @@ class grpc_fake_channel_security_connector final
175
161
  }
176
162
 
177
163
  void fake_secure_name_check() const {
178
- if (expected_targets_ == nullptr) return;
164
+ if (!expected_targets_.has_value()) return;
179
165
  char** lbs_and_backends = nullptr;
180
166
  size_t lbs_and_backends_size = 0;
181
167
  bool success = false;
182
- gpr_string_split(expected_targets_, ";", &lbs_and_backends,
168
+ gpr_string_split(expected_targets_->c_str(), ";", &lbs_and_backends,
183
169
  &lbs_and_backends_size);
184
170
  if (lbs_and_backends_size > 2 || lbs_and_backends_size == 0) {
185
171
  gpr_log(GPR_ERROR, "Invalid expected targets arg value: '%s'",
186
- expected_targets_);
172
+ expected_targets_->c_str());
187
173
  goto done;
188
174
  }
189
175
  if (is_lb_channel_) {
@@ -191,7 +177,7 @@ class grpc_fake_channel_security_connector final
191
177
  gpr_log(GPR_ERROR,
192
178
  "Invalid expected targets arg value: '%s'. Expectations for LB "
193
179
  "channels must be of the form 'be1,be2,be3,...;lb1,lb2,...",
194
- expected_targets_);
180
+ expected_targets_->c_str());
195
181
  goto done;
196
182
  }
197
183
  if (!fake_check_target(target_, lbs_and_backends[1])) {
@@ -217,9 +203,9 @@ class grpc_fake_channel_security_connector final
217
203
  }
218
204
 
219
205
  char* target_;
220
- char* expected_targets_;
206
+ absl::optional<std::string> expected_targets_;
221
207
  bool is_lb_channel_;
222
- char* target_name_override_;
208
+ absl::optional<std::string> target_name_override_;
223
209
  };
224
210
 
225
211
  void fake_check_peer(grpc_security_connector* /*sc*/, tsi_peer peer,
@@ -276,6 +262,7 @@ end:
276
262
 
277
263
  void grpc_fake_channel_security_connector::check_peer(
278
264
  tsi_peer peer, grpc_endpoint* /*ep*/,
265
+ const grpc_core::ChannelArgs& /*args*/,
279
266
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
280
267
  grpc_closure* on_peer_checked) {
281
268
  fake_check_peer(this, peer, auth_context, on_peer_checked);
@@ -292,6 +279,7 @@ class grpc_fake_server_security_connector
292
279
  ~grpc_fake_server_security_connector() override = default;
293
280
 
294
281
  void check_peer(tsi_peer peer, grpc_endpoint* /*ep*/,
282
+ const grpc_core::ChannelArgs& /*args*/,
295
283
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
296
284
  grpc_closure* on_peer_checked) override {
297
285
  fake_check_peer(this, peer, auth_context, on_peer_checked);
@@ -302,7 +290,7 @@ class grpc_fake_server_security_connector
302
290
  GRPC_ERROR_UNREF(error);
303
291
  }
304
292
 
305
- void add_handshakers(const grpc_channel_args* args,
293
+ void add_handshakers(const grpc_core::ChannelArgs& args,
306
294
  grpc_pollset_set* /*interested_parties*/,
307
295
  grpc_core::HandshakeManager* handshake_mgr) override {
308
296
  handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(
@@ -320,7 +308,7 @@ grpc_core::RefCountedPtr<grpc_channel_security_connector>
320
308
  grpc_fake_channel_security_connector_create(
321
309
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
322
310
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
323
- const char* target, const grpc_channel_args* args) {
311
+ const char* target, const grpc_core::ChannelArgs& args) {
324
312
  return grpc_core::MakeRefCounted<grpc_fake_channel_security_connector>(
325
313
  std::move(channel_creds), std::move(request_metadata_creds), target,
326
314
  args);
@@ -22,8 +22,8 @@
22
22
 
23
23
  #include <grpc/grpc.h>
24
24
  #include <grpc/grpc_security.h>
25
- #include <grpc/impl/codegen/grpc_types.h>
26
25
 
26
+ #include "src/core/lib/channel/channel_args.h"
27
27
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
28
28
  #include "src/core/lib/security/security_connector/security_connector.h"
29
29
 
@@ -32,7 +32,7 @@ grpc_core::RefCountedPtr<grpc_channel_security_connector>
32
32
  grpc_fake_channel_security_connector_create(
33
33
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
34
34
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
35
- const char* target, const grpc_channel_args* args);
35
+ const char* target, const grpc_core::ChannelArgs& args);
36
36
 
37
37
  /* Creates a fake connector that emulates real server security. */
38
38
  grpc_core::RefCountedPtr<grpc_server_security_connector>
@@ -25,10 +25,10 @@
25
25
  #include <grpc/grpc_security_constants.h>
26
26
  #include <grpc/support/log.h>
27
27
 
28
+ #include "src/core/lib/channel/channel_args.h"
28
29
  #include "src/core/lib/gprpp/debug_location.h"
29
30
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
30
31
  #include "src/core/lib/iomgr/exec_ctx.h"
31
- #include "src/core/lib/promise/poll.h"
32
32
  #include "src/core/lib/promise/promise.h"
33
33
  #include "src/core/lib/security/context/security_context.h"
34
34
  #include "src/core/lib/security/transport/security_handshaker.h"
@@ -67,7 +67,7 @@ ArenaPromise<absl::Status> InsecureChannelSecurityConnector::CheckCallHost(
67
67
  // security handshaker so that check_peer is invoked and an auth_context is
68
68
  // created with the security level of TSI_SECURITY_NONE.
69
69
  void InsecureChannelSecurityConnector::add_handshakers(
70
- const grpc_channel_args* args, grpc_pollset_set* /* interested_parties */,
70
+ const ChannelArgs& args, grpc_pollset_set* /* interested_parties */,
71
71
  HandshakeManager* handshake_manager) {
72
72
  tsi_handshaker* handshaker = nullptr;
73
73
  // Re-use local_tsi_handshaker_create as a minimalist handshaker.
@@ -76,7 +76,7 @@ void InsecureChannelSecurityConnector::add_handshakers(
76
76
  }
77
77
 
78
78
  void InsecureChannelSecurityConnector::check_peer(
79
- tsi_peer peer, grpc_endpoint* /*ep*/,
79
+ tsi_peer peer, grpc_endpoint* /*ep*/, const ChannelArgs& /*args*/,
80
80
  RefCountedPtr<grpc_auth_context>* auth_context,
81
81
  grpc_closure* on_peer_checked) {
82
82
  *auth_context = MakeAuthContext();
@@ -94,7 +94,7 @@ int InsecureChannelSecurityConnector::cmp(
94
94
  // security handshaker so that check_peer is invoked and an auth_context is
95
95
  // created with the security level of TSI_SECURITY_NONE.
96
96
  void InsecureServerSecurityConnector::add_handshakers(
97
- const grpc_channel_args* args, grpc_pollset_set* /* interested_parties */,
97
+ const ChannelArgs& args, grpc_pollset_set* /* interested_parties */,
98
98
  HandshakeManager* handshake_manager) {
99
99
  tsi_handshaker* handshaker = nullptr;
100
100
  // Re-use local_tsi_handshaker_create as a minimalist handshaker.
@@ -103,7 +103,7 @@ void InsecureServerSecurityConnector::add_handshakers(
103
103
  }
104
104
 
105
105
  void InsecureServerSecurityConnector::check_peer(
106
- tsi_peer peer, grpc_endpoint* /*ep*/,
106
+ tsi_peer peer, grpc_endpoint* /*ep*/, const ChannelArgs& /*args*/,
107
107
  RefCountedPtr<grpc_auth_context>* auth_context,
108
108
  grpc_closure* on_peer_checked) {
109
109
  *auth_context = MakeAuthContext();
@@ -18,6 +18,7 @@
18
18
 
19
19
  #ifndef GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_INSECURE_INSECURE_SECURITY_CONNECTOR_H
20
20
  #define GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_INSECURE_INSECURE_SECURITY_CONNECTOR_H
21
+
21
22
  #include <grpc/support/port_platform.h>
22
23
 
23
24
  #include <utility>
@@ -27,8 +28,8 @@
27
28
 
28
29
  #include <grpc/grpc.h>
29
30
  #include <grpc/grpc_security.h>
30
- #include <grpc/impl/codegen/grpc_types.h>
31
31
 
32
+ #include "src/core/lib/channel/channel_args.h"
32
33
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
33
34
  #include "src/core/lib/iomgr/closure.h"
34
35
  #include "src/core/lib/iomgr/endpoint.h"
@@ -62,11 +63,11 @@ class InsecureChannelSecurityConnector
62
63
  ArenaPromise<absl::Status> CheckCallHost(
63
64
  absl::string_view host, grpc_auth_context* auth_context) override;
64
65
 
65
- void add_handshakers(const grpc_channel_args* args,
66
+ void add_handshakers(const ChannelArgs& args,
66
67
  grpc_pollset_set* /* interested_parties */,
67
68
  HandshakeManager* handshake_manager) override;
68
69
 
69
- void check_peer(tsi_peer peer, grpc_endpoint* ep,
70
+ void check_peer(tsi_peer peer, grpc_endpoint* ep, const ChannelArgs& /*args*/,
70
71
  RefCountedPtr<grpc_auth_context>* auth_context,
71
72
  grpc_closure* on_peer_checked) override;
72
73
 
@@ -85,11 +86,11 @@ class InsecureServerSecurityConnector : public grpc_server_security_connector {
85
86
  : grpc_server_security_connector("" /* url_scheme */,
86
87
  std::move(server_creds)) {}
87
88
 
88
- void add_handshakers(const grpc_channel_args* args,
89
+ void add_handshakers(const ChannelArgs& args,
89
90
  grpc_pollset_set* /* interested_parties */,
90
91
  HandshakeManager* handshake_manager) override;
91
92
 
92
- void check_peer(tsi_peer peer, grpc_endpoint* ep,
93
+ void check_peer(tsi_peer peer, grpc_endpoint* ep, const ChannelArgs& /*args*/,
93
94
  RefCountedPtr<grpc_auth_context>* auth_context,
94
95
  grpc_closure* on_peer_checked) override;
95
96
 
@@ -27,7 +27,9 @@
27
27
 
28
28
  #include "absl/status/status.h"
29
29
  #include "absl/status/statusor.h"
30
+ #include "absl/strings/match.h"
30
31
  #include "absl/strings/string_view.h"
32
+ #include "absl/types/optional.h"
31
33
 
32
34
  #include <grpc/grpc.h>
33
35
  #include <grpc/grpc_security_constants.h>
@@ -51,7 +53,6 @@
51
53
  #include "src/core/lib/iomgr/socket_utils.h"
52
54
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
53
55
  #include "src/core/lib/promise/arena_promise.h"
54
- #include "src/core/lib/promise/poll.h"
55
56
  #include "src/core/lib/promise/promise.h"
56
57
  #include "src/core/lib/security/context/security_context.h"
57
58
  #include "src/core/lib/security/credentials/credentials.h"
@@ -178,7 +179,8 @@ class grpc_local_channel_security_connector final
178
179
  ~grpc_local_channel_security_connector() override { gpr_free(target_name_); }
179
180
 
180
181
  void add_handshakers(
181
- const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
182
+ const grpc_core::ChannelArgs& args,
183
+ grpc_pollset_set* /*interested_parties*/,
182
184
  grpc_core::HandshakeManager* handshake_manager) override {
183
185
  tsi_handshaker* handshaker = nullptr;
184
186
  GPR_ASSERT(tsi_local_handshaker_create(&handshaker) == TSI_OK);
@@ -196,6 +198,7 @@ class grpc_local_channel_security_connector final
196
198
  }
197
199
 
198
200
  void check_peer(tsi_peer peer, grpc_endpoint* ep,
201
+ const grpc_core::ChannelArgs& /*args*/,
199
202
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
200
203
  grpc_closure* on_peer_checked) override {
201
204
  grpc_local_credentials* creds =
@@ -233,7 +236,8 @@ class grpc_local_server_security_connector final
233
236
  ~grpc_local_server_security_connector() override = default;
234
237
 
235
238
  void add_handshakers(
236
- const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
239
+ const grpc_core::ChannelArgs& args,
240
+ grpc_pollset_set* /*interested_parties*/,
237
241
  grpc_core::HandshakeManager* handshake_manager) override {
238
242
  tsi_handshaker* handshaker = nullptr;
239
243
  GPR_ASSERT(tsi_local_handshaker_create(&handshaker) == TSI_OK);
@@ -242,6 +246,7 @@ class grpc_local_server_security_connector final
242
246
  }
243
247
 
244
248
  void check_peer(tsi_peer peer, grpc_endpoint* ep,
249
+ const grpc_core::ChannelArgs& /*args*/,
245
250
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
246
251
  grpc_closure* on_peer_checked) override {
247
252
  grpc_local_server_credentials* creds =
@@ -266,7 +271,7 @@ grpc_core::RefCountedPtr<grpc_channel_security_connector>
266
271
  grpc_local_channel_security_connector_create(
267
272
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
268
273
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
269
- const grpc_channel_args* args, const char* target_name) {
274
+ const grpc_core::ChannelArgs& args, const char* target_name) {
270
275
  if (channel_creds == nullptr || target_name == nullptr) {
271
276
  gpr_log(
272
277
  GPR_ERROR,
@@ -277,14 +282,11 @@ grpc_local_channel_security_connector_create(
277
282
  // will be done during check_peer procedure.
278
283
  grpc_local_credentials* creds =
279
284
  static_cast<grpc_local_credentials*>(channel_creds.get());
280
- const grpc_arg* server_uri_arg =
281
- grpc_channel_args_find(args, GRPC_ARG_SERVER_URI);
282
- const char* server_uri_str = grpc_channel_arg_get_string(server_uri_arg);
285
+ absl::string_view server_uri_str =
286
+ args.GetString(GRPC_ARG_SERVER_URI).value_or("");
283
287
  if (creds->connect_type() == UDS &&
284
- strncmp(GRPC_UDS_URI_PATTERN, server_uri_str,
285
- strlen(GRPC_UDS_URI_PATTERN)) != 0 &&
286
- strncmp(GRPC_ABSTRACT_UDS_URI_PATTERN, server_uri_str,
287
- strlen(GRPC_ABSTRACT_UDS_URI_PATTERN)) != 0) {
288
+ !absl::StartsWith(server_uri_str, GRPC_UDS_URI_PATTERN) &&
289
+ !absl::StartsWith(server_uri_str, GRPC_ABSTRACT_UDS_URI_PATTERN)) {
288
290
  gpr_log(GPR_ERROR,
289
291
  "Invalid UDS target name to "
290
292
  "grpc_local_channel_security_connector_create()");
@@ -22,8 +22,8 @@
22
22
 
23
23
  #include <grpc/grpc.h>
24
24
  #include <grpc/grpc_security.h>
25
- #include <grpc/impl/codegen/grpc_types.h>
26
25
 
26
+ #include "src/core/lib/channel/channel_args.h"
27
27
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
28
28
  #include "src/core/lib/security/security_connector/security_connector.h"
29
29
 
@@ -44,7 +44,7 @@ grpc_core::RefCountedPtr<grpc_channel_security_connector>
44
44
  grpc_local_channel_security_connector_create(
45
45
  grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
46
46
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
47
- const grpc_channel_args* args, const char* target_name);
47
+ const grpc_core::ChannelArgs& args, const char* target_name);
48
48
 
49
49
  /**
50
50
  * This method creates a local server security connector.
@@ -30,6 +30,7 @@
30
30
  #include <grpc/grpc_security.h>
31
31
  #include <grpc/impl/codegen/grpc_types.h>
32
32
 
33
+ #include "src/core/lib/channel/channel_args.h"
33
34
  #include "src/core/lib/debug/trace.h"
34
35
  #include "src/core/lib/gprpp/ref_counted.h"
35
36
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -73,9 +74,10 @@ class grpc_security_connector
73
74
  }
74
75
 
75
76
  // Checks the peer. Callee takes ownership of the peer object.
77
+ // The channel args represent the args after the handshaking is performed.
76
78
  // When done, sets *auth_context and invokes on_peer_checked.
77
79
  virtual void check_peer(
78
- tsi_peer peer, grpc_endpoint* ep,
80
+ tsi_peer peer, grpc_endpoint* ep, const grpc_core::ChannelArgs& args,
79
81
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
80
82
  grpc_closure* on_peer_checked) = 0;
81
83
 
@@ -128,7 +130,7 @@ class grpc_channel_security_connector : public grpc_security_connector {
128
130
  absl::string_view host, grpc_auth_context* auth_context) = 0;
129
131
 
130
132
  /// Registers handshakers with \a handshake_mgr.
131
- virtual void add_handshakers(const grpc_channel_args* args,
133
+ virtual void add_handshakers(const grpc_core::ChannelArgs& args,
132
134
  grpc_pollset_set* interested_parties,
133
135
  grpc_core::HandshakeManager* handshake_mgr) = 0;
134
136
 
@@ -174,7 +176,7 @@ class grpc_server_security_connector : public grpc_security_connector {
174
176
  absl::string_view url_scheme,
175
177
  grpc_core::RefCountedPtr<grpc_server_credentials> server_creds);
176
178
 
177
- virtual void add_handshakers(const grpc_channel_args* args,
179
+ virtual void add_handshakers(const grpc_core::ChannelArgs& args,
178
180
  grpc_pollset_set* interested_parties,
179
181
  grpc_core::HandshakeManager* handshake_mgr) = 0;
180
182
 
@@ -31,10 +31,10 @@
31
31
  #include "absl/strings/str_format.h"
32
32
  #include "absl/strings/string_view.h"
33
33
 
34
- #include <grpc/impl/codegen/grpc_types.h>
35
34
  #include <grpc/support/alloc.h>
36
35
  #include <grpc/support/log.h>
37
36
 
37
+ #include "src/core/lib/channel/channel_args.h"
38
38
  #include "src/core/lib/gprpp/debug_location.h"
39
39
  #include "src/core/lib/gprpp/host_port.h"
40
40
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
@@ -45,7 +45,6 @@
45
45
  #include "src/core/lib/iomgr/exec_ctx.h"
46
46
  #include "src/core/lib/iomgr/iomgr_fwd.h"
47
47
  #include "src/core/lib/promise/arena_promise.h"
48
- #include "src/core/lib/promise/poll.h"
49
48
  #include "src/core/lib/promise/promise.h"
50
49
  #include "src/core/lib/security/context/security_context.h"
51
50
  #include "src/core/lib/security/credentials/credentials.h"
@@ -132,7 +131,7 @@ class grpc_ssl_channel_security_connector final
132
131
  return GRPC_SECURITY_OK;
133
132
  }
134
133
 
135
- void add_handshakers(const grpc_channel_args* args,
134
+ void add_handshakers(const grpc_core::ChannelArgs& args,
136
135
  grpc_pollset_set* /*interested_parties*/,
137
136
  grpc_core::HandshakeManager* handshake_mgr) override {
138
137
  // Instantiate TSI handshaker.
@@ -153,6 +152,7 @@ class grpc_ssl_channel_security_connector final
153
152
  }
154
153
 
155
154
  void check_peer(tsi_peer peer, grpc_endpoint* /*ep*/,
155
+ const grpc_core::ChannelArgs& /*args*/,
156
156
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
157
157
  grpc_closure* on_peer_checked) override {
158
158
  const char* target_name = overridden_target_name_.empty()
@@ -278,7 +278,7 @@ class grpc_ssl_server_security_connector
278
278
  return GRPC_SECURITY_OK;
279
279
  }
280
280
 
281
- void add_handshakers(const grpc_channel_args* args,
281
+ void add_handshakers(const grpc_core::ChannelArgs& args,
282
282
  grpc_pollset_set* /*interested_parties*/,
283
283
  grpc_core::HandshakeManager* handshake_mgr) override {
284
284
  // Instantiate TSI handshaker.
@@ -297,6 +297,7 @@ class grpc_ssl_server_security_connector
297
297
  }
298
298
 
299
299
  void check_peer(tsi_peer peer, grpc_endpoint* /*ep*/,
300
+ const grpc_core::ChannelArgs& /*args*/,
300
301
  grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
301
302
  grpc_closure* on_peer_checked) override {
302
303
  grpc_error_handle error = ssl_check_peer(nullptr, &peer, auth_context);
@@ -38,10 +38,10 @@
38
38
  #include <grpc/support/log.h>
39
39
  #include <grpc/support/string_util.h>
40
40
 
41
+ #include "src/core/lib/channel/channel_args.h"
41
42
  #include "src/core/lib/gprpp/debug_location.h"
42
43
  #include "src/core/lib/gprpp/host_port.h"
43
44
  #include "src/core/lib/iomgr/exec_ctx.h"
44
- #include "src/core/lib/promise/poll.h"
45
45
  #include "src/core/lib/promise/promise.h"
46
46
  #include "src/core/lib/security/context/security_context.h"
47
47
  #include "src/core/lib/security/credentials/credentials.h"
@@ -330,7 +330,7 @@ TlsChannelSecurityConnector::~TlsChannelSecurityConnector() {
330
330
  }
331
331
 
332
332
  void TlsChannelSecurityConnector::add_handshakers(
333
- const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
333
+ const ChannelArgs& args, grpc_pollset_set* /*interested_parties*/,
334
334
  HandshakeManager* handshake_mgr) {
335
335
  MutexLock lock(&mu_);
336
336
  tsi_handshaker* tsi_hs = nullptr;
@@ -352,7 +352,7 @@ void TlsChannelSecurityConnector::add_handshakers(
352
352
  }
353
353
 
354
354
  void TlsChannelSecurityConnector::check_peer(
355
- tsi_peer peer, grpc_endpoint* /*ep*/,
355
+ tsi_peer peer, grpc_endpoint* /*ep*/, const ChannelArgs& /*args*/,
356
356
  RefCountedPtr<grpc_auth_context>* auth_context,
357
357
  grpc_closure* on_peer_checked) {
358
358
  const char* target_name = overridden_target_name_.empty()
@@ -620,7 +620,7 @@ TlsServerSecurityConnector::~TlsServerSecurityConnector() {
620
620
  }
621
621
 
622
622
  void TlsServerSecurityConnector::add_handshakers(
623
- const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
623
+ const ChannelArgs& args, grpc_pollset_set* /*interested_parties*/,
624
624
  HandshakeManager* handshake_mgr) {
625
625
  MutexLock lock(&mu_);
626
626
  tsi_handshaker* tsi_hs = nullptr;
@@ -639,7 +639,7 @@ void TlsServerSecurityConnector::add_handshakers(
639
639
  }
640
640
 
641
641
  void TlsServerSecurityConnector::check_peer(
642
- tsi_peer peer, grpc_endpoint* /*ep*/,
642
+ tsi_peer peer, grpc_endpoint* /*ep*/, const ChannelArgs& /*args*/,
643
643
  RefCountedPtr<grpc_auth_context>* auth_context,
644
644
  grpc_closure* on_peer_checked) {
645
645
  grpc_error_handle error = grpc_ssl_check_alpn(&peer);
@@ -31,8 +31,8 @@
31
31
 
32
32
  #include <grpc/grpc.h>
33
33
  #include <grpc/grpc_security.h>
34
- #include <grpc/impl/codegen/grpc_types.h>
35
34
 
35
+ #include "src/core/lib/channel/channel_args.h"
36
36
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
37
37
  #include "src/core/lib/gprpp/sync.h"
38
38
  #include "src/core/lib/iomgr/closure.h"
@@ -74,11 +74,11 @@ class TlsChannelSecurityConnector final
74
74
 
75
75
  ~TlsChannelSecurityConnector() override;
76
76
 
77
- void add_handshakers(const grpc_channel_args* args,
77
+ void add_handshakers(const ChannelArgs& args,
78
78
  grpc_pollset_set* interested_parties,
79
79
  HandshakeManager* handshake_mgr) override;
80
80
 
81
- void check_peer(tsi_peer peer, grpc_endpoint* ep,
81
+ void check_peer(tsi_peer peer, grpc_endpoint* ep, const ChannelArgs& /*args*/,
82
82
  RefCountedPtr<grpc_auth_context>* auth_context,
83
83
  grpc_closure* on_peer_checked) override;
84
84
 
@@ -187,11 +187,11 @@ class TlsServerSecurityConnector final : public grpc_server_security_connector {
187
187
  RefCountedPtr<grpc_tls_credentials_options> options);
188
188
  ~TlsServerSecurityConnector() override;
189
189
 
190
- void add_handshakers(const grpc_channel_args* args,
190
+ void add_handshakers(const ChannelArgs& args,
191
191
  grpc_pollset_set* interested_parties,
192
192
  HandshakeManager* handshake_mgr) override;
193
193
 
194
- void check_peer(tsi_peer peer, grpc_endpoint* ep,
194
+ void check_peer(tsi_peer peer, grpc_endpoint* ep, const ChannelArgs& /*args*/,
195
195
  RefCountedPtr<grpc_auth_context>* auth_context,
196
196
  grpc_closure* on_peer_checked) override;
197
197
 
@@ -45,7 +45,7 @@ class ClientAuthFilter final : public ChannelFilter {
45
45
  public:
46
46
  static const grpc_channel_filter kFilter;
47
47
 
48
- static absl::StatusOr<ClientAuthFilter> Create(ChannelArgs args,
48
+ static absl::StatusOr<ClientAuthFilter> Create(const ChannelArgs& args,
49
49
  ChannelFilter::Args);
50
50
 
51
51
  // Construct a promise for one call.
@@ -21,7 +21,7 @@
21
21
  #include <string.h>
22
22
 
23
23
  #include <functional>
24
- #include <type_traits>
24
+ #include <type_traits> // IWYU pragma: keep
25
25
  #include <utility>
26
26
 
27
27
  #include "absl/status/status.h"
@@ -37,12 +37,14 @@
37
37
  #include "src/core/lib/channel/channel_stack.h"
38
38
  #include "src/core/lib/channel/context.h"
39
39
  #include "src/core/lib/channel/promise_based_filter.h"
40
+ #include "src/core/lib/channel/status_util.h"
40
41
  #include "src/core/lib/gprpp/debug_location.h"
41
42
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
42
43
  #include "src/core/lib/promise/arena_promise.h"
43
44
  #include "src/core/lib/promise/context.h"
44
- #include "src/core/lib/promise/poll.h"
45
+ #include "src/core/lib/promise/detail/basic_seq.h"
45
46
  #include "src/core/lib/promise/promise.h"
47
+ #include "src/core/lib/promise/seq.h"
46
48
  #include "src/core/lib/promise/try_seq.h"
47
49
  #include "src/core/lib/resource_quota/arena.h"
48
50
  #include "src/core/lib/security/context/security_context.h"
@@ -158,7 +160,15 @@ ArenaPromise<absl::StatusOr<CallArgs>> ClientAuthFilter::GetCallCredsMetadata(
158
160
 
159
161
  auto client_initial_metadata = std::move(call_args.client_initial_metadata);
160
162
  return TrySeq(
161
- creds->GetRequestMetadata(std::move(client_initial_metadata), &args_),
163
+ Seq(creds->GetRequestMetadata(std::move(client_initial_metadata), &args_),
164
+ [](absl::StatusOr<ClientMetadataHandle> new_metadata) mutable {
165
+ if (!new_metadata.ok()) {
166
+ return absl::StatusOr<ClientMetadataHandle>(
167
+ MaybeRewriteIllegalStatusCode(new_metadata.status(),
168
+ "call credentials"));
169
+ }
170
+ return new_metadata;
171
+ }),
162
172
  [call_args =
163
173
  std::move(call_args)](ClientMetadataHandle new_metadata) mutable {
164
174
  call_args.client_initial_metadata = std::move(new_metadata);
@@ -192,8 +202,8 @@ ArenaPromise<ServerMetadataHandle> ClientAuthFilter::MakeCallPromise(
192
202
  next_promise_factory);
193
203
  }
194
204
 
195
- absl::StatusOr<ClientAuthFilter> ClientAuthFilter::Create(ChannelArgs args,
196
- ChannelFilter::Args) {
205
+ absl::StatusOr<ClientAuthFilter> ClientAuthFilter::Create(
206
+ const ChannelArgs& args, ChannelFilter::Args) {
197
207
  auto* sc = args.GetObject<grpc_security_connector>();
198
208
  if (sc == nullptr) {
199
209
  return absl::InvalidArgumentError(
@@ -49,8 +49,6 @@
49
49
  #include "src/core/lib/iomgr/error.h"
50
50
  #include "src/core/lib/iomgr/exec_ctx.h"
51
51
  #include "src/core/lib/iomgr/iomgr_fwd.h"
52
- #include "src/core/lib/iomgr/pollset.h"
53
- #include "src/core/lib/profiling/timers.h"
54
52
  #include "src/core/lib/resource_quota/api.h"
55
53
  #include "src/core/lib/resource_quota/memory_quota.h"
56
54
  #include "src/core/lib/resource_quota/resource_quota.h"
@@ -386,8 +384,6 @@ static void flush_write_staging_buffer(secure_endpoint* ep, uint8_t** cur,
386
384
 
387
385
  static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
388
386
  grpc_closure* cb, void* arg, int max_frame_size) {
389
- GPR_TIMER_SCOPE("secure_endpoint.endpoint_write", 0);
390
-
391
387
  unsigned i;
392
388
  tsi_result result = TSI_OK;
393
389
  secure_endpoint* ep = reinterpret_cast<secure_endpoint*>(secure_ep);