grpc 1.48.0 → 1.56.0

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

Potentially problematic release.


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

Files changed (2600) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +501 -260
  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 +99 -36
  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 -1
  11. data/include/grpc/event_engine/slice.h +24 -4
  12. data/include/grpc/event_engine/slice_buffer.h +44 -3
  13. data/include/grpc/fork.h +25 -1
  14. data/include/grpc/grpc.h +3 -13
  15. data/include/grpc/grpc_audit_logging.h +96 -0
  16. data/include/grpc/grpc_posix.h +1 -1
  17. data/include/grpc/grpc_security.h +4 -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 +3 -82
  25. data/include/grpc/impl/codegen/connectivity_state.h +3 -20
  26. data/include/grpc/impl/codegen/fork.h +4 -25
  27. data/include/grpc/impl/codegen/gpr_types.h +2 -34
  28. data/include/grpc/impl/codegen/grpc_types.h +3 -790
  29. data/include/grpc/impl/codegen/log.h +3 -86
  30. data/include/grpc/impl/codegen/port_platform.h +3 -766
  31. data/include/grpc/impl/codegen/propagation_bits.h +3 -28
  32. data/include/grpc/impl/codegen/slice.h +3 -106
  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 +838 -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 +7 -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/json.h +218 -0
  54. data/include/grpc/support/log.h +87 -1
  55. data/include/grpc/support/log_windows.h +1 -1
  56. data/include/grpc/support/port_platform.h +767 -1
  57. data/include/grpc/support/string_util.h +1 -1
  58. data/include/grpc/support/sync.h +35 -2
  59. data/include/grpc/support/sync_abseil.h +11 -1
  60. data/include/grpc/support/sync_custom.h +13 -1
  61. data/include/grpc/support/sync_generic.h +24 -1
  62. data/include/grpc/support/sync_posix.h +27 -1
  63. data/include/grpc/support/sync_windows.h +15 -1
  64. data/include/grpc/support/time.h +31 -6
  65. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +164 -0
  66. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
  67. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
  68. data/src/core/ext/filters/census/grpc_context.cc +17 -18
  69. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +34 -28
  70. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +7 -6
  71. data/src/core/ext/filters/channel_idle/idle_filter_state.h +4 -4
  72. data/src/core/ext/filters/client_channel/backend_metric.cc +12 -1
  73. data/src/core/ext/filters/client_channel/backend_metric.h +3 -3
  74. data/src/core/ext/filters/client_channel/backup_poller.cc +30 -41
  75. data/src/core/ext/filters/client_channel/backup_poller.h +24 -27
  76. data/src/core/ext/filters/client_channel/channel_connectivity.cc +51 -28
  77. data/src/core/ext/filters/client_channel/client_channel.cc +1135 -1201
  78. data/src/core/ext/filters/client_channel/client_channel.h +170 -195
  79. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +36 -37
  80. data/src/core/ext/filters/client_channel/client_channel_channelz.h +22 -22
  81. data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -46
  82. data/src/core/ext/filters/client_channel/client_channel_factory.h +5 -13
  83. data/src/core/ext/filters/client_channel/client_channel_internal.h +77 -0
  84. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -34
  85. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  86. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -26
  87. data/src/core/ext/filters/client_channel/config_selector.h +34 -56
  88. data/src/core/ext/filters/client_channel/connector.h +13 -10
  89. data/src/core/ext/filters/client_channel/dynamic_filters.cc +28 -55
  90. data/src/core/ext/filters/client_channel/dynamic_filters.h +10 -11
  91. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +21 -21
  92. data/src/core/ext/filters/client_channel/http_proxy.cc +125 -112
  93. data/src/core/ext/filters/client_channel/http_proxy.h +36 -32
  94. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
  95. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -3
  96. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +29 -21
  97. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +27 -18
  98. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +14 -14
  99. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +66 -132
  100. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +40 -24
  101. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +325 -360
  102. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +26 -27
  103. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -4
  104. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +9 -7
  105. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
  106. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +21 -22
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +19 -19
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +22 -24
  109. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
  110. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
  111. data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
  112. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +30 -104
  113. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +5 -5
  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 +436 -311
  116. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +69 -8
  117. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +61 -56
  118. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +261 -401
  119. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +288 -310
  120. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +32 -10
  121. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +561 -626
  122. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +60 -53
  123. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +94 -57
  124. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +198 -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 +1002 -0
  127. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +176 -186
  128. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +166 -176
  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} +15 -17
  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 +159 -262
  133. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +183 -215
  134. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +391 -444
  135. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +814 -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 +363 -0
  138. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +21 -21
  139. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +13 -18
  140. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +456 -286
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +42 -43
  143. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +22 -23
  144. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +92 -87
  145. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +303 -232
  146. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +69 -57
  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 +18 -18
  149. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
  150. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  151. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +549 -0
  152. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  153. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  154. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  155. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -46
  156. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  157. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -20
  158. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +15 -4
  159. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +127 -246
  160. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +122 -67
  161. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +25 -18
  162. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +8 -19
  163. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +431 -341
  164. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +19 -4
  165. data/src/core/ext/filters/client_channel/retry_filter.cc +220 -295
  166. data/src/core/ext/filters/client_channel/retry_filter.h +3 -3
  167. data/src/core/ext/filters/client_channel/retry_service_config.cc +195 -225
  168. data/src/core/ext/filters/client_channel/retry_service_config.h +22 -28
  169. data/src/core/ext/filters/client_channel/retry_throttle.cc +27 -29
  170. data/src/core/ext/filters/client_channel/retry_throttle.h +29 -28
  171. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -53
  172. data/src/core/ext/filters/client_channel/subchannel.cc +211 -450
  173. data/src/core/ext/filters/client_channel/subchannel.h +42 -96
  174. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +4 -4
  175. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  176. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +37 -46
  177. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +38 -42
  178. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +11 -8
  179. data/src/core/ext/filters/deadline/deadline_filter.cc +78 -69
  180. data/src/core/ext/filters/deadline/deadline_filter.h +8 -13
  181. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +26 -20
  182. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +12 -8
  183. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  184. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -13
  185. data/src/core/ext/filters/http/client/http_client_filter.cc +48 -46
  186. data/src/core/ext/filters/http/client/http_client_filter.h +21 -21
  187. data/src/core/ext/filters/http/client_authority_filter.cc +20 -21
  188. data/src/core/ext/filters/http/client_authority_filter.h +22 -22
  189. data/src/core/ext/filters/http/http_filters_plugin.cc +30 -57
  190. data/src/core/ext/filters/http/message_compress/compression_filter.cc +323 -0
  191. data/src/core/ext/filters/http/message_compress/compression_filter.h +139 -0
  192. data/src/core/ext/filters/http/server/http_server_filter.cc +55 -55
  193. data/src/core/ext/filters/http/server/http_server_filter.h +22 -22
  194. data/src/core/ext/filters/message_size/message_size_filter.cc +183 -290
  195. data/src/core/ext/filters/message_size/message_size_filter.h +72 -23
  196. data/src/core/ext/filters/rbac/rbac_filter.cc +16 -15
  197. data/src/core/ext/filters/rbac/rbac_filter.h +3 -3
  198. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +831 -536
  199. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +7 -8
  200. data/src/core/ext/filters/server_config_selector/server_config_selector.h +14 -11
  201. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +15 -21
  202. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +3 -3
  203. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +220 -0
  204. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +81 -0
  205. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
  206. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
  207. data/src/core/ext/gcp/metadata_query.cc +137 -0
  208. data/src/core/ext/gcp/metadata_query.h +87 -0
  209. data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
  210. data/src/core/ext/transport/chttp2/alpn/alpn.h +24 -24
  211. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +108 -130
  212. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +30 -24
  213. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +221 -242
  214. data/src/core/ext/transport/chttp2/server/chttp2_server.h +25 -27
  215. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +22 -22
  216. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +33 -33
  217. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +42 -38
  218. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +35 -31
  219. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +808 -730
  220. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +45 -24
  221. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  222. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
  223. data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
  224. data/src/core/ext/transport/chttp2/transport/flow_control.cc +180 -60
  225. data/src/core/ext/transport/chttp2/transport/flow_control.h +78 -45
  226. data/src/core/ext/transport/chttp2/transport/frame.h +21 -21
  227. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -32
  228. data/src/core/ext/transport/chttp2/transport/frame_data.h +27 -27
  229. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +38 -36
  230. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +20 -20
  231. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +28 -33
  232. data/src/core/ext/transport/chttp2/transport/frame_ping.h +21 -24
  233. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +30 -25
  234. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +21 -21
  235. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +39 -37
  236. data/src/core/ext/transport/chttp2/transport/frame_settings.h +22 -22
  237. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +24 -21
  238. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +21 -21
  239. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +10 -4
  240. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +212 -365
  241. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +328 -160
  242. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +4 -2
  243. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +13 -5
  244. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +500 -754
  245. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -26
  246. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +42 -47
  247. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +41 -28
  248. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
  249. data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -37
  250. data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
  251. data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
  252. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
  253. data/src/core/ext/transport/chttp2/transport/huffsyms.h +21 -21
  254. data/src/core/ext/transport/chttp2/transport/internal.h +224 -193
  255. data/src/core/ext/transport/chttp2/transport/parsing.cc +307 -109
  256. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
  257. data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
  258. data/src/core/ext/transport/chttp2/transport/stream_map.h +33 -33
  259. data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
  260. data/src/core/ext/transport/chttp2/transport/varint.h +37 -34
  261. data/src/core/ext/transport/chttp2/transport/writing.cc +94 -84
  262. data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
  263. data/src/core/ext/transport/inproc/inproc_transport.cc +184 -232
  264. data/src/core/ext/transport/inproc/inproc_transport.h +21 -21
  265. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  266. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +435 -182
  267. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -59
  268. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +502 -220
  269. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +93 -377
  270. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +468 -1881
  271. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +535 -0
  272. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +2796 -0
  273. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  274. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +152 -47
  275. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -19
  276. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +176 -49
  277. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  278. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +82 -38
  279. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  280. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +52 -26
  281. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  282. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +52 -26
  283. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  284. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +574 -244
  285. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  286. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +49 -30
  287. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  288. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  289. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  290. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +49 -30
  291. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
  292. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +795 -406
  293. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -256
  294. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1954 -858
  295. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  296. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +298 -148
  297. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +537 -348
  298. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2136 -1171
  299. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  300. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +49 -30
  301. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  302. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +351 -232
  303. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  304. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +948 -480
  305. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +154 -72
  306. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +631 -213
  307. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  308. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +54 -36
  309. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -219
  310. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1263 -598
  311. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
  312. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +694 -292
  313. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  314. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +41 -26
  315. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  316. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +49 -30
  317. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  318. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +152 -47
  319. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
  320. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +841 -440
  321. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +222 -128
  322. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1152 -485
  323. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  324. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +64 -37
  325. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -207
  326. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1156 -620
  327. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +44 -11
  328. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +179 -18
  329. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  330. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +127 -57
  331. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +48 -16
  332. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +193 -44
  333. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  334. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +147 -65
  335. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  336. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +55 -37
  337. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  338. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +277 -127
  339. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +147 -84
  340. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +479 -227
  341. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  342. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +579 -227
  343. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  344. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +39 -26
  345. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +198 -94
  346. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +1072 -358
  347. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  348. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +893 -375
  349. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +49 -23
  350. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +186 -89
  351. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +40 -16
  352. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +95 -45
  353. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
  354. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +75 -45
  355. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  356. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +521 -249
  357. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
  358. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +542 -246
  359. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +263 -121
  360. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +1083 -374
  361. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +83 -48
  362. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +656 -232
  363. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1317 -722
  364. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5948 -2306
  365. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  366. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +177 -85
  367. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +223 -117
  368. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +847 -369
  369. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -10
  370. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +57 -22
  371. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  372. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +49 -30
  373. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  374. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +78 -49
  375. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  376. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +114 -43
  377. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  378. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +263 -100
  379. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +55 -0
  380. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +122 -0
  381. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  382. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +39 -26
  383. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  384. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +116 -70
  385. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +8 -4
  386. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -15
  387. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  388. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +118 -75
  389. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -16
  390. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +104 -46
  391. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  392. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +77 -23
  393. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  394. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +170 -108
  395. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
  396. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +369 -167
  397. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +47 -21
  398. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -58
  399. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -18
  400. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +257 -67
  401. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +75 -0
  402. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +201 -0
  403. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +476 -283
  404. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2259 -1015
  405. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +53 -0
  406. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +107 -0
  407. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +69 -0
  408. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +246 -0
  409. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +138 -0
  410. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +499 -0
  411. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +36 -17
  412. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +148 -55
  413. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  414. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +39 -26
  415. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  416. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  417. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -94
  418. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +948 -349
  419. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  420. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +162 -101
  421. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -109
  422. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +855 -408
  423. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  424. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +118 -54
  425. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  426. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -14
  427. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +325 -85
  428. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1705 -299
  429. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  430. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +197 -76
  431. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +131 -84
  432. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +531 -239
  433. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  434. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +59 -34
  435. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  436. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +141 -69
  437. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +56 -0
  438. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +130 -0
  439. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +60 -26
  440. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +146 -51
  441. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  442. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +141 -63
  443. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  444. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +95 -40
  445. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  446. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +54 -32
  447. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  448. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +41 -26
  449. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  450. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +113 -70
  451. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +46 -0
  452. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +117 -0
  453. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  454. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +170 -76
  455. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  456. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +123 -57
  457. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  458. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +151 -91
  459. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  460. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +228 -121
  461. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  462. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +228 -131
  463. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  464. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +86 -53
  465. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  466. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  467. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  468. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +32 -18
  469. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  470. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +63 -34
  471. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  472. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +103 -53
  473. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +78 -0
  474. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +237 -0
  475. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  476. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +16 -9
  477. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  478. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +52 -26
  479. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  480. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +65 -41
  481. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  482. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  483. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  484. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +979 -451
  485. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  486. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +995 -484
  487. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  488. data/src/core/ext/upb-generated/google/api/http.upb.h +297 -121
  489. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  490. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -37
  491. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  492. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +42 -22
  493. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1037 -442
  494. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3972 -1411
  495. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  496. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +42 -22
  497. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  498. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -14
  499. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  500. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +220 -103
  501. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  502. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +42 -22
  503. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  504. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +193 -107
  505. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  506. data/src/core/ext/upb-generated/google/rpc/status.upb.h +99 -37
  507. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  508. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +170 -92
  509. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  510. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +122 -60
  511. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  512. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +960 -416
  513. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  514. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +84 -51
  515. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  516. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +53 -30
  517. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  518. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +442 -218
  519. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  520. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +161 -61
  521. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  522. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +884 -299
  523. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  524. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +167 -104
  525. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  526. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +59 -34
  527. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  528. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  529. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  530. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +59 -34
  531. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  532. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +49 -30
  533. data/src/core/ext/upb-generated/validate/validate.upb.c +846 -456
  534. data/src/core/ext/upb-generated/validate/validate.upb.h +4439 -1908
  535. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  536. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +167 -104
  537. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  538. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +59 -34
  539. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  540. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  541. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  542. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +153 -91
  543. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  544. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +49 -30
  545. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  546. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +32 -18
  547. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +56 -0
  548. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +122 -0
  549. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  550. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +104 -63
  551. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  552. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +56 -29
  553. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  554. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +49 -30
  555. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  556. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +66 -42
  557. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  558. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +177 -79
  559. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  560. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +69 -38
  561. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +86 -30
  562. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +227 -54
  563. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -13
  564. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +93 -34
  565. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +53 -0
  566. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +107 -0
  567. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +75 -0
  568. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +270 -0
  569. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +39 -0
  570. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +78 -0
  571. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +78 -0
  572. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +289 -0
  573. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  574. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +539 -295
  575. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +160 -0
  576. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +740 -0
  577. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  578. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +61 -37
  579. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  580. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +170 -76
  581. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +82 -0
  582. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +240 -0
  583. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +85 -0
  584. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +246 -0
  585. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -13
  586. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +49 -30
  587. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  588. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  589. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +55 -54
  590. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  591. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +68 -275
  592. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -90
  593. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +277 -0
  594. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +126 -0
  595. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  596. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  597. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +15 -12
  598. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  599. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  600. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  601. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  602. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  603. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  604. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  605. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  606. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  607. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  608. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  609. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  610. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  611. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  612. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  613. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +108 -108
  614. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
  615. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +251 -236
  616. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  617. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  618. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  619. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +233 -223
  620. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -10
  621. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  622. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  623. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  624. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  625. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  626. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  627. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +96 -76
  628. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +11 -5
  629. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  630. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  631. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +188 -184
  632. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  633. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
  634. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
  635. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  636. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  637. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  638. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  639. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  640. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  641. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
  642. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  643. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +82 -76
  644. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  645. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  646. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  647. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +194 -187
  648. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  649. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +32 -16
  650. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +11 -5
  651. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  652. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  653. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +8 -4
  654. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +11 -5
  655. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +17 -17
  656. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  657. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  658. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  659. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  660. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  661. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +72 -67
  662. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  663. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  664. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  665. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  666. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  667. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +161 -131
  668. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +26 -5
  669. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  670. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  671. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +55 -42
  672. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  673. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +40 -32
  674. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  675. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
  676. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  677. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  678. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  679. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
  680. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
  681. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +162 -129
  682. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +21 -5
  683. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +83 -75
  684. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +8 -7
  685. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +744 -668
  686. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +26 -5
  687. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  688. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  689. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +151 -140
  690. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +11 -5
  691. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +17 -15
  692. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  693. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  694. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  695. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  696. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  697. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  698. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  699. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  700. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  701. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +45 -0
  702. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +36 -0
  703. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  704. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  705. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  706. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  707. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +17 -13
  708. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  709. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  710. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  711. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +21 -19
  712. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  713. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  714. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  715. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  716. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  717. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
  718. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  719. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +47 -26
  720. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  721. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +54 -43
  722. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
  723. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
  724. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +41 -0
  725. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +497 -468
  726. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
  727. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
  728. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +36 -0
  729. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  730. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  731. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -133
  732. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  733. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  734. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  735. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +151 -147
  736. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  737. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  738. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  739. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +6 -6
  740. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  741. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +157 -85
  742. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +41 -5
  743. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +6 -6
  744. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  745. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -114
  746. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  747. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  748. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  749. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  750. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  751. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
  752. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +36 -0
  753. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +13 -10
  754. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +11 -5
  755. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  756. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  757. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  758. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  759. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  760. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  761. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  762. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  763. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +30 -29
  764. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  765. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
  766. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +41 -0
  767. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  768. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  769. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  770. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  771. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  772. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  773. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  774. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  775. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  776. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  777. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  778. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  779. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  780. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  781. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  782. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  783. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  784. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  785. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  786. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  787. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  788. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +41 -0
  789. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +11 -10
  790. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  791. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  792. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  793. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  794. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  795. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  796. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  797. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  798. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  799. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  800. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  801. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  802. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  803. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  804. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  805. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  806. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  807. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +328 -270
  808. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  809. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  810. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  811. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  812. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  813. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  814. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  815. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  816. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  817. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  818. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  819. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  820. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  821. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  822. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  823. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  824. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  825. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  826. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  827. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  828. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  829. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  830. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  831. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  832. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  833. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  834. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  835. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  836. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  837. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  838. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  839. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  840. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  841. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  842. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  843. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  844. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  845. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  846. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  847. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  848. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  849. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
  850. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +36 -0
  851. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  852. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  853. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  854. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  855. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  856. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  857. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  858. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  859. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  860. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  861. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  862. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  863. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
  864. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +36 -0
  865. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
  866. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +41 -0
  867. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
  868. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +36 -0
  869. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
  870. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +41 -0
  871. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +10 -10
  872. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  873. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
  874. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +61 -0
  875. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  876. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  877. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  878. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  879. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
  880. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +41 -0
  881. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
  882. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +46 -0
  883. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -8
  884. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  885. data/src/core/ext/xds/certificate_provider_store.cc +58 -3
  886. data/src/core/ext/xds/certificate_provider_store.h +12 -4
  887. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +36 -50
  888. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +18 -13
  889. data/src/core/ext/xds/upb_utils.h +4 -25
  890. data/src/core/ext/xds/xds_api.cc +117 -198
  891. data/src/core/ext/xds/xds_api.h +32 -36
  892. data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
  893. data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
  894. data/src/core/ext/xds/xds_bootstrap.cc +7 -552
  895. data/src/core/ext/xds/xds_bootstrap.h +41 -94
  896. data/src/core/ext/xds/xds_bootstrap_grpc.cc +374 -0
  897. data/src/core/ext/xds/xds_bootstrap_grpc.h +189 -0
  898. data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
  899. data/src/core/ext/xds/xds_certificate_provider.h +13 -4
  900. data/src/core/ext/xds/xds_channel_args.h +3 -3
  901. data/src/core/ext/xds/xds_channel_stack_modifier.cc +7 -7
  902. data/src/core/ext/xds/xds_channel_stack_modifier.h +12 -4
  903. data/src/core/ext/xds/xds_client.cc +830 -1348
  904. data/src/core/ext/xds/xds_client.h +46 -64
  905. data/src/core/ext/xds/xds_client_grpc.cc +235 -0
  906. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  907. data/src/core/ext/xds/xds_client_stats.cc +50 -36
  908. data/src/core/ext/xds/xds_client_stats.h +46 -41
  909. data/src/core/ext/xds/xds_cluster.cc +396 -246
  910. data/src/core/ext/xds/xds_cluster.h +60 -43
  911. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +62 -77
  912. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +50 -25
  913. data/src/core/ext/xds/xds_common_types.cc +234 -130
  914. data/src/core/ext/xds/xds_common_types.h +24 -19
  915. data/src/core/ext/xds/xds_endpoint.cc +263 -164
  916. data/src/core/ext/xds/xds_endpoint.h +19 -15
  917. data/src/core/ext/xds/xds_health_status.cc +80 -0
  918. data/src/core/ext/xds/xds_health_status.h +109 -0
  919. data/src/core/ext/xds/xds_http_fault_filter.cc +72 -62
  920. data/src/core/ext/xds/xds_http_fault_filter.h +21 -28
  921. data/src/core/ext/xds/xds_http_filters.cc +65 -73
  922. data/src/core/ext/xds/xds_http_filters.h +78 -27
  923. data/src/core/ext/xds/xds_http_rbac_filter.cc +307 -295
  924. data/src/core/ext/xds/xds_http_rbac_filter.h +21 -23
  925. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +222 -0
  926. data/src/core/ext/xds/xds_http_stateful_session_filter.h +59 -0
  927. data/src/core/ext/xds/xds_lb_policy_registry.cc +215 -171
  928. data/src/core/ext/xds/xds_lb_policy_registry.h +15 -16
  929. data/src/core/ext/xds/xds_listener.cc +549 -478
  930. data/src/core/ext/xds/xds_listener.h +51 -54
  931. data/src/core/ext/xds/xds_resource_type.h +28 -22
  932. data/src/core/ext/xds/xds_resource_type_impl.h +13 -16
  933. data/src/core/ext/xds/xds_route_config.cc +610 -576
  934. data/src/core/ext/xds/xds_route_config.h +69 -44
  935. data/src/core/ext/xds/xds_routing.cc +7 -9
  936. data/src/core/ext/xds/xds_routing.h +12 -12
  937. data/src/core/ext/xds/xds_server_config_fetcher.cc +184 -184
  938. data/src/core/ext/xds/xds_transport.h +86 -0
  939. data/src/core/ext/xds/xds_transport_grpc.cc +358 -0
  940. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  941. data/src/core/lib/address_utils/parse_address.cc +49 -46
  942. data/src/core/lib/address_utils/parse_address.h +43 -40
  943. data/src/core/lib/address_utils/sockaddr_utils.cc +30 -28
  944. data/src/core/lib/address_utils/sockaddr_utils.h +36 -36
  945. data/src/core/lib/avl/avl.h +59 -32
  946. data/src/core/lib/backoff/backoff.cc +19 -21
  947. data/src/core/lib/backoff/backoff.h +20 -20
  948. data/src/core/lib/backoff/random_early_detection.cc +31 -0
  949. data/src/core/lib/backoff/random_early_detection.h +59 -0
  950. data/src/core/lib/channel/call_finalization.h +5 -7
  951. data/src/core/lib/channel/call_tracer.cc +51 -0
  952. data/src/core/lib/channel/call_tracer.h +106 -34
  953. data/src/core/lib/channel/channel_args.cc +188 -61
  954. data/src/core/lib/channel/channel_args.h +318 -112
  955. data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
  956. data/src/core/lib/channel/channel_fwd.h +3 -3
  957. data/src/core/lib/channel/channel_stack.cc +60 -58
  958. data/src/core/lib/channel/channel_stack.h +148 -135
  959. data/src/core/lib/channel/channel_stack_builder.cc +21 -24
  960. data/src/core/lib/channel/channel_stack_builder.h +17 -9
  961. data/src/core/lib/channel/channel_stack_builder_impl.cc +55 -26
  962. data/src/core/lib/channel/channel_stack_builder_impl.h +5 -3
  963. data/src/core/lib/channel/channel_trace.cc +40 -38
  964. data/src/core/lib/channel/channel_trace.h +22 -22
  965. data/src/core/lib/channel/channelz.cc +190 -173
  966. data/src/core/lib/channel/channelz.h +80 -64
  967. data/src/core/lib/channel/channelz_registry.cc +41 -37
  968. data/src/core/lib/channel/channelz_registry.h +21 -21
  969. data/src/core/lib/channel/connected_channel.cc +764 -67
  970. data/src/core/lib/channel/connected_channel.h +20 -24
  971. data/src/core/lib/channel/context.h +33 -22
  972. data/src/core/lib/channel/promise_based_filter.cc +1607 -295
  973. data/src/core/lib/channel/promise_based_filter.h +485 -104
  974. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  975. data/src/core/lib/channel/status_util.cc +62 -17
  976. data/src/core/lib/channel/status_util.h +39 -22
  977. data/src/core/lib/compression/compression.cc +19 -19
  978. data/src/core/lib/compression/compression_internal.cc +38 -48
  979. data/src/core/lib/compression/compression_internal.h +25 -25
  980. data/src/core/lib/compression/message_compress.cc +26 -26
  981. data/src/core/lib/compression/message_compress.h +27 -27
  982. data/src/core/lib/config/config_vars.cc +153 -0
  983. data/src/core/lib/config/config_vars.h +127 -0
  984. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  985. data/src/core/lib/config/core_configuration.cc +5 -1
  986. data/src/core/lib/config/core_configuration.h +84 -38
  987. data/src/core/lib/config/load_config.cc +79 -0
  988. data/src/core/lib/config/load_config.h +55 -0
  989. data/src/core/lib/debug/event_log.cc +88 -0
  990. data/src/core/lib/debug/event_log.h +81 -0
  991. data/src/core/lib/debug/histogram_view.cc +69 -0
  992. data/src/core/lib/debug/histogram_view.h +37 -0
  993. data/src/core/lib/debug/stats.cc +47 -151
  994. data/src/core/lib/debug/stats.h +49 -57
  995. data/src/core/lib/debug/stats_data.cc +302 -646
  996. data/src/core/lib/debug/stats_data.h +295 -543
  997. data/src/core/lib/debug/trace.cc +56 -81
  998. data/src/core/lib/debug/trace.h +37 -54
  999. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
  1000. data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
  1001. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
  1002. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
  1003. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
  1004. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +15 -18
  1005. data/src/core/lib/event_engine/channel_args_endpoint_config.h +16 -10
  1006. data/src/core/lib/event_engine/common_closures.h +71 -0
  1007. data/src/core/lib/event_engine/default_event_engine.cc +111 -0
  1008. data/src/core/lib/event_engine/default_event_engine.h +73 -0
  1009. data/src/core/lib/event_engine/default_event_engine_factory.cc +32 -5
  1010. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine_factory.h} +4 -12
  1011. data/src/core/lib/event_engine/event_engine.cc +29 -36
  1012. data/src/core/lib/event_engine/forkable.cc +106 -0
  1013. data/src/core/lib/event_engine/forkable.h +61 -0
  1014. data/src/core/lib/event_engine/handle_containers.h +12 -20
  1015. data/src/core/lib/event_engine/memory_allocator.cc +1 -1
  1016. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  1017. data/src/core/lib/event_engine/poller.h +62 -0
  1018. data/src/core/lib/event_engine/posix.h +162 -0
  1019. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +642 -0
  1020. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +139 -0
  1021. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +895 -0
  1022. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  1023. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  1024. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +68 -0
  1025. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
  1026. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  1027. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  1028. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +254 -0
  1029. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  1030. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1338 -0
  1031. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +726 -0
  1032. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +637 -0
  1033. data/src/core/lib/event_engine/posix_engine/posix_engine.h +259 -0
  1034. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  1035. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +292 -0
  1036. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +278 -0
  1037. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +379 -0
  1038. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
  1039. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +867 -0
  1040. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
  1041. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +51 -52
  1042. data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
  1043. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +29 -29
  1044. data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
  1045. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
  1046. data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
  1047. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
  1048. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
  1049. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
  1050. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  1051. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
  1052. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
  1053. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  1054. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  1055. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  1056. data/src/core/lib/event_engine/resolved_address.cc +21 -1
  1057. data/src/core/lib/event_engine/resolved_address_internal.h +34 -0
  1058. data/src/core/lib/event_engine/shim.cc +64 -0
  1059. data/src/core/lib/event_engine/shim.h +33 -0
  1060. data/src/core/lib/event_engine/slice.cc +8 -7
  1061. data/src/core/lib/event_engine/slice_buffer.cc +2 -2
  1062. data/src/core/lib/event_engine/tcp_socket_utils.cc +389 -0
  1063. data/src/core/lib/event_engine/tcp_socket_utils.h +90 -0
  1064. data/src/core/lib/event_engine/thread_local.cc +29 -0
  1065. data/src/core/lib/event_engine/thread_local.h +32 -0
  1066. data/src/core/lib/event_engine/thread_pool/original_thread_pool.cc +256 -0
  1067. data/src/core/lib/event_engine/thread_pool/original_thread_pool.h +137 -0
  1068. data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
  1069. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +40 -0
  1070. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
  1071. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
  1072. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
  1073. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → thready_event_engine/thready_event_engine.h} +51 -65
  1074. data/src/core/lib/event_engine/time_util.cc +30 -0
  1075. data/src/core/lib/event_engine/time_util.h +32 -0
  1076. data/src/core/lib/event_engine/trace.cc +7 -0
  1077. data/src/core/lib/event_engine/trace.h +22 -3
  1078. data/src/core/lib/event_engine/utils.cc +44 -0
  1079. data/src/core/lib/event_engine/utils.h +44 -0
  1080. data/src/core/lib/event_engine/windows/iocp.cc +141 -0
  1081. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  1082. data/src/core/lib/event_engine/windows/win_socket.cc +218 -0
  1083. data/src/core/lib/event_engine/windows/win_socket.h +129 -0
  1084. data/src/core/lib/event_engine/windows/windows_endpoint.cc +379 -0
  1085. data/src/core/lib/event_engine/windows/windows_endpoint.h +120 -0
  1086. data/src/core/lib/event_engine/windows/windows_engine.cc +411 -0
  1087. data/src/core/lib/event_engine/windows/windows_engine.h +164 -0
  1088. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  1089. data/src/core/lib/event_engine/windows/windows_listener.h +156 -0
  1090. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
  1091. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
  1092. data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
  1093. data/src/core/lib/experiments/config.cc +185 -0
  1094. data/src/core/lib/experiments/config.h +69 -0
  1095. data/src/core/lib/experiments/experiments.cc +138 -0
  1096. data/src/core/lib/experiments/experiments.h +134 -0
  1097. data/src/core/lib/gpr/alloc.cc +19 -25
  1098. data/src/core/lib/gpr/alloc.h +20 -20
  1099. data/src/core/lib/gpr/{log_android.cc → android/log.cc} +22 -20
  1100. data/src/core/lib/gpr/atm.cc +17 -17
  1101. data/src/core/lib/gpr/iphone/cpu.cc +44 -0
  1102. data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +28 -23
  1103. data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +24 -24
  1104. data/src/core/lib/gpr/log.cc +42 -47
  1105. data/src/core/lib/gpr/log_internal.h +55 -0
  1106. data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +21 -20
  1107. data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +23 -22
  1108. data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +20 -19
  1109. data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +24 -24
  1110. data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +22 -34
  1111. data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +40 -36
  1112. data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +22 -20
  1113. data/src/core/lib/gpr/spinlock.h +20 -20
  1114. data/src/core/lib/gpr/string.cc +25 -24
  1115. data/src/core/lib/gpr/string.h +61 -61
  1116. data/src/core/lib/gpr/sync.cc +25 -25
  1117. data/src/core/lib/gpr/sync_abseil.cc +36 -40
  1118. data/src/core/lib/gpr/time.cc +34 -30
  1119. data/src/core/lib/gpr/time_precise.cc +22 -22
  1120. data/src/core/lib/gpr/time_precise.h +21 -22
  1121. data/src/core/lib/gpr/tmpfile.h +24 -24
  1122. data/src/core/lib/gpr/useful.h +83 -30
  1123. data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc → lib/gpr/windows/cpu.cc} +16 -11
  1124. data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +25 -25
  1125. data/src/core/lib/gpr/windows/string.cc +69 -0
  1126. data/src/core/lib/gpr/windows/string_util.cc +55 -0
  1127. data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +29 -27
  1128. data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +25 -22
  1129. data/src/core/lib/gpr/windows/tmpfile.cc +68 -0
  1130. data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
  1131. data/src/core/lib/gprpp/atomic_utils.h +20 -20
  1132. data/src/core/lib/gprpp/bitset.h +30 -16
  1133. data/src/core/lib/gprpp/chunked_vector.h +3 -3
  1134. data/src/core/lib/gprpp/construct_destruct.h +3 -3
  1135. data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
  1136. data/src/core/lib/gprpp/crash.cc +43 -0
  1137. data/src/core/lib/gprpp/crash.h +37 -0
  1138. data/src/core/lib/gprpp/debug_location.h +60 -31
  1139. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  1140. data/src/core/lib/gprpp/env.h +53 -0
  1141. data/src/core/lib/gprpp/examine_stack.cc +17 -17
  1142. data/src/core/lib/gprpp/examine_stack.h +21 -21
  1143. data/src/core/lib/gprpp/fork.cc +63 -61
  1144. data/src/core/lib/gprpp/fork.h +29 -35
  1145. data/src/core/lib/gprpp/host_port.cc +28 -26
  1146. data/src/core/lib/gprpp/host_port.h +32 -31
  1147. data/src/core/lib/gprpp/linux/env.cc +80 -0
  1148. data/src/core/lib/gprpp/load_file.cc +75 -0
  1149. data/src/core/lib/gprpp/load_file.h +33 -0
  1150. data/src/core/lib/gprpp/manual_constructor.h +21 -21
  1151. data/src/core/lib/gprpp/match.h +3 -3
  1152. data/src/core/lib/gprpp/memory.h +21 -21
  1153. data/src/core/lib/gprpp/mpscq.cc +17 -17
  1154. data/src/core/lib/gprpp/mpscq.h +21 -21
  1155. data/src/core/lib/gprpp/no_destruct.h +95 -0
  1156. data/src/core/lib/gprpp/notification.h +67 -0
  1157. data/src/core/lib/gprpp/orphanable.h +25 -24
  1158. data/src/core/lib/gprpp/overload.h +3 -3
  1159. data/src/core/lib/gprpp/packed_table.h +40 -0
  1160. data/src/core/lib/gprpp/per_cpu.cc +33 -0
  1161. data/src/core/lib/gprpp/per_cpu.h +75 -0
  1162. data/src/core/lib/gprpp/posix/env.cc +47 -0
  1163. data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +5 -4
  1164. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +75 -64
  1165. data/src/core/lib/gprpp/ref_counted.h +54 -55
  1166. data/src/core/lib/gprpp/ref_counted_ptr.h +41 -54
  1167. data/src/core/lib/gprpp/single_set_ptr.h +3 -3
  1168. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  1169. data/src/core/lib/gprpp/stat.h +3 -3
  1170. data/src/core/lib/gprpp/status_helper.cc +6 -4
  1171. data/src/core/lib/gprpp/status_helper.h +9 -5
  1172. data/src/core/lib/gprpp/strerror.cc +43 -0
  1173. data/src/core/lib/gprpp/strerror.h +29 -0
  1174. data/src/core/lib/gprpp/sync.h +23 -23
  1175. data/src/core/lib/gprpp/table.h +12 -4
  1176. data/src/core/lib/gprpp/tchar.cc +49 -0
  1177. data/src/core/lib/gprpp/tchar.h +33 -0
  1178. data/src/core/lib/gprpp/thd.h +39 -23
  1179. data/src/core/lib/gprpp/time.cc +37 -8
  1180. data/src/core/lib/gprpp/time.h +69 -4
  1181. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +23 -25
  1182. data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
  1183. data/src/core/lib/gprpp/time_util.h +4 -4
  1184. data/src/core/lib/gprpp/unique_type_name.h +21 -21
  1185. data/src/core/lib/gprpp/validation_errors.cc +66 -0
  1186. data/src/core/lib/gprpp/validation_errors.h +134 -0
  1187. data/src/core/lib/gprpp/windows/env.cc +56 -0
  1188. data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +4 -2
  1189. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +28 -28
  1190. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  1191. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  1192. data/src/core/lib/handshaker/proxy_mapper.h +53 -0
  1193. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  1194. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  1195. data/src/core/lib/http/format_request.cc +19 -18
  1196. data/src/core/lib/http/format_request.h +20 -20
  1197. data/src/core/lib/http/httpcli.cc +69 -84
  1198. data/src/core/lib/http/httpcli.h +29 -29
  1199. data/src/core/lib/http/httpcli_security_connector.cc +33 -36
  1200. data/src/core/lib/http/httpcli_ssl_credentials.h +3 -3
  1201. data/src/core/lib/http/parser.cc +76 -87
  1202. data/src/core/lib/http/parser.h +35 -35
  1203. data/src/core/lib/iomgr/block_annotate.h +23 -23
  1204. data/src/core/lib/iomgr/buffer_list.cc +156 -136
  1205. data/src/core/lib/iomgr/buffer_list.h +122 -101
  1206. data/src/core/lib/iomgr/call_combiner.cc +32 -64
  1207. data/src/core/lib/iomgr/call_combiner.h +26 -27
  1208. data/src/core/lib/iomgr/cfstream_handle.cc +34 -37
  1209. data/src/core/lib/iomgr/cfstream_handle.h +25 -25
  1210. data/src/core/lib/iomgr/closure.cc +27 -0
  1211. data/src/core/lib/iomgr/closure.h +95 -58
  1212. data/src/core/lib/iomgr/combiner.cc +20 -39
  1213. data/src/core/lib/iomgr/combiner.h +20 -20
  1214. data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
  1215. data/src/core/lib/iomgr/dynamic_annotations.h +22 -22
  1216. data/src/core/lib/iomgr/endpoint.cc +17 -17
  1217. data/src/core/lib/iomgr/endpoint.h +49 -49
  1218. data/src/core/lib/iomgr/endpoint_cfstream.cc +58 -53
  1219. data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
  1220. data/src/core/lib/iomgr/endpoint_pair.h +22 -22
  1221. data/src/core/lib/iomgr/endpoint_pair_posix.cc +36 -30
  1222. data/src/core/lib/iomgr/endpoint_pair_windows.cc +31 -22
  1223. data/src/core/lib/iomgr/error.cc +49 -834
  1224. data/src/core/lib/iomgr/error.h +45 -321
  1225. data/src/core/lib/iomgr/error_cfstream.cc +18 -23
  1226. data/src/core/lib/iomgr/error_cfstream.h +21 -21
  1227. data/src/core/lib/iomgr/ev_apple.cc +33 -33
  1228. data/src/core/lib/iomgr/ev_apple.h +21 -21
  1229. data/src/core/lib/iomgr/ev_epoll1_linux.cc +219 -236
  1230. data/src/core/lib/iomgr/ev_epoll1_linux.h +20 -20
  1231. data/src/core/lib/iomgr/ev_poll_posix.cc +231 -231
  1232. data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
  1233. data/src/core/lib/iomgr/ev_posix.cc +47 -79
  1234. data/src/core/lib/iomgr/ev_posix.h +88 -87
  1235. data/src/core/lib/iomgr/ev_windows.cc +18 -18
  1236. data/src/core/lib/iomgr/event_engine_shims/closure.cc +62 -0
  1237. data/src/core/lib/iomgr/event_engine_shims/closure.h +39 -0
  1238. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +471 -0
  1239. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
  1240. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
  1241. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
  1242. data/src/core/lib/iomgr/exec_ctx.cc +34 -56
  1243. data/src/core/lib/iomgr/exec_ctx.h +151 -175
  1244. data/src/core/lib/iomgr/executor.cc +21 -31
  1245. data/src/core/lib/iomgr/executor.h +27 -30
  1246. data/src/core/lib/iomgr/fork_posix.cc +29 -26
  1247. data/src/core/lib/iomgr/fork_windows.cc +21 -21
  1248. data/src/core/lib/iomgr/gethostname.h +20 -20
  1249. data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
  1250. data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
  1251. data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
  1252. data/src/core/lib/iomgr/grpc_if_nametoindex.h +22 -22
  1253. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
  1254. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
  1255. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  1256. data/src/core/lib/iomgr/internal_errqueue.h +83 -83
  1257. data/src/core/lib/iomgr/iocp_windows.cc +47 -26
  1258. data/src/core/lib/iomgr/iocp_windows.h +32 -21
  1259. data/src/core/lib/iomgr/iomgr.cc +29 -34
  1260. data/src/core/lib/iomgr/iomgr.h +35 -35
  1261. data/src/core/lib/iomgr/iomgr_fwd.h +4 -3
  1262. data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
  1263. data/src/core/lib/iomgr/iomgr_internal.h +28 -28
  1264. data/src/core/lib/iomgr/iomgr_posix.cc +20 -20
  1265. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +21 -20
  1266. data/src/core/lib/iomgr/iomgr_windows.cc +32 -24
  1267. data/src/core/lib/iomgr/load_file.cc +24 -27
  1268. data/src/core/lib/iomgr/load_file.h +22 -22
  1269. data/src/core/lib/iomgr/lockfree_event.cc +114 -131
  1270. data/src/core/lib/iomgr/lockfree_event.h +23 -23
  1271. data/src/core/lib/iomgr/nameser.h +86 -86
  1272. data/src/core/lib/iomgr/polling_entity.cc +25 -21
  1273. data/src/core/lib/iomgr/polling_entity.h +29 -29
  1274. data/src/core/lib/iomgr/pollset.cc +17 -17
  1275. data/src/core/lib/iomgr/pollset.h +55 -55
  1276. data/src/core/lib/iomgr/pollset_set.cc +17 -17
  1277. data/src/core/lib/iomgr/pollset_set.h +25 -26
  1278. data/src/core/lib/iomgr/pollset_set_windows.cc +27 -27
  1279. data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
  1280. data/src/core/lib/iomgr/pollset_windows.cc +33 -32
  1281. data/src/core/lib/iomgr/pollset_windows.h +24 -24
  1282. data/src/core/lib/iomgr/port.h +34 -31
  1283. data/src/core/lib/iomgr/python_util.h +24 -24
  1284. data/src/core/lib/iomgr/resolve_address.cc +26 -20
  1285. data/src/core/lib/iomgr/resolve_address.h +54 -31
  1286. data/src/core/lib/iomgr/resolve_address_impl.h +5 -4
  1287. data/src/core/lib/iomgr/resolve_address_posix.cc +74 -49
  1288. data/src/core/lib/iomgr/resolve_address_posix.h +23 -10
  1289. data/src/core/lib/iomgr/resolve_address_windows.cc +59 -26
  1290. data/src/core/lib/iomgr/resolve_address_windows.h +23 -10
  1291. data/src/core/lib/iomgr/resolved_address.h +3 -3
  1292. data/src/core/lib/iomgr/sockaddr.h +23 -23
  1293. data/src/core/lib/iomgr/sockaddr_posix.h +21 -21
  1294. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +20 -18
  1295. data/src/core/lib/iomgr/sockaddr_windows.h +21 -21
  1296. data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
  1297. data/src/core/lib/iomgr/socket_factory_posix.h +32 -32
  1298. data/src/core/lib/iomgr/socket_mutator.cc +19 -18
  1299. data/src/core/lib/iomgr/socket_mutator.h +39 -39
  1300. data/src/core/lib/iomgr/socket_utils.h +27 -27
  1301. data/src/core/lib/iomgr/socket_utils_common_posix.cc +99 -104
  1302. data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
  1303. data/src/core/lib/iomgr/socket_utils_posix.cc +106 -19
  1304. data/src/core/lib/iomgr/socket_utils_posix.h +179 -84
  1305. data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
  1306. data/src/core/lib/iomgr/socket_windows.cc +97 -42
  1307. data/src/core/lib/iomgr/socket_windows.h +68 -63
  1308. data/src/core/lib/iomgr/systemd_utils.cc +116 -0
  1309. data/src/core/lib/iomgr/systemd_utils.h +33 -0
  1310. data/src/core/lib/iomgr/tcp_client.cc +23 -24
  1311. data/src/core/lib/iomgr/tcp_client.h +39 -39
  1312. data/src/core/lib/iomgr/tcp_client_cfstream.cc +43 -35
  1313. data/src/core/lib/iomgr/tcp_client_posix.cc +117 -100
  1314. data/src/core/lib/iomgr/tcp_client_posix.h +54 -51
  1315. data/src/core/lib/iomgr/tcp_client_windows.cc +57 -48
  1316. data/src/core/lib/iomgr/tcp_posix.cc +448 -350
  1317. data/src/core/lib/iomgr/tcp_posix.h +32 -30
  1318. data/src/core/lib/iomgr/tcp_server.cc +33 -24
  1319. data/src/core/lib/iomgr/tcp_server.h +78 -69
  1320. data/src/core/lib/iomgr/tcp_server_posix.cc +390 -126
  1321. data/src/core/lib/iomgr/tcp_server_utils_posix.h +68 -55
  1322. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +93 -58
  1323. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +40 -40
  1324. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
  1325. data/src/core/lib/iomgr/tcp_server_windows.cc +280 -123
  1326. data/src/core/lib/iomgr/tcp_windows.cc +121 -102
  1327. data/src/core/lib/iomgr/tcp_windows.h +34 -35
  1328. data/src/core/lib/iomgr/timer.cc +17 -17
  1329. data/src/core/lib/iomgr/timer.h +68 -68
  1330. data/src/core/lib/iomgr/timer_generic.cc +142 -150
  1331. data/src/core/lib/iomgr/timer_generic.h +21 -21
  1332. data/src/core/lib/iomgr/timer_heap.cc +25 -25
  1333. data/src/core/lib/iomgr/timer_heap.h +22 -22
  1334. data/src/core/lib/iomgr/timer_manager.cc +31 -31
  1335. data/src/core/lib/iomgr/timer_manager.h +27 -27
  1336. data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
  1337. data/src/core/lib/iomgr/unix_sockets_posix.h +21 -21
  1338. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
  1339. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -23
  1340. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
  1341. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
  1342. data/src/core/lib/iomgr/wakeup_fd_pipe.h +20 -20
  1343. data/src/core/lib/iomgr/wakeup_fd_posix.cc +18 -18
  1344. data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -52
  1345. data/src/core/lib/json/json.h +21 -240
  1346. data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/json/json_args.h} +13 -11
  1347. data/src/core/lib/json/json_channel_args.h +42 -0
  1348. data/src/core/lib/json/json_object_loader.cc +216 -0
  1349. data/src/core/lib/json/json_object_loader.h +646 -0
  1350. data/src/core/lib/json/json_reader.cc +181 -129
  1351. data/src/core/lib/json/json_reader.h +34 -0
  1352. data/src/core/lib/json/json_util.cc +23 -55
  1353. data/src/core/lib/json/json_util.h +12 -11
  1354. data/src/core/lib/json/json_writer.cc +80 -81
  1355. data/src/core/{ext/xds/xds_resource_type.cc → lib/json/json_writer.h} +11 -11
  1356. data/src/core/lib/load_balancing/lb_policy.cc +98 -0
  1357. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +49 -36
  1358. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  1359. data/src/core/lib/load_balancing/lb_policy_registry.cc +143 -0
  1360. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  1361. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +9 -14
  1362. data/src/core/lib/matchers/matchers.cc +10 -9
  1363. data/src/core/lib/matchers/matchers.h +5 -4
  1364. data/src/core/lib/promise/activity.cc +43 -6
  1365. data/src/core/lib/promise/activity.h +159 -48
  1366. data/src/core/lib/promise/arena_promise.h +105 -72
  1367. data/src/core/lib/promise/cancel_callback.h +77 -0
  1368. data/src/core/lib/promise/context.h +17 -10
  1369. data/src/core/lib/promise/detail/basic_join.h +197 -0
  1370. data/src/core/lib/promise/detail/basic_seq.h +28 -33
  1371. data/src/core/lib/promise/detail/promise_factory.h +66 -14
  1372. data/src/core/lib/promise/detail/promise_like.h +3 -3
  1373. data/src/core/lib/promise/detail/status.h +31 -3
  1374. data/src/core/lib/promise/detail/switch.h +21 -21
  1375. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
  1376. data/src/core/lib/promise/for_each.h +176 -0
  1377. data/src/core/lib/promise/if.h +204 -0
  1378. data/src/core/lib/promise/interceptor_list.h +329 -0
  1379. data/src/core/lib/promise/latch.h +197 -23
  1380. data/src/core/lib/promise/loop.h +22 -16
  1381. data/src/core/lib/promise/map.h +11 -6
  1382. data/src/core/lib/promise/party.cc +304 -0
  1383. data/src/core/lib/promise/party.h +508 -0
  1384. data/src/core/lib/promise/pipe.h +762 -0
  1385. data/src/core/lib/promise/poll.h +177 -11
  1386. data/src/core/lib/promise/prioritized_race.h +95 -0
  1387. data/src/core/lib/promise/promise.h +6 -7
  1388. data/src/core/lib/promise/race.h +6 -9
  1389. data/src/core/lib/promise/seq.h +32 -12
  1390. data/src/core/lib/promise/sleep.cc +53 -43
  1391. data/src/core/lib/promise/sleep.h +34 -26
  1392. data/src/core/lib/promise/trace.cc +20 -0
  1393. data/src/core/lib/promise/trace.h +24 -0
  1394. data/src/core/lib/promise/try_join.h +82 -0
  1395. data/src/core/lib/promise/try_seq.h +39 -21
  1396. data/src/core/lib/resolver/resolver.cc +17 -64
  1397. data/src/core/lib/resolver/resolver.h +18 -18
  1398. data/src/core/lib/resolver/resolver_factory.h +6 -7
  1399. data/src/core/lib/resolver/resolver_registry.cc +16 -1
  1400. data/src/core/lib/resolver/resolver_registry.h +5 -6
  1401. data/src/core/lib/resolver/server_address.cc +29 -39
  1402. data/src/core/lib/resolver/server_address.h +25 -37
  1403. data/src/core/lib/resource_quota/api.cc +10 -2
  1404. data/src/core/lib/resource_quota/api.h +10 -4
  1405. data/src/core/lib/resource_quota/arena.cc +101 -21
  1406. data/src/core/lib/resource_quota/arena.h +310 -23
  1407. data/src/core/lib/resource_quota/memory_quota.cc +280 -59
  1408. data/src/core/lib/resource_quota/memory_quota.h +165 -36
  1409. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  1410. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  1411. data/src/core/lib/resource_quota/resource_quota.h +4 -4
  1412. data/src/core/lib/resource_quota/thread_quota.h +3 -3
  1413. data/src/core/lib/resource_quota/trace.h +3 -3
  1414. data/src/core/lib/security/authorization/audit_logging.cc +98 -0
  1415. data/src/core/lib/security/authorization/audit_logging.h +73 -0
  1416. data/src/core/lib/security/authorization/authorization_engine.h +3 -3
  1417. data/src/core/lib/security/authorization/authorization_policy_provider.h +4 -4
  1418. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
  1419. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  1420. data/src/core/lib/security/authorization/evaluate_args.h +3 -3
  1421. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -4
  1422. data/src/core/lib/security/authorization/grpc_authorization_engine.h +21 -4
  1423. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -4
  1424. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +4 -4
  1425. data/src/core/lib/security/authorization/matchers.cc +38 -32
  1426. data/src/core/lib/security/authorization/matchers.h +3 -3
  1427. data/src/core/lib/security/authorization/rbac_policy.cc +39 -8
  1428. data/src/core/lib/security/authorization/rbac_policy.h +22 -5
  1429. data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
  1430. data/src/core/lib/security/authorization/stdout_logger.h +61 -0
  1431. data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +11 -7
  1432. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +50 -0
  1433. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +76 -0
  1434. data/src/core/lib/security/context/security_context.cc +22 -23
  1435. data/src/core/lib/security/context/security_context.h +43 -33
  1436. data/src/core/lib/security/credentials/alts/alts_credentials.cc +19 -20
  1437. data/src/core/lib/security/credentials/alts/alts_credentials.h +56 -57
  1438. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
  1439. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +43 -43
  1440. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
  1441. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
  1442. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
  1443. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +19 -19
  1444. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
  1445. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +38 -39
  1446. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +18 -18
  1447. data/src/core/lib/security/credentials/call_creds_util.h +3 -3
  1448. data/src/core/lib/security/credentials/channel_creds_registry.h +3 -3
  1449. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +4 -4
  1450. data/src/core/lib/security/credentials/composite/composite_credentials.cc +25 -29
  1451. data/src/core/lib/security/credentials/composite/composite_credentials.h +25 -28
  1452. data/src/core/lib/security/credentials/credentials.cc +19 -18
  1453. data/src/core/lib/security/credentials/credentials.h +53 -48
  1454. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +131 -120
  1455. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -3
  1456. data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -3
  1457. data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
  1458. data/src/core/lib/security/credentials/external/external_account_credentials.cc +121 -121
  1459. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  1460. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +40 -43
  1461. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -3
  1462. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +51 -54
  1463. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
  1464. data/src/core/lib/security/credentials/fake/fake_credentials.cc +23 -31
  1465. data/src/core/lib/security/credentials/fake/fake_credentials.h +37 -42
  1466. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +22 -25
  1467. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +105 -156
  1468. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +22 -25
  1469. data/src/core/lib/security/credentials/iam/iam_credentials.cc +19 -18
  1470. data/src/core/lib/security/credentials/iam/iam_credentials.h +20 -20
  1471. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  1472. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +6 -7
  1473. data/src/core/lib/security/credentials/jwt/json_token.cc +54 -43
  1474. data/src/core/lib/security/credentials/jwt/json_token.h +35 -35
  1475. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +27 -26
  1476. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +22 -22
  1477. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +125 -124
  1478. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +47 -47
  1479. data/src/core/lib/security/credentials/local/local_credentials.cc +20 -21
  1480. data/src/core/lib/security/credentials/local/local_credentials.h +26 -27
  1481. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +89 -91
  1482. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -23
  1483. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +24 -24
  1484. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -25
  1485. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +31 -40
  1486. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +23 -24
  1487. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +20 -28
  1488. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +7 -14
  1489. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +48 -47
  1490. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +15 -5
  1491. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
  1492. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +3 -3
  1493. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
  1494. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
  1495. data/src/core/lib/security/credentials/tls/tls_credentials.cc +30 -43
  1496. data/src/core/lib/security/credentials/tls/tls_credentials.h +24 -25
  1497. data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
  1498. data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
  1499. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -31
  1500. data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -6
  1501. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +43 -61
  1502. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +43 -44
  1503. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +58 -78
  1504. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +24 -25
  1505. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +7 -7
  1506. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +11 -15
  1507. data/src/core/lib/security/security_connector/load_system_roots.h +20 -20
  1508. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +18 -18
  1509. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +24 -31
  1510. data/src/core/lib/security/security_connector/load_system_roots_supported.h +22 -23
  1511. data/src/core/lib/security/security_connector/local/local_security_connector.cc +43 -45
  1512. data/src/core/lib/security/security_connector/local/local_security_connector.h +44 -45
  1513. data/src/core/lib/security/security_connector/security_connector.cc +17 -17
  1514. data/src/core/lib/security/security_connector/security_connector.h +40 -39
  1515. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +40 -43
  1516. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +40 -41
  1517. data/src/core/lib/security/security_connector/ssl_utils.cc +48 -64
  1518. data/src/core/lib/security/security_connector/ssl_utils.h +35 -35
  1519. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +59 -53
  1520. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +26 -26
  1521. data/src/core/lib/security/transport/auth_filters.h +46 -24
  1522. data/src/core/lib/security/transport/client_auth_filter.cc +36 -26
  1523. data/src/core/lib/security/transport/secure_endpoint.cc +58 -62
  1524. data/src/core/lib/security/transport/secure_endpoint.h +25 -25
  1525. data/src/core/lib/security/transport/security_handshaker.cc +111 -114
  1526. data/src/core/lib/security/transport/security_handshaker.h +24 -23
  1527. data/src/core/lib/security/transport/server_auth_filter.cc +160 -274
  1528. data/src/core/lib/security/transport/tsi_error.cc +23 -20
  1529. data/src/core/lib/security/transport/tsi_error.h +20 -20
  1530. data/src/core/lib/security/util/json_util.cc +27 -27
  1531. data/src/core/lib/security/util/json_util.h +20 -20
  1532. data/src/core/lib/service_config/service_config.h +15 -4
  1533. data/src/core/lib/service_config/service_config_call_data.h +54 -19
  1534. data/src/core/lib/service_config/service_config_impl.cc +113 -152
  1535. data/src/core/lib/service_config/service_config_impl.h +19 -24
  1536. data/src/core/lib/service_config/service_config_parser.cc +10 -28
  1537. data/src/core/lib/service_config/service_config_parser.h +13 -21
  1538. data/src/core/lib/slice/b64.cc +26 -26
  1539. data/src/core/lib/slice/b64.h +32 -32
  1540. data/src/core/lib/slice/percent_encoding.cc +21 -30
  1541. data/src/core/lib/slice/percent_encoding.h +28 -28
  1542. data/src/core/lib/slice/slice.cc +58 -46
  1543. data/src/core/lib/slice/slice.h +59 -18
  1544. data/src/core/lib/slice/slice_buffer.cc +63 -59
  1545. data/src/core/lib/slice/slice_buffer.h +35 -4
  1546. data/src/core/lib/slice/slice_internal.h +34 -42
  1547. data/src/core/lib/slice/slice_refcount.cc +3 -18
  1548. data/src/core/lib/slice/slice_refcount.h +53 -18
  1549. data/src/core/lib/slice/slice_string_helpers.cc +17 -17
  1550. data/src/core/lib/slice/slice_string_helpers.h +21 -21
  1551. data/src/core/lib/surface/api_trace.cc +17 -17
  1552. data/src/core/lib/surface/api_trace.h +25 -25
  1553. data/src/core/lib/surface/builtins.cc +2 -0
  1554. data/src/core/lib/surface/builtins.h +3 -3
  1555. data/src/core/lib/surface/byte_buffer.cc +22 -23
  1556. data/src/core/lib/surface/byte_buffer_reader.cc +23 -23
  1557. data/src/core/lib/surface/call.cc +2305 -547
  1558. data/src/core/lib/surface/call.h +123 -42
  1559. data/src/core/lib/surface/call_details.cc +20 -21
  1560. data/src/core/lib/surface/call_log_batch.cc +19 -18
  1561. data/src/core/lib/surface/call_test_only.h +33 -33
  1562. data/src/core/lib/surface/call_trace.cc +123 -0
  1563. data/src/core/lib/surface/call_trace.h +30 -0
  1564. data/src/core/lib/surface/channel.cc +65 -69
  1565. data/src/core/lib/surface/channel.h +43 -35
  1566. data/src/core/lib/surface/channel_init.cc +17 -17
  1567. data/src/core/lib/surface/channel_init.h +20 -20
  1568. data/src/core/lib/surface/channel_ping.cc +19 -19
  1569. data/src/core/lib/surface/channel_stack_type.cc +21 -17
  1570. data/src/core/lib/surface/channel_stack_type.h +22 -20
  1571. data/src/core/lib/surface/completion_queue.cc +195 -221
  1572. data/src/core/lib/surface/completion_queue.h +37 -40
  1573. data/src/core/lib/surface/completion_queue_factory.cc +33 -28
  1574. data/src/core/lib/surface/completion_queue_factory.h +22 -22
  1575. data/src/core/lib/surface/event_string.cc +18 -17
  1576. data/src/core/lib/surface/event_string.h +22 -22
  1577. data/src/core/lib/surface/init.cc +44 -72
  1578. data/src/core/lib/surface/init.h +20 -20
  1579. data/src/core/lib/surface/init_internally.cc +25 -0
  1580. data/src/core/lib/surface/init_internally.h +37 -0
  1581. data/src/core/lib/surface/lame_client.cc +33 -29
  1582. data/src/core/lib/surface/lame_client.h +22 -22
  1583. data/src/core/lib/surface/metadata_array.cc +17 -18
  1584. data/src/core/lib/surface/server.cc +371 -130
  1585. data/src/core/lib/surface/server.h +20 -21
  1586. data/src/core/lib/surface/validate_metadata.cc +64 -74
  1587. data/src/core/lib/surface/validate_metadata.h +30 -21
  1588. data/src/core/lib/surface/version.cc +21 -21
  1589. data/src/core/lib/transport/batch_builder.cc +182 -0
  1590. data/src/core/lib/transport/batch_builder.h +480 -0
  1591. data/src/core/lib/transport/bdp_estimator.cc +25 -27
  1592. data/src/core/lib/transport/bdp_estimator.h +31 -28
  1593. data/src/core/lib/transport/connectivity_state.cc +19 -20
  1594. data/src/core/lib/transport/connectivity_state.h +23 -23
  1595. data/src/core/lib/transport/custom_metadata.h +30 -0
  1596. data/src/core/lib/transport/error_utils.cc +51 -81
  1597. data/src/core/lib/transport/error_utils.h +24 -24
  1598. data/src/core/lib/transport/handshaker.cc +66 -54
  1599. data/src/core/lib/transport/handshaker.h +51 -47
  1600. data/src/core/lib/transport/handshaker_factory.h +49 -24
  1601. data/src/core/lib/transport/handshaker_registry.cc +27 -20
  1602. data/src/core/lib/transport/handshaker_registry.h +25 -28
  1603. data/src/core/lib/transport/http2_errors.h +22 -22
  1604. data/src/core/lib/transport/http_connect_handshaker.cc +56 -57
  1605. data/src/core/lib/transport/http_connect_handshaker.h +21 -21
  1606. data/src/core/lib/transport/metadata_batch.cc +31 -10
  1607. data/src/core/lib/transport/metadata_batch.h +252 -65
  1608. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  1609. data/src/core/lib/transport/parsed_metadata.cc +2 -6
  1610. data/src/core/lib/transport/parsed_metadata.h +23 -11
  1611. data/src/core/lib/transport/pid_controller.cc +20 -20
  1612. data/src/core/lib/transport/pid_controller.h +27 -27
  1613. data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
  1614. data/src/core/lib/transport/status_conversion.cc +23 -25
  1615. data/src/core/lib/transport/status_conversion.h +22 -22
  1616. data/src/core/lib/transport/tcp_connect_handshaker.cc +34 -42
  1617. data/src/core/lib/transport/tcp_connect_handshaker.h +3 -3
  1618. data/src/core/lib/transport/timeout_encoding.cc +28 -23
  1619. data/src/core/lib/transport/timeout_encoding.h +20 -20
  1620. data/src/core/lib/transport/transport.cc +113 -43
  1621. data/src/core/lib/transport/transport.h +275 -218
  1622. data/src/core/lib/transport/transport_fwd.h +3 -3
  1623. data/src/core/lib/transport/transport_impl.h +53 -47
  1624. data/src/core/lib/transport/transport_op_string.cc +75 -63
  1625. data/src/core/lib/uri/uri_parser.cc +1 -1
  1626. data/src/core/lib/uri/uri_parser.h +3 -3
  1627. data/src/core/plugin_registry/grpc_plugin_registry.cc +55 -79
  1628. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +22 -39
  1629. data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
  1630. data/src/core/tsi/alts/crypt/gsec.cc +26 -26
  1631. data/src/core/tsi/alts/crypt/gsec.h +336 -336
  1632. data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
  1633. data/src/core/tsi/alts/frame_protector/alts_counter.h +68 -68
  1634. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
  1635. data/src/core/tsi/alts/frame_protector/alts_crypter.h +209 -209
  1636. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +73 -71
  1637. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +40 -40
  1638. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
  1639. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +82 -83
  1640. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
  1641. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
  1642. data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
  1643. data/src/core/tsi/alts/frame_protector/frame_handler.h +169 -169
  1644. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +137 -100
  1645. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +109 -104
  1646. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
  1647. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
  1648. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +52 -44
  1649. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
  1650. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +24 -24
  1651. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
  1652. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +38 -38
  1653. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
  1654. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +105 -104
  1655. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
  1656. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +40 -41
  1657. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
  1658. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +35 -36
  1659. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +67 -68
  1660. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
  1661. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +55 -56
  1662. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
  1663. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +141 -142
  1664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +58 -57
  1665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +43 -44
  1666. data/src/core/tsi/fake_transport_security.cc +133 -109
  1667. data/src/core/tsi/fake_transport_security.h +33 -33
  1668. data/src/core/tsi/local_transport_security.cc +43 -38
  1669. data/src/core/tsi/local_transport_security.h +33 -33
  1670. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +9 -4
  1671. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
  1672. data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
  1673. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +19 -19
  1674. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
  1675. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +31 -22
  1676. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +25 -20
  1677. data/src/core/tsi/ssl_transport_security.cc +302 -371
  1678. data/src/core/tsi/ssl_transport_security.h +206 -203
  1679. data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
  1680. data/src/core/tsi/ssl_transport_security_utils.h +147 -0
  1681. data/src/core/tsi/ssl_types.h +27 -27
  1682. data/src/core/tsi/transport_security.cc +44 -32
  1683. data/src/core/tsi/transport_security.h +49 -48
  1684. data/src/core/tsi/transport_security_grpc.cc +20 -20
  1685. data/src/core/tsi/transport_security_grpc.h +41 -41
  1686. data/src/core/tsi/transport_security_interface.h +344 -332
  1687. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  1688. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  1689. data/src/ruby/ext/grpc/ext-export.clang +0 -1
  1690. data/src/ruby/ext/grpc/ext-export.gcc +1 -2
  1691. data/src/ruby/ext/grpc/extconf.rb +57 -11
  1692. data/src/ruby/ext/grpc/rb_call.c +1 -0
  1693. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  1694. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  1695. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  1696. data/src/ruby/ext/grpc/rb_grpc.c +1 -0
  1697. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
  1698. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -59
  1699. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  1700. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1701. data/src/ruby/lib/grpc/version.rb +1 -1
  1702. data/src/ruby/pb/generate_proto_ruby.sh +0 -6
  1703. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  1704. data/src/ruby/spec/channel_spec.rb +5 -43
  1705. data/src/ruby/spec/client_server_spec.rb +20 -8
  1706. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  1707. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  1708. data/src/ruby/spec/user_agent_spec.rb +1 -1
  1709. data/third_party/abseil-cpp/absl/algorithm/container.h +56 -57
  1710. data/third_party/abseil-cpp/absl/base/attributes.h +39 -19
  1711. data/third_party/abseil-cpp/absl/base/config.h +45 -4
  1712. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +3 -18
  1713. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  1714. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -1
  1715. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
  1716. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
  1717. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
  1718. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +10 -6
  1719. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +23 -24
  1720. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -3
  1721. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +2 -6
  1722. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
  1723. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +4 -4
  1724. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -10
  1725. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
  1726. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
  1727. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -40
  1728. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  1729. data/third_party/abseil-cpp/absl/base/macros.h +4 -21
  1730. data/third_party/abseil-cpp/absl/base/optimization.h +58 -6
  1731. data/third_party/abseil-cpp/absl/base/options.h +1 -7
  1732. data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
  1733. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  1734. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  1735. data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -5
  1736. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -7
  1737. data/third_party/abseil-cpp/absl/container/inlined_vector.h +66 -18
  1738. data/third_party/abseil-cpp/absl/container/internal/common.h +3 -3
  1739. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
  1740. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +13 -1
  1741. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
  1742. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +50 -5
  1743. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +14 -46
  1744. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +110 -32
  1745. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +155 -4
  1746. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +661 -341
  1747. data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
  1748. data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
  1749. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
  1750. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
  1751. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
  1752. data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
  1753. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
  1754. data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  1755. data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  1756. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
  1757. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  1758. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
  1759. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
  1760. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
  1761. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
  1762. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  1763. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
  1764. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
  1765. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
  1766. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +1 -1
  1767. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
  1768. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
  1769. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -13
  1770. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -9
  1771. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
  1772. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +40 -85
  1773. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
  1774. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -8
  1775. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +3 -2
  1776. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
  1777. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +118 -94
  1778. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
  1779. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  1780. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  1781. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  1782. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  1783. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  1784. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  1785. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +26 -0
  1786. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  1787. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  1788. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  1789. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  1790. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  1791. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  1792. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  1793. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  1794. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  1795. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  1796. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  1797. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  1798. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  1799. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  1800. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  1801. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  1802. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  1803. data/third_party/abseil-cpp/absl/functional/any_invocable.h +316 -0
  1804. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
  1805. data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
  1806. data/third_party/abseil-cpp/absl/hash/internal/hash.h +18 -4
  1807. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
  1808. data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
  1809. data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
  1810. data/third_party/abseil-cpp/absl/numeric/bits.h +2 -3
  1811. data/third_party/abseil-cpp/absl/numeric/int128.cc +10 -8
  1812. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +14 -6
  1813. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
  1814. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +1 -1
  1815. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +2 -23
  1816. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
  1817. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
  1818. data/third_party/abseil-cpp/absl/random/random.h +6 -6
  1819. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -0
  1820. data/third_party/abseil-cpp/absl/status/status.cc +19 -12
  1821. data/third_party/abseil-cpp/absl/status/status.h +2 -2
  1822. data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
  1823. data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
  1824. data/third_party/abseil-cpp/absl/strings/cord.cc +92 -40
  1825. data/third_party/abseil-cpp/absl/strings/cord.h +71 -80
  1826. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +8 -5
  1827. data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
  1828. data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
  1829. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
  1830. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
  1831. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  1832. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +330 -70
  1833. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +8 -4
  1834. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +26 -14
  1835. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +5 -5
  1836. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +9 -7
  1837. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +5 -4
  1838. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
  1839. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
  1840. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +8 -5
  1841. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
  1842. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +4 -4
  1843. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
  1844. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
  1845. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +12 -10
  1846. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
  1847. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
  1848. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
  1849. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
  1850. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
  1851. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
  1852. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +126 -29
  1853. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
  1854. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +4 -3
  1855. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +49 -287
  1856. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
  1857. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +2 -1
  1858. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +4 -2
  1859. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
  1860. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
  1861. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +10 -101
  1862. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
  1863. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  1864. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  1865. data/third_party/abseil-cpp/absl/strings/numbers.cc +34 -31
  1866. data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
  1867. data/third_party/abseil-cpp/absl/strings/str_cat.h +50 -3
  1868. data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
  1869. data/third_party/abseil-cpp/absl/strings/string_view.cc +6 -6
  1870. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -10
  1871. data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
  1872. data/third_party/abseil-cpp/absl/strings/substitute.h +46 -20
  1873. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
  1874. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
  1875. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
  1876. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +104 -55
  1877. data/third_party/abseil-cpp/absl/synchronization/mutex.h +85 -46
  1878. data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
  1879. data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -1
  1880. data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
  1881. data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
  1882. data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
  1883. data/third_party/abseil-cpp/absl/time/duration.cc +7 -7
  1884. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  1885. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  1886. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
  1887. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
  1888. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
  1889. data/third_party/abseil-cpp/absl/time/time.cc +2 -2
  1890. data/third_party/abseil-cpp/absl/time/time.h +253 -158
  1891. data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
  1892. data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
  1893. data/third_party/abseil-cpp/absl/types/span.h +29 -7
  1894. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  1895. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  1896. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  1897. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  1898. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  1899. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  1900. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  1901. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  1902. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +177 -196
  1903. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  1904. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  1905. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  1906. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  1907. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  1908. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  1909. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  1910. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  1911. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  1912. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  1913. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  1914. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  1915. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +135 -90
  1916. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  1917. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +797 -793
  1918. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +529 -526
  1919. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  1920. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  1921. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  1922. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  1923. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  1924. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +17 -11
  1925. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +37 -51
  1926. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  1927. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +13 -9
  1928. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +22 -19
  1929. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +5 -5
  1930. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  1931. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  1932. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  1933. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +40 -27
  1934. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  1935. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  1936. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  1937. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  1938. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  1939. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  1940. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  1941. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  1942. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  1943. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  1944. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  1945. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  1946. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  1947. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  1948. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  1949. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  1950. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +34 -37
  1951. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +22 -11
  1952. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
  1953. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  1954. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  1955. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  1956. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  1957. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  1958. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  1959. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  1960. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
  1961. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  1962. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  1963. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  1964. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  1965. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  1966. data/third_party/boringssl-with-bazel/src/crypto/{cpu-ppc64le.c → cpu_arm_openbsd.c} +10 -17
  1967. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  1968. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  1969. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +22 -31
  1970. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
  1971. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
  1972. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  1973. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  1974. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  1975. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  1976. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  1977. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  1978. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +43 -16
  1979. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  1980. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  1981. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  1982. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +229 -102
  1983. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +31 -7
  1984. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
  1985. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  1986. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  1987. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  1988. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  1989. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  1990. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  1991. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  1992. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  1993. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  1994. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  1995. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  1996. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  1997. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +6 -6
  1998. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  1999. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  2000. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  2001. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  2002. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  2003. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  2004. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  2005. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  2006. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  2007. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  2008. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  2009. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  2010. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +36 -27
  2011. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  2012. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  2013. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  2014. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  2015. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  2016. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  2017. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  2018. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  2019. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  2020. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  2021. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  2022. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  2023. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  2024. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  2025. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  2026. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  2027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  2028. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  2029. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  2030. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  2031. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  2032. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  2033. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  2034. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  2035. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  2036. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  2037. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  2038. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +24 -6
  2039. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  2040. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  2041. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  2042. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +49 -49
  2043. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +92 -18
  2044. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +12 -12
  2045. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +108 -86
  2046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +55 -25
  2047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +55 -71
  2048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  2049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +72 -65
  2050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  2051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +62 -51
  2052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  2053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  2054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +12 -17
  2055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +25 -26
  2056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -14
  2057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +9 -1
  2058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +44 -16
  2059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  2060. data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
  2061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  2062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -23
  2063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  2064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +3 -8
  2065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +170 -160
  2066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
  2067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +69 -61
  2068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -12
  2069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
  2070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  2071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  2072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  2073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  2074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  2075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  2076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +22 -68
  2077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  2078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +43 -16
  2079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +42 -314
  2080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +244 -139
  2081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +144 -205
  2082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  2083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +593 -421
  2084. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  2085. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  2086. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  2087. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  2088. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  2089. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  2090. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
  2091. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +52 -6
  2092. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +192 -18
  2093. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  2094. data/third_party/boringssl-with-bazel/src/crypto/internal.h +391 -18
  2095. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +91 -0
  2096. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +204 -0
  2097. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +833 -0
  2098. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  2099. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  2100. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  2101. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +9 -4
  2102. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  2103. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  2104. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +633 -613
  2105. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  2106. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  2107. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  2108. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  2109. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  2110. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  2111. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  2112. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  2113. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  2114. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  2115. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  2116. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  2117. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  2118. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  2119. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  2120. data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +6 -17
  2121. data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
  2122. data/third_party/boringssl-with-bazel/src/crypto/{asn1/a_print.c → rsa_extra/internal.h} +15 -21
  2123. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
  2124. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  2125. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  2126. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  2127. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  2128. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +128 -34
  2129. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +418 -133
  2130. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +116 -284
  2131. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +701 -87
  2132. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  2133. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +63 -55
  2134. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  2135. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  2136. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  2137. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +285 -331
  2138. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  2139. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  2140. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +68 -50
  2141. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +132 -151
  2142. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +790 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  2144. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  2145. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  2146. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +220 -254
  2147. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  2148. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  2149. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +136 -270
  2150. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  2151. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  2152. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  2153. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  2154. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +528 -616
  2155. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  2156. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +164 -181
  2157. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  2158. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +186 -203
  2159. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  2160. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  2161. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1864 -2050
  2162. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +380 -480
  2163. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  2164. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +266 -265
  2165. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  2166. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  2167. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  2168. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  2169. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  2170. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +329 -416
  2171. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  2172. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  2173. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  2174. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  2175. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  2176. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  2177. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  2178. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  2179. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  2180. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  2181. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  2182. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  2183. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +79 -171
  2184. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  2185. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  2186. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  2187. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  2188. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  2189. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +294 -344
  2190. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +342 -365
  2191. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  2192. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  2193. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  2194. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  2195. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  2196. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +120 -125
  2197. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  2198. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +228 -265
  2199. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  2200. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  2201. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  2202. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  2203. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +130 -135
  2204. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +652 -691
  2205. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +90 -75
  2206. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1063 -1145
  2207. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -11
  2208. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  2209. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +217 -191
  2210. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  2211. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +50 -14
  2212. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +29 -14
  2213. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
  2214. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  2215. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  2216. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  2217. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  2218. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  2219. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  2220. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  2221. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  2222. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  2223. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  2224. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  2225. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  2226. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  2227. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  2228. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -33
  2229. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  2230. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  2231. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +69 -16
  2232. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  2233. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  2234. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  2235. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +7 -3
  2236. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  2237. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  2238. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -18
  2239. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  2240. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  2241. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +98 -5
  2242. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  2243. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +18 -21
  2244. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +285 -92
  2245. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  2246. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +381 -287
  2247. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +9 -6
  2248. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  2249. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +22 -7
  2250. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +57 -23
  2251. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  2252. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2075 -1407
  2253. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +242 -214
  2254. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  2255. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  2256. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  2257. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  2258. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  2259. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +45 -26
  2260. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -35
  2261. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  2262. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  2263. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +53 -34
  2264. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  2265. data/third_party/boringssl-with-bazel/src/ssl/internal.h +200 -121
  2266. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +47 -12
  2267. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  2268. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  2269. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  2270. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +47 -69
  2271. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  2272. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  2273. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +217 -226
  2274. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +78 -101
  2275. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +106 -142
  2276. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +244 -35
  2277. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +167 -64
  2278. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +41 -32
  2279. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
  2280. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  2281. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  2282. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +7 -44
  2283. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  2284. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -23
  2285. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +25 -34
  2286. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  2287. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  2288. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  2289. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  2290. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
  2291. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  2292. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  2293. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
  2294. data/third_party/cares/cares/include/ares.h +23 -1
  2295. data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
  2296. data/third_party/cares/cares/include/ares_rules.h +2 -2
  2297. data/third_party/cares/cares/include/ares_version.h +3 -3
  2298. data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
  2299. data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
  2300. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
  2301. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
  2302. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
  2303. data/third_party/cares/cares/src/lib/ares_data.c +16 -0
  2304. data/third_party/cares/cares/src/lib/ares_data.h +7 -0
  2305. data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
  2306. data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
  2307. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
  2308. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
  2309. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
  2310. data/third_party/cares/cares/src/lib/ares_init.c +97 -485
  2311. data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
  2312. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
  2313. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
  2314. data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
  2315. data/third_party/cares/cares/src/lib/ares_private.h +30 -16
  2316. data/third_party/cares/cares/src/lib/ares_process.c +55 -16
  2317. data/third_party/cares/cares/src/lib/ares_query.c +1 -35
  2318. data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
  2319. data/third_party/cares/cares/src/lib/ares_send.c +5 -7
  2320. data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
  2321. data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
  2322. data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
  2323. data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
  2324. data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
  2325. data/third_party/re2/re2/bitstate.cc +3 -3
  2326. data/third_party/re2/re2/dfa.cc +13 -13
  2327. data/third_party/re2/re2/nfa.cc +4 -4
  2328. data/third_party/re2/re2/onepass.cc +2 -2
  2329. data/third_party/re2/re2/prefilter_tree.cc +27 -59
  2330. data/third_party/re2/re2/prefilter_tree.h +3 -2
  2331. data/third_party/re2/re2/prog.cc +11 -2
  2332. data/third_party/re2/re2/prog.h +17 -5
  2333. data/third_party/re2/re2/re2.cc +6 -11
  2334. data/third_party/re2/re2/re2.h +1 -1
  2335. data/third_party/re2/re2/regexp.cc +1 -2
  2336. data/third_party/re2/re2/stringpiece.h +10 -7
  2337. data/third_party/re2/re2/unicode_casefold.cc +25 -11
  2338. data/third_party/re2/re2/unicode_groups.cc +319 -151
  2339. data/third_party/re2/re2/walker-inl.h +3 -2
  2340. data/third_party/re2/util/mutex.h +4 -4
  2341. data/third_party/upb/upb/alloc.h +36 -0
  2342. data/third_party/upb/upb/arena.h +36 -0
  2343. data/third_party/upb/upb/array.h +36 -0
  2344. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  2345. data/third_party/upb/upb/base/log2.h +57 -0
  2346. data/third_party/upb/upb/base/status.c +81 -0
  2347. data/third_party/upb/upb/base/status.h +66 -0
  2348. data/third_party/upb/upb/base/string_view.h +75 -0
  2349. data/third_party/upb/upb/collections/array.c +145 -0
  2350. data/third_party/upb/upb/collections/array.h +85 -0
  2351. data/third_party/upb/upb/collections/array_internal.h +135 -0
  2352. data/third_party/upb/upb/collections/map.c +135 -0
  2353. data/third_party/upb/upb/collections/map.h +135 -0
  2354. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  2355. data/third_party/upb/upb/collections/map_internal.h +170 -0
  2356. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  2357. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  2358. data/third_party/upb/upb/collections/message_value.h +65 -0
  2359. data/third_party/upb/upb/decode.h +3 -61
  2360. data/third_party/upb/upb/def.h +4 -377
  2361. data/third_party/upb/upb/def.hpp +3 -408
  2362. data/third_party/upb/upb/encode.h +3 -38
  2363. data/third_party/upb/upb/extension_registry.h +35 -0
  2364. data/third_party/upb/upb/{table.c → hash/common.c} +51 -109
  2365. data/third_party/upb/upb/hash/common.h +199 -0
  2366. data/third_party/upb/upb/hash/int_table.h +102 -0
  2367. data/third_party/upb/upb/hash/str_table.h +161 -0
  2368. data/third_party/upb/upb/json/decode.c +1477 -0
  2369. data/third_party/upb/upb/json/decode.h +52 -0
  2370. data/third_party/upb/upb/{json_encode.c → json/encode.c} +74 -46
  2371. data/third_party/upb/upb/json/encode.h +70 -0
  2372. data/third_party/upb/upb/json_decode.h +36 -0
  2373. data/third_party/upb/upb/json_encode.h +4 -30
  2374. data/third_party/upb/upb/lex/atoi.c +68 -0
  2375. data/third_party/upb/upb/lex/atoi.h +53 -0
  2376. data/third_party/upb/upb/lex/round_trip.c +67 -0
  2377. data/third_party/upb/upb/{upb_internal.h → lex/round_trip.h} +17 -30
  2378. data/third_party/upb/upb/lex/strtod.c +97 -0
  2379. data/third_party/upb/upb/lex/strtod.h +46 -0
  2380. data/third_party/upb/upb/lex/unicode.c +57 -0
  2381. data/third_party/upb/upb/lex/unicode.h +77 -0
  2382. data/third_party/upb/upb/map.h +36 -0
  2383. data/third_party/upb/upb/mem/alloc.c +47 -0
  2384. data/third_party/upb/upb/mem/alloc.h +98 -0
  2385. data/third_party/upb/upb/mem/arena.c +367 -0
  2386. data/third_party/upb/upb/mem/arena.h +160 -0
  2387. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  2388. data/third_party/upb/upb/message/accessors.c +68 -0
  2389. data/third_party/upb/upb/message/accessors.h +379 -0
  2390. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  2391. data/third_party/upb/upb/message/extension_internal.h +83 -0
  2392. data/third_party/upb/upb/message/internal.h +135 -0
  2393. data/third_party/upb/upb/message/message.c +180 -0
  2394. data/third_party/upb/upb/message/message.h +69 -0
  2395. data/third_party/upb/upb/mini_table/common.c +128 -0
  2396. data/third_party/upb/upb/mini_table/common.h +170 -0
  2397. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  2398. data/third_party/upb/upb/mini_table/decode.c +1127 -0
  2399. data/third_party/upb/upb/mini_table/decode.h +179 -0
  2400. data/third_party/upb/upb/mini_table/encode.c +300 -0
  2401. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  2402. data/third_party/upb/upb/mini_table/encode_internal.hpp +136 -0
  2403. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  2404. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  2405. data/third_party/upb/upb/mini_table/extension_registry.c +96 -0
  2406. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  2407. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  2408. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  2409. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  2410. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  2411. data/third_party/upb/upb/mini_table/types.h +40 -0
  2412. data/third_party/upb/upb/mini_table.h +36 -0
  2413. data/third_party/upb/upb/msg.h +3 -81
  2414. data/third_party/upb/upb/port/atomic.h +101 -0
  2415. data/third_party/upb/upb/{port_def.inc → port/def.inc} +96 -28
  2416. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +14 -3
  2417. data/third_party/upb/upb/port/vsnprintf_compat.h +50 -0
  2418. data/third_party/upb/upb/reflection/common.h +67 -0
  2419. data/third_party/upb/upb/reflection/def.h +42 -0
  2420. data/third_party/upb/upb/reflection/def.hpp +610 -0
  2421. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  2422. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  2423. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  2424. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  2425. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  2426. data/third_party/upb/upb/reflection/def_type.c +50 -0
  2427. data/third_party/upb/upb/reflection/def_type.h +81 -0
  2428. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  2429. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  2430. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  2431. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  2432. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  2433. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  2434. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  2435. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  2436. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  2437. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  2438. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  2439. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  2440. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  2441. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  2442. data/third_party/upb/upb/reflection/field_def.c +930 -0
  2443. data/third_party/upb/upb/reflection/field_def.h +91 -0
  2444. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  2445. data/third_party/upb/upb/reflection/file_def.c +370 -0
  2446. data/third_party/upb/upb/reflection/file_def.h +77 -0
  2447. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  2448. data/third_party/upb/upb/reflection/message.c +233 -0
  2449. data/third_party/upb/upb/reflection/message.h +102 -0
  2450. data/third_party/upb/upb/reflection/message.hpp +37 -0
  2451. data/third_party/upb/upb/reflection/message_def.c +718 -0
  2452. data/third_party/upb/upb/reflection/message_def.h +174 -0
  2453. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  2454. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  2455. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  2456. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  2457. data/third_party/upb/upb/reflection/method_def.c +124 -0
  2458. data/third_party/upb/upb/reflection/method_def.h +59 -0
  2459. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  2460. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  2461. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  2462. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  2463. data/third_party/upb/upb/reflection/service_def.c +128 -0
  2464. data/third_party/upb/upb/reflection/service_def.h +60 -0
  2465. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  2466. data/third_party/upb/upb/reflection.h +4 -188
  2467. data/third_party/upb/upb/reflection.hpp +3 -7
  2468. data/third_party/upb/upb/status.h +36 -0
  2469. data/third_party/upb/upb/string_view.h +36 -0
  2470. data/third_party/upb/upb/{text_encode.c → text/encode.c} +75 -70
  2471. data/third_party/upb/upb/text/encode.h +69 -0
  2472. data/third_party/upb/upb/text_encode.h +4 -32
  2473. data/third_party/upb/upb/upb.h +6 -340
  2474. data/third_party/upb/upb/upb.hpp +10 -18
  2475. data/third_party/upb/upb/wire/common.h +44 -0
  2476. data/third_party/upb/upb/wire/common_internal.h +50 -0
  2477. data/third_party/upb/upb/wire/decode.c +1343 -0
  2478. data/third_party/upb/upb/wire/decode.h +108 -0
  2479. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  2480. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  2481. data/third_party/upb/upb/{decode_internal.h → wire/decode_internal.h} +44 -92
  2482. data/third_party/upb/upb/{encode.c → wire/encode.c} +130 -102
  2483. data/third_party/upb/upb/wire/encode.h +92 -0
  2484. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  2485. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  2486. data/third_party/upb/upb/wire/reader.c +67 -0
  2487. data/third_party/upb/upb/wire/reader.h +227 -0
  2488. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  2489. data/third_party/upb/upb/wire/types.h +41 -0
  2490. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  2491. data/third_party/utf8_range/utf8_range.h +21 -0
  2492. data/third_party/zlib/compress.c +3 -3
  2493. data/third_party/zlib/crc32.c +21 -12
  2494. data/third_party/zlib/deflate.c +112 -106
  2495. data/third_party/zlib/deflate.h +2 -2
  2496. data/third_party/zlib/gzlib.c +1 -1
  2497. data/third_party/zlib/gzread.c +3 -5
  2498. data/third_party/zlib/gzwrite.c +1 -1
  2499. data/third_party/zlib/infback.c +10 -7
  2500. data/third_party/zlib/inflate.c +5 -2
  2501. data/third_party/zlib/inftrees.c +2 -2
  2502. data/third_party/zlib/inftrees.h +1 -1
  2503. data/third_party/zlib/trees.c +61 -62
  2504. data/third_party/zlib/uncompr.c +2 -2
  2505. data/third_party/zlib/zconf.h +16 -3
  2506. data/third_party/zlib/zlib.h +10 -10
  2507. data/third_party/zlib/zutil.c +9 -7
  2508. data/third_party/zlib/zutil.h +1 -0
  2509. metadata +597 -174
  2510. data/include/grpc/impl/codegen/gpr_slice.h +0 -71
  2511. data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -176
  2512. data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
  2513. data/src/core/ext/filters/client_channel/lb_policy.cc +0 -134
  2514. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  2515. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
  2516. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
  2517. data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
  2518. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
  2519. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
  2520. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -30
  2521. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -180
  2522. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -182
  2523. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -334
  2524. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
  2525. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -324
  2526. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
  2527. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  2528. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  2529. data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
  2530. data/src/core/ext/xds/certificate_provider_registry.h +0 -59
  2531. data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.cc +0 -159
  2532. data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
  2533. data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
  2534. data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +0 -81
  2535. data/src/core/lib/event_engine/iomgr_engine/timer.h +0 -193
  2536. data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +0 -56
  2537. data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +0 -254
  2538. data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +0 -111
  2539. data/src/core/lib/event_engine/promise.h +0 -69
  2540. data/src/core/lib/gpr/cpu_iphone.cc +0 -44
  2541. data/src/core/lib/gpr/cpu_windows.cc +0 -33
  2542. data/src/core/lib/gpr/env.h +0 -40
  2543. data/src/core/lib/gpr/env_linux.cc +0 -75
  2544. data/src/core/lib/gpr/env_posix.cc +0 -46
  2545. data/src/core/lib/gpr/env_windows.cc +0 -74
  2546. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  2547. data/src/core/lib/gpr/murmur_hash.h +0 -29
  2548. data/src/core/lib/gpr/string_util_windows.cc +0 -82
  2549. data/src/core/lib/gpr/string_windows.cc +0 -69
  2550. data/src/core/lib/gpr/string_windows.h +0 -32
  2551. data/src/core/lib/gpr/tls.h +0 -156
  2552. data/src/core/lib/gpr/tmpfile_windows.cc +0 -69
  2553. data/src/core/lib/gprpp/global_config.h +0 -93
  2554. data/src/core/lib/gprpp/global_config_custom.h +0 -29
  2555. data/src/core/lib/gprpp/global_config_env.cc +0 -138
  2556. data/src/core/lib/gprpp/global_config_env.h +0 -133
  2557. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  2558. data/src/core/lib/iomgr/error_internal.h +0 -66
  2559. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  2560. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  2561. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  2562. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  2563. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  2564. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  2565. data/src/core/lib/profiling/basic_timers.cc +0 -295
  2566. data/src/core/lib/profiling/stap_timers.cc +0 -50
  2567. data/src/core/lib/profiling/timers.h +0 -94
  2568. data/src/core/lib/promise/call_push_pull.h +0 -148
  2569. data/src/core/lib/promise/intra_activity_waiter.h +0 -49
  2570. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  2571. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -30
  2572. data/src/core/lib/slice/slice_api.cc +0 -39
  2573. data/src/core/lib/slice/slice_buffer_api.cc +0 -35
  2574. data/src/core/lib/slice/slice_refcount_base.h +0 -60
  2575. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  2576. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  2577. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  2578. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  2579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  2580. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  2581. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  2582. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  2583. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  2584. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  2585. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  2586. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  2587. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  2588. data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
  2589. data/third_party/upb/third_party/utf8_range/utf8_range.h +0 -9
  2590. data/third_party/upb/upb/decode.c +0 -1125
  2591. data/third_party/upb/upb/def.c +0 -3261
  2592. data/third_party/upb/upb/msg.c +0 -428
  2593. data/third_party/upb/upb/msg_internal.h +0 -831
  2594. data/third_party/upb/upb/reflection.c +0 -480
  2595. data/third_party/upb/upb/table_internal.h +0 -385
  2596. data/third_party/upb/upb/upb.c +0 -362
  2597. /data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
  2598. /data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
  2599. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  2600. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -1,29 +1,30 @@
1
- /*
2
- *
3
- * Copyright 2017 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 2017 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
 
21
21
  #include <grpc/support/log.h>
22
22
 
23
+ #include "src/core/lib/gprpp/crash.h"
23
24
  #include "src/core/lib/iomgr/port.h"
24
25
 
25
- /* This polling engine is only relevant on linux kernels supporting epoll
26
- epoll_create() or epoll_create1() */
26
+ // This polling engine is only relevant on linux kernels supporting epoll
27
+ // epoll_create() or epoll_create1()
27
28
  #ifdef GRPC_LINUX_EPOLL
28
29
  #include <assert.h>
29
30
  #include <errno.h>
@@ -47,50 +48,51 @@
47
48
  #include <grpc/support/cpu.h>
48
49
 
49
50
  #include "src/core/lib/debug/stats.h"
51
+ #include "src/core/lib/debug/stats_data.h"
50
52
  #include "src/core/lib/gpr/string.h"
51
- #include "src/core/lib/gpr/tls.h"
52
53
  #include "src/core/lib/gpr/useful.h"
53
54
  #include "src/core/lib/gprpp/manual_constructor.h"
55
+ #include "src/core/lib/gprpp/strerror.h"
54
56
  #include "src/core/lib/iomgr/block_annotate.h"
55
57
  #include "src/core/lib/iomgr/ev_epoll1_linux.h"
56
58
  #include "src/core/lib/iomgr/ev_posix.h"
57
59
  #include "src/core/lib/iomgr/iomgr_internal.h"
58
60
  #include "src/core/lib/iomgr/lockfree_event.h"
59
61
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
60
- #include "src/core/lib/profiling/timers.h"
61
62
 
62
63
  static grpc_wakeup_fd global_wakeup_fd;
64
+ static bool g_is_shutdown = true;
63
65
 
64
- /*******************************************************************************
65
- * Singleton epoll set related fields
66
- */
66
+ //******************************************************************************
67
+ // Singleton epoll set related fields
68
+ //
67
69
 
68
70
  #define MAX_EPOLL_EVENTS 100
69
71
  #define MAX_EPOLL_EVENTS_HANDLED_PER_ITERATION 1
70
72
 
71
- /* NOTE ON SYNCHRONIZATION:
72
- * - Fields in this struct are only modified by the designated poller. Hence
73
- * there is no need for any locks to protect the struct.
74
- * - num_events and cursor fields have to be of atomic type to provide memory
75
- * visibility guarantees only. i.e In case of multiple pollers, the designated
76
- * polling thread keeps changing; the thread that wrote these values may be
77
- * different from the thread reading the values
78
- */
73
+ // NOTE ON SYNCHRONIZATION:
74
+ // - Fields in this struct are only modified by the designated poller. Hence
75
+ // there is no need for any locks to protect the struct.
76
+ // - num_events and cursor fields have to be of atomic type to provide memory
77
+ // visibility guarantees only. i.e In case of multiple pollers, the designated
78
+ // polling thread keeps changing; the thread that wrote these values may be
79
+ // different from the thread reading the values
80
+ //
79
81
  typedef struct epoll_set {
80
82
  int epfd;
81
83
 
82
- /* The epoll_events after the last call to epoll_wait() */
84
+ // The epoll_events after the last call to epoll_wait()
83
85
  struct epoll_event events[MAX_EPOLL_EVENTS];
84
86
 
85
- /* The number of epoll_events after the last call to epoll_wait() */
87
+ // The number of epoll_events after the last call to epoll_wait()
86
88
  gpr_atm num_events;
87
89
 
88
- /* Index of the first event in epoll_events that has to be processed. This
89
- * field is only valid if num_events > 0 */
90
+ // Index of the first event in epoll_events that has to be processed. This
91
+ // field is only valid if num_events > 0
90
92
  gpr_atm cursor;
91
93
  } epoll_set;
92
94
 
93
- /* The global singleton epoll set */
95
+ // The global singleton epoll set
94
96
  static epoll_set g_epoll_set;
95
97
 
96
98
  static int epoll_create_and_cloexec() {
@@ -111,7 +113,7 @@ static int epoll_create_and_cloexec() {
111
113
  return fd;
112
114
  }
113
115
 
114
- /* Must be called *only* once */
116
+ // Must be called *only* once
115
117
  static bool epoll_set_init() {
116
118
  g_epoll_set.epfd = epoll_create_and_cloexec();
117
119
  if (g_epoll_set.epfd < 0) {
@@ -124,7 +126,7 @@ static bool epoll_set_init() {
124
126
  return true;
125
127
  }
126
128
 
127
- /* epoll_set_init() MUST be called before calling this. */
129
+ // epoll_set_init() MUST be called before calling this.
128
130
  static void epoll_set_shutdown() {
129
131
  if (g_epoll_set.epfd >= 0) {
130
132
  close(g_epoll_set.epfd);
@@ -132,11 +134,11 @@ static void epoll_set_shutdown() {
132
134
  }
133
135
  }
134
136
 
135
- /*******************************************************************************
136
- * Fd Declarations
137
- */
137
+ //******************************************************************************
138
+ // Fd Declarations
139
+ //
138
140
 
139
- /* Only used when GRPC_ENABLE_FORK_SUPPORT=1 */
141
+ // Only used when GRPC_ENABLE_FORK_SUPPORT=1
140
142
  struct grpc_fork_fd_list {
141
143
  grpc_fd* fd;
142
144
  grpc_fd* next;
@@ -154,16 +156,18 @@ struct grpc_fd {
154
156
 
155
157
  grpc_iomgr_object iomgr_object;
156
158
 
157
- /* Only used when GRPC_ENABLE_FORK_SUPPORT=1 */
159
+ // Only used when GRPC_ENABLE_FORK_SUPPORT=1
158
160
  grpc_fork_fd_list* fork_fd_list;
161
+
162
+ bool is_pre_allocated;
159
163
  };
160
164
 
161
165
  static void fd_global_init(void);
162
166
  static void fd_global_shutdown(void);
163
167
 
164
- /*******************************************************************************
165
- * Pollset Declarations
166
- */
168
+ //******************************************************************************
169
+ // Pollset Declarations
170
+ //
167
171
 
168
172
  typedef enum { UNKICKED, KICKED, DESIGNATED_POLLER } kick_state;
169
173
 
@@ -214,68 +218,68 @@ struct grpc_pollset {
214
218
  grpc_pollset_worker* root_worker;
215
219
  bool kicked_without_poller;
216
220
 
217
- /* Set to true if the pollset is observed to have no workers available to
218
- poll */
221
+ // Set to true if the pollset is observed to have no workers available to
222
+ // poll
219
223
  bool seen_inactive;
220
- bool shutting_down; /* Is the pollset shutting down ? */
221
- grpc_closure* shutdown_closure; /* Called after shutdown is complete */
224
+ bool shutting_down; // Is the pollset shutting down ?
225
+ grpc_closure* shutdown_closure; // Called after shutdown is complete
222
226
 
223
- /* Number of workers who are *about-to* attach themselves to the pollset
224
- * worker list */
227
+ // Number of workers who are *about-to* attach themselves to the pollset
228
+ // worker list
225
229
  int begin_refs;
226
230
 
227
231
  grpc_pollset* next;
228
232
  grpc_pollset* prev;
229
233
  };
230
234
 
231
- /*******************************************************************************
232
- * Pollset-set Declarations
233
- */
235
+ //******************************************************************************
236
+ // Pollset-set Declarations
237
+ //
234
238
 
235
239
  struct grpc_pollset_set {
236
240
  char unused;
237
241
  };
238
242
 
239
- /*******************************************************************************
240
- * Common helpers
241
- */
243
+ //******************************************************************************
244
+ // Common helpers
245
+ //
242
246
 
243
247
  static bool append_error(grpc_error_handle* composite, grpc_error_handle error,
244
248
  const char* desc) {
245
- if (GRPC_ERROR_IS_NONE(error)) return true;
246
- if (GRPC_ERROR_IS_NONE(*composite)) {
247
- *composite = GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc);
249
+ if (error.ok()) return true;
250
+ if (composite->ok()) {
251
+ *composite = GRPC_ERROR_CREATE(desc);
248
252
  }
249
253
  *composite = grpc_error_add_child(*composite, error);
250
254
  return false;
251
255
  }
252
256
 
253
- /*******************************************************************************
254
- * Fd Definitions
255
- */
256
-
257
- /* We need to keep a freelist not because of any concerns of malloc performance
258
- * but instead so that implementations with multiple threads in (for example)
259
- * epoll_wait deal with the race between pollset removal and incoming poll
260
- * notifications.
261
- *
262
- * The problem is that the poller ultimately holds a reference to this
263
- * object, so it is very difficult to know when is safe to free it, at least
264
- * without some expensive synchronization.
265
- *
266
- * If we keep the object freelisted, in the worst case losing this race just
267
- * becomes a spurious read notification on a reused fd.
268
- */
269
-
270
- /* The alarm system needs to be able to wakeup 'some poller' sometimes
271
- * (specifically when a new alarm needs to be triggered earlier than the next
272
- * alarm 'epoch'). This wakeup_fd gives us something to alert on when such a
273
- * case occurs. */
257
+ //******************************************************************************
258
+ // Fd Definitions
259
+ //
260
+
261
+ // We need to keep a freelist not because of any concerns of malloc performance
262
+ // but instead so that implementations with multiple threads in (for example)
263
+ // epoll_wait deal with the race between pollset removal and incoming poll
264
+ // notifications.
265
+ //
266
+ // The problem is that the poller ultimately holds a reference to this
267
+ // object, so it is very difficult to know when is safe to free it, at least
268
+ // without some expensive synchronization.
269
+ //
270
+ // If we keep the object freelisted, in the worst case losing this race just
271
+ // becomes a spurious read notification on a reused fd.
272
+ //
273
+
274
+ // The alarm system needs to be able to wakeup 'some poller' sometimes
275
+ // (specifically when a new alarm needs to be triggered earlier than the next
276
+ // alarm 'epoch'). This wakeup_fd gives us something to alert on when such a
277
+ // case occurs.
274
278
 
275
279
  static grpc_fd* fd_freelist = nullptr;
276
280
  static gpr_mu fd_freelist_mu;
277
281
 
278
- /* Only used when GRPC_ENABLE_FORK_SUPPORT=1 */
282
+ // Only used when GRPC_ENABLE_FORK_SUPPORT=1
279
283
  static grpc_fd* fork_fd_list_head = nullptr;
280
284
  static gpr_mu fork_fd_list_mu;
281
285
 
@@ -350,6 +354,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
350
354
  new_fd->error_closure->InitEvent();
351
355
 
352
356
  new_fd->freelist_next = nullptr;
357
+ new_fd->is_pre_allocated = false;
353
358
 
354
359
  std::string fd_name = absl::StrCat(name, " fd=", fd);
355
360
  grpc_iomgr_register_object(&new_fd->iomgr_object, fd_name.c_str());
@@ -362,15 +367,16 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
362
367
 
363
368
  struct epoll_event ev;
364
369
  ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLOUT | EPOLLET);
365
- /* Use the least significant bit of ev.data.ptr to store track_err. We expect
366
- * the addresses to be word aligned. We need to store track_err to avoid
367
- * synchronization issues when accessing it after receiving an event.
368
- * Accessing fd would be a data race there because the fd might have been
369
- * returned to the free list at that point. */
370
+ // Use the least significant bit of ev.data.ptr to store track_err. We expect
371
+ // the addresses to be word aligned. We need to store track_err to avoid
372
+ // synchronization issues when accessing it after receiving an event.
373
+ // Accessing fd would be a data race there because the fd might have been
374
+ // returned to the free list at that point.
370
375
  ev.data.ptr = reinterpret_cast<void*>(reinterpret_cast<intptr_t>(new_fd) |
371
376
  (track_err ? 1 : 0));
372
377
  if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_ADD, fd, &ev) != 0) {
373
- gpr_log(GPR_ERROR, "epoll_ctl failed: %s", strerror(errno));
378
+ gpr_log(GPR_ERROR, "epoll_ctl failed: %s",
379
+ grpc_core::StrError(errno).c_str());
374
380
  }
375
381
 
376
382
  return new_fd;
@@ -378,52 +384,55 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
378
384
 
379
385
  static int fd_wrapped_fd(grpc_fd* fd) { return fd->fd; }
380
386
 
381
- /* if 'releasing_fd' is true, it means that we are going to detach the internal
382
- * fd from grpc_fd structure (i.e which means we should not be calling
383
- * shutdown() syscall on that fd) */
387
+ // if 'releasing_fd' is true, it means that we are going to detach the internal
388
+ // fd from grpc_fd structure (i.e which means we should not be calling
389
+ // shutdown() syscall on that fd)
384
390
  static void fd_shutdown_internal(grpc_fd* fd, grpc_error_handle why,
385
391
  bool releasing_fd) {
386
- if (fd->read_closure->SetShutdown(GRPC_ERROR_REF(why))) {
392
+ if (fd->read_closure->SetShutdown(why)) {
387
393
  if (!releasing_fd) {
388
- shutdown(fd->fd, SHUT_RDWR);
394
+ if (!fd->is_pre_allocated) {
395
+ shutdown(fd->fd, SHUT_RDWR);
396
+ }
389
397
  } else {
390
- /* we need a phony event for earlier linux versions. */
398
+ // we need a phony event for earlier linux versions.
391
399
  epoll_event phony_event;
392
400
  if (epoll_ctl(g_epoll_set.epfd, EPOLL_CTL_DEL, fd->fd, &phony_event) !=
393
401
  0) {
394
- gpr_log(GPR_ERROR, "epoll_ctl failed: %s", strerror(errno));
402
+ gpr_log(GPR_ERROR, "epoll_ctl failed: %s",
403
+ grpc_core::StrError(errno).c_str());
395
404
  }
396
405
  }
397
- fd->write_closure->SetShutdown(GRPC_ERROR_REF(why));
398
- fd->error_closure->SetShutdown(GRPC_ERROR_REF(why));
406
+ fd->write_closure->SetShutdown(why);
407
+ fd->error_closure->SetShutdown(why);
399
408
  }
400
- GRPC_ERROR_UNREF(why);
401
409
  }
402
410
 
403
- /* Might be called multiple times */
411
+ // Might be called multiple times
404
412
  static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
405
413
  fd_shutdown_internal(fd, why, false);
406
414
  }
407
415
 
408
416
  static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
409
417
  const char* reason) {
410
- grpc_error_handle error = GRPC_ERROR_NONE;
418
+ grpc_error_handle error;
411
419
  bool is_release_fd = (release_fd != nullptr);
412
420
 
413
421
  if (!fd->read_closure->IsShutdown()) {
414
- fd_shutdown_internal(fd, GRPC_ERROR_CREATE_FROM_COPIED_STRING(reason),
415
- is_release_fd);
422
+ fd_shutdown_internal(fd, GRPC_ERROR_CREATE(reason), is_release_fd);
416
423
  }
417
424
 
418
- /* If release_fd is not NULL, we should be relinquishing control of the file
419
- descriptor fd->fd (but we still own the grpc_fd structure). */
425
+ // If release_fd is not NULL, we should be relinquishing control of the file
426
+ // descriptor fd->fd (but we still own the grpc_fd structure).
420
427
  if (is_release_fd) {
421
428
  *release_fd = fd->fd;
422
429
  } else {
423
- close(fd->fd);
430
+ if (!fd->is_pre_allocated) {
431
+ close(fd->fd);
432
+ }
424
433
  }
425
434
 
426
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_done, GRPC_ERROR_REF(error));
435
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_done, error);
427
436
 
428
437
  grpc_iomgr_unregister_object(&fd->iomgr_object);
429
438
  fork_fd_list_remove_grpc_fd(fd);
@@ -459,20 +468,22 @@ static void fd_become_writable(grpc_fd* fd) { fd->write_closure->SetReady(); }
459
468
 
460
469
  static void fd_has_errors(grpc_fd* fd) { fd->error_closure->SetReady(); }
461
470
 
462
- /*******************************************************************************
463
- * Pollset Definitions
464
- */
471
+ static void fd_set_pre_allocated(grpc_fd* fd) { fd->is_pre_allocated = true; }
465
472
 
466
- static GPR_THREAD_LOCAL(grpc_pollset*) g_current_thread_pollset;
467
- static GPR_THREAD_LOCAL(grpc_pollset_worker*) g_current_thread_worker;
473
+ //******************************************************************************
474
+ // Pollset Definitions
475
+ //
468
476
 
469
- /* The designated poller */
477
+ static thread_local grpc_pollset* g_current_thread_pollset;
478
+ static thread_local grpc_pollset_worker* g_current_thread_worker;
479
+
480
+ // The designated poller
470
481
  static gpr_atm g_active_poller;
471
482
 
472
483
  static pollset_neighborhood* g_neighborhoods;
473
484
  static size_t g_num_neighborhoods;
474
485
 
475
- /* Return true if first in list */
486
+ // Return true if first in list
476
487
  static bool worker_insert(grpc_pollset* pollset, grpc_pollset_worker* worker) {
477
488
  if (pollset->root_worker == nullptr) {
478
489
  pollset->root_worker = worker;
@@ -487,7 +498,7 @@ static bool worker_insert(grpc_pollset* pollset, grpc_pollset_worker* worker) {
487
498
  }
488
499
  }
489
500
 
490
- /* Return true if last in list */
501
+ // Return true if last in list
491
502
  typedef enum { EMPTIED, NEW_ROOT, REMOVED } worker_remove_result;
492
503
 
493
504
  static worker_remove_result worker_remove(grpc_pollset* pollset,
@@ -517,7 +528,7 @@ static grpc_error_handle pollset_global_init(void) {
517
528
  gpr_atm_no_barrier_store(&g_active_poller, 0);
518
529
  global_wakeup_fd.read_fd = -1;
519
530
  grpc_error_handle err = grpc_wakeup_fd_init(&global_wakeup_fd);
520
- if (!GRPC_ERROR_IS_NONE(err)) return err;
531
+ if (!err.ok()) return err;
521
532
  struct epoll_event ev;
522
533
  ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLET);
523
534
  ev.data.ptr = &global_wakeup_fd;
@@ -532,7 +543,7 @@ static grpc_error_handle pollset_global_init(void) {
532
543
  for (size_t i = 0; i < g_num_neighborhoods; i++) {
533
544
  gpr_mu_init(&g_neighborhoods[i].mu);
534
545
  }
535
- return GRPC_ERROR_NONE;
546
+ return absl::OkStatus();
536
547
  }
537
548
 
538
549
  static void pollset_global_shutdown(void) {
@@ -586,25 +597,20 @@ static void pollset_destroy(grpc_pollset* pollset) {
586
597
  }
587
598
 
588
599
  static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
589
- GPR_TIMER_SCOPE("pollset_kick_all", 0);
590
- grpc_error_handle error = GRPC_ERROR_NONE;
600
+ grpc_error_handle error;
591
601
  if (pollset->root_worker != nullptr) {
592
602
  grpc_pollset_worker* worker = pollset->root_worker;
593
603
  do {
594
- GRPC_STATS_INC_POLLSET_KICK();
595
604
  switch (worker->state) {
596
605
  case KICKED:
597
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
598
606
  break;
599
607
  case UNKICKED:
600
608
  SET_KICK_STATE(worker, KICKED);
601
609
  if (worker->initialized_cv) {
602
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
603
610
  gpr_cv_signal(&worker->cv);
604
611
  }
605
612
  break;
606
613
  case DESIGNATED_POLLER:
607
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
608
614
  SET_KICK_STATE(worker, KICKED);
609
615
  append_error(&error, grpc_wakeup_fd_wakeup(&global_wakeup_fd),
610
616
  "pollset_kick_all");
@@ -622,15 +628,13 @@ static grpc_error_handle pollset_kick_all(grpc_pollset* pollset) {
622
628
  static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
623
629
  if (pollset->shutdown_closure != nullptr && pollset->root_worker == nullptr &&
624
630
  pollset->begin_refs == 0) {
625
- GPR_TIMER_MARK("pollset_finish_shutdown", 0);
626
631
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, pollset->shutdown_closure,
627
- GRPC_ERROR_NONE);
632
+ absl::OkStatus());
628
633
  pollset->shutdown_closure = nullptr;
629
634
  }
630
635
  }
631
636
 
632
637
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
633
- GPR_TIMER_SCOPE("pollset_shutdown", 0);
634
638
  GPR_ASSERT(pollset->shutdown_closure == nullptr);
635
639
  GPR_ASSERT(!pollset->shutting_down);
636
640
  pollset->shutdown_closure = closure;
@@ -641,7 +645,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
641
645
 
642
646
  static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
643
647
  if (millis == grpc_core::Timestamp::InfFuture()) return -1;
644
- int64_t delta = (millis - grpc_core::ExecCtx::Get()->Now()).millis();
648
+ int64_t delta = (millis - grpc_core::Timestamp::Now()).millis();
645
649
  if (delta > INT_MAX) {
646
650
  return INT_MAX;
647
651
  } else if (delta < 0) {
@@ -651,19 +655,17 @@ static int poll_deadline_to_millis_timeout(grpc_core::Timestamp millis) {
651
655
  }
652
656
  }
653
657
 
654
- /* Process the epoll events found by do_epoll_wait() function.
655
- - g_epoll_set.cursor points to the index of the first event to be processed
656
- - This function then processes up-to MAX_EPOLL_EVENTS_PER_ITERATION and
657
- updates the g_epoll_set.cursor
658
+ // Process the epoll events found by do_epoll_wait() function.
659
+ // - g_epoll_set.cursor points to the index of the first event to be processed
660
+ // - This function then processes up-to MAX_EPOLL_EVENTS_PER_ITERATION and
661
+ // updates the g_epoll_set.cursor
658
662
 
659
- NOTE ON SYNCRHONIZATION: Similar to do_epoll_wait(), this function is only
660
- called by g_active_poller thread. So there is no need for synchronization
661
- when accessing fields in g_epoll_set */
663
+ // NOTE ON SYNCRHONIZATION: Similar to do_epoll_wait(), this function is only
664
+ // called by g_active_poller thread. So there is no need for synchronization
665
+ // when accessing fields in g_epoll_set
662
666
  static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
663
- GPR_TIMER_SCOPE("process_epoll_events", 0);
664
-
665
667
  static const char* err_desc = "process_events";
666
- grpc_error_handle error = GRPC_ERROR_NONE;
668
+ grpc_error_handle error;
667
669
  long num_events = gpr_atm_acq_load(&g_epoll_set.num_events);
668
670
  long cursor = gpr_atm_acq_load(&g_epoll_set.cursor);
669
671
  for (int idx = 0;
@@ -678,9 +680,8 @@ static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
678
680
  err_desc);
679
681
  } else {
680
682
  grpc_fd* fd = reinterpret_cast<grpc_fd*>(
681
- reinterpret_cast<intptr_t>(data_ptr) & ~static_cast<intptr_t>(1));
682
- bool track_err =
683
- reinterpret_cast<intptr_t>(data_ptr) & static_cast<intptr_t>(1);
683
+ reinterpret_cast<intptr_t>(data_ptr) & ~intptr_t{1});
684
+ bool track_err = reinterpret_cast<intptr_t>(data_ptr) & intptr_t{1};
684
685
  bool cancel = (ev->events & EPOLLHUP) != 0;
685
686
  bool error = (ev->events & EPOLLERR) != 0;
686
687
  bool read_ev = (ev->events & (EPOLLIN | EPOLLPRI)) != 0;
@@ -704,24 +705,21 @@ static grpc_error_handle process_epoll_events(grpc_pollset* /*pollset*/) {
704
705
  return error;
705
706
  }
706
707
 
707
- /* Do epoll_wait and store the events in g_epoll_set.events field. This does not
708
- "process" any of the events yet; that is done in process_epoll_events().
709
- *See process_epoll_events() function for more details.
708
+ // Do epoll_wait and store the events in g_epoll_set.events field. This does not
709
+ // "process" any of the events yet; that is done in process_epoll_events().
710
+ // *See process_epoll_events() function for more details.
710
711
 
711
- NOTE ON SYNCHRONIZATION: At any point of time, only the g_active_poller
712
- (i.e the designated poller thread) will be calling this function. So there is
713
- no need for any synchronization when accesing fields in g_epoll_set */
712
+ // NOTE ON SYNCHRONIZATION: At any point of time, only the g_active_poller
713
+ // (i.e the designated poller thread) will be calling this function. So there is
714
+ // no need for any synchronization when accesing fields in g_epoll_set
714
715
  static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
715
716
  grpc_core::Timestamp deadline) {
716
- GPR_TIMER_SCOPE("do_epoll_wait", 0);
717
-
718
717
  int r;
719
718
  int timeout = poll_deadline_to_millis_timeout(deadline);
720
719
  if (timeout != 0) {
721
720
  GRPC_SCHEDULING_START_BLOCKING_REGION;
722
721
  }
723
722
  do {
724
- GRPC_STATS_INC_SYSCALL_POLL();
725
723
  r = epoll_wait(g_epoll_set.epfd, g_epoll_set.events, MAX_EPOLL_EVENTS,
726
724
  timeout);
727
725
  } while (r < 0 && errno == EINTR);
@@ -731,8 +729,6 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
731
729
 
732
730
  if (r < 0) return GRPC_OS_ERROR(errno, "epoll_wait");
733
731
 
734
- GRPC_STATS_INC_POLL_EVENTS_RETURNED(r);
735
-
736
732
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
737
733
  gpr_log(GPR_INFO, "ps: %p poll got %d events", ps, r);
738
734
  }
@@ -740,13 +736,12 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
740
736
  gpr_atm_rel_store(&g_epoll_set.num_events, r);
741
737
  gpr_atm_rel_store(&g_epoll_set.cursor, 0);
742
738
 
743
- return GRPC_ERROR_NONE;
739
+ return absl::OkStatus();
744
740
  }
745
741
 
746
742
  static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
747
743
  grpc_pollset_worker** worker_hdl,
748
744
  grpc_core::Timestamp deadline) {
749
- GPR_TIMER_SCOPE("begin_worker", 0);
750
745
  if (worker_hdl != nullptr) *worker_hdl = worker;
751
746
  worker->initialized_cv = false;
752
747
  SET_KICK_STATE(worker, UNKICKED);
@@ -785,20 +780,20 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
785
780
  goto retry_lock_neighborhood;
786
781
  }
787
782
 
788
- /* In the brief time we released the pollset locks above, the worker MAY
789
- have been kicked. In this case, the worker should get out of this
790
- pollset ASAP and hence this should neither add the pollset to
791
- neighborhood nor mark the pollset as active.
783
+ // In the brief time we released the pollset locks above, the worker MAY
784
+ // have been kicked. In this case, the worker should get out of this
785
+ // pollset ASAP and hence this should neither add the pollset to
786
+ // neighborhood nor mark the pollset as active.
792
787
 
793
- On a side note, the only way a worker's kick state could have changed
794
- at this point is if it were "kicked specifically". Since the worker has
795
- not added itself to the pollset yet (by calling worker_insert()), it is
796
- not visible in the "kick any" path yet */
788
+ // On a side note, the only way a worker's kick state could have changed
789
+ // at this point is if it were "kicked specifically". Since the worker has
790
+ // not added itself to the pollset yet (by calling worker_insert()), it is
791
+ // not visible in the "kick any" path yet
797
792
  if (worker->state == UNKICKED) {
798
793
  pollset->seen_inactive = false;
799
794
  if (neighborhood->active_root == nullptr) {
800
795
  neighborhood->active_root = pollset->next = pollset->prev = pollset;
801
- /* Make this the designated poller if there isn't one already */
796
+ // Make this the designated poller if there isn't one already
802
797
  if (worker->state == UNKICKED &&
803
798
  gpr_atm_no_barrier_cas(&g_active_poller, 0,
804
799
  reinterpret_cast<gpr_atm>(worker))) {
@@ -834,8 +829,8 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
834
829
  if (gpr_cv_wait(&worker->cv, &pollset->mu,
835
830
  deadline.as_timespec(GPR_CLOCK_MONOTONIC)) &&
836
831
  worker->state == UNKICKED) {
837
- /* If gpr_cv_wait returns true (i.e a timeout), pretend that the worker
838
- received a kick */
832
+ // If gpr_cv_wait returns true (i.e a timeout), pretend that the worker
833
+ // received a kick
839
834
  SET_KICK_STATE(worker, KICKED);
840
835
  }
841
836
  }
@@ -850,14 +845,14 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
850
845
  pollset->shutting_down, pollset->kicked_without_poller);
851
846
  }
852
847
 
853
- /* We release pollset lock in this function at a couple of places:
854
- * 1. Briefly when assigning pollset to a neighborhood
855
- * 2. When doing gpr_cv_wait()
856
- * It is possible that 'kicked_without_poller' was set to true during (1) and
857
- * 'shutting_down' is set to true during (1) or (2). If either of them is
858
- * true, this worker cannot do polling */
859
- /* TODO(sreek): Perhaps there is a better way to handle kicked_without_poller
860
- * case; especially when the worker is the DESIGNATED_POLLER */
848
+ // We release pollset lock in this function at a couple of places:
849
+ // 1. Briefly when assigning pollset to a neighborhood
850
+ // 2. When doing gpr_cv_wait()
851
+ // It is possible that 'kicked_without_poller' was set to true during (1) and
852
+ // 'shutting_down' is set to true during (1) or (2). If either of them is
853
+ // true, this worker cannot do polling
854
+ // TODO(sreek): Perhaps there is a better way to handle kicked_without_poller
855
+ // case; especially when the worker is the DESIGNATED_POLLER
861
856
 
862
857
  if (pollset->kicked_without_poller) {
863
858
  pollset->kicked_without_poller = false;
@@ -869,7 +864,6 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
869
864
 
870
865
  static bool check_neighborhood_for_available_poller(
871
866
  pollset_neighborhood* neighborhood) {
872
- GPR_TIMER_SCOPE("check_neighborhood_for_available_poller", 0);
873
867
  bool found_worker = false;
874
868
  do {
875
869
  grpc_pollset* inspect = neighborhood->active_root;
@@ -892,8 +886,6 @@ static bool check_neighborhood_for_available_poller(
892
886
  }
893
887
  SET_KICK_STATE(inspect_worker, DESIGNATED_POLLER);
894
888
  if (inspect_worker->initialized_cv) {
895
- GPR_TIMER_MARK("signal worker", 0);
896
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
897
889
  gpr_cv_signal(&inspect_worker->cv);
898
890
  }
899
891
  } else {
@@ -934,12 +926,11 @@ static bool check_neighborhood_for_available_poller(
934
926
 
935
927
  static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
936
928
  grpc_pollset_worker** worker_hdl) {
937
- GPR_TIMER_SCOPE("end_worker", 0);
938
929
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
939
930
  gpr_log(GPR_INFO, "PS:%p END_WORKER:%p", pollset, worker);
940
931
  }
941
932
  if (worker_hdl != nullptr) *worker_hdl = nullptr;
942
- /* Make sure we appear kicked */
933
+ // Make sure we appear kicked
943
934
  SET_KICK_STATE(worker, KICKED);
944
935
  grpc_closure_list_move(&worker->schedule_on_end_work,
945
936
  grpc_core::ExecCtx::Get()->closure_list());
@@ -952,7 +943,6 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
952
943
  GPR_ASSERT(worker->next->initialized_cv);
953
944
  gpr_atm_no_barrier_store(&g_active_poller, (gpr_atm)worker->next);
954
945
  SET_KICK_STATE(worker->next, DESIGNATED_POLLER);
955
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
956
946
  gpr_cv_signal(&worker->next->cv);
957
947
  if (grpc_core::ExecCtx::Get()->HasWork()) {
958
948
  gpr_mu_unlock(&pollset->mu);
@@ -1007,20 +997,19 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
1007
997
  GPR_ASSERT(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
1008
998
  }
1009
999
 
1010
- /* pollset->po.mu lock must be held by the caller before calling this.
1011
- The function pollset_work() may temporarily release the lock (pollset->po.mu)
1012
- during the course of its execution but it will always re-acquire the lock and
1013
- ensure that it is held by the time the function returns */
1000
+ // pollset->po.mu lock must be held by the caller before calling this.
1001
+ // The function pollset_work() may temporarily release the lock (pollset->po.mu)
1002
+ // during the course of its execution but it will always re-acquire the lock and
1003
+ // ensure that it is held by the time the function returns
1014
1004
  static grpc_error_handle pollset_work(grpc_pollset* ps,
1015
1005
  grpc_pollset_worker** worker_hdl,
1016
1006
  grpc_core::Timestamp deadline) {
1017
- GPR_TIMER_SCOPE("pollset_work", 0);
1018
1007
  grpc_pollset_worker worker;
1019
- grpc_error_handle error = GRPC_ERROR_NONE;
1008
+ grpc_error_handle error;
1020
1009
  static const char* err_desc = "pollset_work";
1021
1010
  if (ps->kicked_without_poller) {
1022
1011
  ps->kicked_without_poller = false;
1023
- return GRPC_ERROR_NONE;
1012
+ return absl::OkStatus();
1024
1013
  }
1025
1014
 
1026
1015
  if (begin_worker(ps, &worker, worker_hdl, deadline)) {
@@ -1029,28 +1018,28 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1029
1018
  GPR_ASSERT(!ps->shutting_down);
1030
1019
  GPR_ASSERT(!ps->seen_inactive);
1031
1020
 
1032
- gpr_mu_unlock(&ps->mu); /* unlock */
1033
- /* This is the designated polling thread at this point and should ideally do
1034
- polling. However, if there are unprocessed events left from a previous
1035
- call to do_epoll_wait(), skip calling epoll_wait() in this iteration and
1036
- process the pending epoll events.
1037
-
1038
- The reason for decoupling do_epoll_wait and process_epoll_events is to
1039
- better distribute the work (i.e handling epoll events) across multiple
1040
- threads
1041
-
1042
- process_epoll_events() returns very quickly: It just queues the work on
1043
- exec_ctx but does not execute it (the actual exectution or more
1044
- accurately grpc_core::ExecCtx::Get()->Flush() happens in end_worker()
1045
- AFTER selecting a designated poller). So we are not waiting long periods
1046
- without a designated poller */
1021
+ gpr_mu_unlock(&ps->mu); // unlock
1022
+ // This is the designated polling thread at this point and should ideally do
1023
+ // polling. However, if there are unprocessed events left from a previous
1024
+ // call to do_epoll_wait(), skip calling epoll_wait() in this iteration and
1025
+ // process the pending epoll events.
1026
+
1027
+ // The reason for decoupling do_epoll_wait and process_epoll_events is to
1028
+ // better distribute the work (i.e handling epoll events) across multiple
1029
+ // threads
1030
+
1031
+ // process_epoll_events() returns very quickly: It just queues the work on
1032
+ // exec_ctx but does not execute it (the actual exectution or more
1033
+ // accurately grpc_core::ExecCtx::Get()->Flush() happens in end_worker()
1034
+ // AFTER selecting a designated poller). So we are not waiting long periods
1035
+ // without a designated poller
1047
1036
  if (gpr_atm_acq_load(&g_epoll_set.cursor) ==
1048
1037
  gpr_atm_acq_load(&g_epoll_set.num_events)) {
1049
1038
  append_error(&error, do_epoll_wait(ps, deadline), err_desc);
1050
1039
  }
1051
1040
  append_error(&error, process_epoll_events(ps), err_desc);
1052
1041
 
1053
- gpr_mu_lock(&ps->mu); /* lock */
1042
+ gpr_mu_lock(&ps->mu); // lock
1054
1043
 
1055
1044
  g_current_thread_worker = nullptr;
1056
1045
  } else {
@@ -1064,9 +1053,7 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1064
1053
 
1065
1054
  static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1066
1055
  grpc_pollset_worker* specific_worker) {
1067
- GPR_TIMER_SCOPE("pollset_kick", 0);
1068
- GRPC_STATS_INC_POLLSET_KICK();
1069
- grpc_error_handle ret_err = GRPC_ERROR_NONE;
1056
+ grpc_error_handle ret_err;
1070
1057
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1071
1058
  std::vector<std::string> log;
1072
1059
  log.push_back(absl::StrFormat(
@@ -1091,7 +1078,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1091
1078
  if (g_current_thread_pollset != pollset) {
1092
1079
  grpc_pollset_worker* root_worker = pollset->root_worker;
1093
1080
  if (root_worker == nullptr) {
1094
- GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER();
1095
1081
  pollset->kicked_without_poller = true;
1096
1082
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1097
1083
  gpr_log(GPR_INFO, " .. kicked_without_poller");
@@ -1100,14 +1086,12 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1100
1086
  }
1101
1087
  grpc_pollset_worker* next_worker = root_worker->next;
1102
1088
  if (root_worker->state == KICKED) {
1103
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1104
1089
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1105
1090
  gpr_log(GPR_INFO, " .. already kicked %p", root_worker);
1106
1091
  }
1107
1092
  SET_KICK_STATE(root_worker, KICKED);
1108
1093
  goto done;
1109
1094
  } else if (next_worker->state == KICKED) {
1110
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1111
1095
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1112
1096
  gpr_log(GPR_INFO, " .. already kicked %p", next_worker);
1113
1097
  }
@@ -1118,7 +1102,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1118
1102
  root_worker ==
1119
1103
  reinterpret_cast<grpc_pollset_worker*>(
1120
1104
  gpr_atm_no_barrier_load(&g_active_poller))) {
1121
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1122
1105
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1123
1106
  gpr_log(GPR_INFO, " .. kicked %p", root_worker);
1124
1107
  }
@@ -1126,7 +1109,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1126
1109
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1127
1110
  goto done;
1128
1111
  } else if (next_worker->state == UNKICKED) {
1129
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1130
1112
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1131
1113
  gpr_log(GPR_INFO, " .. kicked %p", next_worker);
1132
1114
  }
@@ -1144,12 +1126,10 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1144
1126
  }
1145
1127
  SET_KICK_STATE(root_worker, KICKED);
1146
1128
  if (root_worker->initialized_cv) {
1147
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1148
1129
  gpr_cv_signal(&root_worker->cv);
1149
1130
  }
1150
1131
  goto done;
1151
1132
  } else {
1152
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1153
1133
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1154
1134
  gpr_log(GPR_INFO, " .. non-root poller %p (root=%p)", next_worker,
1155
1135
  root_worker);
@@ -1159,13 +1139,11 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1159
1139
  goto done;
1160
1140
  }
1161
1141
  } else {
1162
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1163
1142
  GPR_ASSERT(next_worker->state == KICKED);
1164
1143
  SET_KICK_STATE(next_worker, KICKED);
1165
1144
  goto done;
1166
1145
  }
1167
1146
  } else {
1168
- GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1169
1147
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1170
1148
  gpr_log(GPR_INFO, " .. kicked while waking up");
1171
1149
  }
@@ -1181,7 +1159,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1181
1159
  }
1182
1160
  goto done;
1183
1161
  } else if (g_current_thread_worker == specific_worker) {
1184
- GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD();
1185
1162
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1186
1163
  gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
1187
1164
  }
@@ -1190,7 +1167,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1190
1167
  } else if (specific_worker ==
1191
1168
  reinterpret_cast<grpc_pollset_worker*>(
1192
1169
  gpr_atm_no_barrier_load(&g_active_poller))) {
1193
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD();
1194
1170
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1195
1171
  gpr_log(GPR_INFO, " .. kick active poller");
1196
1172
  }
@@ -1198,7 +1174,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1198
1174
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1199
1175
  goto done;
1200
1176
  } else if (specific_worker->initialized_cv) {
1201
- GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV();
1202
1177
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1203
1178
  gpr_log(GPR_INFO, " .. kick waiting worker");
1204
1179
  }
@@ -1206,7 +1181,6 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1206
1181
  gpr_cv_signal(&specific_worker->cv);
1207
1182
  goto done;
1208
1183
  } else {
1209
- GRPC_STATS_INC_POLLSET_KICKED_AGAIN();
1210
1184
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1211
1185
  gpr_log(GPR_INFO, " .. kick non-waiting worker");
1212
1186
  }
@@ -1219,9 +1193,9 @@ done:
1219
1193
 
1220
1194
  static void pollset_add_fd(grpc_pollset* /*pollset*/, grpc_fd* /*fd*/) {}
1221
1195
 
1222
- /*******************************************************************************
1223
- * Pollset-set Definitions
1224
- */
1196
+ //******************************************************************************
1197
+ // Pollset-set Definitions
1198
+ //
1225
1199
 
1226
1200
  static grpc_pollset_set* pollset_set_create(void) {
1227
1201
  return reinterpret_cast<grpc_pollset_set*>(static_cast<intptr_t>(0xdeafbeef));
@@ -1245,9 +1219,9 @@ static void pollset_set_add_pollset_set(grpc_pollset_set* /*bag*/,
1245
1219
  static void pollset_set_del_pollset_set(grpc_pollset_set* /*bag*/,
1246
1220
  grpc_pollset_set* /*item*/) {}
1247
1221
 
1248
- /*******************************************************************************
1249
- * Event engine binding
1250
- */
1222
+ //******************************************************************************
1223
+ // Event engine binding
1224
+ //
1251
1225
 
1252
1226
  static bool is_any_background_poller_thread(void) { return false; }
1253
1227
 
@@ -1266,6 +1240,7 @@ static void shutdown_engine(void) {
1266
1240
  gpr_mu_destroy(&fork_fd_list_mu);
1267
1241
  grpc_core::Fork::SetResetChildPollingEngineFunc(nullptr);
1268
1242
  }
1243
+ g_is_shutdown = true;
1269
1244
  }
1270
1245
 
1271
1246
  static bool init_epoll1_linux();
@@ -1305,16 +1280,21 @@ const grpc_event_engine_vtable grpc_ev_epoll1_posix = {
1305
1280
 
1306
1281
  is_any_background_poller_thread,
1307
1282
  /* name = */ "epoll1",
1308
- /* check_engine_available = */ [](bool) { return init_epoll1_linux(); },
1309
- /* init_engine = */ []() {},
1283
+ /* check_engine_available = */
1284
+ [](bool) { return init_epoll1_linux(); },
1285
+ /* init_engine = */
1286
+ []() { GPR_ASSERT(init_epoll1_linux()); },
1310
1287
  shutdown_background_closure,
1311
- /* shutdown_engine = */ []() {},
1288
+ /* shutdown_engine = */
1289
+ []() { shutdown_engine(); },
1312
1290
  add_closure_to_background_poller,
1291
+
1292
+ fd_set_pre_allocated,
1313
1293
  };
1314
1294
 
1315
- /* Called by the child process's post-fork handler to close open fds, including
1316
- * the global epoll fd. This allows gRPC to shutdown in the child process
1317
- * without interfering with connections or RPCs ongoing in the parent. */
1295
+ // Called by the child process's post-fork handler to close open fds, including
1296
+ // the global epoll fd. This allows gRPC to shutdown in the child process
1297
+ // without interfering with connections or RPCs ongoing in the parent.
1318
1298
  static void reset_event_manager_on_fork() {
1319
1299
  gpr_mu_lock(&fork_fd_list_mu);
1320
1300
  while (fork_fd_list_head != nullptr) {
@@ -1327,10 +1307,11 @@ static void reset_event_manager_on_fork() {
1327
1307
  init_epoll1_linux();
1328
1308
  }
1329
1309
 
1330
- /* It is possible that GLIBC has epoll but the underlying kernel doesn't.
1331
- * Create epoll_fd (epoll_set_init() takes care of that) to make sure epoll
1332
- * support is available */
1310
+ // It is possible that GLIBC has epoll but the underlying kernel doesn't.
1311
+ // Create epoll_fd (epoll_set_init() takes care of that) to make sure epoll
1312
+ // support is available
1333
1313
  static bool init_epoll1_linux() {
1314
+ if (!g_is_shutdown) return true;
1334
1315
  if (!grpc_has_wakeup_fd()) {
1335
1316
  gpr_log(GPR_ERROR, "Skipping epoll1 because of no wakeup fd.");
1336
1317
  return false;
@@ -1353,10 +1334,11 @@ static bool init_epoll1_linux() {
1353
1334
  grpc_core::Fork::SetResetChildPollingEngineFunc(
1354
1335
  reset_event_manager_on_fork);
1355
1336
  }
1337
+ g_is_shutdown = false;
1356
1338
  return true;
1357
1339
  }
1358
1340
 
1359
- #else /* defined(GRPC_LINUX_EPOLL) */
1341
+ #else // defined(GRPC_LINUX_EPOLL)
1360
1342
  #if defined(GRPC_POSIX_SOCKET_EV_EPOLL1)
1361
1343
  #include "src/core/lib/iomgr/ev_epoll1_linux.h"
1362
1344
  const grpc_event_engine_vtable grpc_ev_epoll1_posix = {
@@ -1399,6 +1381,7 @@ const grpc_event_engine_vtable grpc_ev_epoll1_posix = {
1399
1381
  nullptr,
1400
1382
  nullptr,
1401
1383
  nullptr,
1384
+ nullptr,
1402
1385
  };
1403
- #endif /* defined(GRPC_POSIX_SOCKET_EV_EPOLL1) */
1404
- #endif /* !defined(GRPC_LINUX_EPOLL) */
1386
+ #endif // defined(GRPC_POSIX_SOCKET_EV_EPOLL1)
1387
+ #endif // !defined(GRPC_LINUX_EPOLL)