grpc 1.46.3 → 1.53.1

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 (1803) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +419 -241
  3. data/include/grpc/byte_buffer.h +76 -1
  4. data/include/grpc/byte_buffer_reader.h +19 -1
  5. data/include/grpc/compression.h +2 -2
  6. data/include/grpc/event_engine/endpoint_config.h +11 -5
  7. data/include/grpc/event_engine/event_engine.h +129 -39
  8. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
  9. data/include/grpc/event_engine/internal/slice_cast.h +67 -0
  10. data/include/grpc/event_engine/memory_allocator.h +1 -16
  11. data/include/grpc/event_engine/port.h +1 -1
  12. data/include/grpc/event_engine/slice.h +306 -0
  13. data/include/grpc/event_engine/slice_buffer.h +159 -0
  14. data/include/grpc/fork.h +25 -1
  15. data/include/grpc/grpc.h +4 -14
  16. data/include/grpc/grpc_posix.h +1 -1
  17. data/include/grpc/grpc_security.h +11 -0
  18. data/include/grpc/impl/codegen/atm.h +3 -71
  19. data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -67
  20. data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -61
  21. data/include/grpc/impl/codegen/atm_windows.h +3 -108
  22. data/include/grpc/impl/codegen/byte_buffer.h +4 -78
  23. data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
  24. data/include/grpc/impl/codegen/compression_types.h +5 -83
  25. data/include/grpc/impl/codegen/connectivity_state.h +5 -21
  26. data/include/grpc/impl/codegen/fork.h +4 -25
  27. data/include/grpc/impl/codegen/gpr_types.h +4 -35
  28. data/include/grpc/impl/codegen/grpc_types.h +5 -791
  29. data/include/grpc/impl/codegen/log.h +3 -86
  30. data/include/grpc/impl/codegen/port_platform.h +3 -699
  31. data/include/grpc/impl/codegen/propagation_bits.h +3 -28
  32. data/include/grpc/impl/codegen/slice.h +4 -107
  33. data/include/grpc/impl/codegen/status.h +4 -131
  34. data/include/grpc/impl/codegen/sync.h +3 -42
  35. data/include/grpc/impl/codegen/sync_abseil.h +3 -12
  36. data/include/grpc/impl/codegen/sync_custom.h +3 -14
  37. data/include/grpc/impl/codegen/sync_generic.h +3 -25
  38. data/include/grpc/impl/codegen/sync_posix.h +3 -28
  39. data/include/grpc/impl/codegen/sync_windows.h +3 -16
  40. data/include/grpc/impl/compression_types.h +109 -0
  41. data/include/grpc/impl/connectivity_state.h +47 -0
  42. data/include/grpc/impl/grpc_types.h +836 -0
  43. data/include/grpc/impl/propagation_bits.h +54 -0
  44. data/include/grpc/impl/slice_type.h +112 -0
  45. data/include/grpc/load_reporting.h +1 -1
  46. data/include/grpc/module.modulemap +5 -1
  47. data/include/grpc/slice.h +1 -1
  48. data/include/grpc/status.h +131 -1
  49. data/include/grpc/support/atm.h +70 -1
  50. data/include/grpc/support/atm_gcc_atomic.h +59 -1
  51. data/include/grpc/support/atm_gcc_sync.h +58 -1
  52. data/include/grpc/support/atm_windows.h +105 -1
  53. data/include/grpc/support/log.h +87 -1
  54. data/include/grpc/support/log_windows.h +1 -1
  55. data/include/grpc/support/port_platform.h +767 -1
  56. data/include/grpc/support/string_util.h +1 -1
  57. data/include/grpc/support/sync.h +35 -2
  58. data/include/grpc/support/sync_abseil.h +11 -1
  59. data/include/grpc/support/sync_custom.h +13 -1
  60. data/include/grpc/support/sync_generic.h +24 -1
  61. data/include/grpc/support/sync_posix.h +27 -1
  62. data/include/grpc/support/sync_windows.h +15 -1
  63. data/include/grpc/support/time.h +31 -6
  64. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +148 -0
  65. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
  66. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
  67. data/src/core/ext/filters/census/grpc_context.cc +19 -17
  68. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +67 -61
  69. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +26 -6
  70. data/src/core/ext/filters/channel_idle/idle_filter_state.h +6 -4
  71. data/src/core/ext/filters/client_channel/backend_metric.cc +19 -12
  72. data/src/core/ext/filters/client_channel/backend_metric.h +21 -11
  73. data/src/core/ext/filters/client_channel/backup_poller.cc +34 -34
  74. data/src/core/ext/filters/client_channel/backup_poller.h +26 -28
  75. data/src/core/ext/filters/client_channel/channel_connectivity.cc +89 -44
  76. data/src/core/ext/filters/client_channel/client_channel.cc +401 -451
  77. data/src/core/ext/filters/client_channel/client_channel.h +68 -26
  78. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -23
  79. data/src/core/ext/filters/client_channel/client_channel_channelz.h +33 -23
  80. data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -43
  81. data/src/core/ext/filters/client_channel/client_channel_factory.h +11 -11
  82. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +22 -47
  83. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  84. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +33 -27
  85. data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
  86. data/src/core/ext/filters/client_channel/config_selector.h +29 -23
  87. data/src/core/ext/filters/client_channel/connector.h +19 -10
  88. data/src/core/ext/filters/client_channel/dynamic_filters.cc +40 -54
  89. data/src/core/ext/filters/client_channel/dynamic_filters.h +20 -11
  90. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
  91. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +24 -21
  92. data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -4
  93. data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -3
  94. data/src/core/ext/filters/client_channel/http_proxy.cc +100 -112
  95. data/src/core/ext/filters/client_channel/http_proxy.h +38 -31
  96. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
  97. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +8 -5
  98. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +4 -3
  99. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
  100. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +37 -16
  101. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +18 -13
  102. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +71 -131
  103. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +41 -24
  104. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +410 -375
  105. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +26 -27
  106. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +15 -3
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +9 -7
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
  109. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +27 -22
  110. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +28 -19
  111. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +26 -25
  112. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +338 -0
  113. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
  114. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +117 -0
  115. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1129 -0
  116. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +94 -0
  117. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +174 -180
  118. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +366 -407
  119. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +491 -405
  120. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +19 -9
  121. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +619 -634
  122. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +261 -234
  123. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +165 -143
  124. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +128 -0
  125. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
  126. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +972 -0
  127. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +223 -220
  128. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +214 -153
  129. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  130. data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +19 -15
  131. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +3 -3
  132. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +178 -256
  133. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +199 -210
  134. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +382 -368
  135. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +819 -0
  136. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +67 -0
  137. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +369 -0
  138. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
  139. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +22 -21
  140. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +34 -19
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +531 -163
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +50 -44
  143. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +31 -30
  144. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +89 -84
  145. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +300 -209
  146. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +82 -61
  147. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
  148. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +20 -19
  149. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
  150. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +22 -22
  151. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +54 -22
  152. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +21 -34
  153. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +19 -5
  154. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +135 -63
  155. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +136 -68
  156. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +29 -14
  157. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +21 -27
  158. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +368 -305
  159. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +6 -4
  160. data/src/core/ext/filters/client_channel/retry_filter.cc +166 -163
  161. data/src/core/ext/filters/client_channel/retry_filter.h +4 -3
  162. data/src/core/ext/filters/client_channel/retry_service_config.cc +197 -229
  163. data/src/core/ext/filters/client_channel/retry_service_config.h +29 -26
  164. data/src/core/ext/filters/client_channel/retry_throttle.cc +28 -37
  165. data/src/core/ext/filters/client_channel/retry_throttle.h +36 -29
  166. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +34 -17
  167. data/src/core/ext/filters/client_channel/subchannel.cc +332 -384
  168. data/src/core/ext/filters/client_channel/subchannel.h +112 -82
  169. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
  170. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +17 -77
  171. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +41 -47
  172. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +34 -108
  173. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +20 -12
  174. data/src/core/ext/filters/deadline/deadline_filter.cc +94 -76
  175. data/src/core/ext/filters/deadline/deadline_filter.h +14 -12
  176. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +44 -22
  177. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +20 -11
  178. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  179. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +34 -13
  180. data/src/core/ext/filters/http/client/http_client_filter.cc +76 -54
  181. data/src/core/ext/filters/http/client/http_client_filter.h +36 -23
  182. data/src/core/ext/filters/http/client_authority_filter.cc +33 -38
  183. data/src/core/ext/filters/http/client_authority_filter.h +27 -24
  184. data/src/core/ext/filters/http/http_filters_plugin.cc +46 -55
  185. data/src/core/ext/filters/http/message_compress/compression_filter.cc +307 -0
  186. data/src/core/ext/filters/http/message_compress/compression_filter.h +139 -0
  187. data/src/core/ext/filters/http/server/http_server_filter.cc +111 -271
  188. data/src/core/ext/filters/http/server/http_server_filter.h +58 -24
  189. data/src/core/ext/filters/message_size/message_size_filter.cc +117 -137
  190. data/src/core/ext/filters/message_size/message_size_filter.h +34 -17
  191. data/src/core/ext/filters/rbac/rbac_filter.cc +29 -16
  192. data/src/core/ext/filters/rbac/rbac_filter.h +11 -3
  193. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +736 -523
  194. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +18 -7
  195. data/src/core/ext/filters/server_config_selector/server_config_selector.h +20 -8
  196. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +28 -12
  197. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +4 -3
  198. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +219 -0
  199. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
  200. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
  201. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
  202. data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
  203. data/src/core/ext/transport/chttp2/alpn/alpn.h +24 -24
  204. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +185 -241
  205. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +38 -30
  206. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +204 -211
  207. data/src/core/ext/transport/chttp2/server/chttp2_server.h +26 -26
  208. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +24 -24
  209. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +35 -34
  210. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +43 -38
  211. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +35 -31
  212. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +801 -1067
  213. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +28 -23
  214. data/src/core/ext/transport/chttp2/transport/context_list.cc +23 -19
  215. data/src/core/ext/transport/chttp2/transport/context_list.h +32 -29
  216. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
  217. data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
  218. data/src/core/ext/transport/chttp2/transport/flow_control.cc +350 -300
  219. data/src/core/ext/transport/chttp2/transport/flow_control.h +248 -325
  220. data/src/core/ext/transport/chttp2/transport/frame.h +22 -26
  221. data/src/core/ext/transport/chttp2/transport/frame_data.cc +85 -234
  222. data/src/core/ext/transport/chttp2/transport/frame_data.h +38 -61
  223. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +41 -36
  224. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +24 -22
  225. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +31 -25
  226. data/src/core/ext/transport/chttp2/transport/frame_ping.h +25 -22
  227. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +35 -26
  228. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +24 -21
  229. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +44 -77
  230. data/src/core/ext/transport/chttp2/transport/frame_settings.h +27 -23
  231. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +34 -33
  232. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +24 -21
  233. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +10 -4
  234. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +221 -372
  235. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +338 -158
  236. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +6 -1
  237. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +16 -5
  238. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +516 -751
  239. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +38 -27
  240. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +86 -76
  241. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +79 -49
  242. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
  243. data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -38
  244. data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
  245. data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
  246. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
  247. data/src/core/ext/transport/chttp2/transport/huffsyms.h +21 -21
  248. data/src/core/ext/transport/chttp2/transport/internal.h +248 -296
  249. data/src/core/ext/transport/chttp2/transport/parsing.cc +363 -132
  250. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +30 -30
  251. data/src/core/ext/transport/chttp2/transport/stream_map.cc +24 -24
  252. data/src/core/ext/transport/chttp2/transport/stream_map.h +34 -33
  253. data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
  254. data/src/core/ext/transport/chttp2/transport/varint.h +39 -34
  255. data/src/core/ext/transport/chttp2/transport/writing.cc +121 -94
  256. data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -18
  257. data/src/core/ext/transport/inproc/inproc_transport.cc +227 -274
  258. data/src/core/ext/transport/inproc/inproc_transport.h +23 -21
  259. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
  260. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
  261. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +6 -5
  262. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +33 -8
  263. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
  264. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
  265. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +388 -0
  266. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1953 -0
  267. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
  268. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
  269. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
  270. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
  271. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
  272. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
  273. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
  274. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
  275. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
  276. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
  277. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
  278. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
  279. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  280. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
  281. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
  282. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
  283. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +25 -19
  284. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +168 -34
  285. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
  286. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
  287. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -43
  288. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +195 -116
  289. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
  290. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
  291. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
  292. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
  293. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
  294. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
  295. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +35 -12
  296. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +179 -14
  297. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
  298. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
  299. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
  300. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
  301. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
  302. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
  303. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  304. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
  305. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
  306. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
  307. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
  308. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
  309. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
  310. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
  311. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +23 -20
  312. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +137 -69
  313. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
  314. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
  315. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +23 -21
  316. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +132 -44
  317. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  318. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
  319. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
  320. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
  321. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +17 -2
  322. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +67 -2
  323. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  324. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
  325. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
  326. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
  327. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
  328. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
  329. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +15 -9
  330. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +73 -18
  331. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
  332. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
  333. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
  334. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
  335. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +39 -13
  336. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +194 -15
  337. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
  338. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
  339. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +5 -3
  340. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +28 -2
  341. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
  342. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
  343. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
  344. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
  345. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
  346. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
  347. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
  348. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
  349. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +26 -11
  350. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +124 -14
  351. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +19 -15
  352. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +78 -69
  353. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +168 -82
  354. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +887 -166
  355. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
  356. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
  357. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
  358. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
  359. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -2
  360. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +15 -2
  361. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
  362. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
  363. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
  364. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
  365. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
  366. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
  367. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
  368. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
  369. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +47 -0
  370. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +107 -0
  371. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
  372. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
  373. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
  374. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
  375. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
  376. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
  377. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
  378. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
  379. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -6
  380. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +27 -14
  381. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
  382. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
  383. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
  384. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
  385. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
  386. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
  387. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
  388. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
  389. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -3
  390. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +29 -2
  391. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
  392. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
  393. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +38 -27
  394. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +207 -52
  395. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
  396. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
  397. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +54 -0
  398. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +188 -0
  399. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +111 -0
  400. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +444 -0
  401. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +56 -0
  402. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +192 -0
  403. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
  404. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +98 -0
  405. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
  406. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
  407. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
  408. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
  409. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +13 -11
  410. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +73 -23
  411. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
  412. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
  413. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  414. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
  415. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +133 -16
  416. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +656 -12
  417. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
  418. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
  419. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
  420. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
  421. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
  422. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
  423. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
  424. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
  425. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +47 -0
  426. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +113 -0
  427. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
  428. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
  429. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
  430. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
  431. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
  432. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
  433. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  434. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
  435. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  436. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
  437. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
  438. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
  439. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +43 -0
  440. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +114 -0
  441. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
  442. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
  443. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
  444. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
  445. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  446. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
  447. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  448. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
  449. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
  450. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
  451. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
  452. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
  453. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
  454. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
  455. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
  456. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
  457. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
  458. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  459. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  460. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +3 -1
  461. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  462. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
  463. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
  464. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  465. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
  466. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
  467. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
  468. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
  469. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  470. data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
  471. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
  472. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
  473. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  474. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
  475. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
  476. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
  477. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  478. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
  479. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  480. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
  481. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
  482. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
  483. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  484. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
  485. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
  486. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
  487. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  488. data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
  489. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
  490. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
  491. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
  492. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
  493. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
  494. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
  495. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
  496. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  497. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
  498. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
  499. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
  500. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
  501. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
  502. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
  503. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
  504. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  505. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
  506. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  507. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
  508. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
  509. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  510. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
  511. data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
  512. data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
  513. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
  514. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
  515. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
  516. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
  517. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
  518. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
  519. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
  520. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
  521. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  522. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
  523. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
  524. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
  525. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
  526. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
  527. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  528. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
  529. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
  530. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
  531. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  532. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
  533. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  534. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
  535. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  536. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
  537. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +3 -2
  538. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -2
  539. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +46 -0
  540. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +113 -0
  541. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
  542. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
  543. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
  544. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
  545. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
  546. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
  547. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
  548. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
  549. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
  550. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
  551. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
  552. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
  553. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
  554. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
  555. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
  556. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
  557. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
  558. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
  559. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
  560. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
  561. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -2
  562. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
  563. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +54 -53
  564. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
  565. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
  566. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +277 -0
  567. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +125 -0
  568. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
  569. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
  570. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +199 -187
  571. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +232 -222
  572. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -5
  573. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +95 -75
  574. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +5 -0
  575. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +187 -183
  576. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +81 -75
  577. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +190 -186
  578. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +7 -3
  579. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +5 -0
  580. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
  581. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +71 -66
  582. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +164 -137
  583. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  584. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +16 -12
  585. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
  586. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +140 -129
  587. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  588. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +82 -74
  589. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +2 -2
  590. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +740 -667
  591. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +20 -0
  592. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
  593. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
  594. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +16 -14
  595. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +48 -0
  596. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  597. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
  598. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +20 -18
  599. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
  600. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +53 -42
  601. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
  602. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
  603. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +485 -467
  604. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
  605. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
  606. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
  607. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +149 -145
  608. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +156 -84
  609. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
  610. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
  611. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
  612. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
  613. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
  614. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
  615. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
  616. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  617. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  618. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +10 -9
  619. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
  620. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
  621. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
  622. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
  623. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
  624. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
  625. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
  626. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
  627. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
  628. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
  629. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
  630. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +9 -9
  631. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
  632. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
  633. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
  634. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
  635. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
  636. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
  637. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +4 -7
  638. data/src/core/ext/xds/certificate_provider_store.cc +69 -5
  639. data/src/core/ext/xds/certificate_provider_store.h +22 -5
  640. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +17 -10
  641. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +12 -4
  642. data/src/core/ext/xds/upb_utils.h +3 -25
  643. data/src/core/ext/xds/xds_api.cc +90 -196
  644. data/src/core/ext/xds/xds_api.h +41 -39
  645. data/src/core/ext/xds/xds_bootstrap.cc +5 -537
  646. data/src/core/ext/xds/xds_bootstrap.h +41 -96
  647. data/src/core/ext/xds/xds_bootstrap_grpc.cc +362 -0
  648. data/src/core/ext/xds/xds_bootstrap_grpc.h +184 -0
  649. data/src/core/ext/xds/xds_certificate_provider.cc +35 -26
  650. data/src/core/ext/xds/xds_certificate_provider.h +29 -5
  651. data/src/core/ext/xds/xds_channel_args.h +3 -3
  652. data/src/core/ext/xds/xds_channel_stack_modifier.cc +17 -7
  653. data/src/core/ext/xds/xds_channel_stack_modifier.h +16 -4
  654. data/src/core/ext/xds/xds_client.cc +849 -1316
  655. data/src/core/ext/xds/xds_client.h +57 -61
  656. data/src/core/ext/xds/xds_client_grpc.cc +235 -0
  657. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  658. data/src/core/ext/xds/xds_client_stats.cc +24 -25
  659. data/src/core/ext/xds/xds_client_stats.h +26 -24
  660. data/src/core/ext/xds/xds_cluster.cc +505 -247
  661. data/src/core/ext/xds/xds_cluster.h +69 -40
  662. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +67 -77
  663. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +47 -29
  664. data/src/core/ext/xds/xds_common_types.cc +238 -123
  665. data/src/core/ext/xds/xds_common_types.h +29 -16
  666. data/src/core/ext/xds/xds_endpoint.cc +265 -162
  667. data/src/core/ext/xds/xds_endpoint.h +19 -15
  668. data/src/core/ext/xds/xds_health_status.cc +80 -0
  669. data/src/core/ext/xds/xds_health_status.h +109 -0
  670. data/src/core/ext/xds/xds_http_fault_filter.cc +67 -58
  671. data/src/core/ext/xds/xds_http_fault_filter.h +19 -25
  672. data/src/core/ext/xds/xds_http_filters.cc +70 -71
  673. data/src/core/ext/xds/xds_http_filters.h +73 -25
  674. data/src/core/ext/xds/xds_http_rbac_filter.cc +168 -225
  675. data/src/core/ext/xds/xds_http_rbac_filter.h +22 -18
  676. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
  677. data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
  678. data/src/core/ext/xds/xds_lb_policy_registry.cc +334 -0
  679. data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
  680. data/src/core/ext/xds/xds_listener.cc +573 -481
  681. data/src/core/ext/xds/xds_listener.h +57 -51
  682. data/src/core/ext/xds/xds_resource_type.h +28 -22
  683. data/src/core/ext/xds/xds_resource_type_impl.h +18 -17
  684. data/src/core/ext/xds/xds_route_config.cc +592 -570
  685. data/src/core/ext/xds/xds_route_config.h +74 -40
  686. data/src/core/ext/xds/xds_routing.cc +21 -7
  687. data/src/core/ext/xds/xds_routing.h +17 -12
  688. data/src/core/ext/xds/xds_server_config_fetcher.cc +227 -178
  689. data/src/core/ext/xds/xds_transport.h +86 -0
  690. data/src/core/ext/xds/xds_transport_grpc.cc +356 -0
  691. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  692. data/src/core/lib/address_utils/parse_address.cc +52 -52
  693. data/src/core/lib/address_utils/parse_address.h +46 -42
  694. data/src/core/lib/address_utils/sockaddr_utils.cc +90 -54
  695. data/src/core/lib/address_utils/sockaddr_utils.h +45 -40
  696. data/src/core/lib/avl/avl.h +57 -33
  697. data/src/core/lib/backoff/backoff.cc +19 -21
  698. data/src/core/lib/backoff/backoff.h +21 -21
  699. data/src/core/lib/backoff/random_early_detection.cc +31 -0
  700. data/src/core/lib/backoff/random_early_detection.h +59 -0
  701. data/src/core/lib/channel/call_finalization.h +6 -4
  702. data/src/core/lib/channel/call_tracer.h +23 -8
  703. data/src/core/lib/channel/channel_args.cc +149 -61
  704. data/src/core/lib/channel/channel_args.h +308 -104
  705. data/src/core/lib/channel/channel_args_preconditioning.cc +4 -3
  706. data/src/core/lib/channel/channel_args_preconditioning.h +6 -5
  707. data/src/core/lib/channel/channel_fwd.h +26 -0
  708. data/src/core/lib/channel/channel_stack.cc +92 -52
  709. data/src/core/lib/channel/channel_stack.h +184 -135
  710. data/src/core/lib/channel/channel_stack_builder.cc +26 -39
  711. data/src/core/lib/channel/channel_stack_builder.h +33 -40
  712. data/src/core/lib/channel/channel_stack_builder_impl.cc +84 -60
  713. data/src/core/lib/channel/channel_stack_builder_impl.h +9 -9
  714. data/src/core/lib/channel/channel_trace.cc +29 -36
  715. data/src/core/lib/channel/channel_trace.h +27 -24
  716. data/src/core/lib/channel/channelz.cc +50 -65
  717. data/src/core/lib/channel/channelz.h +50 -33
  718. data/src/core/lib/channel/channelz_registry.cc +28 -36
  719. data/src/core/lib/channel/channelz_registry.h +31 -30
  720. data/src/core/lib/channel/connected_channel.cc +1267 -78
  721. data/src/core/lib/channel/connected_channel.h +21 -23
  722. data/src/core/lib/channel/context.h +25 -21
  723. data/src/core/lib/channel/promise_based_filter.cc +1896 -377
  724. data/src/core/lib/channel/promise_based_filter.h +592 -92
  725. data/src/core/lib/channel/status_util.cc +64 -17
  726. data/src/core/lib/channel/status_util.h +38 -24
  727. data/src/core/lib/compression/compression.cc +24 -19
  728. data/src/core/lib/compression/compression_internal.cc +88 -63
  729. data/src/core/lib/compression/compression_internal.h +28 -27
  730. data/src/core/lib/compression/message_compress.cc +28 -26
  731. data/src/core/lib/compression/message_compress.h +28 -29
  732. data/src/core/lib/config/core_configuration.cc +8 -1
  733. data/src/core/lib/config/core_configuration.h +86 -39
  734. data/src/core/lib/debug/event_log.cc +88 -0
  735. data/src/core/lib/debug/event_log.h +81 -0
  736. data/src/core/lib/debug/histogram_view.cc +69 -0
  737. data/src/core/lib/debug/histogram_view.h +37 -0
  738. data/src/core/lib/debug/stats.cc +48 -152
  739. data/src/core/lib/debug/stats.h +50 -57
  740. data/src/core/lib/debug/stats_data.cc +302 -645
  741. data/src/core/lib/debug/stats_data.h +293 -545
  742. data/src/core/lib/debug/trace.cc +18 -20
  743. data/src/core/lib/debug/trace.h +27 -48
  744. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +16 -17
  745. data/src/core/lib/event_engine/channel_args_endpoint_config.h +16 -9
  746. data/src/core/lib/event_engine/common_closures.h +71 -0
  747. data/src/core/lib/event_engine/default_event_engine.cc +99 -0
  748. data/src/core/lib/event_engine/default_event_engine.h +73 -0
  749. data/src/core/lib/event_engine/default_event_engine_factory.cc +24 -3
  750. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine_factory.h} +6 -9
  751. data/src/core/lib/event_engine/event_engine.cc +3 -30
  752. data/src/core/lib/event_engine/executor/executor.h +38 -0
  753. data/src/core/lib/event_engine/forkable.cc +106 -0
  754. data/src/core/lib/event_engine/forkable.h +61 -0
  755. data/src/core/lib/event_engine/handle_containers.h +74 -0
  756. data/src/core/lib/event_engine/memory_allocator.cc +11 -3
  757. data/src/core/lib/event_engine/poller.h +62 -0
  758. data/src/core/lib/event_engine/posix.h +158 -0
  759. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +642 -0
  760. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +139 -0
  761. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +899 -0
  762. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  763. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  764. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
  765. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
  766. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  767. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  768. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
  769. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  770. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1305 -0
  771. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +717 -0
  772. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +640 -0
  773. data/src/core/lib/event_engine/posix_engine/posix_engine.h +259 -0
  774. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  775. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +289 -0
  776. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +279 -0
  777. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +379 -0
  778. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
  779. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
  780. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
  781. data/src/core/lib/event_engine/posix_engine/timer.cc +311 -0
  782. data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
  783. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +107 -0
  784. data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
  785. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
  786. data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
  787. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
  788. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
  789. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
  790. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  791. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
  792. data/src/core/lib/{iomgr/event_engine/promise.h → event_engine/posix_engine/wakeup_fd_pipe.h} +19 -25
  793. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  794. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  795. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  796. data/src/core/lib/event_engine/resolved_address.cc +23 -2
  797. data/src/core/lib/{iomgr/event_engine → event_engine}/resolved_address_internal.h +5 -8
  798. data/src/core/lib/event_engine/shim.cc +56 -0
  799. data/src/core/lib/event_engine/shim.h +33 -0
  800. data/src/core/lib/event_engine/slice.cc +103 -0
  801. data/src/core/lib/event_engine/slice_buffer.cc +50 -0
  802. data/src/core/lib/event_engine/tcp_socket_utils.cc +389 -0
  803. data/src/core/lib/event_engine/tcp_socket_utils.h +90 -0
  804. data/src/core/lib/event_engine/thread_local.cc +29 -0
  805. data/src/core/lib/event_engine/thread_local.h +32 -0
  806. data/src/core/lib/event_engine/thread_pool.cc +253 -0
  807. data/src/core/lib/event_engine/thread_pool.h +141 -0
  808. data/src/core/lib/event_engine/time_util.cc +30 -0
  809. data/src/core/lib/event_engine/time_util.h +32 -0
  810. data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.cc} +9 -17
  811. data/src/core/lib/event_engine/trace.h +43 -0
  812. data/src/core/lib/event_engine/utils.cc +44 -0
  813. data/src/core/lib/event_engine/utils.h +44 -0
  814. data/src/core/lib/event_engine/windows/iocp.cc +140 -0
  815. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  816. data/src/core/lib/event_engine/windows/win_socket.cc +219 -0
  817. data/src/core/lib/event_engine/windows/win_socket.h +129 -0
  818. data/src/core/lib/event_engine/windows/windows_endpoint.cc +331 -0
  819. data/src/core/lib/event_engine/windows/windows_endpoint.h +103 -0
  820. data/src/core/lib/event_engine/windows/windows_engine.cc +388 -0
  821. data/src/core/lib/event_engine/windows/windows_engine.h +163 -0
  822. data/src/core/lib/experiments/config.cc +161 -0
  823. data/src/core/lib/experiments/config.h +53 -0
  824. data/src/core/lib/experiments/experiments.cc +81 -0
  825. data/src/core/lib/experiments/experiments.h +117 -0
  826. data/src/core/lib/gpr/alloc.cc +19 -25
  827. data/src/core/lib/gpr/alloc.h +20 -20
  828. data/src/core/lib/gpr/atm.cc +17 -17
  829. data/src/core/lib/gpr/cpu_iphone.cc +24 -24
  830. data/src/core/lib/gpr/cpu_linux.cc +28 -23
  831. data/src/core/lib/gpr/cpu_posix.cc +23 -22
  832. data/src/core/lib/gpr/cpu_windows.cc +20 -18
  833. data/src/core/lib/gpr/log.cc +30 -17
  834. data/src/core/lib/gpr/log_android.cc +22 -20
  835. data/src/core/lib/gpr/log_linux.cc +24 -24
  836. data/src/core/lib/gpr/log_posix.cc +20 -19
  837. data/src/core/lib/gpr/log_windows.cc +25 -25
  838. data/src/core/lib/gpr/spinlock.h +20 -20
  839. data/src/core/lib/gpr/string.cc +25 -24
  840. data/src/core/lib/gpr/string.h +61 -61
  841. data/src/core/lib/gpr/string_posix.cc +24 -24
  842. data/src/core/lib/gpr/string_util_windows.cc +25 -52
  843. data/src/core/lib/gpr/string_windows.cc +24 -24
  844. data/src/core/lib/gpr/sync.cc +25 -25
  845. data/src/core/lib/gpr/sync_abseil.cc +36 -40
  846. data/src/core/lib/gpr/sync_posix.cc +22 -34
  847. data/src/core/lib/gpr/sync_windows.cc +29 -27
  848. data/src/core/lib/gpr/time.cc +34 -30
  849. data/src/core/lib/gpr/time_posix.cc +41 -45
  850. data/src/core/lib/gpr/time_precise.cc +22 -22
  851. data/src/core/lib/gpr/time_precise.h +21 -22
  852. data/src/core/lib/gpr/time_windows.cc +35 -29
  853. data/src/core/lib/gpr/tmpfile.h +24 -24
  854. data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
  855. data/src/core/lib/gpr/tmpfile_posix.cc +22 -20
  856. data/src/core/lib/gpr/tmpfile_windows.cc +28 -29
  857. data/src/core/lib/gpr/useful.h +83 -30
  858. data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
  859. data/src/core/lib/gprpp/atomic_utils.h +20 -20
  860. data/src/core/lib/gprpp/bitset.h +35 -17
  861. data/src/core/lib/gprpp/chunked_vector.h +7 -3
  862. data/src/core/lib/gprpp/construct_destruct.h +4 -3
  863. data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
  864. data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/crash.cc} +12 -12
  865. data/src/core/lib/gprpp/crash.h +34 -0
  866. data/src/core/lib/gprpp/debug_location.h +60 -31
  867. data/src/core/lib/gprpp/dual_ref_counted.h +4 -7
  868. data/src/core/lib/gprpp/env.h +53 -0
  869. data/src/core/lib/gprpp/env_linux.cc +80 -0
  870. data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc → lib/gprpp/env_posix.cc} +25 -9
  871. data/src/core/lib/gprpp/env_windows.cc +56 -0
  872. data/src/core/lib/gprpp/examine_stack.cc +17 -17
  873. data/src/core/lib/gprpp/examine_stack.h +21 -22
  874. data/src/core/lib/gprpp/fork.cc +58 -53
  875. data/src/core/lib/gprpp/fork.h +29 -35
  876. data/src/core/lib/gprpp/global_config.h +22 -24
  877. data/src/core/lib/gprpp/global_config_custom.h +20 -20
  878. data/src/core/lib/gprpp/global_config_env.cc +28 -25
  879. data/src/core/lib/gprpp/global_config_env.h +29 -27
  880. data/src/core/lib/gprpp/global_config_generic.h +21 -25
  881. data/src/core/lib/gprpp/host_port.cc +30 -26
  882. data/src/core/lib/gprpp/host_port.h +32 -31
  883. data/src/core/lib/gprpp/load_file.cc +75 -0
  884. data/src/core/lib/gprpp/load_file.h +33 -0
  885. data/src/core/lib/gprpp/manual_constructor.h +21 -89
  886. data/src/core/lib/gprpp/match.h +5 -3
  887. data/src/core/lib/gprpp/memory.h +22 -26
  888. data/src/core/lib/gprpp/mpscq.cc +17 -17
  889. data/src/core/lib/gprpp/mpscq.h +21 -21
  890. data/src/core/lib/gprpp/no_destruct.h +95 -0
  891. data/src/core/lib/gprpp/notification.h +67 -0
  892. data/src/core/lib/gprpp/orphanable.h +22 -25
  893. data/src/core/lib/gprpp/overload.h +3 -3
  894. data/src/core/lib/gprpp/packed_table.h +40 -0
  895. data/src/core/lib/gprpp/per_cpu.h +46 -0
  896. data/src/core/lib/gprpp/ref_counted.h +22 -24
  897. data/src/core/lib/gprpp/ref_counted_ptr.h +42 -55
  898. data/src/core/lib/gprpp/single_set_ptr.h +3 -3
  899. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  900. data/src/core/lib/gprpp/stat.h +3 -5
  901. data/src/core/lib/gprpp/stat_posix.cc +10 -4
  902. data/src/core/lib/gprpp/stat_windows.cc +4 -2
  903. data/src/core/lib/gprpp/status_helper.cc +55 -35
  904. data/src/core/lib/gprpp/status_helper.h +13 -5
  905. data/src/core/lib/gprpp/strerror.cc +43 -0
  906. data/src/core/lib/gprpp/strerror.h +29 -0
  907. data/src/core/lib/gprpp/sync.h +26 -24
  908. data/src/core/lib/gprpp/table.h +22 -4
  909. data/src/core/lib/gprpp/tchar.cc +49 -0
  910. data/src/core/lib/gprpp/tchar.h +33 -0
  911. data/src/core/lib/gprpp/thd.h +25 -28
  912. data/src/core/lib/gprpp/thd_posix.cc +33 -32
  913. data/src/core/lib/gprpp/thd_windows.cc +28 -26
  914. data/src/core/lib/gprpp/time.cc +52 -9
  915. data/src/core/lib/gprpp/time.h +78 -4
  916. data/src/core/lib/gprpp/time_averaged_stats.cc +60 -0
  917. data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
  918. data/src/core/lib/gprpp/time_util.cc +4 -0
  919. data/src/core/lib/gprpp/time_util.h +3 -3
  920. data/src/core/lib/gprpp/unique_type_name.h +104 -0
  921. data/src/core/lib/gprpp/validation_errors.cc +61 -0
  922. data/src/core/lib/gprpp/validation_errors.h +127 -0
  923. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  924. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -28
  925. data/src/core/lib/handshaker/proxy_mapper.h +53 -0
  926. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  927. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  928. data/src/core/lib/http/format_request.cc +53 -22
  929. data/src/core/lib/http/format_request.h +23 -21
  930. data/src/core/lib/http/httpcli.cc +139 -141
  931. data/src/core/lib/http/httpcli.h +86 -38
  932. data/src/core/lib/http/httpcli_security_connector.cc +50 -42
  933. data/src/core/lib/http/httpcli_ssl_credentials.h +6 -4
  934. data/src/core/lib/http/parser.cc +78 -90
  935. data/src/core/lib/http/parser.h +38 -35
  936. data/src/core/lib/iomgr/block_annotate.h +23 -23
  937. data/src/core/lib/iomgr/buffer_list.cc +156 -136
  938. data/src/core/lib/iomgr/buffer_list.h +123 -101
  939. data/src/core/lib/iomgr/call_combiner.cc +32 -64
  940. data/src/core/lib/iomgr/call_combiner.h +24 -25
  941. data/src/core/lib/iomgr/cfstream_handle.cc +33 -36
  942. data/src/core/lib/iomgr/cfstream_handle.h +25 -25
  943. data/src/core/lib/iomgr/{event_engine/pollset.h → closure.cc} +9 -7
  944. data/src/core/lib/iomgr/closure.h +95 -58
  945. data/src/core/lib/iomgr/combiner.cc +20 -39
  946. data/src/core/lib/iomgr/combiner.h +20 -20
  947. data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
  948. data/src/core/lib/iomgr/dynamic_annotations.h +22 -22
  949. data/src/core/lib/iomgr/endpoint.cc +21 -21
  950. data/src/core/lib/iomgr/endpoint.h +53 -51
  951. data/src/core/lib/iomgr/endpoint_cfstream.cc +51 -47
  952. data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
  953. data/src/core/lib/iomgr/endpoint_pair.h +22 -22
  954. data/src/core/lib/iomgr/endpoint_pair_posix.cc +36 -29
  955. data/src/core/lib/iomgr/endpoint_pair_windows.cc +31 -22
  956. data/src/core/lib/iomgr/error.cc +51 -834
  957. data/src/core/lib/iomgr/error.h +45 -317
  958. data/src/core/lib/iomgr/error_cfstream.cc +18 -23
  959. data/src/core/lib/iomgr/error_cfstream.h +21 -21
  960. data/src/core/lib/iomgr/ev_apple.cc +21 -21
  961. data/src/core/lib/iomgr/ev_apple.h +21 -21
  962. data/src/core/lib/iomgr/ev_epoll1_linux.cc +263 -248
  963. data/src/core/lib/iomgr/ev_epoll1_linux.h +21 -21
  964. data/src/core/lib/iomgr/ev_poll_posix.cc +296 -271
  965. data/src/core/lib/iomgr/ev_poll_posix.h +22 -22
  966. data/src/core/lib/iomgr/ev_posix.cc +88 -121
  967. data/src/core/lib/iomgr/ev_posix.h +93 -87
  968. data/src/core/lib/iomgr/ev_windows.cc +18 -18
  969. data/src/core/lib/iomgr/{event_engine → event_engine_shims}/closure.cc +15 -30
  970. data/src/core/lib/iomgr/{event_engine → event_engine_shims}/closure.h +10 -13
  971. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +430 -0
  972. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
  973. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
  974. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
  975. data/src/core/lib/iomgr/exec_ctx.cc +34 -56
  976. data/src/core/lib/iomgr/exec_ctx.h +152 -177
  977. data/src/core/lib/iomgr/executor.cc +21 -31
  978. data/src/core/lib/iomgr/executor.h +27 -30
  979. data/src/core/lib/iomgr/fork_posix.cc +30 -27
  980. data/src/core/lib/iomgr/fork_windows.cc +21 -21
  981. data/src/core/lib/iomgr/gethostname.h +20 -20
  982. data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
  983. data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
  984. data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
  985. data/src/core/lib/iomgr/grpc_if_nametoindex.h +22 -22
  986. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
  987. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
  988. data/src/core/lib/iomgr/internal_errqueue.cc +41 -48
  989. data/src/core/lib/iomgr/internal_errqueue.h +84 -89
  990. data/src/core/lib/iomgr/iocp_windows.cc +23 -23
  991. data/src/core/lib/iomgr/iocp_windows.h +21 -21
  992. data/src/core/lib/iomgr/iomgr.cc +25 -20
  993. data/src/core/lib/iomgr/iomgr.h +35 -35
  994. data/src/core/lib/iomgr/iomgr_fwd.h +26 -0
  995. data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
  996. data/src/core/lib/iomgr/iomgr_internal.h +28 -28
  997. data/src/core/lib/iomgr/iomgr_posix.cc +21 -20
  998. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +21 -19
  999. data/src/core/lib/iomgr/iomgr_windows.cc +24 -22
  1000. data/src/core/lib/iomgr/load_file.cc +24 -27
  1001. data/src/core/lib/iomgr/load_file.h +22 -22
  1002. data/src/core/lib/iomgr/lockfree_event.cc +114 -131
  1003. data/src/core/lib/iomgr/lockfree_event.h +23 -23
  1004. data/src/core/lib/iomgr/nameser.h +86 -86
  1005. data/src/core/lib/iomgr/polling_entity.cc +25 -21
  1006. data/src/core/lib/iomgr/polling_entity.h +29 -29
  1007. data/src/core/lib/iomgr/pollset.cc +17 -17
  1008. data/src/core/lib/iomgr/pollset.h +55 -55
  1009. data/src/core/lib/iomgr/pollset_set.cc +17 -17
  1010. data/src/core/lib/iomgr/pollset_set.h +26 -28
  1011. data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
  1012. data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
  1013. data/src/core/lib/iomgr/pollset_windows.cc +32 -31
  1014. data/src/core/lib/iomgr/pollset_windows.h +24 -24
  1015. data/src/core/lib/iomgr/port.h +59 -37
  1016. data/src/core/lib/iomgr/python_util.h +24 -24
  1017. data/src/core/lib/iomgr/resolve_address.cc +34 -20
  1018. data/src/core/lib/iomgr/resolve_address.h +73 -43
  1019. data/src/core/lib/iomgr/resolve_address_impl.h +7 -7
  1020. data/src/core/lib/iomgr/resolve_address_posix.cc +81 -62
  1021. data/src/core/lib/iomgr/resolve_address_posix.h +26 -10
  1022. data/src/core/lib/iomgr/resolve_address_windows.cc +64 -38
  1023. data/src/core/lib/iomgr/resolve_address_windows.h +26 -10
  1024. data/src/core/lib/iomgr/resolved_address.h +3 -3
  1025. data/src/core/lib/iomgr/sockaddr.h +25 -26
  1026. data/src/core/lib/iomgr/sockaddr_posix.h +23 -21
  1027. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +20 -18
  1028. data/src/core/lib/iomgr/sockaddr_windows.h +23 -21
  1029. data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
  1030. data/src/core/lib/iomgr/socket_factory_posix.h +32 -32
  1031. data/src/core/lib/iomgr/socket_mutator.cc +19 -18
  1032. data/src/core/lib/iomgr/socket_mutator.h +39 -39
  1033. data/src/core/lib/iomgr/socket_utils.h +27 -27
  1034. data/src/core/lib/iomgr/socket_utils_common_posix.cc +82 -101
  1035. data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
  1036. data/src/core/lib/iomgr/socket_utils_posix.cc +103 -19
  1037. data/src/core/lib/iomgr/socket_utils_posix.h +176 -84
  1038. data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
  1039. data/src/core/lib/iomgr/socket_windows.cc +37 -36
  1040. data/src/core/lib/iomgr/socket_windows.h +59 -61
  1041. data/src/core/lib/iomgr/systemd_utils.cc +116 -0
  1042. data/src/core/lib/iomgr/systemd_utils.h +33 -0
  1043. data/src/core/lib/iomgr/tcp_client.cc +28 -24
  1044. data/src/core/lib/iomgr/tcp_client.h +49 -38
  1045. data/src/core/lib/iomgr/tcp_client_cfstream.cc +46 -35
  1046. data/src/core/lib/iomgr/tcp_client_posix.cc +243 -105
  1047. data/src/core/lib/iomgr/tcp_client_posix.h +55 -52
  1048. data/src/core/lib/iomgr/tcp_client_windows.cc +73 -53
  1049. data/src/core/lib/iomgr/tcp_posix.cc +505 -362
  1050. data/src/core/lib/iomgr/tcp_posix.h +32 -30
  1051. data/src/core/lib/iomgr/tcp_server.cc +33 -24
  1052. data/src/core/lib/iomgr/tcp_server.h +78 -69
  1053. data/src/core/lib/iomgr/tcp_server_posix.cc +381 -133
  1054. data/src/core/lib/iomgr/tcp_server_utils_posix.h +68 -55
  1055. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +120 -82
  1056. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +46 -43
  1057. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
  1058. data/src/core/lib/iomgr/tcp_server_windows.cc +116 -118
  1059. data/src/core/lib/iomgr/tcp_windows.cc +116 -98
  1060. data/src/core/lib/iomgr/tcp_windows.h +34 -35
  1061. data/src/core/lib/iomgr/timer.cc +17 -17
  1062. data/src/core/lib/iomgr/timer.h +68 -68
  1063. data/src/core/lib/iomgr/timer_generic.cc +125 -134
  1064. data/src/core/lib/iomgr/timer_generic.h +21 -21
  1065. data/src/core/lib/iomgr/timer_heap.cc +25 -25
  1066. data/src/core/lib/iomgr/timer_heap.h +22 -22
  1067. data/src/core/lib/iomgr/timer_manager.cc +31 -31
  1068. data/src/core/lib/iomgr/timer_manager.h +27 -27
  1069. data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
  1070. data/src/core/lib/iomgr/unix_sockets_posix.h +21 -21
  1071. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
  1072. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -23
  1073. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
  1074. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
  1075. data/src/core/lib/iomgr/wakeup_fd_pipe.h +20 -20
  1076. data/src/core/lib/iomgr/wakeup_fd_posix.cc +33 -30
  1077. data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -54
  1078. data/src/core/lib/json/json.h +23 -27
  1079. data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/json/json_args.h} +13 -10
  1080. data/src/core/lib/json/json_channel_args.h +42 -0
  1081. data/src/core/lib/json/json_object_loader.cc +217 -0
  1082. data/src/core/lib/json/json_object_loader.h +634 -0
  1083. data/src/core/lib/json/json_reader.cc +123 -90
  1084. data/src/core/lib/json/json_util.cc +14 -34
  1085. data/src/core/lib/json/json_util.h +17 -8
  1086. data/src/core/lib/json/json_writer.cc +62 -57
  1087. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +30 -60
  1088. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +47 -62
  1089. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  1090. data/src/core/lib/load_balancing/lb_policy_registry.cc +142 -0
  1091. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  1092. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +57 -52
  1093. data/src/core/lib/matchers/matchers.cc +12 -7
  1094. data/src/core/lib/matchers/matchers.h +5 -3
  1095. data/src/core/lib/promise/activity.cc +23 -8
  1096. data/src/core/lib/promise/activity.h +116 -58
  1097. data/src/core/lib/promise/arena_promise.h +115 -72
  1098. data/src/core/lib/promise/context.h +18 -11
  1099. data/src/core/lib/promise/detail/basic_join.h +197 -0
  1100. data/src/core/lib/promise/detail/basic_seq.h +28 -33
  1101. data/src/core/lib/promise/detail/promise_factory.h +61 -14
  1102. data/src/core/lib/promise/detail/promise_like.h +3 -3
  1103. data/src/core/lib/promise/detail/status.h +31 -3
  1104. data/src/core/lib/promise/detail/switch.h +21 -21
  1105. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
  1106. data/src/core/lib/promise/if.h +195 -0
  1107. data/src/core/lib/promise/interceptor_list.h +308 -0
  1108. data/src/core/lib/promise/intra_activity_waiter.h +9 -3
  1109. data/src/core/lib/promise/latch.h +109 -22
  1110. data/src/core/lib/promise/loop.h +13 -9
  1111. data/src/core/lib/promise/map.h +4 -6
  1112. data/src/core/lib/promise/pipe.h +608 -0
  1113. data/src/core/lib/promise/poll.h +129 -11
  1114. data/src/core/lib/promise/promise.h +5 -5
  1115. data/src/core/lib/promise/race.h +6 -10
  1116. data/src/core/lib/promise/seq.h +32 -14
  1117. data/src/core/lib/promise/sleep.cc +58 -42
  1118. data/src/core/lib/promise/sleep.h +44 -26
  1119. data/src/core/lib/promise/trace.cc +20 -0
  1120. data/src/core/lib/promise/trace.h +24 -0
  1121. data/src/core/lib/promise/try_join.h +82 -0
  1122. data/src/core/lib/promise/try_seq.h +41 -23
  1123. data/src/core/lib/resolver/resolver.cc +17 -59
  1124. data/src/core/lib/resolver/resolver.h +21 -18
  1125. data/src/core/lib/resolver/resolver_factory.h +11 -10
  1126. data/src/core/lib/resolver/resolver_registry.cc +17 -9
  1127. data/src/core/lib/resolver/resolver_registry.h +15 -5
  1128. data/src/core/lib/resolver/server_address.cc +46 -34
  1129. data/src/core/lib/resolver/server_address.h +36 -35
  1130. data/src/core/lib/resource_quota/api.cc +23 -2
  1131. data/src/core/lib/resource_quota/api.h +13 -4
  1132. data/src/core/lib/resource_quota/arena.cc +85 -27
  1133. data/src/core/lib/resource_quota/arena.h +197 -25
  1134. data/src/core/lib/resource_quota/memory_quota.cc +322 -101
  1135. data/src/core/lib/resource_quota/memory_quota.h +191 -56
  1136. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  1137. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  1138. data/src/core/lib/resource_quota/resource_quota.h +12 -4
  1139. data/src/core/lib/resource_quota/thread_quota.cc +2 -0
  1140. data/src/core/lib/resource_quota/thread_quota.h +7 -3
  1141. data/src/core/lib/resource_quota/trace.h +3 -3
  1142. data/src/core/lib/security/authorization/authorization_engine.h +3 -3
  1143. data/src/core/lib/security/authorization/authorization_policy_provider.h +10 -3
  1144. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -0
  1145. data/src/core/lib/security/authorization/evaluate_args.cc +17 -8
  1146. data/src/core/lib/security/authorization/evaluate_args.h +9 -6
  1147. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +5 -1
  1148. data/src/core/lib/security/authorization/grpc_authorization_engine.h +10 -3
  1149. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +19 -3
  1150. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +16 -5
  1151. data/src/core/lib/security/authorization/matchers.cc +44 -30
  1152. data/src/core/lib/security/authorization/matchers.h +10 -3
  1153. data/src/core/lib/security/authorization/rbac_policy.cc +6 -2
  1154. data/src/core/lib/security/authorization/rbac_policy.h +10 -3
  1155. data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +9 -4
  1156. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
  1157. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
  1158. data/src/core/lib/security/context/security_context.cc +27 -25
  1159. data/src/core/lib/security/context/security_context.h +56 -34
  1160. data/src/core/lib/security/credentials/alts/alts_credentials.cc +31 -24
  1161. data/src/core/lib/security/credentials/alts/alts_credentials.h +63 -59
  1162. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
  1163. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +43 -43
  1164. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
  1165. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
  1166. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
  1167. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +20 -22
  1168. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
  1169. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +38 -39
  1170. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +19 -22
  1171. data/src/core/lib/security/credentials/call_creds_util.cc +10 -0
  1172. data/src/core/lib/security/credentials/call_creds_util.h +4 -3
  1173. data/src/core/lib/security/credentials/channel_creds_registry.h +10 -4
  1174. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +13 -3
  1175. data/src/core/lib/security/credentials/composite/composite_credentials.cc +34 -34
  1176. data/src/core/lib/security/credentials/composite/composite_credentials.h +45 -33
  1177. data/src/core/lib/security/credentials/credentials.cc +23 -26
  1178. data/src/core/lib/security/credentials/credentials.h +79 -65
  1179. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +202 -74
  1180. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +21 -3
  1181. data/src/core/lib/security/credentials/external/aws_request_signer.cc +14 -3
  1182. data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
  1183. data/src/core/lib/security/credentials/external/external_account_credentials.cc +86 -68
  1184. data/src/core/lib/security/credentials/external/external_account_credentials.h +14 -3
  1185. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +29 -26
  1186. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +9 -3
  1187. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +44 -31
  1188. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +13 -3
  1189. data/src/core/lib/security/credentials/fake/fake_credentials.cc +43 -39
  1190. data/src/core/lib/security/credentials/fake/fake_credentials.h +51 -44
  1191. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +23 -25
  1192. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +146 -114
  1193. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +33 -27
  1194. data/src/core/lib/security/credentials/iam/iam_credentials.cc +31 -21
  1195. data/src/core/lib/security/credentials/iam/iam_credentials.h +33 -23
  1196. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +15 -5
  1197. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +14 -10
  1198. data/src/core/lib/security/credentials/jwt/json_token.cc +40 -29
  1199. data/src/core/lib/security/credentials/jwt/json_token.h +36 -36
  1200. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +32 -29
  1201. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +37 -23
  1202. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +113 -89
  1203. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +49 -47
  1204. data/src/core/lib/security/credentials/local/local_credentials.cc +32 -26
  1205. data/src/core/lib/security/credentials/local/local_credentials.h +34 -28
  1206. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +95 -87
  1207. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +46 -25
  1208. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +35 -31
  1209. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +48 -24
  1210. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +44 -42
  1211. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +39 -27
  1212. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +22 -30
  1213. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +16 -17
  1214. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +65 -48
  1215. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +27 -16
  1216. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +36 -4
  1217. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +37 -14
  1218. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +22 -23
  1219. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
  1220. data/src/core/lib/security/credentials/tls/tls_credentials.cc +46 -44
  1221. data/src/core/lib/security/credentials/tls/tls_credentials.h +30 -27
  1222. data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -1
  1223. data/src/core/lib/security/credentials/tls/tls_utils.h +4 -4
  1224. data/src/core/lib/security/credentials/xds/xds_credentials.cc +33 -35
  1225. data/src/core/lib/security/credentials/xds/xds_credentials.h +24 -10
  1226. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +60 -54
  1227. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +49 -47
  1228. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +75 -79
  1229. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +25 -26
  1230. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +15 -6
  1231. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +26 -15
  1232. data/src/core/lib/security/security_connector/load_system_roots.h +20 -20
  1233. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +22 -20
  1234. data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +43 -38
  1235. data/src/core/lib/security/security_connector/load_system_roots_supported.h +45 -0
  1236. data/src/core/lib/security/security_connector/local/local_security_connector.cc +64 -47
  1237. data/src/core/lib/security/security_connector/local/local_security_connector.h +49 -46
  1238. data/src/core/lib/security/security_connector/security_connector.cc +37 -35
  1239. data/src/core/lib/security/security_connector/security_connector.h +58 -45
  1240. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +55 -46
  1241. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +44 -43
  1242. data/src/core/lib/security/security_connector/ssl_utils.cc +47 -39
  1243. data/src/core/lib/security/security_connector/ssl_utils.h +45 -42
  1244. data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
  1245. data/src/core/lib/security/security_connector/ssl_utils_config.h +21 -22
  1246. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +58 -56
  1247. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +48 -28
  1248. data/src/core/lib/security/transport/auth_filters.h +53 -24
  1249. data/src/core/lib/security/transport/client_auth_filter.cc +57 -40
  1250. data/src/core/lib/security/transport/secure_endpoint.cc +130 -75
  1251. data/src/core/lib/security/transport/secure_endpoint.h +28 -27
  1252. data/src/core/lib/security/transport/security_handshaker.cc +144 -114
  1253. data/src/core/lib/security/transport/security_handshaker.h +28 -23
  1254. data/src/core/lib/security/transport/server_auth_filter.cc +157 -266
  1255. data/src/core/lib/security/transport/tsi_error.cc +23 -20
  1256. data/src/core/lib/security/transport/tsi_error.h +20 -20
  1257. data/src/core/lib/security/util/json_util.cc +24 -24
  1258. data/src/core/lib/security/util/json_util.h +21 -23
  1259. data/src/core/lib/service_config/service_config.h +19 -12
  1260. data/src/core/lib/service_config/service_config_call_data.h +15 -5
  1261. data/src/core/lib/service_config/service_config_impl.cc +111 -150
  1262. data/src/core/lib/service_config/service_config_impl.h +27 -27
  1263. data/src/core/lib/service_config/service_config_parser.cc +16 -28
  1264. data/src/core/lib/service_config/service_config_parser.h +18 -19
  1265. data/src/core/lib/slice/b64.cc +26 -26
  1266. data/src/core/lib/slice/b64.h +34 -32
  1267. data/src/core/lib/slice/percent_encoding.cc +24 -30
  1268. data/src/core/lib/slice/percent_encoding.h +28 -34
  1269. data/src/core/lib/slice/slice.cc +59 -46
  1270. data/src/core/lib/slice/slice.h +64 -20
  1271. data/src/core/lib/slice/slice_buffer.cc +136 -76
  1272. data/src/core/lib/slice/slice_buffer.h +168 -0
  1273. data/src/core/lib/slice/slice_internal.h +38 -45
  1274. data/src/core/lib/slice/slice_refcount.cc +3 -18
  1275. data/src/core/lib/slice/slice_refcount.h +53 -19
  1276. data/src/core/lib/slice/slice_string_helpers.cc +17 -33
  1277. data/src/core/lib/slice/slice_string_helpers.h +23 -30
  1278. data/src/core/lib/surface/api_trace.cc +17 -17
  1279. data/src/core/lib/surface/api_trace.h +25 -25
  1280. data/src/core/lib/surface/builtins.cc +7 -2
  1281. data/src/core/lib/surface/builtins.h +3 -3
  1282. data/src/core/lib/surface/byte_buffer.cc +26 -21
  1283. data/src/core/lib/surface/byte_buffer_reader.cc +24 -24
  1284. data/src/core/lib/surface/call.cc +2232 -483
  1285. data/src/core/lib/surface/call.h +135 -42
  1286. data/src/core/lib/surface/call_details.cc +22 -23
  1287. data/src/core/lib/surface/call_log_batch.cc +25 -18
  1288. data/src/core/lib/surface/call_test_only.h +34 -31
  1289. data/src/core/lib/surface/call_trace.cc +123 -0
  1290. data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/surface/call_trace.h} +12 -10
  1291. data/src/core/lib/surface/channel.cc +217 -284
  1292. data/src/core/lib/surface/channel.h +137 -90
  1293. data/src/core/lib/surface/channel_init.cc +17 -17
  1294. data/src/core/lib/surface/channel_init.h +22 -20
  1295. data/src/core/lib/surface/channel_ping.cc +26 -20
  1296. data/src/core/lib/surface/channel_stack_type.cc +21 -19
  1297. data/src/core/lib/surface/channel_stack_type.h +22 -22
  1298. data/src/core/lib/surface/completion_queue.cc +200 -222
  1299. data/src/core/lib/surface/completion_queue.h +42 -40
  1300. data/src/core/lib/surface/completion_queue_factory.cc +34 -28
  1301. data/src/core/lib/surface/completion_queue_factory.h +21 -23
  1302. data/src/core/lib/surface/event_string.cc +19 -24
  1303. data/src/core/lib/surface/event_string.h +21 -21
  1304. data/src/core/lib/surface/init.cc +57 -114
  1305. data/src/core/lib/surface/init.h +20 -28
  1306. data/src/core/lib/surface/init_internally.cc +25 -0
  1307. data/src/core/lib/surface/init_internally.h +37 -0
  1308. data/src/core/lib/surface/lame_client.cc +87 -130
  1309. data/src/core/lib/surface/lame_client.h +62 -24
  1310. data/src/core/lib/surface/metadata_array.cc +18 -17
  1311. data/src/core/lib/surface/server.cc +406 -174
  1312. data/src/core/lib/surface/server.h +56 -24
  1313. data/src/core/lib/surface/validate_metadata.cc +64 -77
  1314. data/src/core/lib/surface/validate_metadata.h +33 -21
  1315. data/src/core/lib/surface/version.cc +21 -21
  1316. data/src/core/lib/transport/bdp_estimator.cc +19 -19
  1317. data/src/core/lib/transport/bdp_estimator.h +22 -24
  1318. data/src/core/lib/transport/connectivity_state.cc +24 -23
  1319. data/src/core/lib/transport/connectivity_state.h +24 -25
  1320. data/src/core/lib/transport/error_utils.cc +57 -79
  1321. data/src/core/lib/transport/error_utils.h +29 -25
  1322. data/src/core/lib/{channel → transport}/handshaker.cc +75 -58
  1323. data/src/core/lib/{channel → transport}/handshaker.h +59 -48
  1324. data/src/core/lib/transport/handshaker_factory.h +74 -0
  1325. data/src/core/lib/transport/handshaker_registry.cc +61 -0
  1326. data/src/core/lib/transport/handshaker_registry.h +69 -0
  1327. data/src/core/lib/transport/http2_errors.h +22 -22
  1328. data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +78 -65
  1329. data/src/core/lib/transport/http_connect_handshaker.h +42 -0
  1330. data/src/core/lib/transport/metadata_batch.cc +305 -0
  1331. data/src/core/lib/transport/metadata_batch.h +405 -304
  1332. data/src/core/lib/transport/parsed_metadata.cc +2 -4
  1333. data/src/core/lib/transport/parsed_metadata.h +33 -14
  1334. data/src/core/lib/transport/pid_controller.cc +20 -20
  1335. data/src/core/lib/transport/pid_controller.h +27 -27
  1336. data/src/core/lib/transport/status_conversion.cc +23 -23
  1337. data/src/core/lib/transport/status_conversion.h +24 -24
  1338. data/src/core/lib/transport/tcp_connect_handshaker.cc +245 -0
  1339. data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
  1340. data/src/core/lib/transport/timeout_encoding.cc +24 -28
  1341. data/src/core/lib/transport/timeout_encoding.h +25 -21
  1342. data/src/core/lib/transport/transport.cc +97 -57
  1343. data/src/core/lib/transport/transport.h +243 -213
  1344. data/src/core/lib/transport/transport_fwd.h +20 -0
  1345. data/src/core/lib/transport/transport_impl.h +55 -45
  1346. data/src/core/lib/transport/transport_op_string.cc +40 -39
  1347. data/src/core/lib/uri/uri_parser.cc +12 -4
  1348. data/src/core/lib/uri/uri_parser.h +3 -5
  1349. data/src/core/plugin_registry/grpc_plugin_registry.cc +60 -69
  1350. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +20 -39
  1351. data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
  1352. data/src/core/tsi/alts/crypt/gsec.cc +26 -26
  1353. data/src/core/tsi/alts/crypt/gsec.h +336 -336
  1354. data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
  1355. data/src/core/tsi/alts/frame_protector/alts_counter.h +68 -68
  1356. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
  1357. data/src/core/tsi/alts/frame_protector/alts_crypter.h +209 -209
  1358. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
  1359. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +40 -40
  1360. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
  1361. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +82 -83
  1362. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
  1363. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
  1364. data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
  1365. data/src/core/tsi/alts/frame_protector/frame_handler.h +169 -169
  1366. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +117 -97
  1367. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +104 -104
  1368. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
  1369. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
  1370. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +51 -43
  1371. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
  1372. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +24 -24
  1373. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
  1374. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +38 -38
  1375. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
  1376. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +105 -104
  1377. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
  1378. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +40 -41
  1379. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
  1380. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +35 -36
  1381. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +67 -68
  1382. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
  1383. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +55 -56
  1384. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
  1385. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +141 -142
  1386. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +67 -58
  1387. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +43 -44
  1388. data/src/core/tsi/fake_transport_security.cc +146 -110
  1389. data/src/core/tsi/fake_transport_security.h +36 -30
  1390. data/src/core/tsi/local_transport_security.cc +43 -38
  1391. data/src/core/tsi/local_transport_security.h +33 -33
  1392. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +9 -4
  1393. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
  1394. data/src/core/tsi/ssl/session_cache/ssl_session.h +23 -21
  1395. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +21 -19
  1396. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
  1397. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +31 -22
  1398. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +27 -20
  1399. data/src/core/tsi/ssl_transport_security.cc +299 -370
  1400. data/src/core/tsi/ssl_transport_security.h +206 -203
  1401. data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
  1402. data/src/core/tsi/ssl_transport_security_utils.h +147 -0
  1403. data/src/core/tsi/ssl_types.h +27 -27
  1404. data/src/core/tsi/transport_security.cc +44 -32
  1405. data/src/core/tsi/transport_security.h +49 -48
  1406. data/src/core/tsi/transport_security_grpc.cc +23 -22
  1407. data/src/core/tsi/transport_security_grpc.h +44 -41
  1408. data/src/core/tsi/transport_security_interface.h +344 -332
  1409. data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang +2 -0
  1410. data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc +7 -0
  1411. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  1412. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  1413. data/src/ruby/ext/grpc/ext-export.gcc +1 -1
  1414. data/src/ruby/ext/grpc/extconf.rb +98 -20
  1415. data/src/ruby/ext/grpc/rb_call.c +1 -0
  1416. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  1417. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  1418. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  1419. data/src/ruby/ext/grpc/rb_grpc.c +1 -0
  1420. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
  1421. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +60 -60
  1422. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  1423. data/src/ruby/lib/grpc/errors.rb +1 -1
  1424. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1425. data/src/ruby/lib/grpc/version.rb +1 -1
  1426. data/src/ruby/pb/generate_proto_ruby.sh +0 -6
  1427. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  1428. data/src/ruby/spec/channel_spec.rb +5 -43
  1429. data/src/ruby/spec/client_server_spec.rb +20 -8
  1430. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  1431. data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
  1432. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  1433. data/src/ruby/spec/user_agent_spec.rb +1 -1
  1434. data/third_party/abseil-cpp/absl/algorithm/container.h +57 -58
  1435. data/third_party/abseil-cpp/absl/base/attributes.h +88 -41
  1436. data/third_party/abseil-cpp/absl/base/casts.h +61 -68
  1437. data/third_party/abseil-cpp/absl/base/config.h +221 -39
  1438. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
  1439. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +52 -2
  1440. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  1441. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -4
  1442. data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
  1443. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
  1444. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
  1445. data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
  1446. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
  1447. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
  1448. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
  1449. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +39 -28
  1450. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +36 -36
  1451. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +6 -3
  1452. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +10 -6
  1453. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
  1454. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
  1455. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  1456. data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
  1457. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -11
  1458. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
  1459. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
  1460. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
  1461. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
  1462. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -40
  1463. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  1464. data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
  1465. data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
  1466. data/third_party/abseil-cpp/absl/base/macros.h +4 -21
  1467. data/third_party/abseil-cpp/absl/base/optimization.h +76 -16
  1468. data/third_party/abseil-cpp/absl/base/options.h +1 -7
  1469. data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
  1470. data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
  1471. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  1472. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  1473. data/third_party/abseil-cpp/absl/container/fixed_array.h +9 -5
  1474. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
  1475. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
  1476. data/third_party/abseil-cpp/absl/container/inlined_vector.h +84 -25
  1477. data/third_party/abseil-cpp/absl/container/internal/common.h +9 -8
  1478. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
  1479. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +23 -29
  1480. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
  1481. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +116 -23
  1482. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +40 -54
  1483. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +165 -66
  1484. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +159 -4
  1485. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1121 -470
  1486. data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
  1487. data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
  1488. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
  1489. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
  1490. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
  1491. data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
  1492. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
  1493. data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  1494. data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  1495. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
  1496. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  1497. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
  1498. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
  1499. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
  1500. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
  1501. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  1502. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
  1503. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
  1504. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
  1505. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
  1506. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
  1507. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
  1508. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -13
  1509. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
  1510. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +19 -12
  1511. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
  1512. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
  1513. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
  1514. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
  1515. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +59 -102
  1516. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
  1517. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +41 -11
  1518. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +18 -4
  1519. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
  1520. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
  1521. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +164 -101
  1522. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
  1523. data/third_party/abseil-cpp/absl/functional/any_invocable.h +316 -0
  1524. data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
  1525. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
  1526. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
  1527. data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
  1528. data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
  1529. data/third_party/abseil-cpp/absl/hash/internal/hash.h +235 -26
  1530. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
  1531. data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
  1532. data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
  1533. data/third_party/abseil-cpp/absl/numeric/bits.h +1 -1
  1534. data/third_party/abseil-cpp/absl/numeric/int128.cc +14 -10
  1535. data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
  1536. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +33 -10
  1537. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
  1538. data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
  1539. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
  1540. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -2
  1541. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
  1542. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
  1543. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +3 -24
  1544. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
  1545. data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
  1546. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
  1547. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
  1548. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
  1549. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
  1550. data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
  1551. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
  1552. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
  1553. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
  1554. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
  1555. data/third_party/abseil-cpp/absl/random/random.h +6 -6
  1556. data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
  1557. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
  1558. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  1559. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
  1560. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  1561. data/third_party/abseil-cpp/absl/status/status.cc +193 -14
  1562. data/third_party/abseil-cpp/absl/status/status.h +24 -14
  1563. data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
  1564. data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
  1565. data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
  1566. data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
  1567. data/third_party/abseil-cpp/absl/strings/cord.cc +257 -924
  1568. data/third_party/abseil-cpp/absl/strings/cord.h +268 -156
  1569. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
  1570. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
  1571. data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
  1572. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +575 -0
  1573. data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
  1574. data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
  1575. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
  1576. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
  1577. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  1578. data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  1579. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
  1580. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +441 -150
  1581. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +157 -53
  1582. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +70 -73
  1583. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +8 -6
  1584. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
  1585. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
  1586. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
  1587. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
  1588. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
  1589. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
  1590. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
  1591. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
  1592. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
  1593. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
  1594. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +19 -43
  1595. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
  1596. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +5 -4
  1597. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
  1598. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
  1599. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
  1600. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +18 -15
  1601. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
  1602. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
  1603. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
  1604. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
  1605. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
  1606. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
  1607. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +127 -30
  1608. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
  1609. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +42 -10
  1610. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +56 -289
  1611. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
  1612. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  1613. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +9 -4
  1614. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
  1615. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
  1616. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
  1617. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -103
  1618. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
  1619. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
  1620. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
  1621. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  1622. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  1623. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
  1624. data/third_party/abseil-cpp/absl/strings/numbers.cc +42 -39
  1625. data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
  1626. data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
  1627. data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -16
  1628. data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
  1629. data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
  1630. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
  1631. data/third_party/abseil-cpp/absl/strings/string_view.cc +8 -19
  1632. data/third_party/abseil-cpp/absl/strings/string_view.h +6 -12
  1633. data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
  1634. data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
  1635. data/third_party/abseil-cpp/absl/strings/substitute.h +55 -21
  1636. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
  1637. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
  1638. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
  1639. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
  1640. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
  1641. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
  1642. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
  1643. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
  1644. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
  1645. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +172 -88
  1646. data/third_party/abseil-cpp/absl/synchronization/mutex.h +102 -55
  1647. data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
  1648. data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -3
  1649. data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
  1650. data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
  1651. data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
  1652. data/third_party/abseil-cpp/absl/time/duration.cc +12 -11
  1653. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  1654. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
  1655. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  1656. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
  1657. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
  1658. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
  1659. data/third_party/abseil-cpp/absl/time/time.cc +2 -2
  1660. data/third_party/abseil-cpp/absl/time/time.h +268 -169
  1661. data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
  1662. data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
  1663. data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
  1664. data/third_party/abseil-cpp/absl/types/optional.h +17 -14
  1665. data/third_party/abseil-cpp/absl/types/span.h +31 -8
  1666. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +1 -1
  1667. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -2
  1668. data/third_party/re2/re2/bitstate.cc +3 -3
  1669. data/third_party/re2/re2/dfa.cc +13 -13
  1670. data/third_party/re2/re2/nfa.cc +4 -4
  1671. data/third_party/re2/re2/onepass.cc +2 -2
  1672. data/third_party/re2/re2/prefilter_tree.cc +27 -59
  1673. data/third_party/re2/re2/prefilter_tree.h +3 -2
  1674. data/third_party/re2/re2/prog.cc +11 -2
  1675. data/third_party/re2/re2/prog.h +17 -5
  1676. data/third_party/re2/re2/re2.cc +6 -11
  1677. data/third_party/re2/re2/re2.h +1 -1
  1678. data/third_party/re2/re2/regexp.cc +1 -2
  1679. data/third_party/re2/re2/stringpiece.h +10 -7
  1680. data/third_party/re2/re2/unicode_casefold.cc +25 -11
  1681. data/third_party/re2/re2/unicode_groups.cc +319 -151
  1682. data/third_party/re2/re2/walker-inl.h +3 -2
  1683. data/third_party/re2/util/mutex.h +4 -4
  1684. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  1685. data/third_party/upb/upb/arena.c +277 -0
  1686. data/third_party/upb/upb/arena.h +225 -0
  1687. data/third_party/upb/upb/array.c +114 -0
  1688. data/third_party/upb/upb/array.h +83 -0
  1689. data/third_party/upb/upb/collections.h +36 -0
  1690. data/third_party/upb/upb/decode.c +161 -65
  1691. data/third_party/upb/upb/decode.h +1 -0
  1692. data/third_party/upb/upb/decode_fast.c +1 -1
  1693. data/third_party/upb/upb/def.c +10 -2
  1694. data/third_party/upb/upb/def.h +8 -1
  1695. data/third_party/upb/upb/def.hpp +7 -4
  1696. data/third_party/upb/upb/encode.c +29 -20
  1697. data/third_party/upb/upb/encode.h +16 -6
  1698. data/third_party/upb/upb/extension_registry.c +93 -0
  1699. data/third_party/upb/upb/extension_registry.h +84 -0
  1700. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  1701. data/third_party/upb/upb/internal/table.h +385 -0
  1702. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  1703. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  1704. data/third_party/upb/upb/json_decode.c +1512 -0
  1705. data/third_party/upb/upb/json_decode.h +47 -0
  1706. data/third_party/upb/upb/json_encode.c +7 -3
  1707. data/third_party/upb/upb/json_encode.h +6 -3
  1708. data/third_party/upb/upb/map.c +108 -0
  1709. data/third_party/upb/upb/map.h +117 -0
  1710. data/third_party/upb/upb/message_value.h +66 -0
  1711. data/third_party/upb/upb/mini_table.c +1147 -0
  1712. data/third_party/upb/upb/mini_table.h +189 -0
  1713. data/third_party/upb/upb/mini_table.hpp +112 -0
  1714. data/third_party/upb/upb/msg.c +2 -62
  1715. data/third_party/upb/upb/msg.h +2 -45
  1716. data/third_party/upb/upb/msg_internal.h +28 -22
  1717. data/third_party/upb/upb/port_def.inc +2 -1
  1718. data/third_party/upb/upb/port_undef.inc +1 -0
  1719. data/third_party/upb/upb/reflection.c +2 -159
  1720. data/third_party/upb/upb/reflection.h +2 -112
  1721. data/third_party/upb/upb/status.c +86 -0
  1722. data/third_party/upb/upb/status.h +66 -0
  1723. data/third_party/upb/upb/table.c +2 -2
  1724. data/third_party/upb/upb/table_internal.h +3 -352
  1725. data/third_party/upb/upb/text_encode.c +3 -2
  1726. data/third_party/upb/upb/upb.c +4 -290
  1727. data/third_party/upb/upb/upb.h +7 -196
  1728. data/third_party/zlib/compress.c +3 -3
  1729. data/third_party/zlib/crc32.c +21 -12
  1730. data/third_party/zlib/deflate.c +112 -106
  1731. data/third_party/zlib/deflate.h +2 -2
  1732. data/third_party/zlib/gzlib.c +1 -1
  1733. data/third_party/zlib/gzread.c +3 -5
  1734. data/third_party/zlib/gzwrite.c +1 -1
  1735. data/third_party/zlib/infback.c +10 -7
  1736. data/third_party/zlib/inflate.c +5 -2
  1737. data/third_party/zlib/inftrees.c +2 -2
  1738. data/third_party/zlib/inftrees.h +1 -1
  1739. data/third_party/zlib/trees.c +61 -62
  1740. data/third_party/zlib/uncompr.c +2 -2
  1741. data/third_party/zlib/zconf.h +16 -3
  1742. data/third_party/zlib/zlib.h +10 -10
  1743. data/third_party/zlib/zutil.c +9 -7
  1744. data/third_party/zlib/zutil.h +1 -0
  1745. metadata +372 -102
  1746. data/include/grpc/impl/codegen/gpr_slice.h +0 -71
  1747. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -42
  1748. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -48
  1749. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -185
  1750. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -65
  1751. data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
  1752. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -89
  1753. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -50
  1754. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -186
  1755. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -179
  1756. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -456
  1757. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -53
  1758. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -386
  1759. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -61
  1760. data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
  1761. data/src/core/ext/xds/certificate_provider_registry.h +0 -57
  1762. data/src/core/lib/channel/handshaker_factory.h +0 -50
  1763. data/src/core/lib/channel/handshaker_registry.cc +0 -50
  1764. data/src/core/lib/channel/handshaker_registry.h +0 -71
  1765. data/src/core/lib/event_engine/sockaddr.cc +0 -40
  1766. data/src/core/lib/event_engine/sockaddr.h +0 -44
  1767. data/src/core/lib/gpr/env.h +0 -40
  1768. data/src/core/lib/gpr/env_linux.cc +0 -75
  1769. data/src/core/lib/gpr/env_posix.cc +0 -46
  1770. data/src/core/lib/gpr/env_windows.cc +0 -74
  1771. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  1772. data/src/core/lib/gpr/murmur_hash.h +0 -29
  1773. data/src/core/lib/gpr/string_windows.h +0 -32
  1774. data/src/core/lib/gpr/tls.h +0 -158
  1775. data/src/core/lib/gprpp/capture.h +0 -76
  1776. data/src/core/lib/iomgr/error_internal.h +0 -66
  1777. data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
  1778. data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
  1779. data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
  1780. data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
  1781. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
  1782. data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
  1783. data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
  1784. data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
  1785. data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
  1786. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  1787. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  1788. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  1789. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  1790. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  1791. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  1792. data/src/core/lib/profiling/basic_timers.cc +0 -295
  1793. data/src/core/lib/profiling/stap_timers.cc +0 -50
  1794. data/src/core/lib/profiling/timers.h +0 -94
  1795. data/src/core/lib/promise/call_push_pull.h +0 -144
  1796. data/src/core/lib/security/security_connector/load_system_roots_linux.h +0 -46
  1797. data/src/core/lib/slice/slice_api.cc +0 -39
  1798. data/src/core/lib/slice/slice_refcount_base.h +0 -61
  1799. data/src/core/lib/slice/slice_split.cc +0 -100
  1800. data/src/core/lib/slice/slice_split.h +0 -40
  1801. data/src/core/lib/transport/byte_stream.cc +0 -164
  1802. data/src/core/lib/transport/byte_stream.h +0 -166
  1803. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -1,23 +1,23 @@
1
- /*
2
- *
3
- * Copyright 2015 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
-
19
- #ifndef GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
20
- #define GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
1
+ //
2
+ //
3
+ // Copyright 2015 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
20
+ #define GRPC_SRC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -36,42 +36,42 @@
36
36
  #define WSA_FLAG_NO_HANDLE_INHERIT 0x80
37
37
  #endif
38
38
 
39
- /* This holds the data for an outstanding read or write on a socket.
40
- The mutex to protect the concurrent access to that data is the one
41
- inside the winsocket wrapper. */
39
+ // This holds the data for an outstanding read or write on a socket.
40
+ // The mutex to protect the concurrent access to that data is the one
41
+ // inside the winsocket wrapper.
42
42
  typedef struct grpc_winsocket_callback_info {
43
- /* This is supposed to be a WSAOVERLAPPED, but in order to get that
44
- definition, we need to include ws2tcpip.h, which needs to be included
45
- from the top, otherwise it'll clash with a previous inclusion of
46
- windows.h that in turns includes winsock.h. If anyone knows a way
47
- to do it properly, feel free to send a patch. */
43
+ // This is supposed to be a WSAOVERLAPPED, but in order to get that
44
+ // definition, we need to include ws2tcpip.h, which needs to be included
45
+ // from the top, otherwise it'll clash with a previous inclusion of
46
+ // windows.h that in turns includes winsock.h. If anyone knows a way
47
+ // to do it properly, feel free to send a patch.
48
48
  OVERLAPPED overlapped;
49
- /* The callback information for the pending operation. May be empty if the
50
- caller hasn't registered a callback yet. */
49
+ // The callback information for the pending operation. May be empty if the
50
+ // caller hasn't registered a callback yet.
51
51
  grpc_closure* closure;
52
- /* A boolean to describe if the IO Completion Port got a notification for
53
- that operation. This will happen if the operation completed before the
54
- called had time to register a callback. We could avoid that behavior
55
- altogether by forcing the caller to always register its callback before
56
- proceeding queue an operation, but it is frequent for an IO Completion
57
- Port to trigger quickly. This way we avoid a context switch for calling
58
- the callback. We also simplify the read / write operations to avoid having
59
- to hold a mutex for a long amount of time. */
52
+ // A boolean to describe if the IO Completion Port got a notification for
53
+ // that operation. This will happen if the operation completed before the
54
+ // called had time to register a callback. We could avoid that behavior
55
+ // altogether by forcing the caller to always register its callback before
56
+ // proceeding queue an operation, but it is frequent for an IO Completion
57
+ // Port to trigger quickly. This way we avoid a context switch for calling
58
+ // the callback. We also simplify the read / write operations to avoid having
59
+ // to hold a mutex for a long amount of time.
60
60
  int has_pending_iocp;
61
- /* The results of the overlapped operation. */
61
+ // The results of the overlapped operation.
62
62
  DWORD bytes_transferred;
63
63
  int wsa_error;
64
64
  } grpc_winsocket_callback_info;
65
65
 
66
- /* This is a wrapper to a Windows socket. A socket can have one outstanding
67
- read, and one outstanding write. Doing an asynchronous accept means waiting
68
- for a read operation. Doing an asynchronous connect means waiting for a
69
- write operation. These are completely arbitrary ties between the operation
70
- and the kind of event, because we can have one overlapped per pending
71
- operation, whichever its nature is. So we could have more dedicated pending
72
- operation callbacks for connect and listen. But given the scope of listen
73
- and accept, we don't need to go to that extent and waste memory. Also, this
74
- is closer to what happens in posix world. */
66
+ // This is a wrapper to a Windows socket. A socket can have one outstanding
67
+ // read, and one outstanding write. Doing an asynchronous accept means waiting
68
+ // for a read operation. Doing an asynchronous connect means waiting for a
69
+ // write operation. These are completely arbitrary ties between the operation
70
+ // and the kind of event, because we can have one overlapped per pending
71
+ // operation, whichever its nature is. So we could have more dedicated pending
72
+ // operation callbacks for connect and listen. But given the scope of listen
73
+ // and accept, we don't need to go to that extent and waste memory. Also, this
74
+ // is closer to what happens in posix world.
75
75
  typedef struct grpc_winsocket {
76
76
  SOCKET socket;
77
77
  bool destroy_called;
@@ -82,27 +82,25 @@ typedef struct grpc_winsocket {
82
82
  gpr_mu state_mu;
83
83
  bool shutdown_called;
84
84
 
85
- /* You can't add the same socket twice to the same IO Completion Port.
86
- This prevents that. */
85
+ // You can't add the same socket twice to the same IO Completion Port.
86
+ // This prevents that.
87
87
  int added_to_iocp;
88
88
 
89
- grpc_closure shutdown_closure;
90
-
91
- /* A label for iomgr to track outstanding objects */
89
+ // A label for iomgr to track outstanding objects
92
90
  grpc_iomgr_object iomgr_object;
93
91
  } grpc_winsocket;
94
92
 
95
- /* Create a wrapped windows handle. This takes ownership of it, meaning that
96
- it will be responsible for closing it. */
93
+ // Create a wrapped windows handle. This takes ownership of it, meaning that
94
+ // it will be responsible for closing it.
97
95
  grpc_winsocket* grpc_winsocket_create(SOCKET socket, const char* name);
98
96
 
99
97
  SOCKET grpc_winsocket_wrapped_socket(grpc_winsocket* socket);
100
98
 
101
- /* Initiate an asynchronous shutdown of the socket. Will call off any pending
102
- operation to cancel them. */
99
+ // Initiate an asynchronous shutdown of the socket. Will call off any pending
100
+ // operation to cancel them.
103
101
  void grpc_winsocket_shutdown(grpc_winsocket* socket);
104
102
 
105
- /* Destroy a socket. Should only be called if there's no pending operation. */
103
+ // Destroy a socket. Should only be called if there's no pending operation.
106
104
  void grpc_winsocket_destroy(grpc_winsocket* socket);
107
105
 
108
106
  void grpc_socket_notify_on_write(grpc_winsocket* winsocket,
@@ -114,8 +112,8 @@ void grpc_socket_notify_on_read(grpc_winsocket* winsocket,
114
112
  void grpc_socket_become_ready(grpc_winsocket* winsocket,
115
113
  grpc_winsocket_callback_info* ci);
116
114
 
117
- /* Returns true if this system can create AF_INET6 sockets bound to ::1.
118
- The value is probed once, and cached for the life of the process. */
115
+ // Returns true if this system can create AF_INET6 sockets bound to ::1.
116
+ // The value is probed once, and cached for the life of the process.
119
117
  int grpc_ipv6_loopback_available(void);
120
118
 
121
119
  void grpc_wsa_socket_flags_init();
@@ -124,4 +122,4 @@ DWORD grpc_get_default_wsa_socket_flags();
124
122
 
125
123
  #endif
126
124
 
127
- #endif /* GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H */
125
+ #endif // GRPC_SRC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
@@ -0,0 +1,116 @@
1
+ //
2
+ //
3
+ // Copyright 2022 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #include <grpc/support/port_platform.h>
20
+
21
+ #include "src/core/lib/iomgr/port.h"
22
+
23
+ #ifdef GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON
24
+
25
+ #ifdef HAVE_LIBSYSTEMD
26
+ #include <systemd/sd-daemon.h>
27
+ #endif
28
+
29
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
30
+ #include "src/core/lib/iomgr/resolve_address.h"
31
+ #include "src/core/lib/iomgr/sockaddr.h"
32
+ #include "src/core/lib/iomgr/systemd_utils.h"
33
+
34
+ #ifdef HAVE_LIBSYSTEMD
35
+ bool set_matching_sd_unix_fd(grpc_tcp_server* s,
36
+ const grpc_resolved_address* addr,
37
+ const int fd_start, const int n) {
38
+ absl::StatusOr<std::string> addr_name = grpc_sockaddr_to_string(addr, true);
39
+ for (int i = fd_start; i < fd_start + n; i++) {
40
+ if (sd_is_socket_unix(i, SOCK_STREAM, 1, addr_name.value().c_str(), 0)) {
41
+ grpc_tcp_server_set_pre_allocated_fd(s, i);
42
+ return true;
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+
48
+ bool set_matching_sd_inet_fd(grpc_tcp_server* s,
49
+ const grpc_resolved_address* addr,
50
+ const int family, const int port,
51
+ const int fd_start, const int n) {
52
+ for (int i = fd_start; i < fd_start + n; i++) {
53
+ int r_inet = sd_is_socket_inet(i, family, SOCK_STREAM, 1, (uint16_t)port);
54
+ int r_addr = sd_is_socket_sockaddr(
55
+ i, SOCK_STREAM,
56
+ reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)),
57
+ addr->len, 1);
58
+
59
+ if (r_inet > 0 && r_addr > 0) {
60
+ grpc_tcp_server_set_pre_allocated_fd(s, i);
61
+ return true;
62
+ }
63
+ }
64
+ return false;
65
+ }
66
+
67
+ void set_matching_sd_fds(grpc_tcp_server* s, const grpc_resolved_address* addr,
68
+ int requested_port) {
69
+ int n = sd_listen_fds(0);
70
+ if (n <= 0) {
71
+ return;
72
+ }
73
+
74
+ int fd_start = SD_LISTEN_FDS_START;
75
+ grpc_resolved_address addr6_v4mapped;
76
+
77
+ if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
78
+ addr = &addr6_v4mapped;
79
+ }
80
+
81
+ int family = grpc_sockaddr_get_family(addr);
82
+ int port = grpc_sockaddr_get_port(addr);
83
+
84
+ if (family == AF_UNIX) {
85
+ set_matching_sd_unix_fd(s, addr, fd_start, n);
86
+ } else {
87
+ if (grpc_sockaddr_is_wildcard(addr, &requested_port)) {
88
+ grpc_resolved_address wild4;
89
+ grpc_resolved_address wild6;
90
+ grpc_resolved_address wildcard_addrs[2];
91
+
92
+ grpc_sockaddr_make_wildcards(requested_port, &wild4, &wild6);
93
+ wildcard_addrs[0] = wild4;
94
+ wildcard_addrs[1] = wild6;
95
+
96
+ for (grpc_resolved_address addr_w : wildcard_addrs) {
97
+ int family_w = grpc_sockaddr_get_family(&addr_w);
98
+ int port_w = grpc_sockaddr_get_port(&addr_w);
99
+ if (set_matching_sd_inet_fd(s, &addr_w, family_w, port_w, fd_start,
100
+ n)) {
101
+ return;
102
+ }
103
+ }
104
+ return;
105
+ }
106
+
107
+ set_matching_sd_inet_fd(s, addr, family, port, fd_start, n);
108
+ }
109
+ }
110
+ #else
111
+ void set_matching_sd_fds(GRPC_UNUSED grpc_tcp_server* s,
112
+ GRPC_UNUSED const grpc_resolved_address* addr,
113
+ GRPC_UNUSED int requested_port) {}
114
+ #endif // HAVE_LIBSYSTEMD
115
+
116
+ #endif // GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON
@@ -0,0 +1,33 @@
1
+ //
2
+ //
3
+ // Copyright 2022 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_LIB_IOMGR_SYSTEMD_UTILS_H
20
+ #define GRPC_SRC_CORE_LIB_IOMGR_SYSTEMD_UTILS_H
21
+
22
+ #include <grpc/support/port_platform.h>
23
+
24
+ #include "src/core/lib/iomgr/tcp_server_utils_posix.h"
25
+
26
+ // Check whether systemd has pre-allocated FDs. If so, check whether any
27
+ // pre-allocated FD is valid, i.e. matches addr and its family. If there is
28
+ // any valid FD, set its value to s->pre_allocated_fd
29
+ //
30
+ void set_matching_sd_fds(grpc_tcp_server* s, const grpc_resolved_address* addr,
31
+ int requested_port);
32
+
33
+ #endif // GRPC_SRC_CORE_LIB_IOMGR_SYSTEMD_UTILS_H
@@ -1,20 +1,20 @@
1
- /*
2
- *
3
- * Copyright 2018 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
1
+ //
2
+ //
3
+ // Copyright 2018 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
@@ -22,13 +22,17 @@
22
22
 
23
23
  grpc_tcp_client_vtable* grpc_tcp_client_impl;
24
24
 
25
- void grpc_tcp_client_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
26
- grpc_pollset_set* interested_parties,
27
- const grpc_channel_args* channel_args,
28
- const grpc_resolved_address* addr,
29
- grpc_core::Timestamp deadline) {
30
- grpc_tcp_client_impl->connect(on_connect, endpoint, interested_parties,
31
- channel_args, addr, deadline);
25
+ int64_t grpc_tcp_client_connect(
26
+ grpc_closure* on_connect, grpc_endpoint** endpoint,
27
+ grpc_pollset_set* interested_parties,
28
+ const grpc_event_engine::experimental::EndpointConfig& config,
29
+ const grpc_resolved_address* addr, grpc_core::Timestamp deadline) {
30
+ return grpc_tcp_client_impl->connect(on_connect, endpoint, interested_parties,
31
+ config, addr, deadline);
32
+ }
33
+
34
+ bool grpc_tcp_client_cancel_connect(int64_t connection_handle) {
35
+ return grpc_tcp_client_impl->cancel_connect(connection_handle);
32
36
  }
33
37
 
34
38
  void grpc_set_tcp_client_impl(grpc_tcp_client_vtable* impl) {
@@ -1,27 +1,28 @@
1
- /*
2
- *
3
- * Copyright 2015 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
-
19
- #ifndef GRPC_CORE_LIB_IOMGR_TCP_CLIENT_H
20
- #define GRPC_CORE_LIB_IOMGR_TCP_CLIENT_H
1
+ //
2
+ //
3
+ // Copyright 2015 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_LIB_IOMGR_TCP_CLIENT_H
20
+ #define GRPC_SRC_CORE_LIB_IOMGR_TCP_CLIENT_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include <grpc/impl/codegen/grpc_types.h>
24
+ #include <grpc/event_engine/endpoint_config.h>
25
+ #include <grpc/impl/grpc_types.h>
25
26
  #include <grpc/support/time.h>
26
27
 
27
28
  #include "src/core/lib/iomgr/endpoint.h"
@@ -30,26 +31,36 @@
30
31
  #include "src/core/lib/resource_quota/memory_quota.h"
31
32
 
32
33
  typedef struct grpc_tcp_client_vtable {
33
- void (*connect)(grpc_closure* on_connect, grpc_endpoint** endpoint,
34
- grpc_pollset_set* interested_parties,
35
- const grpc_channel_args* channel_args,
36
- const grpc_resolved_address* addr,
37
- grpc_core::Timestamp deadline);
34
+ int64_t (*connect)(
35
+ grpc_closure* on_connect, grpc_endpoint** endpoint,
36
+ grpc_pollset_set* interested_parties,
37
+ const grpc_event_engine::experimental::EndpointConfig& config,
38
+ const grpc_resolved_address* addr, grpc_core::Timestamp deadline);
39
+ bool (*cancel_connect)(int64_t connection_handle);
38
40
  } grpc_tcp_client_vtable;
39
41
 
40
- /* Asynchronously connect to an address (specified as (addr, len)), and call
41
- cb with arg and the completed connection when done (or call cb with arg and
42
- NULL on failure).
43
- interested_parties points to a set of pollsets that would be interested
44
- in this connection being established (in order to continue their work) */
45
- void grpc_tcp_client_connect(grpc_closure* on_connect, grpc_endpoint** endpoint,
46
- grpc_pollset_set* interested_parties,
47
- const grpc_channel_args* channel_args,
48
- const grpc_resolved_address* addr,
49
- grpc_core::Timestamp deadline);
42
+ // Asynchronously connect to an address (specified as (addr, len)), and call
43
+ // cb with arg and the completed connection when done (or call cb with arg and
44
+ // NULL on failure).
45
+ // interested_parties points to a set of pollsets that would be interested
46
+ // in this connection being established (in order to continue their work). It
47
+ // returns a handle to the connect operation which can be used to cancel the
48
+ // connection attempt.
49
+ int64_t grpc_tcp_client_connect(
50
+ grpc_closure* on_connect, grpc_endpoint** endpoint,
51
+ grpc_pollset_set* interested_parties,
52
+ const grpc_event_engine::experimental::EndpointConfig& config,
53
+ const grpc_resolved_address* addr, grpc_core::Timestamp deadline);
54
+
55
+ // Returns true if a connect attempt corresponding to the provided handle
56
+ // is successfully cancelled. Otherwise it returns false. If the connect
57
+ // attempt is successfully cancelled, then the on_connect closure passed to
58
+ // grpc_tcp_client_connect will not be executed. Its upto the caller to free
59
+ // up any resources that may have been allocated to create the closure.
60
+ bool grpc_tcp_client_cancel_connect(int64_t connection_handle);
50
61
 
51
- void grpc_tcp_client_global_init();
62
+ extern void grpc_tcp_client_global_init();
52
63
 
53
64
  void grpc_set_tcp_client_impl(grpc_tcp_client_vtable* impl);
54
65
 
55
- #endif /* GRPC_CORE_LIB_IOMGR_TCP_CLIENT_H */
66
+ #endif // GRPC_SRC_CORE_LIB_IOMGR_TCP_CLIENT_H
@@ -1,21 +1,21 @@
1
1
 
2
- /*
3
- *
4
- * Copyright 2018 gRPC authors.
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- *
18
- */
2
+ //
3
+ //
4
+ // Copyright 2018 gRPC authors.
5
+ //
6
+ // Licensed under the Apache License, Version 2.0 (the "License");
7
+ // you may not use this file except in compliance with the License.
8
+ // You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing, software
13
+ // distributed under the License is distributed on an "AS IS" BASIS,
14
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ // See the License for the specific language governing permissions and
16
+ // limitations under the License.
17
+ //
18
+ //
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
@@ -27,12 +27,13 @@
27
27
  #include <netinet/in.h>
28
28
  #include <string.h>
29
29
 
30
+ #include <grpc/event_engine/endpoint_config.h>
30
31
  #include <grpc/support/alloc.h>
31
32
  #include <grpc/support/log.h>
32
33
  #include <grpc/support/sync.h>
33
34
 
34
35
  #include "src/core/lib/address_utils/sockaddr_utils.h"
35
- #include "src/core/lib/channel/channel_args.h"
36
+ #include "src/core/lib/gprpp/crash.h"
36
37
  #include "src/core/lib/gprpp/host_port.h"
37
38
  #include "src/core/lib/iomgr/cfstream_handle.h"
38
39
  #include "src/core/lib/iomgr/closure.h"
@@ -78,7 +79,7 @@ static void OnAlarm(void* arg, grpc_error_handle error) {
78
79
  CFStreamConnect* connect = static_cast<CFStreamConnect*>(arg);
79
80
  if (grpc_tcp_trace.enabled()) {
80
81
  gpr_log(GPR_DEBUG, "CLIENT_CONNECT :%p OnAlarm, error:%s", connect,
81
- grpc_error_std_string(error).c_str());
82
+ grpc_core::StatusToString(error).c_str());
82
83
  }
83
84
  gpr_mu_lock(&connect->mu);
84
85
  grpc_closure* closure = connect->closure;
@@ -90,8 +91,7 @@ static void OnAlarm(void* arg, grpc_error_handle error) {
90
91
  if (done) {
91
92
  CFStreamConnectCleanup(connect);
92
93
  } else {
93
- grpc_error_handle error =
94
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("connect() timed out");
94
+ grpc_error_handle error = GRPC_ERROR_CREATE("connect() timed out");
95
95
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
96
96
  }
97
97
  }
@@ -100,7 +100,7 @@ static void OnOpen(void* arg, grpc_error_handle error) {
100
100
  CFStreamConnect* connect = static_cast<CFStreamConnect*>(arg);
101
101
  if (grpc_tcp_trace.enabled()) {
102
102
  gpr_log(GPR_DEBUG, "CLIENT_CONNECT :%p OnOpen, error:%s", connect,
103
- grpc_error_std_string(error).c_str());
103
+ grpc_core::StatusToString(error).c_str());
104
104
  }
105
105
  gpr_mu_lock(&connect->mu);
106
106
  grpc_timer_cancel(&connect->alarm);
@@ -116,7 +116,7 @@ static void OnOpen(void* arg, grpc_error_handle error) {
116
116
  gpr_mu_unlock(&connect->mu);
117
117
  CFStreamConnectCleanup(connect);
118
118
  } else {
119
- if (error == GRPC_ERROR_NONE) {
119
+ if (error.ok()) {
120
120
  CFErrorRef stream_error = CFReadStreamCopyError(connect->read_stream);
121
121
  if (stream_error == NULL) {
122
122
  stream_error = CFWriteStreamCopyError(connect->write_stream);
@@ -125,13 +125,11 @@ static void OnOpen(void* arg, grpc_error_handle error) {
125
125
  error = GRPC_ERROR_CREATE_FROM_CFERROR(stream_error, "connect() error");
126
126
  CFRelease(stream_error);
127
127
  }
128
- if (error == GRPC_ERROR_NONE) {
128
+ if (error.ok()) {
129
129
  *endpoint = grpc_cfstream_endpoint_create(
130
130
  connect->read_stream, connect->write_stream,
131
131
  connect->addr_name.c_str(), connect->stream_handle);
132
132
  }
133
- } else {
134
- (void)GRPC_ERROR_REF(error);
135
133
  }
136
134
  gpr_mu_unlock(&connect->mu);
137
135
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
@@ -140,7 +138,7 @@ static void OnOpen(void* arg, grpc_error_handle error) {
140
138
 
141
139
  static void ParseResolvedAddress(const grpc_resolved_address* addr,
142
140
  CFStringRef* host, int* port) {
143
- std::string host_port = grpc_sockaddr_to_string(addr, true);
141
+ std::string host_port = grpc_sockaddr_to_string(addr, true).value();
144
142
  std::string host_string;
145
143
  std::string port_string;
146
144
  grpc_core::SplitHostPort(host_port, &host_string, &port_string);
@@ -149,15 +147,22 @@ static void ParseResolvedAddress(const grpc_resolved_address* addr,
149
147
  *port = grpc_sockaddr_get_port(addr);
150
148
  }
151
149
 
152
- static void CFStreamClientConnect(grpc_closure* closure, grpc_endpoint** ep,
153
- grpc_pollset_set* interested_parties,
154
- const grpc_channel_args* channel_args,
155
- const grpc_resolved_address* resolved_addr,
156
- grpc_core::Timestamp deadline) {
150
+ static int64_t CFStreamClientConnect(
151
+ grpc_closure* closure, grpc_endpoint** ep,
152
+ grpc_pollset_set* interested_parties,
153
+ const grpc_event_engine::experimental::EndpointConfig& /*config*/,
154
+ const grpc_resolved_address* resolved_addr, grpc_core::Timestamp deadline) {
155
+ auto addr_uri = grpc_sockaddr_to_uri(resolved_addr);
156
+ if (!addr_uri.ok()) {
157
+ grpc_error_handle error = GRPC_ERROR_CREATE(addr_uri.status().ToString());
158
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
159
+ return 0;
160
+ }
161
+
157
162
  CFStreamConnect* connect = new CFStreamConnect();
158
163
  connect->closure = closure;
159
164
  connect->endpoint = ep;
160
- connect->addr_name = grpc_sockaddr_to_uri(resolved_addr);
165
+ connect->addr_name = addr_uri.value();
161
166
  connect->refs = 2; // One for the connect operation, one for the timer.
162
167
  gpr_ref_init(&connect->refcount, 1);
163
168
  gpr_mu_init(&connect->mu);
@@ -190,8 +195,14 @@ static void CFStreamClientConnect(grpc_closure* closure, grpc_endpoint** ep,
190
195
  CFWriteStreamOpen(write_stream);
191
196
  grpc_timer_init(&connect->alarm, deadline, &connect->on_alarm);
192
197
  gpr_mu_unlock(&connect->mu);
198
+ return 0;
199
+ }
200
+
201
+ static bool CFStreamClientCancelConnect(int64_t /*connection_handle*/) {
202
+ return false;
193
203
  }
194
204
 
195
- grpc_tcp_client_vtable grpc_cfstream_client_vtable = {CFStreamClientConnect};
205
+ grpc_tcp_client_vtable grpc_cfstream_client_vtable = {
206
+ CFStreamClientConnect, CFStreamClientCancelConnect};
196
207
 
197
- #endif /* GRPC_CFSTREAM_CLIENT */
208
+ #endif // GRPC_CFSTREAM_CLIENT