grpc 1.54.2 → 1.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2782) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1384 -955
  3. data/include/grpc/event_engine/event_engine.h +88 -55
  4. data/include/grpc/event_engine/internal/memory_allocator_impl.h +6 -0
  5. data/include/grpc/event_engine/internal/slice_cast.h +12 -0
  6. data/include/grpc/event_engine/memory_allocator.h +5 -3
  7. data/include/grpc/event_engine/slice.h +5 -0
  8. data/include/grpc/grpc_audit_logging.h +96 -0
  9. data/include/grpc/grpc_crl_provider.h +94 -0
  10. data/include/grpc/grpc_security.h +57 -1
  11. data/include/grpc/impl/call.h +29 -0
  12. data/include/grpc/impl/channel_arg_names.h +400 -0
  13. data/include/grpc/impl/grpc_types.h +1 -348
  14. data/include/grpc/impl/slice_type.h +1 -1
  15. data/include/grpc/module.modulemap +5 -0
  16. data/include/grpc/support/json.h +218 -0
  17. data/include/grpc/support/port_platform.h +103 -24
  18. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +61 -16
  19. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +20 -6
  20. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +49 -46
  21. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +18 -10
  22. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +326 -0
  23. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +143 -0
  24. data/src/core/ext/filters/client_channel/backend_metric.cc +5 -2
  25. data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
  26. data/src/core/ext/filters/client_channel/client_channel.cc +610 -200
  27. data/src/core/ext/filters/client_channel/client_channel.h +80 -29
  28. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +20 -19
  29. data/src/core/ext/filters/client_channel/client_channel_internal.h +24 -59
  30. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +21 -8
  31. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
  32. data/src/core/ext/filters/client_channel/config_selector.h +9 -36
  33. data/src/core/ext/filters/client_channel/connector.h +2 -3
  34. data/src/core/ext/filters/client_channel/dynamic_filters.cc +0 -1
  35. data/src/core/ext/filters/client_channel/dynamic_filters.h +5 -3
  36. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +1 -1
  37. data/src/core/ext/filters/client_channel/http_proxy_mapper.cc +305 -0
  38. data/src/core/ext/filters/client_channel/http_proxy_mapper.h +53 -0
  39. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +60 -52
  40. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +27 -12
  41. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
  42. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +32 -40
  43. data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc +187 -0
  44. data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.h +220 -0
  45. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
  46. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +253 -237
  47. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +20 -19
  48. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +4 -4
  49. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +5 -4
  50. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -2
  51. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +520 -0
  52. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +52 -0
  53. data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +204 -0
  54. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +15 -13
  55. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
  56. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +270 -191
  57. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -2
  58. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +901 -203
  59. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +36 -0
  60. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -48
  61. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +495 -490
  62. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +16 -1
  63. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +115 -151
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +421 -40
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +37 -35
  66. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
  67. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +919 -110
  68. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +31 -63
  69. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +535 -546
  70. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
  71. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +256 -194
  72. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -76
  73. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +810 -316
  74. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +2 -6
  75. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +34 -103
  76. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +5 -6
  77. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +31 -133
  78. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +102 -11
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +105 -175
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +81 -66
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +11 -7
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  84. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +66 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  86. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +588 -0
  87. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  88. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  89. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  90. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +5 -17
  91. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  92. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +76 -189
  93. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +46 -27
  94. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +32 -30
  95. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +17 -13
  96. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
  97. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +31 -19
  98. data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc +1031 -0
  99. data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h +277 -0
  100. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +517 -513
  101. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_attributes.h +62 -0
  102. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc +25 -0
  103. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h +30 -0
  104. data/src/core/ext/filters/client_channel/retry_filter.cc +40 -2531
  105. data/src/core/ext/filters/client_channel/retry_filter.h +92 -1
  106. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2051 -0
  107. data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
  108. data/src/core/ext/filters/client_channel/retry_service_config.cc +10 -9
  109. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +64 -102
  110. data/src/core/ext/filters/client_channel/subchannel.cc +54 -202
  111. data/src/core/ext/filters/client_channel/subchannel.h +23 -48
  112. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
  113. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +0 -1
  114. data/src/core/ext/filters/deadline/deadline_filter.cc +21 -24
  115. data/src/core/ext/filters/deadline/deadline_filter.h +0 -4
  116. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +18 -13
  117. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -4
  118. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  119. data/src/core/ext/filters/http/client/http_client_filter.cc +30 -39
  120. data/src/core/ext/filters/http/client/http_client_filter.h +10 -5
  121. data/src/core/ext/filters/http/client_authority_filter.cc +23 -25
  122. data/src/core/ext/filters/http/client_authority_filter.h +12 -4
  123. data/src/core/ext/filters/http/http_filters_plugin.cc +58 -38
  124. data/src/core/ext/filters/http/message_compress/compression_filter.cc +59 -87
  125. data/src/core/ext/filters/http/message_compress/compression_filter.h +54 -12
  126. data/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc +325 -0
  127. data/src/core/ext/filters/http/message_compress/legacy_compression_filter.h +139 -0
  128. data/src/core/ext/filters/http/server/http_server_filter.cc +55 -53
  129. data/src/core/ext/filters/http/server/http_server_filter.h +11 -4
  130. data/src/core/ext/filters/message_size/message_size_filter.cc +79 -108
  131. data/src/core/ext/filters/message_size/message_size_filter.h +35 -23
  132. data/src/core/ext/filters/rbac/rbac_filter.cc +46 -113
  133. data/src/core/ext/filters/rbac/rbac_filter.h +18 -29
  134. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +162 -72
  135. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +32 -21
  136. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +180 -109
  137. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +54 -11
  138. data/src/core/ext/gcp/metadata_query.cc +0 -1
  139. data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
  140. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -7
  141. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +36 -36
  142. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1177 -1063
  143. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +68 -4
  144. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +80 -0
  145. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
  146. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
  147. data/src/core/ext/transport/chttp2/transport/flow_control.cc +87 -168
  148. data/src/core/ext/transport/chttp2/transport/flow_control.h +85 -12
  149. data/src/core/ext/transport/chttp2/transport/frame.cc +506 -0
  150. data/src/core/ext/transport/chttp2/transport/frame.h +193 -22
  151. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -3
  152. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  153. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -2
  154. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -1
  155. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +23 -26
  156. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -4
  157. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -3
  158. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -1
  159. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +34 -82
  160. data/src/core/ext/transport/chttp2/transport/frame_settings.h +5 -8
  161. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +1 -3
  162. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -1
  163. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +16 -22
  164. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -3
  165. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
  166. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +184 -0
  167. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +351 -0
  168. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +640 -547
  169. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +160 -12
  170. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +48 -33
  171. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +19 -5
  172. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +122 -32
  173. data/src/core/ext/transport/chttp2/transport/http2_settings.h +142 -37
  174. data/src/core/ext/transport/chttp2/transport/internal.h +228 -181
  175. data/src/core/ext/transport/chttp2/transport/legacy_frame.h +43 -0
  176. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +44 -0
  177. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +67 -0
  178. data/src/core/ext/transport/chttp2/transport/parsing.cc +168 -60
  179. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +90 -0
  180. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +59 -0
  181. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +108 -0
  182. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +115 -0
  183. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +120 -0
  184. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +88 -0
  185. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +1 -1
  186. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +60 -0
  187. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +66 -0
  188. data/src/core/ext/transport/chttp2/transport/writing.cc +238 -179
  189. data/src/core/ext/transport/inproc/inproc_transport.cc +163 -1229
  190. data/src/core/ext/transport/inproc/inproc_transport.h +0 -4
  191. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1303 -0
  192. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +30 -0
  193. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +725 -0
  194. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +149 -0
  195. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +34 -0
  196. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +827 -0
  197. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +180 -0
  198. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +33 -0
  199. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +733 -0
  200. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +157 -0
  201. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +34 -0
  202. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +2772 -0
  203. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +532 -0
  204. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +48 -0
  205. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +248 -0
  206. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +66 -0
  207. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +31 -0
  208. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +280 -0
  209. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +74 -0
  210. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +31 -0
  211. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +162 -0
  212. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +56 -0
  213. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +30 -0
  214. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +122 -0
  215. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +49 -0
  216. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +30 -0
  217. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +117 -0
  218. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +49 -0
  219. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +30 -0
  220. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +928 -0
  221. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +150 -0
  222. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +31 -0
  223. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +117 -0
  224. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +54 -0
  225. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +30 -0
  226. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +122 -0
  227. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +58 -0
  228. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +33 -0
  229. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +109 -0
  230. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +55 -0
  231. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +31 -0
  232. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +1753 -0
  233. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +375 -0
  234. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +45 -0
  235. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +3420 -0
  236. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +612 -0
  237. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +49 -0
  238. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +526 -0
  239. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +125 -0
  240. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +32 -0
  241. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +3890 -0
  242. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +729 -0
  243. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +53 -0
  244. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +117 -0
  245. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +54 -0
  246. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +30 -0
  247. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +659 -0
  248. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +123 -0
  249. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +30 -0
  250. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +1830 -0
  251. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +395 -0
  252. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +44 -0
  253. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +1041 -0
  254. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +224 -0
  255. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +37 -0
  256. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +129 -0
  257. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +55 -0
  258. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +30 -0
  259. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +2420 -0
  260. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +577 -0
  261. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +53 -0
  262. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +1130 -0
  263. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +225 -0
  264. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +36 -0
  265. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +110 -0
  266. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +51 -0
  267. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +30 -0
  268. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +116 -0
  269. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +53 -0
  270. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +30 -0
  271. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +250 -0
  272. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +68 -0
  273. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +31 -0
  274. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +1688 -0
  275. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +378 -0
  276. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +43 -0
  277. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +1938 -0
  278. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +315 -0
  279. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +38 -0
  280. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +144 -0
  281. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +55 -0
  282. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +30 -0
  283. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +2245 -0
  284. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +481 -0
  285. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +45 -0
  286. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +238 -0
  287. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +70 -0
  288. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +31 -0
  289. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +232 -0
  290. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +72 -0
  291. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +31 -0
  292. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +287 -0
  293. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +76 -0
  294. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +31 -0
  295. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +255 -0
  296. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +66 -0
  297. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +30 -0
  298. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +129 -0
  299. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +54 -0
  300. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +30 -0
  301. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +489 -0
  302. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +138 -0
  303. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +33 -0
  304. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +993 -0
  305. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +229 -0
  306. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +36 -0
  307. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +911 -0
  308. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +179 -0
  309. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +34 -0
  310. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +101 -0
  311. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +50 -0
  312. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +30 -0
  313. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +1613 -0
  314. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +268 -0
  315. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +39 -0
  316. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +1447 -0
  317. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +260 -0
  318. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +36 -0
  319. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +327 -0
  320. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +86 -0
  321. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +30 -0
  322. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +197 -0
  323. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +77 -0
  324. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +31 -0
  325. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +183 -0
  326. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +64 -0
  327. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +30 -0
  328. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +974 -0
  329. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +219 -0
  330. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +37 -0
  331. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +1183 -0
  332. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +250 -0
  333. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +39 -0
  334. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +1704 -0
  335. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +348 -0
  336. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +40 -0
  337. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +857 -0
  338. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +133 -0
  339. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +32 -0
  340. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +9666 -0
  341. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +1667 -0
  342. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +87 -0
  343. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +341 -0
  344. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +97 -0
  345. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +32 -0
  346. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +1515 -0
  347. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +325 -0
  348. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +41 -0
  349. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +119 -0
  350. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +51 -0
  351. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +30 -0
  352. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +118 -0
  353. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +55 -0
  354. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +30 -0
  355. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +190 -0
  356. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +73 -0
  357. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +31 -0
  358. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +202 -0
  359. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +62 -0
  360. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +30 -0
  361. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +409 -0
  362. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +81 -0
  363. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +30 -0
  364. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +115 -0
  365. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +52 -0
  366. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +30 -0
  367. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +102 -0
  368. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +51 -0
  369. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +30 -0
  370. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +254 -0
  371. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +85 -0
  372. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +31 -0
  373. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +49 -0
  374. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +33 -0
  375. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +39 -0
  376. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +256 -0
  377. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +87 -0
  378. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +31 -0
  379. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +201 -0
  380. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +65 -0
  381. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +30 -0
  382. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +2691 -0
  383. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +555 -0
  384. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +45 -0
  385. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +134 -0
  386. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +46 -0
  387. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +30 -0
  388. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +428 -0
  389. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +116 -0
  390. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +34 -0
  391. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +656 -0
  392. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +141 -0
  393. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +32 -0
  394. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +266 -0
  395. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +87 -0
  396. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +31 -0
  397. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +462 -0
  398. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +101 -0
  399. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +31 -0
  400. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +194 -0
  401. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +72 -0
  402. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +31 -0
  403. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +3943 -0
  404. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +679 -0
  405. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +50 -0
  406. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +101 -0
  407. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +50 -0
  408. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +30 -0
  409. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +239 -0
  410. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +67 -0
  411. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +30 -0
  412. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +488 -0
  413. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +135 -0
  414. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +34 -0
  415. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +86 -0
  416. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +44 -0
  417. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +30 -0
  418. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +250 -0
  419. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +68 -0
  420. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +30 -0
  421. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +101 -0
  422. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +50 -0
  423. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +30 -0
  424. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +39 -0
  425. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +28 -0
  426. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +34 -0
  427. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +1469 -0
  428. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +262 -0
  429. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +36 -0
  430. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +361 -0
  431. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +108 -0
  432. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +32 -0
  433. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +1467 -0
  434. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +267 -0
  435. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +36 -0
  436. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +217 -0
  437. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +72 -0
  438. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +31 -0
  439. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +712 -0
  440. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +151 -0
  441. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +33 -0
  442. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +73 -0
  443. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +38 -0
  444. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +30 -0
  445. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +2141 -0
  446. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +402 -0
  447. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +43 -0
  448. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +324 -0
  449. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +84 -0
  450. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +31 -0
  451. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +925 -0
  452. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +183 -0
  453. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +34 -0
  454. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +131 -0
  455. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +54 -0
  456. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +30 -0
  457. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +312 -0
  458. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +86 -0
  459. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +33 -0
  460. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +124 -0
  461. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +53 -0
  462. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +30 -0
  463. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +299 -0
  464. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +105 -0
  465. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +34 -0
  466. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +260 -0
  467. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +76 -0
  468. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +31 -0
  469. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +166 -0
  470. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +55 -0
  471. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +30 -0
  472. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +130 -0
  473. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +54 -0
  474. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +30 -0
  475. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +110 -0
  476. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +51 -0
  477. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +30 -0
  478. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +271 -0
  479. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +96 -0
  480. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +32 -0
  481. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +109 -0
  482. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +43 -0
  483. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +31 -0
  484. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +306 -0
  485. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +81 -0
  486. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +31 -0
  487. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +230 -0
  488. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +70 -0
  489. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +31 -0
  490. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +347 -0
  491. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +92 -0
  492. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +32 -0
  493. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +525 -0
  494. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +127 -0
  495. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +36 -0
  496. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +506 -0
  497. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +139 -0
  498. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +34 -0
  499. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +227 -0
  500. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +76 -0
  501. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +32 -0
  502. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +38 -0
  503. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +26 -0
  504. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +29 -0
  505. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +148 -0
  506. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +46 -0
  507. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +30 -0
  508. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +162 -0
  509. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +64 -0
  510. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +31 -0
  511. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +238 -0
  512. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +84 -0
  513. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +32 -0
  514. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +232 -0
  515. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +75 -0
  516. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +31 -0
  517. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +42 -0
  518. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +26 -0
  519. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +29 -0
  520. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +117 -0
  521. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +49 -0
  522. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +30 -0
  523. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +146 -0
  524. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +57 -0
  525. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +30 -0
  526. data/src/core/ext/upb-gen/google/api/annotations.upb.h +56 -0
  527. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +38 -0
  528. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +30 -0
  529. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +1743 -0
  530. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +369 -0
  531. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +42 -0
  532. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +1829 -0
  533. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +399 -0
  534. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +43 -0
  535. data/src/core/ext/upb-gen/google/api/http.upb.h +496 -0
  536. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +111 -0
  537. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +32 -0
  538. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +165 -0
  539. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +52 -0
  540. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +30 -0
  541. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +99 -0
  542. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +46 -0
  543. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +30 -0
  544. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +6397 -0
  545. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +1357 -0
  546. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +78 -0
  547. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +99 -0
  548. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +46 -0
  549. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +30 -0
  550. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +69 -0
  551. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +35 -0
  552. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +30 -0
  553. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +422 -0
  554. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +115 -0
  555. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +33 -0
  556. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +99 -0
  557. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +46 -0
  558. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +30 -0
  559. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +508 -0
  560. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +163 -0
  561. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +38 -0
  562. data/src/core/ext/upb-gen/google/rpc/status.upb.h +165 -0
  563. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +52 -0
  564. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +30 -0
  565. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +385 -0
  566. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +106 -0
  567. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +33 -0
  568. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +237 -0
  569. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +79 -0
  570. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +31 -0
  571. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +1658 -0
  572. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +342 -0
  573. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +41 -0
  574. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +197 -0
  575. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +69 -0
  576. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +31 -0
  577. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +144 -0
  578. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +58 -0
  579. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +31 -0
  580. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +877 -0
  581. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +221 -0
  582. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +38 -0
  583. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +297 -0
  584. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +92 -0
  585. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +32 -0
  586. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +1333 -0
  587. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +243 -0
  588. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +38 -0
  589. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +322 -0
  590. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +118 -0
  591. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +37 -0
  592. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +125 -0
  593. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +59 -0
  594. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +31 -0
  595. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +55 -0
  596. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +37 -0
  597. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +30 -0
  598. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +131 -0
  599. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +58 -0
  600. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +31 -0
  601. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +109 -0
  602. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +55 -0
  603. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +31 -0
  604. data/src/core/ext/upb-gen/validate/validate.upb.h +6507 -0
  605. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +943 -0
  606. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +57 -0
  607. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +322 -0
  608. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +118 -0
  609. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +37 -0
  610. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +125 -0
  611. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +59 -0
  612. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +31 -0
  613. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +55 -0
  614. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +37 -0
  615. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +30 -0
  616. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +336 -0
  617. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +117 -0
  618. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +36 -0
  619. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +109 -0
  620. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +55 -0
  621. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +31 -0
  622. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +87 -0
  623. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +45 -0
  624. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +30 -0
  625. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +116 -0
  626. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +53 -0
  627. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +30 -0
  628. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +234 -0
  629. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +78 -0
  630. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +31 -0
  631. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +134 -0
  632. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +62 -0
  633. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +31 -0
  634. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +115 -0
  635. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +52 -0
  636. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +30 -0
  637. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +144 -0
  638. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +55 -0
  639. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +30 -0
  640. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +331 -0
  641. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +84 -0
  642. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +31 -0
  643. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +146 -0
  644. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +59 -0
  645. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +30 -0
  646. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +350 -0
  647. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +126 -0
  648. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +33 -0
  649. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +161 -0
  650. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +52 -0
  651. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +30 -0
  652. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +101 -0
  653. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +50 -0
  654. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +30 -0
  655. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +263 -0
  656. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +72 -0
  657. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +31 -0
  658. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +71 -0
  659. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +36 -0
  660. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +30 -0
  661. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +282 -0
  662. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +75 -0
  663. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +31 -0
  664. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +1107 -0
  665. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +265 -0
  666. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +39 -0
  667. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +726 -0
  668. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +157 -0
  669. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +35 -0
  670. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +159 -0
  671. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +58 -0
  672. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +31 -0
  673. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +304 -0
  674. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +79 -0
  675. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +31 -0
  676. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +233 -0
  677. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +79 -0
  678. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +31 -0
  679. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +235 -0
  680. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +82 -0
  681. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +32 -0
  682. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +114 -0
  683. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +51 -0
  684. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +30 -0
  685. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +83 -0
  686. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +55 -0
  687. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +127 -0
  688. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +50 -0
  689. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +101 -0
  690. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +55 -0
  691. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +276 -0
  692. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +125 -0
  693. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +42 -0
  694. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  695. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +55 -0
  696. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +40 -0
  697. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +48 -0
  698. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +35 -0
  699. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +45 -0
  700. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +35 -0
  701. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +45 -0
  702. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  703. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +141 -0
  704. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +40 -0
  705. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -0
  706. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +35 -0
  707. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +47 -0
  708. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +30 -0
  709. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +37 -0
  710. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +35 -0
  711. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +233 -0
  712. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +110 -0
  713. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +422 -0
  714. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +130 -0
  715. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +97 -0
  716. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  717. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +566 -0
  718. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +150 -0
  719. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +50 -0
  720. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  721. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +137 -0
  722. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  723. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +205 -0
  724. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  725. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +131 -0
  726. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +70 -0
  727. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +53 -0
  728. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  729. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +270 -0
  730. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +150 -0
  731. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +167 -0
  732. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +65 -0
  733. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +52 -0
  734. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  735. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +46 -0
  736. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +35 -0
  737. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +52 -0
  738. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  739. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +236 -0
  740. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  741. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +244 -0
  742. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +75 -0
  743. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +52 -0
  744. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  745. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +310 -0
  746. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +110 -0
  747. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +56 -0
  748. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +40 -0
  749. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +54 -0
  750. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  751. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +60 -0
  752. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +40 -0
  753. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +69 -0
  754. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  755. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +48 -0
  756. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  757. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +98 -0
  758. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  759. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +139 -0
  760. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +65 -0
  761. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +135 -0
  762. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  763. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +47 -0
  764. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  765. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +231 -0
  766. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +80 -0
  767. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +189 -0
  768. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  769. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +100 -0
  770. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  771. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +70 -0
  772. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  773. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +75 -0
  774. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  775. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +124 -0
  776. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  777. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  778. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +80 -0
  779. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +222 -0
  780. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +85 -0
  781. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +122 -0
  782. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +45 -0
  783. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +979 -0
  784. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +320 -0
  785. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +76 -0
  786. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  787. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +198 -0
  788. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +90 -0
  789. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +55 -0
  790. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  791. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +56 -0
  792. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  793. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +56 -0
  794. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  795. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +71 -0
  796. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  797. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +98 -0
  798. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  799. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +44 -0
  800. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  801. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +51 -0
  802. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +35 -0
  803. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +70 -0
  804. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  805. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +60 -0
  806. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  807. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +74 -0
  808. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  809. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +78 -0
  810. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  811. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +401 -0
  812. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +110 -0
  813. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +49 -0
  814. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  815. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +91 -0
  816. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  817. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +122 -0
  818. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  819. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +79 -0
  820. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  821. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +104 -0
  822. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +40 -0
  823. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +59 -0
  824. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
  825. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +601 -0
  826. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +135 -0
  827. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +49 -0
  828. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
  829. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +47 -0
  830. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  831. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +214 -0
  832. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +65 -0
  833. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +90 -0
  834. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  835. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +257 -0
  836. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +65 -0
  837. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +57 -0
  838. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  839. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +133 -0
  840. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +50 -0
  841. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +57 -0
  842. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  843. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +199 -0
  844. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +100 -0
  845. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +75 -0
  846. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  847. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +154 -0
  848. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +55 -0
  849. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +45 -0
  850. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  851. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +55 -0
  852. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  853. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +47 -0
  854. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
  855. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +54 -0
  856. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +55 -0
  857. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +60 -0
  858. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  859. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +53 -0
  860. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  861. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +51 -0
  862. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  863. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +50 -0
  864. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  865. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +70 -0
  866. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  867. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +39 -0
  868. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
  869. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +64 -0
  870. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  871. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +57 -0
  872. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  873. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +74 -0
  874. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  875. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +77 -0
  876. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  877. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +84 -0
  878. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  879. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +52 -0
  880. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  881. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +35 -0
  882. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +30 -0
  883. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +93 -0
  884. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +35 -0
  885. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +53 -0
  886. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +40 -0
  887. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +47 -0
  888. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +45 -0
  889. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +68 -0
  890. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  891. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  892. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  893. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +43 -0
  894. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  895. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +56 -0
  896. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  897. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +39 -0
  898. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +30 -0
  899. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +153 -0
  900. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  901. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +152 -0
  902. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  903. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +51 -0
  904. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +45 -0
  905. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +38 -0
  906. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +35 -0
  907. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +33 -0
  908. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +35 -0
  909. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +488 -0
  910. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +190 -0
  911. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +34 -0
  912. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +35 -0
  913. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +31 -0
  914. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +35 -0
  915. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +53 -0
  916. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +50 -0
  917. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +34 -0
  918. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +35 -0
  919. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +44 -0
  920. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +75 -0
  921. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +36 -0
  922. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +35 -0
  923. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +66 -0
  924. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  925. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +98 -0
  926. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
  927. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +61 -0
  928. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +45 -0
  929. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +46 -0
  930. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +35 -0
  931. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +33 -0
  932. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +30 -0
  933. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +45 -0
  934. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +35 -0
  935. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +38 -0
  936. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +35 -0
  937. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +282 -0
  938. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +145 -0
  939. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +62 -0
  940. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +45 -0
  941. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +46 -0
  942. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +35 -0
  943. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +34 -0
  944. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  945. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +63 -0
  946. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +50 -0
  947. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +39 -0
  948. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +35 -0
  949. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +37 -0
  950. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +35 -0
  951. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +44 -0
  952. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +35 -0
  953. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +55 -0
  954. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +40 -0
  955. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +38 -0
  956. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +40 -0
  957. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +40 -0
  958. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +35 -0
  959. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +44 -0
  960. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +35 -0
  961. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +60 -0
  962. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +40 -0
  963. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -0
  964. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +35 -0
  965. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +42 -0
  966. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +35 -0
  967. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +50 -0
  968. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +40 -0
  969. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +35 -0
  970. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
  971. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +54 -0
  972. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +40 -0
  973. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +125 -0
  974. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  975. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +70 -0
  976. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +60 -0
  977. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +39 -0
  978. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  979. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +51 -0
  980. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +40 -0
  981. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +59 -0
  982. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +40 -0
  983. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +35 -0
  984. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +45 -0
  985. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +36 -0
  986. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +35 -0
  987. data/src/core/ext/xds/certificate_provider_store.cc +10 -14
  988. data/src/core/ext/xds/certificate_provider_store.h +1 -6
  989. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -43
  990. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
  991. data/src/core/ext/xds/upb_utils.h +1 -1
  992. data/src/core/ext/xds/xds_api.cc +69 -34
  993. data/src/core/ext/xds/xds_api.h +7 -6
  994. data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
  995. data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
  996. data/src/core/ext/xds/xds_bootstrap.cc +3 -3
  997. data/src/core/ext/xds/xds_bootstrap.h +3 -0
  998. data/src/core/ext/xds/xds_bootstrap_grpc.cc +65 -51
  999. data/src/core/ext/xds/xds_bootstrap_grpc.h +10 -13
  1000. data/src/core/ext/xds/xds_certificate_provider.cc +88 -287
  1001. data/src/core/ext/xds/xds_certificate_provider.h +44 -111
  1002. data/src/core/ext/xds/xds_channel_stack_modifier.cc +17 -28
  1003. data/src/core/ext/xds/xds_channel_stack_modifier.h +3 -5
  1004. data/src/core/ext/xds/xds_client.cc +447 -421
  1005. data/src/core/ext/xds/xds_client.h +33 -24
  1006. data/src/core/ext/xds/xds_client_grpc.cc +15 -7
  1007. data/src/core/ext/xds/xds_client_grpc.h +16 -2
  1008. data/src/core/ext/xds/xds_client_stats.h +11 -2
  1009. data/src/core/ext/xds/xds_cluster.cc +203 -119
  1010. data/src/core/ext/xds/xds_cluster.h +12 -7
  1011. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +22 -14
  1012. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
  1013. data/src/core/ext/xds/xds_common_types.cc +21 -15
  1014. data/src/core/ext/xds/xds_endpoint.cc +111 -72
  1015. data/src/core/ext/xds/xds_endpoint.h +8 -5
  1016. data/src/core/ext/xds/xds_health_status.cc +13 -18
  1017. data/src/core/ext/xds/xds_health_status.h +10 -28
  1018. data/src/core/ext/xds/xds_http_fault_filter.cc +16 -14
  1019. data/src/core/ext/xds/xds_http_fault_filter.h +1 -1
  1020. data/src/core/ext/xds/xds_http_filters.cc +1 -5
  1021. data/src/core/ext/xds/xds_http_filters.h +3 -2
  1022. data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -72
  1023. data/src/core/ext/xds/xds_http_rbac_filter.h +1 -1
  1024. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +16 -16
  1025. data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -1
  1026. data/src/core/ext/xds/xds_lb_policy_registry.cc +60 -36
  1027. data/src/core/ext/xds/xds_listener.cc +38 -27
  1028. data/src/core/ext/xds/xds_listener.h +14 -4
  1029. data/src/core/ext/xds/xds_resource_type.h +3 -9
  1030. data/src/core/ext/xds/xds_resource_type_impl.h +11 -11
  1031. data/src/core/ext/xds/xds_route_config.cc +95 -41
  1032. data/src/core/ext/xds/xds_route_config.h +3 -2
  1033. data/src/core/ext/xds/xds_server_config_fetcher.cc +110 -81
  1034. data/src/core/ext/xds/xds_transport.h +3 -0
  1035. data/src/core/ext/xds/xds_transport_grpc.cc +61 -52
  1036. data/src/core/ext/xds/xds_transport_grpc.h +4 -0
  1037. data/src/core/lib/address_utils/parse_address.cc +63 -1
  1038. data/src/core/lib/address_utils/parse_address.h +8 -0
  1039. data/src/core/lib/address_utils/sockaddr_utils.cc +46 -2
  1040. data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
  1041. data/src/core/lib/avl/avl.h +16 -173
  1042. data/src/core/lib/backoff/random_early_detection.cc +4 -2
  1043. data/src/core/lib/backoff/random_early_detection.h +7 -4
  1044. data/src/core/lib/channel/call_tracer.cc +315 -1
  1045. data/src/core/lib/channel/call_tracer.h +63 -4
  1046. data/src/core/lib/channel/channel_args.cc +131 -48
  1047. data/src/core/lib/channel/channel_args.h +125 -16
  1048. data/src/core/lib/channel/channel_args_preconditioning.cc +0 -1
  1049. data/src/core/lib/channel/channel_stack.cc +36 -1
  1050. data/src/core/lib/channel/channel_stack.h +10 -10
  1051. data/src/core/lib/channel/channel_stack_builder.h +4 -15
  1052. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -19
  1053. data/src/core/lib/channel/channel_stack_trace.cc +19 -0
  1054. data/src/core/lib/channel/channel_stack_trace.h +24 -0
  1055. data/src/core/lib/channel/channel_trace.cc +17 -13
  1056. data/src/core/lib/channel/channelz.cc +163 -135
  1057. data/src/core/lib/channel/channelz.h +42 -35
  1058. data/src/core/lib/channel/channelz_registry.cc +24 -20
  1059. data/src/core/lib/channel/channelz_registry.h +4 -2
  1060. data/src/core/lib/channel/connected_channel.cc +229 -102
  1061. data/src/core/lib/channel/context.h +3 -0
  1062. data/src/core/lib/channel/promise_based_filter.cc +21 -19
  1063. data/src/core/lib/channel/promise_based_filter.h +1046 -3
  1064. data/src/core/lib/channel/server_call_tracer_filter.cc +43 -42
  1065. data/src/core/lib/channel/status_util.cc +0 -1
  1066. data/src/core/lib/channel/tcp_tracer.h +140 -0
  1067. data/src/core/lib/compression/compression_internal.cc +8 -8
  1068. data/src/core/lib/config/config_vars.cc +19 -18
  1069. data/src/core/lib/config/config_vars.h +5 -5
  1070. data/src/core/lib/config/config_vars_non_generated.cc +0 -2
  1071. data/src/core/lib/config/core_configuration.cc +2 -2
  1072. data/src/core/lib/config/core_configuration.h +5 -4
  1073. data/src/core/lib/config/load_config.cc +13 -0
  1074. data/src/core/lib/config/load_config.h +6 -0
  1075. data/src/core/lib/debug/event_log.h +1 -1
  1076. data/src/core/lib/debug/stats_data.cc +202 -35
  1077. data/src/core/lib/debug/stats_data.h +103 -1
  1078. data/src/core/lib/debug/trace.cc +31 -56
  1079. data/src/core/lib/debug/trace.h +14 -4
  1080. data/src/core/lib/event_engine/ares_resolver.cc +747 -0
  1081. data/src/core/lib/event_engine/ares_resolver.h +151 -0
  1082. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +221 -0
  1083. data/src/core/lib/event_engine/cf_engine/cf_engine.h +89 -0
  1084. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +357 -0
  1085. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +149 -0
  1086. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +82 -0
  1087. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +249 -0
  1088. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +120 -0
  1089. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +2 -0
  1090. data/src/core/lib/event_engine/default_event_engine.cc +13 -1
  1091. data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
  1092. data/src/core/lib/event_engine/event_engine.cc +0 -14
  1093. data/src/core/lib/event_engine/forkable.cc +65 -65
  1094. data/src/core/lib/event_engine/forkable.h +46 -25
  1095. data/src/core/lib/event_engine/grpc_polled_fd.h +92 -0
  1096. data/src/core/lib/event_engine/handle_containers.h +0 -4
  1097. data/src/core/lib/event_engine/nameser.h +102 -0
  1098. data/src/core/lib/event_engine/poller.h +2 -2
  1099. data/src/core/lib/event_engine/posix.h +4 -0
  1100. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +11 -15
  1101. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +2 -3
  1102. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +39 -24
  1103. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +12 -10
  1104. data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -1
  1105. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +23 -4
  1106. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -1
  1107. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +205 -0
  1108. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +0 -2
  1109. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
  1110. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +132 -0
  1111. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +61 -0
  1112. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +29 -16
  1113. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +12 -2
  1114. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +150 -68
  1115. data/src/core/lib/event_engine/posix_engine/posix_engine.h +37 -30
  1116. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +70 -31
  1117. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +12 -8
  1118. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +15 -5
  1119. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +59 -8
  1120. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +16 -0
  1121. data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
  1122. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +17 -27
  1123. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -4
  1124. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -0
  1125. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +0 -1
  1126. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +0 -1
  1127. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +55 -0
  1128. data/src/core/lib/event_engine/shim.cc +13 -3
  1129. data/src/core/lib/event_engine/slice_buffer.cc +0 -1
  1130. data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -8
  1131. data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
  1132. data/src/core/lib/event_engine/thread_pool/thread_count.cc +58 -0
  1133. data/src/core/lib/event_engine/thread_pool/thread_count.h +176 -0
  1134. data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
  1135. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +49 -0
  1136. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +527 -0
  1137. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +223 -0
  1138. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +157 -0
  1139. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +104 -0
  1140. data/src/core/lib/event_engine/trace.cc +1 -0
  1141. data/src/core/lib/event_engine/trace.h +6 -0
  1142. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +823 -0
  1143. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +75 -0
  1144. data/src/core/lib/event_engine/windows/iocp.cc +4 -3
  1145. data/src/core/lib/event_engine/windows/iocp.h +3 -3
  1146. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +114 -0
  1147. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +51 -0
  1148. data/src/core/lib/event_engine/windows/win_socket.cc +24 -17
  1149. data/src/core/lib/event_engine/windows/win_socket.h +23 -11
  1150. data/src/core/lib/event_engine/windows/windows_endpoint.cc +77 -77
  1151. data/src/core/lib/event_engine/windows/windows_endpoint.h +17 -13
  1152. data/src/core/lib/event_engine/windows/windows_engine.cc +102 -54
  1153. data/src/core/lib/event_engine/windows/windows_engine.h +30 -20
  1154. data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
  1155. data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
  1156. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +65 -0
  1157. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +74 -0
  1158. data/src/core/lib/event_engine/work_queue/work_queue.h +66 -0
  1159. data/src/core/lib/experiments/config.cc +134 -30
  1160. data/src/core/lib/experiments/config.h +36 -5
  1161. data/src/core/lib/experiments/experiments.cc +733 -31
  1162. data/src/core/lib/experiments/experiments.h +336 -38
  1163. data/src/core/lib/gpr/alloc.cc +1 -0
  1164. data/src/core/lib/gpr/log_internal.h +55 -0
  1165. data/src/core/lib/gpr/posix/time.cc +5 -0
  1166. data/src/core/lib/gprpp/crash.cc +10 -0
  1167. data/src/core/lib/gprpp/crash.h +3 -0
  1168. data/src/core/lib/gprpp/debug_location.h +13 -0
  1169. data/src/core/lib/gprpp/directory_reader.h +48 -0
  1170. data/src/core/lib/gprpp/dual_ref_counted.h +45 -16
  1171. data/src/core/lib/gprpp/fork.cc +8 -9
  1172. data/src/core/lib/gprpp/fork.h +7 -6
  1173. data/src/core/lib/gprpp/host_port.cc +0 -2
  1174. data/src/core/lib/gprpp/if_list.h +4530 -0
  1175. data/src/core/lib/gprpp/manual_constructor.h +1 -2
  1176. data/src/core/lib/gprpp/match.h +1 -1
  1177. data/src/core/lib/gprpp/no_destruct.h +1 -1
  1178. data/src/core/lib/gprpp/orphanable.h +30 -3
  1179. data/src/core/lib/gprpp/per_cpu.cc +35 -0
  1180. data/src/core/lib/gprpp/per_cpu.h +61 -9
  1181. data/src/core/lib/gprpp/posix/directory_reader.cc +82 -0
  1182. data/src/core/lib/gprpp/posix/stat.cc +0 -1
  1183. data/src/core/lib/gprpp/ref_counted.h +72 -29
  1184. data/src/core/lib/gprpp/ref_counted_ptr.h +133 -27
  1185. data/src/core/lib/gprpp/ref_counted_string.cc +44 -0
  1186. data/src/core/lib/gprpp/ref_counted_string.h +161 -0
  1187. data/src/core/lib/gprpp/sorted_pack.h +3 -12
  1188. data/src/core/lib/gprpp/status_helper.cc +2 -4
  1189. data/src/core/lib/gprpp/status_helper.h +16 -15
  1190. data/src/core/lib/gprpp/strerror.cc +0 -2
  1191. data/src/core/lib/gprpp/time.cc +1 -1
  1192. data/src/core/lib/gprpp/time.h +13 -1
  1193. data/src/core/lib/gprpp/type_list.h +32 -0
  1194. data/src/core/lib/gprpp/validation_errors.cc +8 -4
  1195. data/src/core/lib/gprpp/validation_errors.h +16 -9
  1196. data/src/core/lib/gprpp/windows/directory_reader.cc +80 -0
  1197. data/src/core/lib/gprpp/work_serializer.cc +323 -12
  1198. data/src/core/lib/gprpp/work_serializer.h +30 -9
  1199. data/src/core/lib/gprpp/xxhash_inline.h +29 -0
  1200. data/src/core/lib/http/format_request.cc +0 -1
  1201. data/src/core/lib/http/httpcli.cc +0 -2
  1202. data/src/core/lib/http/httpcli.h +6 -9
  1203. data/src/core/lib/http/httpcli_security_connector.cc +1 -0
  1204. data/src/core/lib/iomgr/buffer_list.cc +2 -0
  1205. data/src/core/lib/iomgr/buffer_list.h +0 -1
  1206. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  1207. data/src/core/lib/iomgr/combiner.cc +24 -18
  1208. data/src/core/lib/iomgr/combiner.h +8 -3
  1209. data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
  1210. data/src/core/lib/iomgr/error.cc +32 -2
  1211. data/src/core/lib/iomgr/error.h +9 -10
  1212. data/src/core/lib/iomgr/ev_apple.cc +12 -12
  1213. data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -10
  1214. data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
  1215. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +57 -27
  1216. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +16 -0
  1217. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +3 -2
  1218. data/src/core/lib/iomgr/exec_ctx.cc +12 -0
  1219. data/src/core/lib/iomgr/exec_ctx.h +66 -19
  1220. data/src/core/lib/iomgr/iocp_windows.cc +24 -3
  1221. data/src/core/lib/iomgr/iocp_windows.h +11 -0
  1222. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
  1223. data/src/core/lib/iomgr/polling_entity.cc +10 -0
  1224. data/src/core/lib/iomgr/polling_entity.h +2 -0
  1225. data/src/core/lib/iomgr/pollset.h +4 -5
  1226. data/src/core/lib/iomgr/port.h +24 -0
  1227. data/src/core/lib/iomgr/resolve_address.cc +13 -1
  1228. data/src/core/lib/iomgr/resolve_address.h +17 -3
  1229. data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
  1230. data/src/core/lib/iomgr/socket_utils_common_posix.cc +46 -2
  1231. data/src/core/lib/iomgr/socket_utils_posix.cc +5 -0
  1232. data/src/core/lib/iomgr/socket_utils_posix.h +9 -0
  1233. data/src/core/lib/iomgr/socket_windows.cc +61 -7
  1234. data/src/core/lib/iomgr/socket_windows.h +9 -2
  1235. data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
  1236. data/src/core/lib/iomgr/tcp_client_posix.cc +12 -4
  1237. data/src/core/lib/iomgr/tcp_posix.cc +48 -22
  1238. data/src/core/lib/iomgr/tcp_server_posix.cc +184 -120
  1239. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -1
  1240. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -2
  1241. data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
  1242. data/src/core/lib/iomgr/tcp_windows.cc +1 -3
  1243. data/src/core/lib/iomgr/timer_generic.cc +17 -16
  1244. data/src/core/lib/iomgr/timer_manager.cc +7 -1
  1245. data/src/core/lib/iomgr/timer_manager.h +2 -0
  1246. data/src/core/lib/iomgr/vsock.cc +59 -0
  1247. data/src/core/lib/iomgr/vsock.h +38 -0
  1248. data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
  1249. data/src/core/lib/json/json.h +2 -218
  1250. data/src/core/lib/json/json_object_loader.cc +24 -25
  1251. data/src/core/lib/json/json_object_loader.h +30 -19
  1252. data/src/core/lib/json/json_reader.cc +69 -43
  1253. data/src/core/lib/json/json_reader.h +34 -0
  1254. data/src/core/lib/json/json_util.cc +10 -15
  1255. data/src/core/lib/json/json_util.h +5 -4
  1256. data/src/core/lib/json/json_writer.cc +24 -25
  1257. data/src/core/lib/json/json_writer.h +33 -0
  1258. data/src/core/lib/load_balancing/delegating_helper.h +116 -0
  1259. data/src/core/lib/load_balancing/lb_policy.h +51 -14
  1260. data/src/core/lib/load_balancing/lb_policy_registry.cc +9 -9
  1261. data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
  1262. data/src/core/lib/matchers/matchers.cc +3 -5
  1263. data/src/core/lib/matchers/matchers.h +2 -1
  1264. data/src/core/lib/promise/activity.cc +20 -1
  1265. data/src/core/lib/promise/activity.h +12 -1
  1266. data/src/core/lib/promise/all_ok.h +80 -0
  1267. data/src/core/lib/promise/arena_promise.h +5 -1
  1268. data/src/core/lib/promise/cancel_callback.h +0 -2
  1269. data/src/core/lib/promise/context.h +0 -1
  1270. data/src/core/lib/promise/detail/basic_seq.h +1 -372
  1271. data/src/core/lib/promise/detail/join_state.h +2077 -0
  1272. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  1273. data/src/core/lib/promise/detail/promise_like.h +8 -1
  1274. data/src/core/lib/promise/detail/seq_state.h +5801 -0
  1275. data/src/core/lib/promise/detail/status.h +42 -5
  1276. data/src/core/lib/promise/for_each.h +13 -3
  1277. data/src/core/lib/promise/if.h +4 -1
  1278. data/src/core/lib/promise/interceptor_list.h +0 -1
  1279. data/src/core/lib/promise/latch.h +7 -5
  1280. data/src/core/lib/promise/loop.h +9 -6
  1281. data/src/core/lib/promise/map.h +0 -1
  1282. data/src/core/lib/promise/party.cc +64 -46
  1283. data/src/core/lib/promise/party.h +153 -9
  1284. data/src/core/lib/promise/pipe.h +44 -29
  1285. data/src/core/lib/promise/poll.h +43 -19
  1286. data/src/core/lib/promise/prioritized_race.h +94 -0
  1287. data/src/core/lib/promise/promise.h +4 -1
  1288. data/src/core/lib/promise/race.h +0 -1
  1289. data/src/core/lib/promise/seq.h +124 -8
  1290. data/src/core/lib/promise/sleep.cc +2 -1
  1291. data/src/core/lib/promise/sleep.h +5 -10
  1292. data/src/core/lib/promise/status_flag.h +196 -0
  1293. data/src/core/lib/promise/try_join.h +71 -21
  1294. data/src/core/lib/promise/try_seq.h +161 -7
  1295. data/src/core/lib/resolver/endpoint_addresses.cc +147 -0
  1296. data/src/core/lib/resolver/endpoint_addresses.h +164 -0
  1297. data/src/core/lib/resolver/resolver.h +4 -3
  1298. data/src/core/lib/resolver/resolver_factory.h +3 -2
  1299. data/src/core/lib/resolver/resolver_registry.cc +0 -2
  1300. data/src/core/lib/resolver/server_address.h +5 -115
  1301. data/src/core/lib/resource_quota/api.cc +1 -0
  1302. data/src/core/lib/resource_quota/arena.cc +2 -0
  1303. data/src/core/lib/resource_quota/arena.h +44 -10
  1304. data/src/core/lib/resource_quota/memory_quota.cc +135 -28
  1305. data/src/core/lib/resource_quota/memory_quota.h +14 -15
  1306. data/src/core/lib/resource_quota/resource_quota.h +1 -0
  1307. data/src/core/lib/security/authorization/audit_logging.cc +97 -0
  1308. data/src/core/lib/security/authorization/audit_logging.h +73 -0
  1309. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  1310. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
  1311. data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
  1312. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +15 -12
  1313. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +14 -5
  1314. data/src/core/lib/security/authorization/matchers.cc +0 -1
  1315. data/src/core/lib/security/authorization/rbac_policy.cc +36 -6
  1316. data/src/core/lib/security/authorization/rbac_policy.h +19 -2
  1317. data/src/core/lib/security/authorization/stdout_logger.cc +74 -0
  1318. data/src/core/lib/security/authorization/stdout_logger.h +61 -0
  1319. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
  1320. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
  1321. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
  1322. data/src/core/lib/security/credentials/alts/alts_credentials.cc +0 -2
  1323. data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
  1324. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
  1325. data/src/core/lib/security/credentials/composite/composite_credentials.cc +2 -2
  1326. data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -2
  1327. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +58 -50
  1328. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -0
  1329. data/src/core/lib/security/credentials/external/aws_request_signer.cc +8 -2
  1330. data/src/core/lib/security/credentials/external/external_account_credentials.cc +132 -87
  1331. data/src/core/lib/security/credentials/external/external_account_credentials.h +10 -0
  1332. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +27 -21
  1333. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -0
  1334. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +34 -30
  1335. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +4 -0
  1336. data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
  1337. data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
  1338. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +5 -2
  1339. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  1340. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +0 -2
  1341. data/src/core/lib/security/credentials/jwt/json_token.cc +36 -16
  1342. data/src/core/lib/security/credentials/jwt/json_token.h +4 -0
  1343. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -5
  1344. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +0 -1
  1345. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +83 -40
  1346. data/src/core/lib/security/credentials/local/local_credentials.cc +0 -2
  1347. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -16
  1348. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +0 -1
  1349. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
  1350. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +116 -10
  1351. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +14 -0
  1352. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -2
  1353. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +86 -0
  1354. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -55
  1355. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -3
  1356. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +2 -0
  1357. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +41 -0
  1358. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +28 -1
  1359. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +255 -0
  1360. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +129 -0
  1361. data/src/core/lib/security/credentials/tls/tls_credentials.cc +27 -2
  1362. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
  1363. data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
  1364. data/src/core/lib/security/credentials/xds/xds_credentials.cc +22 -29
  1365. data/src/core/lib/security/credentials/xds/xds_credentials.h +2 -4
  1366. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +2 -5
  1367. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
  1368. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +7 -59
  1369. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -1
  1370. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -3
  1371. data/src/core/lib/security/security_connector/ssl_utils.h +5 -1
  1372. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +8 -19
  1373. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +2 -2
  1374. data/src/core/lib/security/transport/auth_filters.h +71 -4
  1375. data/src/core/lib/security/transport/client_auth_filter.cc +9 -9
  1376. data/src/core/lib/security/transport/legacy_server_auth_filter.cc +244 -0
  1377. data/src/core/lib/security/transport/secure_endpoint.cc +3 -6
  1378. data/src/core/lib/security/transport/security_handshaker.cc +2 -3
  1379. data/src/core/lib/security/transport/server_auth_filter.cc +70 -92
  1380. data/src/core/lib/security/util/json_util.cc +6 -5
  1381. data/src/core/lib/service_config/service_config_call_data.h +54 -20
  1382. data/src/core/lib/service_config/service_config_impl.cc +13 -6
  1383. data/src/core/lib/slice/slice.h +29 -0
  1384. data/src/core/lib/slice/slice_buffer.cc +15 -0
  1385. data/src/core/lib/slice/slice_buffer.h +19 -4
  1386. data/src/core/lib/slice/slice_refcount.h +1 -1
  1387. data/src/core/lib/surface/builtins.cc +6 -25
  1388. data/src/core/lib/surface/call.cc +935 -270
  1389. data/src/core/lib/surface/call.h +31 -18
  1390. data/src/core/lib/surface/call_log_batch.cc +0 -2
  1391. data/src/core/lib/surface/call_trace.cc +42 -2
  1392. data/src/core/lib/surface/channel.cc +12 -10
  1393. data/src/core/lib/surface/channel.h +2 -8
  1394. data/src/core/lib/surface/channel_init.cc +367 -14
  1395. data/src/core/lib/surface/channel_init.h +177 -28
  1396. data/src/core/lib/surface/completion_queue.cc +12 -4
  1397. data/src/core/lib/surface/event_string.cc +0 -1
  1398. data/src/core/lib/surface/init.cc +21 -47
  1399. data/src/core/lib/surface/lame_client.cc +8 -1
  1400. data/src/core/lib/surface/server.cc +555 -308
  1401. data/src/core/lib/surface/server.h +68 -44
  1402. data/src/core/lib/surface/validate_metadata.cc +37 -22
  1403. data/src/core/lib/surface/validate_metadata.h +13 -3
  1404. data/src/core/lib/surface/version.cc +2 -2
  1405. data/src/core/lib/surface/wait_for_cq_end_op.h +94 -0
  1406. data/src/core/lib/transport/batch_builder.cc +20 -19
  1407. data/src/core/lib/transport/batch_builder.h +48 -38
  1408. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  1409. data/src/core/lib/transport/bdp_estimator.h +2 -2
  1410. data/src/core/lib/transport/call_final_info.cc +38 -0
  1411. data/src/core/lib/transport/call_final_info.h +54 -0
  1412. data/src/core/lib/transport/connectivity_state.cc +3 -4
  1413. data/src/core/lib/transport/connectivity_state.h +4 -0
  1414. data/src/core/lib/transport/error_utils.cc +0 -2
  1415. data/src/core/lib/transport/handshaker.cc +0 -2
  1416. data/src/core/lib/transport/metadata_batch.cc +12 -7
  1417. data/src/core/lib/transport/metadata_batch.h +124 -109
  1418. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  1419. data/src/core/lib/transport/parsed_metadata.h +32 -20
  1420. data/src/core/lib/transport/simple_slice_based_metadata.h +54 -0
  1421. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -1
  1422. data/src/core/lib/transport/timeout_encoding.h +2 -2
  1423. data/src/core/lib/transport/transport.cc +80 -67
  1424. data/src/core/lib/transport/transport.h +507 -91
  1425. data/src/core/lib/transport/transport_fwd.h +3 -1
  1426. data/src/core/lib/transport/transport_op_string.cc +0 -2
  1427. data/src/core/lib/uri/uri_parser.cc +0 -1
  1428. data/src/core/plugin_registry/grpc_plugin_registry.cc +7 -6
  1429. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -3
  1430. data/src/core/tsi/alts/crypt/aes_gcm.cc +142 -89
  1431. data/src/core/tsi/alts/crypt/gsec.h +387 -319
  1432. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +11 -7
  1433. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  1434. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -7
  1435. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
  1436. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
  1437. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -13
  1438. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +26 -25
  1439. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +9 -1
  1440. data/src/core/tsi/ssl_transport_security.cc +233 -69
  1441. data/src/core/tsi/ssl_transport_security.h +36 -2
  1442. data/src/ruby/bin/math_pb.rb +24 -18
  1443. data/src/ruby/ext/grpc/extconf.rb +80 -18
  1444. data/src/ruby/ext/grpc/rb_call.c +62 -39
  1445. data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
  1446. data/src/ruby/ext/grpc/rb_channel.c +109 -84
  1447. data/src/ruby/ext/grpc/rb_channel.h +1 -0
  1448. data/src/ruby/ext/grpc/rb_channel_args.c +21 -3
  1449. data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
  1450. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  1451. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  1452. data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
  1453. data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
  1454. data/src/ruby/ext/grpc/rb_grpc.c +192 -31
  1455. data/src/ruby/ext/grpc/rb_grpc.h +8 -4
  1456. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -0
  1457. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -0
  1458. data/src/ruby/ext/grpc/rb_server.c +62 -45
  1459. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  1460. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  1461. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  1462. data/src/ruby/lib/grpc/generic/active_call.rb +9 -14
  1463. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1464. data/src/ruby/lib/grpc/version.rb +1 -1
  1465. data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
  1466. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
  1467. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +33 -111
  1468. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
  1469. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +22 -0
  1470. data/src/ruby/pb/test/client.rb +16 -0
  1471. data/src/ruby/spec/generic/rpc_server_spec.rb +3 -3
  1472. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -2
  1473. data/third_party/abseil-cpp/absl/base/attributes.h +58 -5
  1474. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  1475. data/third_party/abseil-cpp/absl/base/casts.h +8 -8
  1476. data/third_party/abseil-cpp/absl/base/config.h +89 -106
  1477. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +26 -1
  1478. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -2
  1479. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +50 -39
  1480. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +2 -1
  1481. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +17 -18
  1482. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +32 -3
  1483. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +24 -4
  1484. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +31 -73
  1485. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -8
  1486. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -11
  1487. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +23 -32
  1488. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +2 -3
  1489. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1490. data/third_party/abseil-cpp/absl/base/policy_checks.h +3 -3
  1491. data/third_party/abseil-cpp/absl/base/prefetch.h +198 -0
  1492. data/third_party/abseil-cpp/absl/container/fixed_array.h +54 -29
  1493. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -1
  1494. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -2
  1495. data/third_party/abseil-cpp/absl/container/inlined_vector.h +167 -79
  1496. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  1497. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +3 -21
  1498. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -1
  1499. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +46 -0
  1500. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -0
  1501. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +85 -26
  1502. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -18
  1503. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +70 -29
  1504. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +437 -236
  1505. data/third_party/abseil-cpp/absl/crc/crc32c.h +8 -1
  1506. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +14 -8
  1507. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -35
  1508. data/third_party/abseil-cpp/absl/crc/internal/crc.h +2 -10
  1509. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +1 -1
  1510. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +1 -1
  1511. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +4 -4
  1512. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +8 -10
  1513. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +17 -19
  1514. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +8 -8
  1515. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +2 -1
  1516. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +59 -23
  1517. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +1 -1
  1518. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +1 -1
  1519. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +1 -1
  1520. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +43 -19
  1521. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -0
  1522. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +1 -1
  1523. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +1 -1
  1524. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -2
  1525. data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -15
  1526. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +1 -1
  1527. data/third_party/abseil-cpp/absl/flags/marshalling.cc +43 -2
  1528. data/third_party/abseil-cpp/absl/flags/marshalling.h +5 -0
  1529. data/third_party/abseil-cpp/absl/functional/any_invocable.h +9 -1
  1530. data/third_party/abseil-cpp/absl/functional/bind_front.h +1 -1
  1531. data/third_party/abseil-cpp/absl/functional/function_ref.h +3 -3
  1532. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +37 -24
  1533. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +19 -9
  1534. data/third_party/abseil-cpp/absl/hash/hash.h +7 -4
  1535. data/third_party/abseil-cpp/absl/hash/internal/hash.h +38 -15
  1536. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +6 -0
  1537. data/third_party/abseil-cpp/absl/meta/type_traits.h +48 -373
  1538. data/third_party/abseil-cpp/absl/numeric/bits.h +4 -4
  1539. data/third_party/abseil-cpp/absl/numeric/int128.cc +20 -8
  1540. data/third_party/abseil-cpp/absl/numeric/int128.h +36 -39
  1541. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -3
  1542. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +47 -30
  1543. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +185 -0
  1544. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -3
  1545. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  1546. data/third_party/abseil-cpp/absl/random/internal/platform.h +1 -1
  1547. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +4 -0
  1548. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +1 -1
  1549. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +1 -1
  1550. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +1 -1
  1551. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +4 -0
  1552. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +12 -24
  1553. data/third_party/abseil-cpp/absl/status/status.cc +11 -7
  1554. data/third_party/abseil-cpp/absl/status/status.h +11 -2
  1555. data/third_party/abseil-cpp/absl/status/statusor.h +22 -8
  1556. data/third_party/abseil-cpp/absl/strings/ascii.cc +54 -6
  1557. data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -4
  1558. data/third_party/abseil-cpp/absl/strings/charconv.h +2 -2
  1559. data/third_party/abseil-cpp/absl/strings/cord.cc +1 -2
  1560. data/third_party/abseil-cpp/absl/strings/cord.h +32 -5
  1561. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +23 -1
  1562. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +18 -0
  1563. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +2 -5
  1564. data/third_party/abseil-cpp/absl/strings/escaping.cc +10 -32
  1565. data/third_party/abseil-cpp/absl/strings/escaping.h +1 -1
  1566. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -4
  1567. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +3 -3
  1568. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -1
  1569. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +15 -13
  1570. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +13 -4
  1571. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +8 -0
  1572. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +5 -3
  1573. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +4 -7
  1574. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +8 -0
  1575. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +2 -2
  1576. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +46 -20
  1577. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +1 -34
  1578. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +2 -1
  1579. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +23 -0
  1580. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +1 -0
  1581. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +2 -77
  1582. data/third_party/abseil-cpp/absl/strings/internal/memutil.h +4 -112
  1583. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +1 -1
  1584. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +10 -31
  1585. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -8
  1586. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +5 -20
  1587. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +1 -0
  1588. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +1 -1
  1589. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +9 -9
  1590. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +56 -6
  1591. data/third_party/abseil-cpp/absl/strings/match.cc +87 -0
  1592. data/third_party/abseil-cpp/absl/strings/match.h +19 -0
  1593. data/third_party/abseil-cpp/absl/strings/numbers.cc +154 -122
  1594. data/third_party/abseil-cpp/absl/strings/numbers.h +1 -6
  1595. data/third_party/abseil-cpp/absl/strings/str_cat.cc +7 -50
  1596. data/third_party/abseil-cpp/absl/strings/str_cat.h +83 -15
  1597. data/third_party/abseil-cpp/absl/strings/str_format.h +6 -3
  1598. data/third_party/abseil-cpp/absl/strings/str_split.cc +9 -6
  1599. data/third_party/abseil-cpp/absl/strings/string_view.cc +26 -4
  1600. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -0
  1601. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +63 -43
  1602. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +111 -0
  1603. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
  1604. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -7
  1605. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +225 -0
  1606. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +122 -114
  1607. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +12 -8
  1608. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +10 -1
  1609. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +167 -0
  1610. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
  1611. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +122 -0
  1612. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
  1613. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +91 -0
  1614. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
  1615. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +19 -113
  1616. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +42 -0
  1617. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
  1618. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +151 -0
  1619. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +70 -0
  1620. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +407 -411
  1621. data/third_party/abseil-cpp/absl/synchronization/mutex.h +152 -118
  1622. data/third_party/abseil-cpp/absl/time/clock.cc +6 -7
  1623. data/third_party/abseil-cpp/absl/time/duration.cc +24 -26
  1624. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -0
  1625. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1626. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +3 -3
  1627. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +8 -6
  1628. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +6 -3
  1629. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +4 -2
  1630. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +4 -0
  1631. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +322 -295
  1632. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +8 -17
  1633. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +51 -33
  1634. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +7 -2
  1635. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +128 -2
  1636. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +1 -1
  1637. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -1
  1638. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +34 -34
  1639. data/third_party/abseil-cpp/absl/time/time.cc +9 -2
  1640. data/third_party/abseil-cpp/absl/time/time.h +115 -15
  1641. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -52
  1642. data/third_party/abseil-cpp/absl/types/internal/span.h +2 -2
  1643. data/third_party/abseil-cpp/absl/types/internal/variant.h +2 -2
  1644. data/third_party/abseil-cpp/absl/types/optional.h +15 -13
  1645. data/third_party/abseil-cpp/absl/types/span.h +1 -2
  1646. data/third_party/boringssl-with-bazel/err_data.c +554 -553
  1647. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +7 -3
  1648. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
  1649. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +7 -7
  1650. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +6 -6
  1651. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
  1652. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +11 -4
  1653. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
  1654. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
  1655. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
  1656. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +9 -7
  1657. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +40 -55
  1658. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +7 -7
  1659. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +92 -0
  1660. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +14 -54
  1661. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +23 -22
  1662. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +16 -6
  1663. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
  1664. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +4 -4
  1665. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +11 -2
  1666. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
  1667. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +1 -1
  1668. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
  1669. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
  1670. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
  1671. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
  1672. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
  1673. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +31 -192
  1674. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
  1675. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
  1676. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -2
  1677. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -1
  1678. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -2
  1679. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +61 -0
  1680. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +93 -0
  1681. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +1 -1
  1682. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -1
  1683. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -2
  1684. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +55 -50
  1685. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +18 -0
  1686. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2834 -7442
  1687. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +26 -8
  1688. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +4 -0
  1689. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +5 -0
  1690. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
  1691. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
  1692. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
  1693. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
  1694. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +42 -34
  1695. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +17 -11
  1696. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
  1697. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +23 -21
  1698. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
  1699. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
  1700. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
  1701. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
  1702. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
  1703. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
  1704. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
  1705. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
  1706. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
  1707. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
  1708. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
  1709. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
  1710. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
  1711. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
  1712. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
  1713. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +37 -8
  1714. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +41 -19
  1715. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +9 -0
  1716. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  1717. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +204 -428
  1718. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +4 -4
  1719. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +31 -64
  1720. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
  1721. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +105 -143
  1722. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +19 -19
  1723. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +16 -18
  1724. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +27 -30
  1725. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +23 -26
  1726. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  1727. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
  1728. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +21 -37
  1729. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +31 -31
  1730. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +16 -16
  1731. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
  1732. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +11 -5
  1733. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +112 -0
  1734. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
  1735. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
  1736. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
  1737. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
  1738. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
  1739. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
  1740. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
  1741. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
  1742. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
  1743. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
  1744. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -41
  1745. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +76 -16
  1746. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
  1747. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
  1748. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +126 -233
  1749. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +113 -24
  1750. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +4 -7
  1751. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
  1752. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
  1753. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +169 -6
  1754. data/third_party/boringssl-with-bazel/src/crypto/internal.h +216 -87
  1755. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +32 -2
  1756. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +11 -12
  1757. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +834 -0
  1758. data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
  1759. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +25 -46
  1760. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
  1761. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
  1762. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
  1763. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
  1764. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
  1765. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
  1766. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  1767. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
  1768. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
  1769. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +52 -0
  1770. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +34 -0
  1771. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +38 -0
  1772. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
  1773. data/third_party/boringssl-with-bazel/src/crypto/refcount.c +59 -0
  1774. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
  1775. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
  1776. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +152 -72
  1777. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
  1778. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
  1779. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
  1780. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
  1781. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +240 -72
  1782. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
  1783. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -130
  1784. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
  1785. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
  1786. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +10 -20
  1787. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -3
  1788. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +3 -2
  1789. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
  1790. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +18 -14
  1791. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
  1792. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -141
  1793. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +1 -3
  1794. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +19 -25
  1795. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
  1796. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +8 -4
  1797. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
  1798. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +22 -24
  1799. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -72
  1800. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +22 -29
  1801. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
  1802. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -7
  1803. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
  1804. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
  1805. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
  1806. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
  1807. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +2 -3
  1808. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
  1809. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
  1810. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
  1811. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +20 -52
  1812. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
  1813. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +11 -9
  1814. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
  1815. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -3
  1816. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
  1817. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
  1818. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
  1819. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +11 -4
  1820. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +37 -112
  1821. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +19 -13
  1822. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
  1823. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
  1824. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
  1825. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
  1826. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -1
  1827. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
  1828. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +28 -11
  1829. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
  1830. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +14 -10
  1831. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +34 -2
  1832. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  1833. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
  1834. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  1835. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
  1836. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
  1837. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -62
  1838. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -19
  1839. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +275 -96
  1840. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +242 -223
  1841. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +201 -0
  1842. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -25
  1843. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
  1844. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
  1845. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +760 -614
  1846. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +45 -12
  1847. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
  1848. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +10 -68
  1849. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
  1850. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +33 -18
  1851. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  1852. data/third_party/boringssl-with-bazel/src/ssl/internal.h +86 -46
  1853. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
  1854. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +8 -4
  1855. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +209 -209
  1856. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +6 -6
  1857. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +76 -118
  1858. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +209 -33
  1859. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
  1860. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +19 -21
  1861. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
  1862. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
  1863. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
  1864. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
  1865. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
  1866. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
  1867. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
  1868. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
  1869. data/third_party/cares/cares/include/ares.h +23 -1
  1870. data/third_party/cares/cares/include/ares_nameser.h +484 -0
  1871. data/third_party/cares/cares/include/ares_rules.h +2 -2
  1872. data/third_party/cares/cares/include/ares_version.h +3 -3
  1873. data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
  1874. data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
  1875. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
  1876. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
  1877. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
  1878. data/third_party/cares/cares/src/lib/ares_data.c +16 -0
  1879. data/third_party/cares/cares/src/lib/ares_data.h +7 -0
  1880. data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
  1881. data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
  1882. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
  1883. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
  1884. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
  1885. data/third_party/cares/cares/src/lib/ares_init.c +97 -485
  1886. data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
  1887. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
  1888. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
  1889. data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
  1890. data/third_party/cares/cares/src/lib/ares_private.h +30 -16
  1891. data/third_party/cares/cares/src/lib/ares_process.c +55 -16
  1892. data/third_party/cares/cares/src/lib/ares_query.c +1 -35
  1893. data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
  1894. data/third_party/cares/cares/src/lib/ares_send.c +5 -7
  1895. data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
  1896. data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
  1897. data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
  1898. data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
  1899. data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
  1900. data/third_party/upb/upb/base/descriptor_constants.h +84 -0
  1901. data/third_party/upb/upb/base/internal/log2.h +38 -0
  1902. data/third_party/upb/upb/base/status.c +61 -0
  1903. data/third_party/upb/upb/base/status.h +46 -0
  1904. data/third_party/upb/upb/base/status.hpp +50 -0
  1905. data/third_party/upb/upb/base/string_view.h +58 -0
  1906. data/third_party/upb/upb/generated_code_support.h +33 -0
  1907. data/third_party/upb/upb/hash/common.c +836 -0
  1908. data/third_party/upb/upb/hash/common.h +174 -0
  1909. data/third_party/upb/upb/hash/int_table.h +82 -0
  1910. data/third_party/upb/upb/hash/str_table.h +142 -0
  1911. data/third_party/upb/upb/json/decode.c +1480 -0
  1912. data/third_party/upb/upb/json/decode.h +55 -0
  1913. data/third_party/upb/upb/json/encode.c +807 -0
  1914. data/third_party/upb/upb/json/encode.h +73 -0
  1915. data/third_party/upb/upb/lex/atoi.c +48 -0
  1916. data/third_party/upb/upb/lex/atoi.h +35 -0
  1917. data/third_party/upb/upb/lex/round_trip.c +47 -0
  1918. data/third_party/upb/upb/lex/round_trip.h +35 -0
  1919. data/third_party/upb/upb/lex/strtod.c +77 -0
  1920. data/third_party/upb/upb/lex/strtod.h +26 -0
  1921. data/third_party/upb/upb/lex/unicode.c +37 -0
  1922. data/third_party/upb/upb/lex/unicode.h +59 -0
  1923. data/third_party/upb/upb/mem/alloc.c +27 -0
  1924. data/third_party/upb/upb/mem/alloc.h +78 -0
  1925. data/third_party/upb/upb/mem/arena.c +368 -0
  1926. data/third_party/upb/upb/mem/arena.h +132 -0
  1927. data/third_party/upb/upb/mem/arena.hpp +54 -0
  1928. data/third_party/upb/upb/mem/internal/arena.h +94 -0
  1929. data/third_party/upb/upb/message/accessors.c +71 -0
  1930. data/third_party/upb/upb/message/accessors.h +380 -0
  1931. data/third_party/upb/upb/message/array.c +154 -0
  1932. data/third_party/upb/upb/message/array.h +98 -0
  1933. data/third_party/upb/upb/message/internal/accessors.h +367 -0
  1934. data/third_party/upb/upb/message/internal/array.h +138 -0
  1935. data/third_party/upb/upb/message/internal/extension.h +63 -0
  1936. data/third_party/upb/upb/message/internal/map.h +173 -0
  1937. data/third_party/upb/upb/message/internal/map_entry.h +66 -0
  1938. data/third_party/upb/upb/message/internal/map_sorter.h +112 -0
  1939. data/third_party/upb/upb/message/internal/message.h +106 -0
  1940. data/third_party/upb/upb/message/internal/types.h +23 -0
  1941. data/third_party/upb/upb/message/map.c +145 -0
  1942. data/third_party/upb/upb/message/map.h +147 -0
  1943. data/third_party/upb/upb/message/map_gencode_util.h +81 -0
  1944. data/third_party/upb/upb/message/map_sorter.c +170 -0
  1945. data/third_party/upb/upb/message/message.c +154 -0
  1946. data/third_party/upb/upb/message/message.h +52 -0
  1947. data/third_party/upb/upb/message/tagged_ptr.h +69 -0
  1948. data/third_party/upb/upb/message/types.h +15 -0
  1949. data/third_party/upb/upb/message/value.h +46 -0
  1950. data/third_party/upb/upb/mini_descriptor/build_enum.c +130 -0
  1951. data/third_party/upb/upb/mini_descriptor/build_enum.h +42 -0
  1952. data/third_party/upb/upb/mini_descriptor/decode.c +870 -0
  1953. data/third_party/upb/upb/mini_descriptor/decode.h +120 -0
  1954. data/third_party/upb/upb/mini_descriptor/internal/base92.c +26 -0
  1955. data/third_party/upb/upb/mini_descriptor/internal/base92.h +63 -0
  1956. data/third_party/upb/upb/mini_descriptor/internal/decoder.h +53 -0
  1957. data/third_party/upb/upb/mini_descriptor/internal/encode.c +323 -0
  1958. data/third_party/upb/upb/mini_descriptor/internal/encode.h +92 -0
  1959. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +118 -0
  1960. data/third_party/upb/upb/mini_descriptor/internal/modifiers.h +32 -0
  1961. data/third_party/upb/upb/mini_descriptor/internal/wire_constants.h +72 -0
  1962. data/third_party/upb/upb/mini_descriptor/link.c +122 -0
  1963. data/third_party/upb/upb/mini_descriptor/link.h +84 -0
  1964. data/third_party/upb/upb/mini_table/enum.h +38 -0
  1965. data/third_party/upb/upb/mini_table/extension.h +15 -0
  1966. data/third_party/upb/upb/mini_table/extension_registry.c +76 -0
  1967. data/third_party/upb/upb/mini_table/extension_registry.h +85 -0
  1968. data/third_party/upb/upb/mini_table/field.h +98 -0
  1969. data/third_party/upb/upb/mini_table/file.h +15 -0
  1970. data/third_party/upb/upb/mini_table/internal/enum.h +58 -0
  1971. data/third_party/upb/upb/mini_table/internal/extension.h +27 -0
  1972. data/third_party/upb/upb/mini_table/internal/field.h +114 -0
  1973. data/third_party/upb/upb/mini_table/internal/file.h +29 -0
  1974. data/third_party/upb/upb/mini_table/internal/message.c +19 -0
  1975. data/third_party/upb/upb/mini_table/internal/message.h +88 -0
  1976. data/third_party/upb/upb/mini_table/internal/sub.h +18 -0
  1977. data/third_party/upb/upb/mini_table/message.c +77 -0
  1978. data/third_party/upb/upb/mini_table/message.h +85 -0
  1979. data/third_party/upb/upb/mini_table/sub.h +15 -0
  1980. data/third_party/upb/upb/port/atomic.h +83 -0
  1981. data/third_party/upb/upb/port/def.inc +328 -0
  1982. data/third_party/upb/upb/port/undef.inc +55 -0
  1983. data/third_party/upb/upb/port/vsnprintf_compat.h +30 -0
  1984. data/third_party/upb/upb/reflection/common.h +51 -0
  1985. data/third_party/upb/upb/reflection/def.h +24 -0
  1986. data/third_party/upb/upb/reflection/def.hpp +605 -0
  1987. data/third_party/upb/upb/reflection/def_pool.c +443 -0
  1988. data/third_party/upb/upb/reflection/def_pool.h +87 -0
  1989. data/third_party/upb/upb/reflection/def_type.c +30 -0
  1990. data/third_party/upb/upb/reflection/def_type.h +60 -0
  1991. data/third_party/upb/upb/reflection/desc_state.c +33 -0
  1992. data/third_party/upb/upb/reflection/enum_def.c +292 -0
  1993. data/third_party/upb/upb/reflection/enum_def.h +60 -0
  1994. data/third_party/upb/upb/reflection/enum_reserved_range.c +63 -0
  1995. data/third_party/upb/upb/reflection/enum_reserved_range.h +31 -0
  1996. data/third_party/upb/upb/reflection/enum_value_def.c +125 -0
  1997. data/third_party/upb/upb/reflection/enum_value_def.h +37 -0
  1998. data/third_party/upb/upb/reflection/extension_range.c +74 -0
  1999. data/third_party/upb/upb/reflection/extension_range.h +35 -0
  2000. data/third_party/upb/upb/reflection/field_def.c +948 -0
  2001. data/third_party/upb/upb/reflection/field_def.h +74 -0
  2002. data/third_party/upb/upb/reflection/file_def.c +345 -0
  2003. data/third_party/upb/upb/reflection/file_def.h +57 -0
  2004. data/third_party/upb/upb/reflection/internal/def_builder.c +339 -0
  2005. data/third_party/upb/upb/reflection/internal/def_builder.h +137 -0
  2006. data/third_party/upb/upb/reflection/internal/def_pool.h +57 -0
  2007. data/third_party/upb/upb/reflection/internal/desc_state.h +44 -0
  2008. data/third_party/upb/upb/reflection/internal/enum_def.h +36 -0
  2009. data/third_party/upb/upb/reflection/internal/enum_reserved_range.h +35 -0
  2010. data/third_party/upb/upb/reflection/internal/enum_value_def.h +37 -0
  2011. data/third_party/upb/upb/reflection/internal/extension_range.h +34 -0
  2012. data/third_party/upb/upb/reflection/internal/field_def.h +56 -0
  2013. data/third_party/upb/upb/reflection/internal/file_def.h +37 -0
  2014. data/third_party/upb/upb/reflection/internal/message_def.h +43 -0
  2015. data/third_party/upb/upb/reflection/internal/message_reserved_range.h +35 -0
  2016. data/third_party/upb/upb/reflection/internal/method_def.h +33 -0
  2017. data/third_party/upb/upb/reflection/internal/oneof_def.h +37 -0
  2018. data/third_party/upb/upb/reflection/internal/service_def.h +33 -0
  2019. data/third_party/upb/upb/reflection/internal/strdup2.c +33 -0
  2020. data/third_party/upb/upb/reflection/internal/strdup2.h +32 -0
  2021. data/third_party/upb/upb/reflection/message.c +213 -0
  2022. data/third_party/upb/upb/reflection/message.h +89 -0
  2023. data/third_party/upb/upb/reflection/message.hpp +19 -0
  2024. data/third_party/upb/upb/reflection/message_def.c +736 -0
  2025. data/third_party/upb/upb/reflection/message_def.h +156 -0
  2026. data/third_party/upb/upb/reflection/message_reserved_range.c +61 -0
  2027. data/third_party/upb/upb/reflection/message_reserved_range.h +31 -0
  2028. data/third_party/upb/upb/reflection/method_def.c +105 -0
  2029. data/third_party/upb/upb/reflection/method_def.h +39 -0
  2030. data/third_party/upb/upb/reflection/oneof_def.c +208 -0
  2031. data/third_party/upb/upb/reflection/oneof_def.h +47 -0
  2032. data/third_party/upb/upb/reflection/service_def.c +109 -0
  2033. data/third_party/upb/upb/reflection/service_def.h +40 -0
  2034. data/third_party/upb/upb/text/encode.c +457 -0
  2035. data/third_party/upb/upb/text/encode.h +49 -0
  2036. data/third_party/upb/upb/wire/decode.c +1381 -0
  2037. data/third_party/upb/upb/wire/decode.h +132 -0
  2038. data/third_party/upb/upb/wire/decode_fast.c +996 -0
  2039. data/third_party/upb/upb/wire/decode_fast.h +147 -0
  2040. data/third_party/upb/upb/wire/encode.c +638 -0
  2041. data/third_party/upb/upb/wire/encode.h +76 -0
  2042. data/third_party/upb/upb/wire/eps_copy_input_stream.c +19 -0
  2043. data/third_party/upb/upb/wire/eps_copy_input_stream.h +405 -0
  2044. data/third_party/upb/upb/wire/internal/constants.h +27 -0
  2045. data/third_party/upb/upb/wire/internal/decode.h +143 -0
  2046. data/third_party/upb/upb/wire/internal/swap.h +45 -0
  2047. data/third_party/upb/upb/wire/reader.c +47 -0
  2048. data/third_party/upb/upb/wire/reader.h +207 -0
  2049. data/third_party/upb/upb/wire/types.h +21 -0
  2050. data/third_party/utf8_range/range2-neon.c +157 -0
  2051. data/third_party/utf8_range/utf8_range.h +21 -0
  2052. data/third_party/zlib/adler32.c +5 -27
  2053. data/third_party/zlib/compress.c +5 -16
  2054. data/third_party/zlib/crc32.c +86 -162
  2055. data/third_party/zlib/deflate.c +233 -336
  2056. data/third_party/zlib/deflate.h +8 -8
  2057. data/third_party/zlib/gzguts.h +11 -12
  2058. data/third_party/zlib/infback.c +7 -23
  2059. data/third_party/zlib/inffast.c +1 -4
  2060. data/third_party/zlib/inffast.h +1 -1
  2061. data/third_party/zlib/inflate.c +30 -99
  2062. data/third_party/zlib/inftrees.c +6 -11
  2063. data/third_party/zlib/inftrees.h +3 -3
  2064. data/third_party/zlib/trees.c +224 -302
  2065. data/third_party/zlib/uncompr.c +4 -12
  2066. data/third_party/zlib/zconf.h +6 -2
  2067. data/third_party/zlib/zlib.h +191 -188
  2068. data/third_party/zlib/zutil.c +16 -44
  2069. data/third_party/zlib/zutil.h +10 -10
  2070. metadata +1118 -729
  2071. data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
  2072. data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
  2073. data/src/core/ext/filters/client_channel/http_proxy.cc +0 -200
  2074. data/src/core/ext/filters/client_channel/http_proxy.h +0 -52
  2075. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
  2076. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
  2077. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +0 -1229
  2078. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +0 -30
  2079. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  2080. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  2081. data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
  2082. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
  2083. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +0 -117
  2084. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +0 -502
  2085. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +0 -122
  2086. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +0 -578
  2087. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +0 -125
  2088. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +0 -516
  2089. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +0 -388
  2090. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +0 -1953
  2091. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +0 -56
  2092. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +0 -159
  2093. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +0 -64
  2094. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +0 -189
  2095. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +0 -46
  2096. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +0 -128
  2097. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +0 -43
  2098. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +0 -106
  2099. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +0 -43
  2100. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +0 -101
  2101. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +0 -106
  2102. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +0 -613
  2103. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +0 -48
  2104. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +0 -107
  2105. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +0 -60
  2106. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -81
  2107. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +0 -53
  2108. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +0 -103
  2109. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -270
  2110. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +0 -1300
  2111. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +0 -419
  2112. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +0 -2317
  2113. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +0 -95
  2114. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +0 -394
  2115. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +0 -535
  2116. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +0 -3040
  2117. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +0 -48
  2118. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +0 -107
  2119. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +0 -89
  2120. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +0 -549
  2121. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +0 -299
  2122. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +0 -1437
  2123. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +0 -168
  2124. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +0 -801
  2125. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +0 -49
  2126. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +0 -120
  2127. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +0 -421
  2128. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +0 -1891
  2129. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +0 -163
  2130. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -806
  2131. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +0 -47
  2132. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +0 -104
  2133. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +0 -47
  2134. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +0 -107
  2135. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +0 -58
  2136. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +0 -159
  2137. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +0 -269
  2138. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +0 -1329
  2139. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +0 -223
  2140. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +0 -1287
  2141. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +0 -49
  2142. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +0 -126
  2143. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +0 -326
  2144. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +0 -1796
  2145. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -58
  2146. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +0 -179
  2147. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +0 -60
  2148. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +0 -177
  2149. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +0 -62
  2150. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +0 -209
  2151. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +0 -56
  2152. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +0 -182
  2153. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +0 -48
  2154. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +0 -122
  2155. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -106
  2156. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +0 -360
  2157. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -150
  2158. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +0 -678
  2159. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +0 -129
  2160. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +0 -588
  2161. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +0 -46
  2162. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +0 -98
  2163. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +0 -212
  2164. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +0 -1185
  2165. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +0 -186
  2166. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +0 -969
  2167. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +0 -68
  2168. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +0 -282
  2169. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -59
  2170. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +0 -186
  2171. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +0 -53
  2172. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +0 -140
  2173. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +0 -165
  2174. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +0 -748
  2175. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +0 -174
  2176. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +0 -757
  2177. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +0 -242
  2178. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +0 -1217
  2179. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +0 -105
  2180. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +0 -452
  2181. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +0 -1139
  2182. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +0 -6695
  2183. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +0 -79
  2184. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +0 -267
  2185. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +0 -241
  2186. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +0 -1191
  2187. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +0 -45
  2188. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +0 -101
  2189. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +0 -49
  2190. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +0 -107
  2191. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -63
  2192. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +0 -175
  2193. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +0 -52
  2194. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +0 -138
  2195. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +0 -63
  2196. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +0 -254
  2197. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -46
  2198. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +0 -107
  2199. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +0 -47
  2200. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +0 -98
  2201. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +0 -69
  2202. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +0 -221
  2203. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +0 -33
  2204. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +0 -43
  2205. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +0 -71
  2206. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +0 -226
  2207. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +0 -55
  2208. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +0 -159
  2209. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +0 -42
  2210. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +0 -89
  2211. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +0 -96
  2212. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +0 -395
  2213. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +0 -94
  2214. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +0 -445
  2215. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +0 -71
  2216. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -237
  2217. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +0 -58
  2218. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +0 -195
  2219. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +0 -62
  2220. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +0 -179
  2221. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +0 -478
  2222. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +0 -2805
  2223. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +0 -46
  2224. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +0 -98
  2225. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +0 -56
  2226. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +0 -212
  2227. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +0 -111
  2228. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +0 -444
  2229. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +0 -58
  2230. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +0 -216
  2231. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +0 -46
  2232. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +0 -98
  2233. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -28
  2234. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +0 -38
  2235. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +0 -177
  2236. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +0 -932
  2237. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +0 -88
  2238. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -320
  2239. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -193
  2240. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +0 -1085
  2241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +0 -62
  2242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +0 -168
  2243. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +0 -38
  2244. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +0 -74
  2245. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +0 -282
  2246. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +0 -1399
  2247. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -68
  2248. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +0 -218
  2249. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +0 -138
  2250. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +0 -651
  2251. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +0 -48
  2252. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +0 -116
  2253. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +0 -76
  2254. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +0 -265
  2255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +0 -47
  2256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +0 -113
  2257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +0 -85
  2258. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +0 -279
  2259. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +0 -62
  2260. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +0 -196
  2261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +0 -49
  2262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +0 -121
  2263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +0 -48
  2264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +0 -117
  2265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +0 -47
  2266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +0 -104
  2267. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +0 -80
  2268. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +0 -246
  2269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +0 -43
  2270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +0 -114
  2271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -67
  2272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +0 -226
  2273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +0 -60
  2274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +0 -178
  2275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +0 -78
  2276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +0 -306
  2277. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +0 -107
  2278. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +0 -457
  2279. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +0 -107
  2280. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +0 -439
  2281. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +0 -66
  2282. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +0 -213
  2283. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +0 -26
  2284. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +0 -39
  2285. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +0 -42
  2286. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +0 -143
  2287. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +0 -54
  2288. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +0 -147
  2289. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +0 -66
  2290. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +0 -208
  2291. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +0 -63
  2292. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +0 -202
  2293. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +0 -26
  2294. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +0 -43
  2295. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +0 -43
  2296. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +0 -101
  2297. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +0 -51
  2298. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +0 -131
  2299. data/src/core/ext/upb-generated/google/api/annotations.upb.c +0 -40
  2300. data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -53
  2301. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +0 -271
  2302. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +0 -1280
  2303. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +0 -283
  2304. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +0 -1386
  2305. data/src/core/ext/upb-generated/google/api/http.upb.c +0 -81
  2306. data/src/core/ext/upb-generated/google/api/http.upb.h +0 -343
  2307. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +0 -46
  2308. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +0 -115
  2309. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +0 -40
  2310. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +0 -92
  2311. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +0 -578
  2312. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +0 -3217
  2313. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +0 -40
  2314. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +0 -92
  2315. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +0 -35
  2316. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +0 -74
  2317. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +0 -95
  2318. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +0 -329
  2319. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +0 -40
  2320. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +0 -92
  2321. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +0 -127
  2322. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +0 -475
  2323. data/src/core/ext/upb-generated/google/rpc/status.upb.c +0 -46
  2324. data/src/core/ext/upb-generated/google/rpc/status.upb.h +0 -115
  2325. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +0 -84
  2326. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +0 -335
  2327. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +0 -63
  2328. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +0 -188
  2329. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +0 -240
  2330. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +0 -1173
  2331. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +0 -57
  2332. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +0 -182
  2333. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +0 -50
  2334. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +0 -139
  2335. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +0 -161
  2336. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +0 -705
  2337. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +0 -70
  2338. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +0 -216
  2339. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +0 -175
  2340. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -792
  2341. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +0 -110
  2342. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +0 -290
  2343. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -55
  2344. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +0 -112
  2345. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +0 -38
  2346. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -46
  2347. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +0 -54
  2348. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +0 -119
  2349. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +0 -53
  2350. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +0 -103
  2351. data/src/core/ext/upb-generated/validate/validate.upb.c +0 -560
  2352. data/src/core/ext/upb-generated/validate/validate.upb.h +0 -4105
  2353. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +0 -110
  2354. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +0 -290
  2355. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +0 -55
  2356. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +0 -112
  2357. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +0 -38
  2358. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +0 -46
  2359. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +0 -105
  2360. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +0 -306
  2361. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +0 -53
  2362. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +0 -103
  2363. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +0 -41
  2364. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +0 -83
  2365. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +0 -47
  2366. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +0 -107
  2367. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +0 -66
  2368. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +0 -208
  2369. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +0 -56
  2370. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +0 -119
  2371. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +0 -46
  2372. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +0 -107
  2373. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +0 -49
  2374. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +0 -131
  2375. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +0 -68
  2376. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +0 -248
  2377. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +0 -49
  2378. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +0 -125
  2379. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +0 -89
  2380. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +0 -254
  2381. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -46
  2382. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +0 -113
  2383. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +0 -46
  2384. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +0 -98
  2385. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +0 -62
  2386. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +0 -174
  2387. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +0 -36
  2388. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +0 -74
  2389. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +0 -65
  2390. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +0 -191
  2391. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +0 -207
  2392. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +0 -914
  2393. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +0 -127
  2394. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +0 -474
  2395. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +0 -52
  2396. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +0 -151
  2397. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +0 -65
  2398. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +0 -226
  2399. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +0 -67
  2400. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +0 -214
  2401. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +0 -64
  2402. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +0 -208
  2403. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -45
  2404. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +0 -107
  2405. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +0 -84
  2406. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +0 -55
  2407. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +0 -128
  2408. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +0 -50
  2409. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +0 -102
  2410. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -55
  2411. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +0 -277
  2412. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +0 -125
  2413. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +0 -43
  2414. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +0 -40
  2415. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +0 -56
  2416. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +0 -40
  2417. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +0 -49
  2418. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +0 -35
  2419. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +0 -46
  2420. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +0 -35
  2421. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +0 -46
  2422. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +0 -35
  2423. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +0 -142
  2424. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +0 -40
  2425. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +0 -51
  2426. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +0 -35
  2427. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +0 -48
  2428. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +0 -30
  2429. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +0 -38
  2430. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +0 -35
  2431. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +0 -222
  2432. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +0 -105
  2433. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +0 -409
  2434. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +0 -120
  2435. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +0 -98
  2436. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +0 -45
  2437. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +0 -567
  2438. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -150
  2439. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +0 -51
  2440. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +0 -35
  2441. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +0 -138
  2442. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +0 -35
  2443. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +0 -206
  2444. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +0 -105
  2445. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +0 -132
  2446. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +0 -70
  2447. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +0 -54
  2448. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +0 -35
  2449. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +0 -271
  2450. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +0 -150
  2451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +0 -168
  2452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -65
  2453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +0 -53
  2454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +0 -35
  2455. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +0 -47
  2456. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -35
  2457. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +0 -53
  2458. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +0 -40
  2459. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +0 -235
  2460. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +0 -100
  2461. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +0 -234
  2462. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +0 -75
  2463. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +0 -53
  2464. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +0 -35
  2465. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +0 -305
  2466. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +0 -110
  2467. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +0 -57
  2468. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +0 -40
  2469. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +0 -55
  2470. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +0 -40
  2471. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +0 -61
  2472. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +0 -40
  2473. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +0 -70
  2474. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +0 -35
  2475. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +0 -49
  2476. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +0 -35
  2477. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +0 -99
  2478. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +0 -50
  2479. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +0 -133
  2480. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +0 -60
  2481. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +0 -136
  2482. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +0 -55
  2483. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +0 -48
  2484. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +0 -35
  2485. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +0 -227
  2486. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +0 -80
  2487. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +0 -190
  2488. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +0 -65
  2489. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +0 -101
  2490. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +0 -35
  2491. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +0 -71
  2492. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +0 -40
  2493. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +0 -69
  2494. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +0 -35
  2495. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +0 -125
  2496. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +0 -70
  2497. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +0 -134
  2498. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +0 -75
  2499. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +0 -217
  2500. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +0 -80
  2501. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +0 -123
  2502. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -45
  2503. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +0 -972
  2504. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +0 -315
  2505. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +0 -77
  2506. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +0 -45
  2507. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +0 -199
  2508. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +0 -90
  2509. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +0 -56
  2510. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +0 -35
  2511. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +0 -57
  2512. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +0 -35
  2513. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +0 -57
  2514. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +0 -40
  2515. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +0 -72
  2516. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +0 -35
  2517. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +0 -99
  2518. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +0 -35
  2519. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +0 -45
  2520. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +0 -35
  2521. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +0 -52
  2522. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +0 -35
  2523. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +0 -71
  2524. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +0 -40
  2525. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +0 -61
  2526. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +0 -30
  2527. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +0 -75
  2528. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +0 -40
  2529. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +0 -79
  2530. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +0 -35
  2531. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +0 -50
  2532. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +0 -35
  2533. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +0 -92
  2534. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +0 -55
  2535. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +0 -117
  2536. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +0 -45
  2537. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +0 -80
  2538. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +0 -40
  2539. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +0 -89
  2540. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +0 -35
  2541. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +0 -60
  2542. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +0 -40
  2543. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +0 -577
  2544. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +0 -130
  2545. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +0 -50
  2546. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +0 -35
  2547. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +0 -48
  2548. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +0 -30
  2549. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +0 -213
  2550. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +0 -65
  2551. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +0 -91
  2552. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +0 -45
  2553. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +0 -258
  2554. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +0 -65
  2555. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +0 -58
  2556. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +0 -40
  2557. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +0 -58
  2558. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +0 -35
  2559. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +0 -200
  2560. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +0 -100
  2561. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +0 -76
  2562. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +0 -40
  2563. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +0 -153
  2564. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +0 -55
  2565. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +0 -46
  2566. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +0 -35
  2567. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +0 -56
  2568. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +0 -50
  2569. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +0 -48
  2570. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +0 -35
  2571. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +0 -55
  2572. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +0 -55
  2573. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +0 -61
  2574. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +0 -40
  2575. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +0 -54
  2576. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +0 -35
  2577. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +0 -52
  2578. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +0 -35
  2579. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +0 -51
  2580. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +0 -35
  2581. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +0 -71
  2582. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +0 -45
  2583. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +0 -40
  2584. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +0 -40
  2585. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +0 -65
  2586. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +0 -40
  2587. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +0 -58
  2588. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +0 -40
  2589. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +0 -75
  2590. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +0 -45
  2591. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +0 -78
  2592. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +0 -65
  2593. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +0 -85
  2594. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +0 -55
  2595. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +0 -53
  2596. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +0 -45
  2597. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +0 -36
  2598. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +0 -30
  2599. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +0 -94
  2600. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +0 -35
  2601. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +0 -54
  2602. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +0 -40
  2603. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +0 -48
  2604. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +0 -45
  2605. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +0 -69
  2606. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +0 -40
  2607. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +0 -39
  2608. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +0 -30
  2609. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +0 -44
  2610. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +0 -35
  2611. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +0 -57
  2612. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +0 -35
  2613. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +0 -40
  2614. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +0 -30
  2615. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +0 -154
  2616. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +0 -95
  2617. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +0 -153
  2618. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +0 -100
  2619. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +0 -52
  2620. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +0 -45
  2621. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +0 -39
  2622. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +0 -35
  2623. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +0 -34
  2624. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +0 -35
  2625. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +0 -331
  2626. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +0 -165
  2627. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +0 -35
  2628. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +0 -35
  2629. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +0 -32
  2630. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +0 -35
  2631. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +0 -54
  2632. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +0 -50
  2633. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +0 -35
  2634. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +0 -35
  2635. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +0 -45
  2636. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +0 -75
  2637. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +0 -37
  2638. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +0 -35
  2639. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  2640. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -50
  2641. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -99
  2642. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +0 -75
  2643. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +0 -62
  2644. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +0 -45
  2645. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +0 -47
  2646. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +0 -35
  2647. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +0 -34
  2648. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +0 -30
  2649. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +0 -46
  2650. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +0 -35
  2651. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +0 -39
  2652. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +0 -35
  2653. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +0 -283
  2654. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +0 -145
  2655. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +0 -63
  2656. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +0 -45
  2657. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +0 -47
  2658. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +0 -35
  2659. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +0 -35
  2660. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +0 -30
  2661. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +0 -64
  2662. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +0 -50
  2663. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +0 -40
  2664. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +0 -35
  2665. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +0 -38
  2666. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +0 -35
  2667. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +0 -45
  2668. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +0 -35
  2669. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +0 -56
  2670. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +0 -40
  2671. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +0 -39
  2672. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +0 -40
  2673. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +0 -41
  2674. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +0 -35
  2675. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +0 -45
  2676. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +0 -35
  2677. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +0 -61
  2678. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +0 -40
  2679. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +0 -46
  2680. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +0 -35
  2681. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +0 -43
  2682. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +0 -35
  2683. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +0 -51
  2684. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +0 -40
  2685. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +0 -36
  2686. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +0 -35
  2687. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +0 -55
  2688. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +0 -40
  2689. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +0 -126
  2690. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +0 -80
  2691. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +0 -71
  2692. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +0 -60
  2693. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +0 -40
  2694. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +0 -40
  2695. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +0 -52
  2696. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +0 -40
  2697. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +0 -60
  2698. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +0 -40
  2699. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +0 -36
  2700. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +0 -45
  2701. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +0 -37
  2702. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +0 -35
  2703. data/src/core/lib/event_engine/executor/executor.h +0 -38
  2704. data/src/core/lib/event_engine/memory_allocator.cc +0 -74
  2705. data/src/core/lib/event_engine/thread_pool.cc +0 -253
  2706. data/src/core/lib/event_engine/thread_pool.h +0 -141
  2707. data/src/core/lib/promise/detail/basic_join.h +0 -197
  2708. data/src/core/lib/promise/detail/switch.h +0 -1455
  2709. data/src/core/lib/resolver/server_address.cc +0 -182
  2710. data/src/core/lib/transport/pid_controller.cc +0 -51
  2711. data/src/core/lib/transport/pid_controller.h +0 -116
  2712. data/src/core/lib/transport/transport_impl.h +0 -102
  2713. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
  2714. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +0 -62
  2715. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm.c +0 -38
  2716. data/third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c +0 -112
  2717. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +0 -34
  2718. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -65
  2719. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +0 -52
  2720. data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
  2721. data/third_party/cares/cares/src/lib/ares_nameser.h +0 -482
  2722. data/third_party/re2/util/benchmark.h +0 -156
  2723. data/third_party/re2/util/flags.h +0 -26
  2724. data/third_party/re2/util/malloc_counter.h +0 -19
  2725. data/third_party/re2/util/pcre.cc +0 -1025
  2726. data/third_party/re2/util/pcre.h +0 -681
  2727. data/third_party/re2/util/test.h +0 -50
  2728. data/third_party/upb/third_party/utf8_range/range2-neon.c +0 -157
  2729. data/third_party/upb/third_party/utf8_range/utf8_range.h +0 -9
  2730. data/third_party/upb/upb/arena.c +0 -277
  2731. data/third_party/upb/upb/arena.h +0 -225
  2732. data/third_party/upb/upb/array.c +0 -114
  2733. data/third_party/upb/upb/array.h +0 -83
  2734. data/third_party/upb/upb/collections.h +0 -36
  2735. data/third_party/upb/upb/decode.c +0 -1221
  2736. data/third_party/upb/upb/decode.h +0 -95
  2737. data/third_party/upb/upb/decode_fast.c +0 -1055
  2738. data/third_party/upb/upb/decode_fast.h +0 -153
  2739. data/third_party/upb/upb/def.c +0 -3269
  2740. data/third_party/upb/upb/def.h +0 -416
  2741. data/third_party/upb/upb/def.hpp +0 -441
  2742. data/third_party/upb/upb/encode.c +0 -613
  2743. data/third_party/upb/upb/encode.h +0 -81
  2744. data/third_party/upb/upb/extension_registry.c +0 -93
  2745. data/third_party/upb/upb/extension_registry.h +0 -84
  2746. data/third_party/upb/upb/internal/decode.h +0 -211
  2747. data/third_party/upb/upb/internal/table.h +0 -385
  2748. data/third_party/upb/upb/internal/upb.h +0 -68
  2749. data/third_party/upb/upb/internal/vsnprintf_compat.h +0 -52
  2750. data/third_party/upb/upb/json_decode.c +0 -1512
  2751. data/third_party/upb/upb/json_decode.h +0 -47
  2752. data/third_party/upb/upb/json_encode.c +0 -780
  2753. data/third_party/upb/upb/json_encode.h +0 -65
  2754. data/third_party/upb/upb/map.c +0 -108
  2755. data/third_party/upb/upb/map.h +0 -117
  2756. data/third_party/upb/upb/message_value.h +0 -66
  2757. data/third_party/upb/upb/mini_table.c +0 -1147
  2758. data/third_party/upb/upb/mini_table.h +0 -189
  2759. data/third_party/upb/upb/mini_table.hpp +0 -112
  2760. data/third_party/upb/upb/msg.c +0 -368
  2761. data/third_party/upb/upb/msg.h +0 -71
  2762. data/third_party/upb/upb/msg_internal.h +0 -837
  2763. data/third_party/upb/upb/port_def.inc +0 -262
  2764. data/third_party/upb/upb/port_undef.inc +0 -63
  2765. data/third_party/upb/upb/reflection.c +0 -323
  2766. data/third_party/upb/upb/reflection.h +0 -110
  2767. data/third_party/upb/upb/reflection.hpp +0 -37
  2768. data/third_party/upb/upb/status.c +0 -86
  2769. data/third_party/upb/upb/status.h +0 -66
  2770. data/third_party/upb/upb/table.c +0 -926
  2771. data/third_party/upb/upb/table_internal.h +0 -36
  2772. data/third_party/upb/upb/text_encode.c +0 -473
  2773. data/third_party/upb/upb/text_encode.h +0 -64
  2774. data/third_party/upb/upb/upb.c +0 -76
  2775. data/third_party/upb/upb/upb.h +0 -184
  2776. data/third_party/upb/upb/upb.hpp +0 -115
  2777. data/third_party/zlib/gzclose.c +0 -25
  2778. data/third_party/zlib/gzlib.c +0 -639
  2779. data/third_party/zlib/gzread.c +0 -650
  2780. data/third_party/zlib/gzwrite.c +0 -677
  2781. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  2782. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -18,61 +18,25 @@
18
18
 
19
19
  #include "src/core/ext/filters/client_channel/retry_filter.h"
20
20
 
21
- #include <inttypes.h>
22
- #include <limits.h>
23
- #include <stddef.h>
24
-
25
- #include <memory>
26
- #include <new>
27
21
  #include <string>
28
- #include <utility>
29
22
 
30
- #include "absl/container/inlined_vector.h"
31
- #include "absl/status/status.h"
32
23
  #include "absl/status/statusor.h"
33
- #include "absl/strings/str_cat.h"
34
- #include "absl/strings/string_view.h"
35
24
  #include "absl/strings/strip.h"
36
25
  #include "absl/types/optional.h"
37
26
 
38
27
  #include <grpc/event_engine/event_engine.h>
39
- #include <grpc/grpc.h>
40
- #include <grpc/slice.h>
41
- #include <grpc/status.h>
42
- #include <grpc/support/log.h>
43
28
 
44
29
  #include "src/core/ext/filters/client_channel/client_channel.h"
45
- #include "src/core/ext/filters/client_channel/client_channel_internal.h"
46
- #include "src/core/ext/filters/client_channel/config_selector.h"
30
+ #include "src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h"
47
31
  #include "src/core/ext/filters/client_channel/retry_service_config.h"
48
32
  #include "src/core/ext/filters/client_channel/retry_throttle.h"
49
- #include "src/core/lib/backoff/backoff.h"
50
33
  #include "src/core/lib/channel/channel_args.h"
51
34
  #include "src/core/lib/channel/channel_stack.h"
52
- #include "src/core/lib/channel/context.h"
53
- #include "src/core/lib/channel/status_util.h"
54
35
  #include "src/core/lib/debug/trace.h"
55
- #include "src/core/lib/gpr/useful.h"
56
- #include "src/core/lib/gprpp/construct_destruct.h"
57
- #include "src/core/lib/gprpp/debug_location.h"
58
- #include "src/core/lib/gprpp/orphanable.h"
59
- #include "src/core/lib/gprpp/ref_counted.h"
60
36
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
61
- #include "src/core/lib/gprpp/status_helper.h"
62
- #include "src/core/lib/gprpp/time.h"
63
- #include "src/core/lib/iomgr/call_combiner.h"
64
- #include "src/core/lib/iomgr/closure.h"
65
37
  #include "src/core/lib/iomgr/error.h"
66
- #include "src/core/lib/iomgr/exec_ctx.h"
67
- #include "src/core/lib/iomgr/polling_entity.h"
68
- #include "src/core/lib/resource_quota/arena.h"
69
38
  #include "src/core/lib/service_config/service_config.h"
70
39
  #include "src/core/lib/service_config/service_config_call_data.h"
71
- #include "src/core/lib/slice/slice.h"
72
- #include "src/core/lib/slice/slice_buffer.h"
73
- #include "src/core/lib/transport/error_utils.h"
74
- #include "src/core/lib/transport/metadata_batch.h"
75
- #include "src/core/lib/transport/transport.h"
76
40
  #include "src/core/lib/uri/uri_parser.h"
77
41
 
78
42
  //
@@ -120,2001 +84,52 @@
120
84
  // TODO(roth): In subsequent PRs:
121
85
  // - implement hedging
122
86
 
123
- // By default, we buffer 256 KiB per RPC for retries.
124
- // TODO(roth): Do we have any data to suggest a better value?
125
- #define DEFAULT_PER_RPC_RETRY_BUFFER_SIZE (256 << 10)
87
+ using grpc_core::internal::RetryGlobalConfig;
88
+ using grpc_core::internal::RetryMethodConfig;
89
+ using grpc_core::internal::RetryServiceConfigParser;
90
+ using grpc_event_engine::experimental::EventEngine;
126
91
 
127
- // This value was picked arbitrarily. It can be changed if there is
128
- // any even moderately compelling reason to do so.
129
- #define RETRY_BACKOFF_JITTER 0.2
92
+ grpc_core::TraceFlag grpc_retry_trace(false, "retry");
130
93
 
131
94
  namespace grpc_core {
132
95
 
133
- namespace {
134
-
135
- using grpc_event_engine::experimental::EventEngine;
136
- using internal::RetryGlobalConfig;
137
- using internal::RetryMethodConfig;
138
- using internal::RetryServiceConfigParser;
139
- using internal::ServerRetryThrottleData;
140
-
141
- TraceFlag grpc_retry_trace(false, "retry");
142
-
143
96
  //
144
97
  // RetryFilter
145
98
  //
146
99
 
147
- class RetryFilter {
148
- public:
149
- class CallData;
150
-
151
- static grpc_error_handle Init(grpc_channel_element* elem,
152
- grpc_channel_element_args* args) {
153
- GPR_ASSERT(args->is_last);
154
- GPR_ASSERT(elem->filter == &kRetryFilterVtable);
155
- grpc_error_handle error;
156
- new (elem->channel_data) RetryFilter(args->channel_args, &error);
157
- return error;
158
- }
159
-
160
- static void Destroy(grpc_channel_element* elem) {
161
- auto* chand = static_cast<RetryFilter*>(elem->channel_data);
162
- chand->~RetryFilter();
163
- }
164
-
165
- // Will never be called.
166
- static void StartTransportOp(grpc_channel_element* /*elem*/,
167
- grpc_transport_op* /*op*/) {}
168
- static void GetChannelInfo(grpc_channel_element* /*elem*/,
169
- const grpc_channel_info* /*info*/) {}
170
-
171
- private:
172
- static size_t GetMaxPerRpcRetryBufferSize(const ChannelArgs& args) {
173
- return Clamp(args.GetInt(GRPC_ARG_PER_RPC_RETRY_BUFFER_SIZE)
174
- .value_or(DEFAULT_PER_RPC_RETRY_BUFFER_SIZE),
175
- 0, INT_MAX);
176
- }
177
-
178
- RetryFilter(const ChannelArgs& args, grpc_error_handle* error)
179
- : client_channel_(args.GetObject<ClientChannel>()),
180
- event_engine_(args.GetObject<EventEngine>()),
181
- per_rpc_retry_buffer_size_(GetMaxPerRpcRetryBufferSize(args)),
182
- service_config_parser_index_(
183
- internal::RetryServiceConfigParser::ParserIndex()) {
184
- // Get retry throttling parameters from service config.
185
- auto* service_config = args.GetObject<ServiceConfig>();
186
- if (service_config == nullptr) return;
187
- const auto* config = static_cast<const RetryGlobalConfig*>(
188
- service_config->GetGlobalParsedConfig(
189
- RetryServiceConfigParser::ParserIndex()));
190
- if (config == nullptr) return;
191
- // Get server name from target URI.
192
- auto server_uri = args.GetString(GRPC_ARG_SERVER_URI);
193
- if (!server_uri.has_value()) {
194
- *error = GRPC_ERROR_CREATE(
195
- "server URI channel arg missing or wrong type in client channel "
196
- "filter");
197
- return;
198
- }
199
- absl::StatusOr<URI> uri = URI::Parse(*server_uri);
200
- if (!uri.ok() || uri->path().empty()) {
201
- *error =
202
- GRPC_ERROR_CREATE("could not extract server name from target URI");
203
- return;
204
- }
205
- std::string server_name(absl::StripPrefix(uri->path(), "/"));
206
- // Get throttling config for server_name.
207
- retry_throttle_data_ =
208
- internal::ServerRetryThrottleMap::Get()->GetDataForServer(
209
- server_name, config->max_milli_tokens(),
210
- config->milli_token_ratio());
211
- }
212
-
213
- const RetryMethodConfig* GetRetryPolicy(
214
- const grpc_call_context_element* context);
215
-
216
- ClientChannel* client_channel_;
217
- EventEngine* const event_engine_;
218
- size_t per_rpc_retry_buffer_size_;
219
- RefCountedPtr<ServerRetryThrottleData> retry_throttle_data_;
220
- const size_t service_config_parser_index_;
221
- };
222
-
223
- //
224
- // RetryFilter::CallData
225
- //
226
-
227
- class RetryFilter::CallData {
228
- public:
229
- static grpc_error_handle Init(grpc_call_element* elem,
230
- const grpc_call_element_args* args);
231
- static void Destroy(grpc_call_element* elem,
232
- const grpc_call_final_info* /*final_info*/,
233
- grpc_closure* then_schedule_closure);
234
- static void StartTransportStreamOpBatch(
235
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch);
236
- static void SetPollent(grpc_call_element* elem, grpc_polling_entity* pollent);
237
-
238
- private:
239
- class CallStackDestructionBarrier;
240
-
241
- // Pending batches stored in call data.
242
- struct PendingBatch {
243
- // The pending batch. If nullptr, this slot is empty.
244
- grpc_transport_stream_op_batch* batch = nullptr;
245
- // Indicates whether payload for send ops has been cached in CallData.
246
- bool send_ops_cached = false;
247
- };
248
-
249
- // State associated with each call attempt.
250
- class CallAttempt : public RefCounted<CallAttempt> {
251
- public:
252
- CallAttempt(CallData* calld, bool is_transparent_retry);
253
- ~CallAttempt() override;
254
-
255
- bool lb_call_committed() const { return lb_call_committed_; }
256
-
257
- // Constructs and starts whatever batches are needed on this call
258
- // attempt.
259
- void StartRetriableBatches();
260
-
261
- // Frees cached send ops that have already been completed after
262
- // committing the call.
263
- void FreeCachedSendOpDataAfterCommit();
264
-
265
- // Cancels the call attempt.
266
- void CancelFromSurface(grpc_transport_stream_op_batch* cancel_batch);
267
-
268
- private:
269
- // State used for starting a retryable batch on the call attempt's LB call.
270
- // This provides its own grpc_transport_stream_op_batch and other data
271
- // structures needed to populate the ops in the batch.
272
- // We allocate one struct on the arena for each attempt at starting a
273
- // batch on a given LB call.
274
- class BatchData
275
- : public RefCounted<BatchData, PolymorphicRefCount, UnrefCallDtor> {
276
- public:
277
- BatchData(RefCountedPtr<CallAttempt> call_attempt, int refcount,
278
- bool set_on_complete);
279
- ~BatchData() override;
280
-
281
- grpc_transport_stream_op_batch* batch() { return &batch_; }
282
-
283
- // Adds retriable send_initial_metadata op.
284
- void AddRetriableSendInitialMetadataOp();
285
- // Adds retriable send_message op.
286
- void AddRetriableSendMessageOp();
287
- // Adds retriable send_trailing_metadata op.
288
- void AddRetriableSendTrailingMetadataOp();
289
- // Adds retriable recv_initial_metadata op.
290
- void AddRetriableRecvInitialMetadataOp();
291
- // Adds retriable recv_message op.
292
- void AddRetriableRecvMessageOp();
293
- // Adds retriable recv_trailing_metadata op.
294
- void AddRetriableRecvTrailingMetadataOp();
295
- // Adds cancel_stream op.
296
- void AddCancelStreamOp(grpc_error_handle error);
297
-
298
- private:
299
- // Frees cached send ops that were completed by the completed batch in
300
- // batch_data. Used when batches are completed after the call is
301
- // committed.
302
- void FreeCachedSendOpDataForCompletedBatch();
303
-
304
- // If there is a pending recv_initial_metadata op, adds a closure
305
- // to closures for recv_initial_metadata_ready.
306
- void MaybeAddClosureForRecvInitialMetadataCallback(
307
- grpc_error_handle error, CallCombinerClosureList* closures);
308
- // Intercepts recv_initial_metadata_ready callback for retries.
309
- // Commits the call and returns the initial metadata up the stack.
310
- static void RecvInitialMetadataReady(void* arg, grpc_error_handle error);
311
-
312
- // If there is a pending recv_message op, adds a closure to closures
313
- // for recv_message_ready.
314
- void MaybeAddClosureForRecvMessageCallback(
315
- grpc_error_handle error, CallCombinerClosureList* closures);
316
- // Intercepts recv_message_ready callback for retries.
317
- // Commits the call and returns the message up the stack.
318
- static void RecvMessageReady(void* arg, grpc_error_handle error);
319
-
320
- // If there is a pending recv_trailing_metadata op, adds a closure to
321
- // closures for recv_trailing_metadata_ready.
322
- void MaybeAddClosureForRecvTrailingMetadataReady(
323
- grpc_error_handle error, CallCombinerClosureList* closures);
324
- // Adds any necessary closures for deferred batch completion
325
- // callbacks to closures.
326
- void AddClosuresForDeferredCompletionCallbacks(
327
- CallCombinerClosureList* closures);
328
- // For any pending batch containing an op that has not yet been started,
329
- // adds the pending batch's completion closures to closures.
330
- void AddClosuresToFailUnstartedPendingBatches(
331
- grpc_error_handle error, CallCombinerClosureList* closures);
332
- // Runs necessary closures upon completion of a call attempt.
333
- void RunClosuresForCompletedCall(grpc_error_handle error);
334
- // Intercepts recv_trailing_metadata_ready callback for retries.
335
- // Commits the call and returns the trailing metadata up the stack.
336
- static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
337
-
338
- // Adds the on_complete closure for the pending batch completed in
339
- // batch_data to closures.
340
- void AddClosuresForCompletedPendingBatch(
341
- grpc_error_handle error, CallCombinerClosureList* closures);
342
-
343
- // If there are any cached ops to replay or pending ops to start on the
344
- // LB call, adds them to closures.
345
- void AddClosuresForReplayOrPendingSendOps(
346
- CallCombinerClosureList* closures);
347
-
348
- // Callback used to intercept on_complete from LB calls.
349
- static void OnComplete(void* arg, grpc_error_handle error);
350
-
351
- // Callback used to handle on_complete for internally generated
352
- // cancel_stream op.
353
- static void OnCompleteForCancelOp(void* arg, grpc_error_handle error);
354
-
355
- // This DOES hold a ref, but it cannot be a RefCountedPtr<>, because
356
- // our dtor unrefs the owning call, which may delete the arena in
357
- // which we are allocated, which means that running the dtor of any
358
- // data members after that would cause a crash.
359
- CallAttempt* call_attempt_;
360
- // The batch to use in the LB call.
361
- // Its payload field points to CallAttempt::batch_payload_.
362
- grpc_transport_stream_op_batch batch_;
363
- // For intercepting on_complete.
364
- grpc_closure on_complete_;
365
- };
366
-
367
- class AttemptDispatchController
368
- : public ConfigSelector::CallDispatchController {
369
- public:
370
- explicit AttemptDispatchController(CallAttempt* call_attempt)
371
- : call_attempt_(call_attempt) {}
372
-
373
- // Will never be called.
374
- bool ShouldRetry() override { return false; }
375
-
376
- void Commit() override {
377
- call_attempt_->lb_call_committed_ = true;
378
- auto* calld = call_attempt_->calld_;
379
- if (calld->retry_committed_) {
380
- auto* service_config_call_data =
381
- static_cast<ClientChannelServiceConfigCallData*>(
382
- calld->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA]
383
- .value);
384
- service_config_call_data->call_dispatch_controller()->Commit();
385
- }
386
- }
387
-
388
- private:
389
- CallAttempt* call_attempt_;
390
- };
391
-
392
- // Creates a BatchData object on the call's arena with the
393
- // specified refcount. If set_on_complete is true, the batch's
394
- // on_complete callback will be set to point to on_complete();
395
- // otherwise, the batch's on_complete callback will be null.
396
- BatchData* CreateBatch(int refcount, bool set_on_complete) {
397
- return calld_->arena_->New<BatchData>(Ref(DEBUG_LOCATION, "CreateBatch"),
398
- refcount, set_on_complete);
399
- }
400
-
401
- // If there are any cached send ops that need to be replayed on this
402
- // call attempt, creates and returns a new batch to replay those ops.
403
- // Otherwise, returns nullptr.
404
- BatchData* MaybeCreateBatchForReplay();
405
-
406
- // Adds a closure to closures that will execute batch in the call combiner.
407
- void AddClosureForBatch(grpc_transport_stream_op_batch* batch,
408
- const char* reason,
409
- CallCombinerClosureList* closures);
410
-
411
- // Helper function used to start a recv_trailing_metadata batch. This
412
- // is used in the case where a recv_initial_metadata or recv_message
413
- // op fails in a way that we know the call is over but when the application
414
- // has not yet started its own recv_trailing_metadata op.
415
- void AddBatchForInternalRecvTrailingMetadata(
416
- CallCombinerClosureList* closures);
417
-
418
- // Adds a batch to closures to cancel this call attempt, if
419
- // cancellation has not already been sent on the LB call.
420
- void MaybeAddBatchForCancelOp(grpc_error_handle error,
421
- CallCombinerClosureList* closures);
422
-
423
- // Adds batches for pending batches to closures.
424
- void AddBatchesForPendingBatches(CallCombinerClosureList* closures);
425
-
426
- // Adds whatever batches are needed on this attempt to closures.
427
- void AddRetriableBatches(CallCombinerClosureList* closures);
428
-
429
- // Returns true if any send op in the batch was not yet started on this
430
- // attempt.
431
- bool PendingBatchContainsUnstartedSendOps(PendingBatch* pending);
432
-
433
- // Returns true if there are cached send ops to replay.
434
- bool HaveSendOpsToReplay();
435
-
436
- // If our retry state is no longer needed, switch to fast path by moving
437
- // our LB call into calld_->committed_call_ and having calld_ drop
438
- // its ref to us.
439
- void MaybeSwitchToFastPath();
440
-
441
- // Returns true if the call should be retried.
442
- bool ShouldRetry(absl::optional<grpc_status_code> status,
443
- absl::optional<Duration> server_pushback_ms);
444
-
445
- // Abandons the call attempt. Unrefs any deferred batches.
446
- void Abandon();
447
-
448
- void OnPerAttemptRecvTimer();
449
- static void OnPerAttemptRecvTimerLocked(void* arg, grpc_error_handle error);
450
- void MaybeCancelPerAttemptRecvTimer();
451
-
452
- CallData* calld_;
453
- AttemptDispatchController attempt_dispatch_controller_;
454
- OrphanablePtr<ClientChannel::FilterBasedLoadBalancedCall> lb_call_;
455
- bool lb_call_committed_ = false;
456
-
457
- grpc_closure on_per_attempt_recv_timer_;
458
- absl::optional<EventEngine::TaskHandle> per_attempt_recv_timer_handle_;
459
-
460
- // BatchData.batch.payload points to this.
461
- grpc_transport_stream_op_batch_payload batch_payload_;
462
- // For send_initial_metadata.
463
- grpc_metadata_batch send_initial_metadata_{calld_->arena_};
464
- // For send_trailing_metadata.
465
- grpc_metadata_batch send_trailing_metadata_{calld_->arena_};
466
- // For intercepting recv_initial_metadata.
467
- grpc_metadata_batch recv_initial_metadata_{calld_->arena_};
468
- grpc_closure recv_initial_metadata_ready_;
469
- bool trailing_metadata_available_ = false;
470
- // For intercepting recv_message.
471
- grpc_closure recv_message_ready_;
472
- absl::optional<SliceBuffer> recv_message_;
473
- uint32_t recv_message_flags_;
474
- // For intercepting recv_trailing_metadata.
475
- grpc_metadata_batch recv_trailing_metadata_{calld_->arena_};
476
- grpc_transport_stream_stats collect_stats_;
477
- grpc_closure recv_trailing_metadata_ready_;
478
- // These fields indicate which ops have been started and completed on
479
- // this call attempt.
480
- size_t started_send_message_count_ = 0;
481
- size_t completed_send_message_count_ = 0;
482
- size_t started_recv_message_count_ = 0;
483
- size_t completed_recv_message_count_ = 0;
484
- bool started_send_initial_metadata_ : 1;
485
- bool completed_send_initial_metadata_ : 1;
486
- bool started_send_trailing_metadata_ : 1;
487
- bool completed_send_trailing_metadata_ : 1;
488
- bool started_recv_initial_metadata_ : 1;
489
- bool completed_recv_initial_metadata_ : 1;
490
- bool started_recv_trailing_metadata_ : 1;
491
- bool completed_recv_trailing_metadata_ : 1;
492
- bool sent_cancel_stream_ : 1;
493
- // State for callback processing.
494
- RefCountedPtr<BatchData> recv_initial_metadata_ready_deferred_batch_;
495
- grpc_error_handle recv_initial_metadata_error_;
496
- RefCountedPtr<BatchData> recv_message_ready_deferred_batch_;
497
- grpc_error_handle recv_message_error_;
498
- struct OnCompleteDeferredBatch {
499
- OnCompleteDeferredBatch(RefCountedPtr<BatchData> batch,
500
- grpc_error_handle error)
501
- : batch(std::move(batch)), error(error) {}
502
- RefCountedPtr<BatchData> batch;
503
- grpc_error_handle error;
504
- };
505
- // There cannot be more than 3 pending send op batches at a time.
506
- absl::InlinedVector<OnCompleteDeferredBatch, 3>
507
- on_complete_deferred_batches_;
508
- RefCountedPtr<BatchData> recv_trailing_metadata_internal_batch_;
509
- grpc_error_handle recv_trailing_metadata_error_;
510
- bool seen_recv_trailing_metadata_from_surface_ : 1;
511
- // NOTE: Do not move this next to the metadata bitfields above. That would
512
- // save space but will also result in a data race because compiler
513
- // will generate a 2 byte store which overwrites the meta-data
514
- // fields upon setting this field.
515
- bool abandoned_ : 1;
516
- };
517
-
518
- CallData(RetryFilter* chand, const grpc_call_element_args& args);
519
- ~CallData();
520
-
521
- void StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch);
522
-
523
- // Returns the index into pending_batches_ to be used for batch.
524
- static size_t GetBatchIndex(grpc_transport_stream_op_batch* batch);
525
- PendingBatch* PendingBatchesAdd(grpc_transport_stream_op_batch* batch);
526
- void PendingBatchClear(PendingBatch* pending);
527
- void MaybeClearPendingBatch(PendingBatch* pending);
528
- static void FailPendingBatchInCallCombiner(void* arg,
529
- grpc_error_handle error);
530
- // Fails all pending batches. Does NOT yield call combiner.
531
- void PendingBatchesFail(grpc_error_handle error);
532
- // Returns a pointer to the first pending batch for which predicate(batch)
533
- // returns true, or null if not found.
534
- template <typename Predicate>
535
- PendingBatch* PendingBatchFind(const char* log_message, Predicate predicate);
536
-
537
- // Caches data for send ops so that it can be retried later, if not
538
- // already cached.
539
- void MaybeCacheSendOpsForBatch(PendingBatch* pending);
540
- void FreeCachedSendInitialMetadata();
541
- // Frees cached send_message at index idx.
542
- void FreeCachedSendMessage(size_t idx);
543
- void FreeCachedSendTrailingMetadata();
544
- void FreeAllCachedSendOpData();
545
-
546
- // Commits the call so that no further retry attempts will be performed.
547
- void RetryCommit(CallAttempt* call_attempt);
548
-
549
- // Starts a timer to retry after appropriate back-off.
550
- // If server_pushback is nullopt, retry_backoff_ is used.
551
- void StartRetryTimer(absl::optional<Duration> server_pushback);
552
-
553
- void OnRetryTimer();
554
- static void OnRetryTimerLocked(void* arg, grpc_error_handle /*error*/);
555
-
556
- // Adds a closure to closures to start a transparent retry.
557
- void AddClosureToStartTransparentRetry(CallCombinerClosureList* closures);
558
- static void StartTransparentRetry(void* arg, grpc_error_handle error);
559
-
560
- OrphanablePtr<ClientChannel::FilterBasedLoadBalancedCall>
561
- CreateLoadBalancedCall(
562
- ConfigSelector::CallDispatchController* call_dispatch_controller,
563
- bool is_transparent_retry);
564
-
565
- void CreateCallAttempt(bool is_transparent_retry);
566
-
567
- RetryFilter* chand_;
568
- grpc_polling_entity* pollent_;
569
- RefCountedPtr<ServerRetryThrottleData> retry_throttle_data_;
570
- const RetryMethodConfig* retry_policy_ = nullptr;
571
- BackOff retry_backoff_;
572
-
573
- grpc_slice path_; // Request path.
574
- Timestamp deadline_;
575
- Arena* arena_;
576
- grpc_call_stack* owning_call_;
577
- CallCombiner* call_combiner_;
578
- grpc_call_context_element* call_context_;
579
-
580
- grpc_error_handle cancelled_from_surface_;
581
-
582
- RefCountedPtr<CallStackDestructionBarrier> call_stack_destruction_barrier_;
583
-
584
- // TODO(roth): As part of implementing hedging, we will need to maintain a
585
- // list of all pending attempts, so that we can cancel them all if the call
586
- // gets cancelled.
587
- RefCountedPtr<CallAttempt> call_attempt_;
588
-
589
- // LB call used when we've committed to a call attempt and the retry
590
- // state for that attempt is no longer needed. This provides a fast
591
- // path for long-running streaming calls that minimizes overhead.
592
- OrphanablePtr<ClientChannel::FilterBasedLoadBalancedCall> committed_call_;
593
-
594
- // When are are not yet fully committed to a particular call (i.e.,
595
- // either we might still retry or we have committed to the call but
596
- // there are still some cached ops to be replayed on the call),
597
- // batches received from above will be added to this list, and they
598
- // will not be removed until we have invoked their completion callbacks.
599
- size_t bytes_buffered_for_retry_ = 0;
600
- PendingBatch pending_batches_[MAX_PENDING_BATCHES];
601
- bool pending_send_initial_metadata_ : 1;
602
- bool pending_send_message_ : 1;
603
- bool pending_send_trailing_metadata_ : 1;
604
-
605
- // Retry state.
606
- bool retry_committed_ : 1;
607
- bool retry_codepath_started_ : 1;
608
- bool sent_transparent_retry_not_seen_by_server_ : 1;
609
- int num_attempts_completed_ = 0;
610
- absl::optional<EventEngine::TaskHandle> retry_timer_handle_;
611
- grpc_closure retry_closure_;
612
-
613
- // Cached data for retrying send ops.
614
- // send_initial_metadata
615
- bool seen_send_initial_metadata_ = false;
616
- grpc_metadata_batch send_initial_metadata_{arena_};
617
- // send_message
618
- // When we get a send_message op, we replace the original byte stream
619
- // with a CachingByteStream that caches the slices to a local buffer for
620
- // use in retries.
621
- // Note: We inline the cache for the first 3 send_message ops and use
622
- // dynamic allocation after that. This number was essentially picked
623
- // at random; it could be changed in the future to tune performance.
624
- struct CachedSendMessage {
625
- SliceBuffer* slices;
626
- uint32_t flags;
627
- };
628
- absl::InlinedVector<CachedSendMessage, 3> send_messages_;
629
- // send_trailing_metadata
630
- bool seen_send_trailing_metadata_ = false;
631
- grpc_metadata_batch send_trailing_metadata_{arena_};
632
- };
633
-
634
- //
635
- // RetryFilter::CallData::CallStackDestructionBarrier
636
- //
637
-
638
- // A class to track the existence of LoadBalancedCall call stacks that
639
- // we've created. We wait until all such call stacks have been
640
- // destroyed before we return the on_call_stack_destruction closure up
641
- // to the surface.
642
- //
643
- // The parent RetryFilter::CallData object holds a ref to this object.
644
- // When it is destroyed, it will store the on_call_stack_destruction
645
- // closure from the surface in this object and then release its ref.
646
- // We also take a ref to this object for each LB call we create, and
647
- // those refs are not released until the LB call stack is destroyed.
648
- // When this object is destroyed, it will invoke the
649
- // on_call_stack_destruction closure from the surface.
650
- class RetryFilter::CallData::CallStackDestructionBarrier
651
- : public RefCounted<CallStackDestructionBarrier, PolymorphicRefCount,
652
- UnrefCallDtor> {
653
- public:
654
- CallStackDestructionBarrier() {}
655
-
656
- ~CallStackDestructionBarrier() override {
657
- // TODO(yashkt) : This can potentially be a Closure::Run
658
- ExecCtx::Run(DEBUG_LOCATION, on_call_stack_destruction_, absl::OkStatus());
659
- }
660
-
661
- // Set the closure from the surface. This closure will be invoked
662
- // when this object is destroyed.
663
- void set_on_call_stack_destruction(grpc_closure* on_call_stack_destruction) {
664
- on_call_stack_destruction_ = on_call_stack_destruction;
665
- }
666
-
667
- // Invoked to get an on_call_stack_destruction closure for a new LB call.
668
- grpc_closure* MakeLbCallDestructionClosure(CallData* calld) {
669
- Ref().release(); // Ref held by callback.
670
- grpc_closure* on_lb_call_destruction_complete =
671
- calld->arena_->New<grpc_closure>();
672
- GRPC_CLOSURE_INIT(on_lb_call_destruction_complete,
673
- OnLbCallDestructionComplete, this, nullptr);
674
- return on_lb_call_destruction_complete;
675
- }
676
-
677
- private:
678
- static void OnLbCallDestructionComplete(void* arg,
679
- grpc_error_handle /*error*/) {
680
- auto* self = static_cast<CallStackDestructionBarrier*>(arg);
681
- self->Unref();
682
- }
683
-
684
- grpc_closure* on_call_stack_destruction_ = nullptr;
685
- };
686
-
687
- //
688
- // RetryFilter::CallData::CallAttempt
689
- //
690
-
691
- RetryFilter::CallData::CallAttempt::CallAttempt(CallData* calld,
692
- bool is_transparent_retry)
693
- : RefCounted(GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace) ? "CallAttempt"
694
- : nullptr),
695
- calld_(calld),
696
- attempt_dispatch_controller_(this),
697
- batch_payload_(calld->call_context_),
698
- started_send_initial_metadata_(false),
699
- completed_send_initial_metadata_(false),
700
- started_send_trailing_metadata_(false),
701
- completed_send_trailing_metadata_(false),
702
- started_recv_initial_metadata_(false),
703
- completed_recv_initial_metadata_(false),
704
- started_recv_trailing_metadata_(false),
705
- completed_recv_trailing_metadata_(false),
706
- sent_cancel_stream_(false),
707
- seen_recv_trailing_metadata_from_surface_(false),
708
- abandoned_(false) {
709
- lb_call_ = calld->CreateLoadBalancedCall(&attempt_dispatch_controller_,
710
- is_transparent_retry);
711
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
712
- gpr_log(GPR_INFO,
713
- "chand=%p calld=%p attempt=%p: created attempt, lb_call=%p",
714
- calld->chand_, calld, this, lb_call_.get());
715
- }
716
- // If per_attempt_recv_timeout is set, start a timer.
717
- if (calld->retry_policy_ != nullptr &&
718
- calld->retry_policy_->per_attempt_recv_timeout().has_value()) {
719
- const Duration per_attempt_recv_timeout =
720
- *calld->retry_policy_->per_attempt_recv_timeout();
721
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
722
- gpr_log(GPR_INFO,
723
- "chand=%p calld=%p attempt=%p: per-attempt timeout in %" PRId64
724
- " ms",
725
- calld->chand_, calld, this, per_attempt_recv_timeout.millis());
726
- }
727
- // Schedule retry after computed delay.
728
- GRPC_CALL_STACK_REF(calld->owning_call_, "OnPerAttemptRecvTimer");
729
- Ref(DEBUG_LOCATION, "OnPerAttemptRecvTimer").release();
730
- per_attempt_recv_timer_handle_ = calld_->chand_->event_engine_->RunAfter(
731
- per_attempt_recv_timeout, [this] {
732
- ApplicationCallbackExecCtx callback_exec_ctx;
733
- ExecCtx exec_ctx;
734
- OnPerAttemptRecvTimer();
735
- });
736
- }
737
- }
738
-
739
- RetryFilter::CallData::CallAttempt::~CallAttempt() {
740
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
741
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: destroying call attempt",
742
- calld_->chand_, calld_, this);
743
- }
744
- }
745
-
746
- void RetryFilter::CallData::CallAttempt::FreeCachedSendOpDataAfterCommit() {
747
- // TODO(roth): When we implement hedging, this logic will need to get
748
- // a bit more complex, because there may be other (now abandoned) call
749
- // attempts still using this data. We may need to do some sort of
750
- // ref-counting instead.
751
- if (completed_send_initial_metadata_) {
752
- calld_->FreeCachedSendInitialMetadata();
753
- }
754
- for (size_t i = 0; i < completed_send_message_count_; ++i) {
755
- calld_->FreeCachedSendMessage(i);
756
- }
757
- if (completed_send_trailing_metadata_) {
758
- calld_->FreeCachedSendTrailingMetadata();
759
- }
760
- }
761
-
762
- bool RetryFilter::CallData::CallAttempt::PendingBatchContainsUnstartedSendOps(
763
- PendingBatch* pending) {
764
- if (pending->batch->on_complete == nullptr) return false;
765
- if (pending->batch->send_initial_metadata &&
766
- !started_send_initial_metadata_) {
767
- return true;
768
- }
769
- if (pending->batch->send_message &&
770
- started_send_message_count_ < calld_->send_messages_.size()) {
771
- return true;
772
- }
773
- if (pending->batch->send_trailing_metadata &&
774
- !started_send_trailing_metadata_) {
775
- return true;
776
- }
777
- return false;
778
- }
779
-
780
- bool RetryFilter::CallData::CallAttempt::HaveSendOpsToReplay() {
781
- // We don't check send_initial_metadata here, because that op will always
782
- // be started as soon as it is received from the surface, so it will
783
- // never need to be started at this point.
784
- return started_send_message_count_ < calld_->send_messages_.size() ||
785
- (calld_->seen_send_trailing_metadata_ &&
786
- !started_send_trailing_metadata_);
787
- }
788
-
789
- void RetryFilter::CallData::CallAttempt::MaybeSwitchToFastPath() {
790
- // If we're not yet committed, we can't switch yet.
791
- // TODO(roth): As part of implementing hedging, this logic needs to
792
- // check that *this* call attempt is the one that we've committed to.
793
- // Might need to replace abandoned_ with an enum indicating whether we're
794
- // in flight, abandoned, or the winning call attempt.
795
- if (!calld_->retry_committed_) return;
796
- // If we've already switched to fast path, there's nothing to do here.
797
- if (calld_->committed_call_ != nullptr) return;
798
- // If the perAttemptRecvTimeout timer is pending, we can't switch yet.
799
- if (per_attempt_recv_timer_handle_.has_value()) return;
800
- // If there are still send ops to replay, we can't switch yet.
801
- if (HaveSendOpsToReplay()) return;
802
- // If we started an internal batch for recv_trailing_metadata but have not
803
- // yet seen that op from the surface, we can't switch yet.
804
- if (recv_trailing_metadata_internal_batch_ != nullptr) return;
805
- // Switch to fast path.
806
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
807
- gpr_log(GPR_INFO,
808
- "chand=%p calld=%p attempt=%p: retry state no longer needed; "
809
- "moving LB call to parent and unreffing the call attempt",
810
- calld_->chand_, calld_, this);
811
- }
812
- calld_->committed_call_ = std::move(lb_call_);
813
- calld_->call_attempt_.reset(DEBUG_LOCATION, "MaybeSwitchToFastPath");
814
- }
815
-
816
- // If there are any cached send ops that need to be replayed on the
817
- // current call attempt, creates and returns a new batch to replay those ops.
818
- // Otherwise, returns nullptr.
819
- RetryFilter::CallData::CallAttempt::BatchData*
820
- RetryFilter::CallData::CallAttempt::MaybeCreateBatchForReplay() {
821
- BatchData* replay_batch_data = nullptr;
822
- // send_initial_metadata.
823
- if (calld_->seen_send_initial_metadata_ && !started_send_initial_metadata_ &&
824
- !calld_->pending_send_initial_metadata_) {
825
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
826
- gpr_log(GPR_INFO,
827
- "chand=%p calld=%p attempt=%p: replaying previously completed "
828
- "send_initial_metadata op",
829
- calld_->chand_, calld_, this);
830
- }
831
- replay_batch_data = CreateBatch(1, true /* set_on_complete */);
832
- replay_batch_data->AddRetriableSendInitialMetadataOp();
833
- }
834
- // send_message.
835
- // Note that we can only have one send_message op in flight at a time.
836
- if (started_send_message_count_ < calld_->send_messages_.size() &&
837
- started_send_message_count_ == completed_send_message_count_ &&
838
- !calld_->pending_send_message_) {
839
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
840
- gpr_log(GPR_INFO,
841
- "chand=%p calld=%p attempt=%p: replaying previously completed "
842
- "send_message op",
843
- calld_->chand_, calld_, this);
844
- }
845
- if (replay_batch_data == nullptr) {
846
- replay_batch_data = CreateBatch(1, true /* set_on_complete */);
847
- }
848
- replay_batch_data->AddRetriableSendMessageOp();
849
- }
850
- // send_trailing_metadata.
851
- // Note that we only add this op if we have no more send_message ops
852
- // to start, since we can't send down any more send_message ops after
853
- // send_trailing_metadata.
854
- if (calld_->seen_send_trailing_metadata_ &&
855
- started_send_message_count_ == calld_->send_messages_.size() &&
856
- !started_send_trailing_metadata_ &&
857
- !calld_->pending_send_trailing_metadata_) {
858
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
859
- gpr_log(GPR_INFO,
860
- "chand=%p calld=%p attempt=%p: replaying previously completed "
861
- "send_trailing_metadata op",
862
- calld_->chand_, calld_, this);
863
- }
864
- if (replay_batch_data == nullptr) {
865
- replay_batch_data = CreateBatch(1, true /* set_on_complete */);
866
- }
867
- replay_batch_data->AddRetriableSendTrailingMetadataOp();
868
- }
869
- return replay_batch_data;
870
- }
871
-
872
- namespace {
873
-
874
- void StartBatchInCallCombiner(void* arg, grpc_error_handle /*ignored*/) {
875
- grpc_transport_stream_op_batch* batch =
876
- static_cast<grpc_transport_stream_op_batch*>(arg);
877
- auto* lb_call = static_cast<ClientChannel::FilterBasedLoadBalancedCall*>(
878
- batch->handler_private.extra_arg);
879
- // Note: This will release the call combiner.
880
- lb_call->StartTransportStreamOpBatch(batch);
881
- }
882
-
883
- } // namespace
884
-
885
- void RetryFilter::CallData::CallAttempt::AddClosureForBatch(
886
- grpc_transport_stream_op_batch* batch, const char* reason,
887
- CallCombinerClosureList* closures) {
888
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
889
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: adding batch (%s): %s",
890
- calld_->chand_, calld_, this, reason,
891
- grpc_transport_stream_op_batch_string(batch, false).c_str());
892
- }
893
- batch->handler_private.extra_arg = lb_call_.get();
894
- GRPC_CLOSURE_INIT(&batch->handler_private.closure, StartBatchInCallCombiner,
895
- batch, grpc_schedule_on_exec_ctx);
896
- closures->Add(&batch->handler_private.closure, absl::OkStatus(), reason);
897
- }
898
-
899
- void RetryFilter::CallData::CallAttempt::
900
- AddBatchForInternalRecvTrailingMetadata(CallCombinerClosureList* closures) {
901
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
902
- gpr_log(GPR_INFO,
903
- "chand=%p calld=%p attempt=%p: call failed but "
904
- "recv_trailing_metadata not started; starting it internally",
905
- calld_->chand_, calld_, this);
906
- }
907
- // Create batch_data with 2 refs, since this batch will be unreffed twice:
908
- // once for the recv_trailing_metadata_ready callback when the batch
909
- // completes, and again when we actually get a recv_trailing_metadata
910
- // op from the surface.
911
- BatchData* batch_data = CreateBatch(2, false /* set_on_complete */);
912
- batch_data->AddRetriableRecvTrailingMetadataOp();
913
- recv_trailing_metadata_internal_batch_.reset(batch_data);
914
- AddClosureForBatch(batch_data->batch(),
915
- "starting internal recv_trailing_metadata", closures);
916
- }
917
-
918
- void RetryFilter::CallData::CallAttempt::MaybeAddBatchForCancelOp(
919
- grpc_error_handle error, CallCombinerClosureList* closures) {
920
- if (sent_cancel_stream_) {
921
- return;
922
- }
923
- sent_cancel_stream_ = true;
924
- BatchData* cancel_batch_data = CreateBatch(1, /*set_on_complete=*/true);
925
- cancel_batch_data->AddCancelStreamOp(error);
926
- AddClosureForBatch(cancel_batch_data->batch(),
927
- "start cancellation batch on call attempt", closures);
928
- }
929
-
930
- void RetryFilter::CallData::CallAttempt::AddBatchesForPendingBatches(
931
- CallCombinerClosureList* closures) {
932
- for (size_t i = 0; i < GPR_ARRAY_SIZE(calld_->pending_batches_); ++i) {
933
- PendingBatch* pending = &calld_->pending_batches_[i];
934
- grpc_transport_stream_op_batch* batch = pending->batch;
935
- if (batch == nullptr) continue;
936
- bool has_send_ops = false;
937
- // Skip any batch that either (a) has already been started on this
938
- // call attempt or (b) we can't start yet because we're still
939
- // replaying send ops that need to be completed first.
940
- // TODO(roth): Note that if any one op in the batch can't be sent
941
- // yet due to ops that we're replaying, we don't start any of the ops
942
- // in the batch. This is probably okay, but it could conceivably
943
- // lead to increased latency in some cases -- e.g., we could delay
944
- // starting a recv op due to it being in the same batch with a send
945
- // op. If/when we revamp the callback protocol in
946
- // transport_stream_op_batch, we may be able to fix this.
947
- if (batch->send_initial_metadata) {
948
- if (started_send_initial_metadata_) continue;
949
- has_send_ops = true;
950
- }
951
- if (batch->send_message) {
952
- // Cases where we can't start this send_message op:
953
- // - We are currently replaying a previous cached send_message op.
954
- // - We have already replayed all send_message ops, including this
955
- // one. (This can happen if a send_message op is in the same
956
- // batch as a recv op, the send_message op has already completed
957
- // but the recv op hasn't, and then a subsequent batch with another
958
- // recv op is started from the surface.)
959
- if (completed_send_message_count_ < started_send_message_count_ ||
960
- completed_send_message_count_ ==
961
- (calld_->send_messages_.size() + !pending->send_ops_cached)) {
962
- continue;
963
- }
964
- has_send_ops = true;
965
- }
966
- // Note that we only start send_trailing_metadata if we have no more
967
- // send_message ops to start, since we can't send down any more
968
- // send_message ops after send_trailing_metadata.
969
- if (batch->send_trailing_metadata) {
970
- if (started_send_message_count_ + batch->send_message <
971
- calld_->send_messages_.size() ||
972
- started_send_trailing_metadata_) {
973
- continue;
974
- }
975
- has_send_ops = true;
976
- }
977
- int num_callbacks = has_send_ops; // All send ops share one callback.
978
- if (batch->recv_initial_metadata) {
979
- if (started_recv_initial_metadata_) continue;
980
- ++num_callbacks;
981
- }
982
- if (batch->recv_message) {
983
- // Skip if the op is already in flight, or if it has already completed
984
- // but the completion has not yet been sent to the surface.
985
- if (completed_recv_message_count_ < started_recv_message_count_ ||
986
- recv_message_ready_deferred_batch_ != nullptr) {
987
- continue;
988
- }
989
- ++num_callbacks;
990
- }
991
- if (batch->recv_trailing_metadata) {
992
- if (started_recv_trailing_metadata_) {
993
- seen_recv_trailing_metadata_from_surface_ = true;
994
- // If we previously completed a recv_trailing_metadata op
995
- // initiated by AddBatchForInternalRecvTrailingMetadata(), use the
996
- // result of that instead of trying to re-start this op.
997
- if (GPR_UNLIKELY(recv_trailing_metadata_internal_batch_ != nullptr)) {
998
- // If the batch completed, then trigger the completion callback
999
- // directly, so that we return the previously returned results to
1000
- // the application. Otherwise, just unref the internally started
1001
- // batch, since we'll propagate the completion when it completes.
1002
- if (completed_recv_trailing_metadata_) {
1003
- closures->Add(
1004
- &recv_trailing_metadata_ready_, recv_trailing_metadata_error_,
1005
- "re-executing recv_trailing_metadata_ready to propagate "
1006
- "internally triggered result");
1007
- // Ref will be released by callback.
1008
- recv_trailing_metadata_internal_batch_.release();
1009
- } else {
1010
- recv_trailing_metadata_internal_batch_.reset(
1011
- DEBUG_LOCATION,
1012
- "internally started recv_trailing_metadata batch pending and "
1013
- "recv_trailing_metadata started from surface");
1014
- }
1015
- recv_trailing_metadata_error_ = absl::OkStatus();
1016
- }
1017
- // We don't want the fact that we've already started this op internally
1018
- // to prevent us from adding a batch that may contain other ops.
1019
- // Instead, we'll just skip adding this op below.
1020
- if (num_callbacks == 0) continue;
1021
- } else {
1022
- ++num_callbacks;
1023
- }
1024
- }
1025
- // If we're already committed and the following conditions are met,
1026
- // just send the batch down as-is:
1027
- // - The batch contains no cached send ops. (If it does, we need
1028
- // the logic below to use the cached payloads.)
1029
- // - The batch does not contain recv_trailing_metadata when we have
1030
- // already started an internal recv_trailing_metadata batch. (If
1031
- // we've already started an internal recv_trailing_metadata batch,
1032
- // then we need the logic below to send all ops in the batch
1033
- // *except* the recv_trailing_metadata op.)
1034
- if (calld_->retry_committed_ && !pending->send_ops_cached &&
1035
- (!batch->recv_trailing_metadata || !started_recv_trailing_metadata_)) {
1036
- AddClosureForBatch(
1037
- batch,
1038
- "start non-replayable pending batch on call attempt after commit",
1039
- closures);
1040
- calld_->PendingBatchClear(pending);
1041
- continue;
1042
- }
1043
- // Create batch with the right number of callbacks.
1044
- BatchData* batch_data =
1045
- CreateBatch(num_callbacks, has_send_ops /* set_on_complete */);
1046
- // Cache send ops if needed.
1047
- calld_->MaybeCacheSendOpsForBatch(pending);
1048
- // send_initial_metadata.
1049
- if (batch->send_initial_metadata) {
1050
- batch_data->AddRetriableSendInitialMetadataOp();
1051
- }
1052
- // send_message.
1053
- if (batch->send_message) {
1054
- batch_data->AddRetriableSendMessageOp();
1055
- }
1056
- // send_trailing_metadata.
1057
- if (batch->send_trailing_metadata) {
1058
- batch_data->AddRetriableSendTrailingMetadataOp();
1059
- }
1060
- // recv_initial_metadata.
1061
- if (batch->recv_initial_metadata) {
1062
- batch_data->AddRetriableRecvInitialMetadataOp();
1063
- }
1064
- // recv_message.
1065
- if (batch->recv_message) {
1066
- batch_data->AddRetriableRecvMessageOp();
1067
- }
1068
- // recv_trailing_metadata.
1069
- if (batch->recv_trailing_metadata && !started_recv_trailing_metadata_) {
1070
- batch_data->AddRetriableRecvTrailingMetadataOp();
1071
- }
1072
- AddClosureForBatch(batch_data->batch(),
1073
- "start replayable pending batch on call attempt",
1074
- closures);
1075
- }
1076
- }
1077
-
1078
- void RetryFilter::CallData::CallAttempt::AddRetriableBatches(
1079
- CallCombinerClosureList* closures) {
1080
- // Replay previously-returned send_* ops if needed.
1081
- BatchData* replay_batch_data = MaybeCreateBatchForReplay();
1082
- if (replay_batch_data != nullptr) {
1083
- AddClosureForBatch(replay_batch_data->batch(),
1084
- "start replay batch on call attempt", closures);
1085
- }
1086
- // Now add pending batches.
1087
- AddBatchesForPendingBatches(closures);
1088
- }
1089
-
1090
- void RetryFilter::CallData::CallAttempt::StartRetriableBatches() {
1091
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1092
- gpr_log(GPR_INFO,
1093
- "chand=%p calld=%p attempt=%p: constructing retriable batches",
1094
- calld_->chand_, calld_, this);
1095
- }
1096
- // Construct list of closures to execute, one for each pending batch.
1097
- CallCombinerClosureList closures;
1098
- AddRetriableBatches(&closures);
1099
- // Note: This will yield the call combiner.
1100
- // Start batches on LB call.
1101
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1102
- gpr_log(GPR_INFO,
1103
- "chand=%p calld=%p attempt=%p: starting %" PRIuPTR
1104
- " retriable batches on lb_call=%p",
1105
- calld_->chand_, calld_, this, closures.size(), lb_call_.get());
1106
- }
1107
- closures.RunClosures(calld_->call_combiner_);
1108
- }
1109
-
1110
- void RetryFilter::CallData::CallAttempt::CancelFromSurface(
1111
- grpc_transport_stream_op_batch* cancel_batch) {
1112
- MaybeCancelPerAttemptRecvTimer();
1113
- Abandon();
1114
- // Propagate cancellation to LB call.
1115
- lb_call_->StartTransportStreamOpBatch(cancel_batch);
1116
- }
1117
-
1118
- bool RetryFilter::CallData::CallAttempt::ShouldRetry(
1119
- absl::optional<grpc_status_code> status,
1120
- absl::optional<Duration> server_pushback) {
1121
- // If no retry policy, don't retry.
1122
- if (calld_->retry_policy_ == nullptr) return false;
1123
- // Check status.
1124
- if (status.has_value()) {
1125
- if (GPR_LIKELY(*status == GRPC_STATUS_OK)) {
1126
- if (calld_->retry_throttle_data_ != nullptr) {
1127
- calld_->retry_throttle_data_->RecordSuccess();
1128
- }
1129
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1130
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: call succeeded",
1131
- calld_->chand_, calld_, this);
1132
- }
1133
- return false;
1134
- }
1135
- // Status is not OK. Check whether the status is retryable.
1136
- if (!calld_->retry_policy_->retryable_status_codes().Contains(*status)) {
1137
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1138
- gpr_log(GPR_INFO,
1139
- "chand=%p calld=%p attempt=%p: status %s not configured as "
1140
- "retryable",
1141
- calld_->chand_, calld_, this,
1142
- grpc_status_code_to_string(*status));
1143
- }
1144
- return false;
1145
- }
1146
- }
1147
- // Record the failure and check whether retries are throttled.
1148
- // Note that it's important for this check to come after the status
1149
- // code check above, since we should only record failures whose statuses
1150
- // match the configured retryable status codes, so that we don't count
1151
- // things like failures due to malformed requests (INVALID_ARGUMENT).
1152
- // Conversely, it's important for this to come before the remaining
1153
- // checks, so that we don't fail to record failures due to other factors.
1154
- if (calld_->retry_throttle_data_ != nullptr &&
1155
- !calld_->retry_throttle_data_->RecordFailure()) {
1156
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1157
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: retries throttled",
1158
- calld_->chand_, calld_, this);
1159
- }
1160
- return false;
1161
- }
1162
- // Check whether the call is committed.
1163
- if (calld_->retry_committed_) {
1164
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1165
- gpr_log(GPR_INFO,
1166
- "chand=%p calld=%p attempt=%p: retries already committed",
1167
- calld_->chand_, calld_, this);
1168
- }
1169
- return false;
1170
- }
1171
- // Check whether we have retries remaining.
1172
- ++calld_->num_attempts_completed_;
1173
- if (calld_->num_attempts_completed_ >=
1174
- calld_->retry_policy_->max_attempts()) {
1175
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1176
- gpr_log(
1177
- GPR_INFO, "chand=%p calld=%p attempt=%p: exceeded %d retry attempts",
1178
- calld_->chand_, calld_, this, calld_->retry_policy_->max_attempts());
1179
- }
1180
- return false;
1181
- }
1182
- // Check server push-back.
1183
- if (server_pushback.has_value()) {
1184
- if (*server_pushback < Duration::Zero()) {
1185
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1186
- gpr_log(GPR_INFO,
1187
- "chand=%p calld=%p attempt=%p: not retrying due to server "
1188
- "push-back",
1189
- calld_->chand_, calld_, this);
1190
- }
1191
- return false;
1192
- } else {
1193
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1194
- gpr_log(
1195
- GPR_INFO,
1196
- "chand=%p calld=%p attempt=%p: server push-back: retry in %" PRIu64
1197
- " ms",
1198
- calld_->chand_, calld_, this, server_pushback->millis());
1199
- }
1200
- }
1201
- }
1202
- // Check with call dispatch controller.
1203
- auto* service_config_call_data =
1204
- static_cast<ClientChannelServiceConfigCallData*>(
1205
- calld_->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
1206
- if (!service_config_call_data->call_dispatch_controller()->ShouldRetry()) {
1207
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1208
- gpr_log(
1209
- GPR_INFO,
1210
- "chand=%p calld=%p attempt=%p: call dispatch controller denied retry",
1211
- calld_->chand_, calld_, this);
1212
- }
1213
- return false;
1214
- }
1215
- // We should retry.
1216
- return true;
1217
- }
1218
-
1219
- void RetryFilter::CallData::CallAttempt::Abandon() {
1220
- abandoned_ = true;
1221
- // Unref batches for deferred completion callbacks that will now never
1222
- // be invoked.
1223
- if (started_recv_trailing_metadata_ &&
1224
- !seen_recv_trailing_metadata_from_surface_) {
1225
- recv_trailing_metadata_internal_batch_.reset(
1226
- DEBUG_LOCATION,
1227
- "unref internal recv_trailing_metadata_ready batch; attempt abandoned");
1228
- }
1229
- recv_trailing_metadata_error_ = absl::OkStatus();
1230
- recv_initial_metadata_ready_deferred_batch_.reset(
1231
- DEBUG_LOCATION,
1232
- "unref deferred recv_initial_metadata_ready batch; attempt abandoned");
1233
- recv_initial_metadata_error_ = absl::OkStatus();
1234
- recv_message_ready_deferred_batch_.reset(
1235
- DEBUG_LOCATION,
1236
- "unref deferred recv_message_ready batch; attempt abandoned");
1237
- recv_message_error_ = absl::OkStatus();
1238
- for (auto& on_complete_deferred_batch : on_complete_deferred_batches_) {
1239
- on_complete_deferred_batch.batch.reset(
1240
- DEBUG_LOCATION, "unref deferred on_complete batch; attempt abandoned");
1241
- }
1242
- on_complete_deferred_batches_.clear();
1243
- }
1244
-
1245
- void RetryFilter::CallData::CallAttempt::OnPerAttemptRecvTimer() {
1246
- GRPC_CLOSURE_INIT(&on_per_attempt_recv_timer_, OnPerAttemptRecvTimerLocked,
1247
- this, nullptr);
1248
- GRPC_CALL_COMBINER_START(calld_->call_combiner_, &on_per_attempt_recv_timer_,
1249
- absl::OkStatus(), "per-attempt timer fired");
1250
- }
1251
-
1252
- void RetryFilter::CallData::CallAttempt::OnPerAttemptRecvTimerLocked(
1253
- void* arg, grpc_error_handle error) {
1254
- auto* call_attempt = static_cast<CallAttempt*>(arg);
1255
- auto* calld = call_attempt->calld_;
1256
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1257
- gpr_log(GPR_INFO,
1258
- "chand=%p calld=%p attempt=%p: perAttemptRecvTimeout timer fired: "
1259
- "error=%s, per_attempt_recv_timer_handle_.has_value()=%d",
1260
- calld->chand_, calld, call_attempt, StatusToString(error).c_str(),
1261
- call_attempt->per_attempt_recv_timer_handle_.has_value());
1262
- }
1263
- CallCombinerClosureList closures;
1264
- call_attempt->per_attempt_recv_timer_handle_.reset();
1265
- // Cancel this attempt.
1266
- // TODO(roth): When implementing hedging, we should not cancel the
1267
- // current attempt.
1268
- call_attempt->MaybeAddBatchForCancelOp(
1269
- grpc_error_set_int(
1270
- GRPC_ERROR_CREATE("retry perAttemptRecvTimeout exceeded"),
1271
- StatusIntProperty::kRpcStatus, GRPC_STATUS_CANCELLED),
1272
- &closures);
1273
- // Check whether we should retry.
1274
- if (call_attempt->ShouldRetry(/*status=*/absl::nullopt,
1275
- /*server_pushback_ms=*/absl::nullopt)) {
1276
- // Mark current attempt as abandoned.
1277
- call_attempt->Abandon();
1278
- // We are retrying. Start backoff timer.
1279
- calld->StartRetryTimer(/*server_pushback=*/absl::nullopt);
1280
- } else {
1281
- // Not retrying, so commit the call.
1282
- calld->RetryCommit(call_attempt);
1283
- // If retry state is no longer needed, switch to fast path for
1284
- // subsequent batches.
1285
- call_attempt->MaybeSwitchToFastPath();
1286
- }
1287
- closures.RunClosures(calld->call_combiner_);
1288
- call_attempt->Unref(DEBUG_LOCATION, "OnPerAttemptRecvTimer");
1289
- GRPC_CALL_STACK_UNREF(calld->owning_call_, "OnPerAttemptRecvTimer");
1290
- }
1291
-
1292
- void RetryFilter::CallData::CallAttempt::MaybeCancelPerAttemptRecvTimer() {
1293
- if (per_attempt_recv_timer_handle_.has_value()) {
1294
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1295
- gpr_log(GPR_INFO,
1296
- "chand=%p calld=%p attempt=%p: cancelling "
1297
- "perAttemptRecvTimeout timer",
1298
- calld_->chand_, calld_, this);
1299
- }
1300
- if (calld_->chand_->event_engine_->Cancel(
1301
- *per_attempt_recv_timer_handle_)) {
1302
- Unref(DEBUG_LOCATION, "OnPerAttemptRecvTimer");
1303
- GRPC_CALL_STACK_UNREF(calld_->owning_call_, "OnPerAttemptRecvTimer");
1304
- }
1305
- per_attempt_recv_timer_handle_.reset();
1306
- }
1307
- }
1308
-
1309
- //
1310
- // RetryFilter::CallData::CallAttempt::BatchData
1311
- //
1312
-
1313
- RetryFilter::CallData::CallAttempt::BatchData::BatchData(
1314
- RefCountedPtr<CallAttempt> attempt, int refcount, bool set_on_complete)
1315
- : RefCounted(
1316
- GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace) ? "BatchData" : nullptr,
1317
- refcount),
1318
- call_attempt_(attempt.release()) {
1319
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1320
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: creating batch %p",
1321
- call_attempt_->calld_->chand_, call_attempt_->calld_, call_attempt_,
1322
- this);
1323
- }
1324
- // We hold a ref to the call stack for every batch sent on a call attempt.
1325
- // This is because some batches on the call attempt may not complete
1326
- // until after all of the batches are completed at the surface (because
1327
- // each batch that is pending at the surface holds a ref). This
1328
- // can happen for replayed send ops, and it can happen for
1329
- // recv_initial_metadata and recv_message ops on a call attempt that has
1330
- // been abandoned.
1331
- GRPC_CALL_STACK_REF(call_attempt_->calld_->owning_call_, "Retry BatchData");
1332
- batch_.payload = &call_attempt_->batch_payload_;
1333
- if (set_on_complete) {
1334
- GRPC_CLOSURE_INIT(&on_complete_, OnComplete, this, nullptr);
1335
- batch_.on_complete = &on_complete_;
1336
- }
1337
- }
1338
-
1339
- RetryFilter::CallData::CallAttempt::BatchData::~BatchData() {
1340
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1341
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: destroying batch %p",
1342
- call_attempt_->calld_->chand_, call_attempt_->calld_, call_attempt_,
1343
- this);
1344
- }
1345
- CallAttempt* call_attempt = std::exchange(call_attempt_, nullptr);
1346
- grpc_call_stack* owning_call = call_attempt->calld_->owning_call_;
1347
- call_attempt->Unref(DEBUG_LOCATION, "~BatchData");
1348
- GRPC_CALL_STACK_UNREF(owning_call, "Retry BatchData");
1349
- }
1350
-
1351
- void RetryFilter::CallData::CallAttempt::BatchData::
1352
- FreeCachedSendOpDataForCompletedBatch() {
1353
- auto* calld = call_attempt_->calld_;
1354
- // TODO(roth): When we implement hedging, this logic will need to get
1355
- // a bit more complex, because there may be other (now abandoned) call
1356
- // attempts still using this data. We may need to do some sort of
1357
- // ref-counting instead.
1358
- if (batch_.send_initial_metadata) {
1359
- calld->FreeCachedSendInitialMetadata();
1360
- }
1361
- if (batch_.send_message) {
1362
- calld->FreeCachedSendMessage(call_attempt_->completed_send_message_count_ -
1363
- 1);
1364
- }
1365
- if (batch_.send_trailing_metadata) {
1366
- calld->FreeCachedSendTrailingMetadata();
1367
- }
1368
- }
1369
-
1370
- //
1371
- // recv_initial_metadata callback handling
1372
- //
1373
-
1374
- void RetryFilter::CallData::CallAttempt::BatchData::
1375
- MaybeAddClosureForRecvInitialMetadataCallback(
1376
- grpc_error_handle error, CallCombinerClosureList* closures) {
1377
- // Find pending batch.
1378
- PendingBatch* pending = call_attempt_->calld_->PendingBatchFind(
1379
- "invoking recv_initial_metadata_ready for",
1380
- [](grpc_transport_stream_op_batch* batch) {
1381
- return batch->recv_initial_metadata &&
1382
- batch->payload->recv_initial_metadata
1383
- .recv_initial_metadata_ready != nullptr;
1384
- });
1385
- if (pending == nullptr) {
1386
- return;
1387
- }
1388
- // Return metadata.
1389
- *pending->batch->payload->recv_initial_metadata.recv_initial_metadata =
1390
- std::move(call_attempt_->recv_initial_metadata_);
1391
- // Propagate trailing_metadata_available.
1392
- *pending->batch->payload->recv_initial_metadata.trailing_metadata_available =
1393
- call_attempt_->trailing_metadata_available_;
1394
- // Update bookkeeping.
1395
- // Note: Need to do this before invoking the callback, since invoking
1396
- // the callback will result in yielding the call combiner.
1397
- grpc_closure* recv_initial_metadata_ready =
1398
- pending->batch->payload->recv_initial_metadata
1399
- .recv_initial_metadata_ready;
1400
- pending->batch->payload->recv_initial_metadata.recv_initial_metadata_ready =
1401
- nullptr;
1402
- call_attempt_->calld_->MaybeClearPendingBatch(pending);
1403
- // Add callback to closures.
1404
- closures->Add(recv_initial_metadata_ready, error,
1405
- "recv_initial_metadata_ready for pending batch");
1406
- }
1407
-
1408
- void RetryFilter::CallData::CallAttempt::BatchData::RecvInitialMetadataReady(
1409
- void* arg, grpc_error_handle error) {
1410
- RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
1411
- CallAttempt* call_attempt = batch_data->call_attempt_;
1412
- CallData* calld = call_attempt->calld_;
1413
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1414
- gpr_log(GPR_INFO,
1415
- "chand=%p calld=%p attempt=%p batch_data=%p: "
1416
- "got recv_initial_metadata_ready, error=%s",
1417
- calld->chand_, calld, call_attempt, batch_data.get(),
1418
- StatusToString(error).c_str());
1419
- }
1420
- call_attempt->completed_recv_initial_metadata_ = true;
1421
- // If this attempt has been abandoned, then we're not going to use the
1422
- // result of this recv_initial_metadata op, so do nothing.
1423
- if (call_attempt->abandoned_) {
1424
- GRPC_CALL_COMBINER_STOP(
1425
- calld->call_combiner_,
1426
- "recv_initial_metadata_ready for abandoned attempt");
1427
- return;
1428
- }
1429
- // Cancel per-attempt recv timer, if any.
1430
- call_attempt->MaybeCancelPerAttemptRecvTimer();
1431
- // If we're not committed, check the response to see if we need to commit.
1432
- if (!calld->retry_committed_) {
1433
- // If we got an error or a Trailers-Only response and have not yet gotten
1434
- // the recv_trailing_metadata_ready callback, then defer propagating this
1435
- // callback back to the surface. We can evaluate whether to retry when
1436
- // recv_trailing_metadata comes back.
1437
- if (GPR_UNLIKELY(
1438
- (call_attempt->trailing_metadata_available_ || !error.ok()) &&
1439
- !call_attempt->completed_recv_trailing_metadata_)) {
1440
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1441
- gpr_log(GPR_INFO,
1442
- "chand=%p calld=%p attempt=%p: deferring "
1443
- "recv_initial_metadata_ready (Trailers-Only)",
1444
- calld->chand_, calld, call_attempt);
1445
- }
1446
- call_attempt->recv_initial_metadata_ready_deferred_batch_ =
1447
- std::move(batch_data);
1448
- call_attempt->recv_initial_metadata_error_ = error;
1449
- CallCombinerClosureList closures;
1450
- if (!error.ok()) {
1451
- call_attempt->MaybeAddBatchForCancelOp(error, &closures);
1452
- }
1453
- if (!call_attempt->started_recv_trailing_metadata_) {
1454
- // recv_trailing_metadata not yet started by application; start it
1455
- // ourselves to get status.
1456
- call_attempt->AddBatchForInternalRecvTrailingMetadata(&closures);
1457
- }
1458
- closures.RunClosures(calld->call_combiner_);
1459
- return;
1460
- }
1461
- // Received valid initial metadata, so commit the call.
1462
- calld->RetryCommit(call_attempt);
1463
- // If retry state is no longer needed, switch to fast path for
1464
- // subsequent batches.
1465
- call_attempt->MaybeSwitchToFastPath();
1466
- }
1467
- // Invoke the callback to return the result to the surface.
1468
- CallCombinerClosureList closures;
1469
- batch_data->MaybeAddClosureForRecvInitialMetadataCallback(error, &closures);
1470
- closures.RunClosures(calld->call_combiner_);
1471
- }
1472
-
1473
- //
1474
- // recv_message callback handling
1475
- //
1476
-
1477
- void RetryFilter::CallData::CallAttempt::BatchData::
1478
- MaybeAddClosureForRecvMessageCallback(grpc_error_handle error,
1479
- CallCombinerClosureList* closures) {
1480
- // Find pending op.
1481
- PendingBatch* pending = call_attempt_->calld_->PendingBatchFind(
1482
- "invoking recv_message_ready for",
1483
- [](grpc_transport_stream_op_batch* batch) {
1484
- return batch->recv_message &&
1485
- batch->payload->recv_message.recv_message_ready != nullptr;
1486
- });
1487
- if (pending == nullptr) {
1488
- return;
1489
- }
1490
- // Return payload.
1491
- *pending->batch->payload->recv_message.recv_message =
1492
- std::move(call_attempt_->recv_message_);
1493
- *pending->batch->payload->recv_message.flags =
1494
- call_attempt_->recv_message_flags_;
1495
- // Update bookkeeping.
1496
- // Note: Need to do this before invoking the callback, since invoking
1497
- // the callback will result in yielding the call combiner.
1498
- grpc_closure* recv_message_ready =
1499
- pending->batch->payload->recv_message.recv_message_ready;
1500
- pending->batch->payload->recv_message.recv_message_ready = nullptr;
1501
- call_attempt_->calld_->MaybeClearPendingBatch(pending);
1502
- // Add callback to closures.
1503
- closures->Add(recv_message_ready, error,
1504
- "recv_message_ready for pending batch");
1505
- }
1506
-
1507
- void RetryFilter::CallData::CallAttempt::BatchData::RecvMessageReady(
1508
- void* arg, grpc_error_handle error) {
1509
- RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
1510
- CallAttempt* call_attempt = batch_data->call_attempt_;
1511
- CallData* calld = call_attempt->calld_;
1512
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1513
- gpr_log(GPR_INFO,
1514
- "chand=%p calld=%p attempt=%p batch_data=%p: "
1515
- "got recv_message_ready, error=%s",
1516
- calld->chand_, calld, call_attempt, batch_data.get(),
1517
- StatusToString(error).c_str());
1518
- }
1519
- ++call_attempt->completed_recv_message_count_;
1520
- // If this attempt has been abandoned, then we're not going to use the
1521
- // result of this recv_message op, so do nothing.
1522
- if (call_attempt->abandoned_) {
1523
- // The transport will not invoke recv_trailing_metadata_ready until the byte
1524
- // stream for any recv_message op is orphaned, so we do that here to ensure
1525
- // that any pending recv_trailing_metadata op can complete.
1526
- call_attempt->recv_message_.reset();
1527
- GRPC_CALL_COMBINER_STOP(calld->call_combiner_,
1528
- "recv_message_ready for abandoned attempt");
1529
- return;
1530
- }
1531
- // Cancel per-attempt recv timer, if any.
1532
- call_attempt->MaybeCancelPerAttemptRecvTimer();
1533
- // If we're not committed, check the response to see if we need to commit.
1534
- if (!calld->retry_committed_) {
1535
- // If we got an error or the payload was nullptr and we have not yet gotten
1536
- // the recv_trailing_metadata_ready callback, then defer propagating this
1537
- // callback back to the surface. We can evaluate whether to retry when
1538
- // recv_trailing_metadata comes back.
1539
- if (GPR_UNLIKELY(
1540
- (!call_attempt->recv_message_.has_value() || !error.ok()) &&
1541
- !call_attempt->completed_recv_trailing_metadata_)) {
1542
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1543
- gpr_log(GPR_INFO,
1544
- "chand=%p calld=%p attempt=%p: deferring recv_message_ready "
1545
- "(nullptr message and recv_trailing_metadata pending)",
1546
- calld->chand_, calld, call_attempt);
1547
- }
1548
- call_attempt->recv_message_ready_deferred_batch_ = std::move(batch_data);
1549
- call_attempt->recv_message_error_ = error;
1550
- CallCombinerClosureList closures;
1551
- if (!error.ok()) {
1552
- call_attempt->MaybeAddBatchForCancelOp(error, &closures);
1553
- }
1554
- if (!call_attempt->started_recv_trailing_metadata_) {
1555
- // recv_trailing_metadata not yet started by application; start it
1556
- // ourselves to get status.
1557
- call_attempt->AddBatchForInternalRecvTrailingMetadata(&closures);
1558
- }
1559
- closures.RunClosures(calld->call_combiner_);
1560
- return;
1561
- }
1562
- // Received a valid message, so commit the call.
1563
- calld->RetryCommit(call_attempt);
1564
- // If retry state is no longer needed, switch to fast path for
1565
- // subsequent batches.
1566
- call_attempt->MaybeSwitchToFastPath();
1567
- }
1568
- // Invoke the callback to return the result to the surface.
1569
- CallCombinerClosureList closures;
1570
- batch_data->MaybeAddClosureForRecvMessageCallback(error, &closures);
1571
- closures.RunClosures(calld->call_combiner_);
1572
- }
1573
-
1574
- //
1575
- // recv_trailing_metadata handling
1576
- //
1577
-
1578
- namespace {
1579
-
1580
- // Sets *status, *server_pushback, and *is_lb_drop based on md_batch
1581
- // and error.
1582
- void GetCallStatus(
1583
- Timestamp deadline, grpc_metadata_batch* md_batch, grpc_error_handle error,
1584
- grpc_status_code* status, absl::optional<Duration>* server_pushback,
1585
- bool* is_lb_drop,
1586
- absl::optional<GrpcStreamNetworkState::ValueType>* stream_network_state) {
1587
- if (!error.ok()) {
1588
- grpc_error_get_status(error, deadline, status, nullptr, nullptr, nullptr);
1589
- intptr_t value = 0;
1590
- if (grpc_error_get_int(error, StatusIntProperty::kLbPolicyDrop, &value) &&
1591
- value != 0) {
1592
- *is_lb_drop = true;
1593
- }
1594
- } else {
1595
- *status = *md_batch->get(GrpcStatusMetadata());
1596
- }
1597
- *server_pushback = md_batch->get(GrpcRetryPushbackMsMetadata());
1598
- *stream_network_state = md_batch->get(GrpcStreamNetworkState());
1599
- }
1600
-
1601
- } // namespace
1602
-
1603
- void RetryFilter::CallData::CallAttempt::BatchData::
1604
- MaybeAddClosureForRecvTrailingMetadataReady(
1605
- grpc_error_handle error, CallCombinerClosureList* closures) {
1606
- auto* calld = call_attempt_->calld_;
1607
- // Find pending batch.
1608
- PendingBatch* pending = calld->PendingBatchFind(
1609
- "invoking recv_trailing_metadata_ready for",
1610
- [](grpc_transport_stream_op_batch* batch) {
1611
- return batch->recv_trailing_metadata &&
1612
- batch->payload->recv_trailing_metadata
1613
- .recv_trailing_metadata_ready != nullptr;
1614
- });
1615
- // If we generated the recv_trailing_metadata op internally via
1616
- // AddBatchForInternalRecvTrailingMetadata(), then there will be no
1617
- // pending batch.
1618
- if (pending == nullptr) {
1619
- call_attempt_->recv_trailing_metadata_error_ = error;
100
+ RetryFilter::RetryFilter(const ChannelArgs& args, grpc_error_handle* error)
101
+ : client_channel_(args.GetObject<ClientChannel>()),
102
+ event_engine_(args.GetObject<EventEngine>()),
103
+ per_rpc_retry_buffer_size_(GetMaxPerRpcRetryBufferSize(args)),
104
+ service_config_parser_index_(
105
+ internal::RetryServiceConfigParser::ParserIndex()) {
106
+ // Get retry throttling parameters from service config.
107
+ auto* service_config = args.GetObject<ServiceConfig>();
108
+ if (service_config == nullptr) return;
109
+ const auto* config = static_cast<const RetryGlobalConfig*>(
110
+ service_config->GetGlobalParsedConfig(
111
+ RetryServiceConfigParser::ParserIndex()));
112
+ if (config == nullptr) return;
113
+ // Get server name from target URI.
114
+ auto server_uri = args.GetString(GRPC_ARG_SERVER_URI);
115
+ if (!server_uri.has_value()) {
116
+ *error = GRPC_ERROR_CREATE(
117
+ "server URI channel arg missing or wrong type in client channel "
118
+ "filter");
1620
119
  return;
1621
120
  }
1622
- // Copy transport stats to be delivered up to the surface.
1623
- grpc_transport_move_stats(
1624
- &call_attempt_->collect_stats_,
1625
- pending->batch->payload->recv_trailing_metadata.collect_stats);
1626
- // Return metadata.
1627
- *pending->batch->payload->recv_trailing_metadata.recv_trailing_metadata =
1628
- std::move(call_attempt_->recv_trailing_metadata_);
1629
- // Add closure.
1630
- closures->Add(pending->batch->payload->recv_trailing_metadata
1631
- .recv_trailing_metadata_ready,
1632
- error, "recv_trailing_metadata_ready for pending batch");
1633
- // Update bookkeeping.
1634
- pending->batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
1635
- nullptr;
1636
- calld->MaybeClearPendingBatch(pending);
1637
- }
1638
-
1639
- void RetryFilter::CallData::CallAttempt::BatchData::
1640
- AddClosuresForDeferredCompletionCallbacks(
1641
- CallCombinerClosureList* closures) {
1642
- // Add closure for deferred recv_initial_metadata_ready.
1643
- if (GPR_UNLIKELY(call_attempt_->recv_initial_metadata_ready_deferred_batch_ !=
1644
- nullptr)) {
1645
- MaybeAddClosureForRecvInitialMetadataCallback(
1646
- call_attempt_->recv_initial_metadata_error_, closures);
1647
- call_attempt_->recv_initial_metadata_ready_deferred_batch_.reset(
1648
- DEBUG_LOCATION, "resuming deferred recv_initial_metadata_ready");
1649
- call_attempt_->recv_initial_metadata_error_ = absl::OkStatus();
1650
- }
1651
- // Add closure for deferred recv_message_ready.
1652
- if (GPR_UNLIKELY(call_attempt_->recv_message_ready_deferred_batch_ !=
1653
- nullptr)) {
1654
- MaybeAddClosureForRecvMessageCallback(call_attempt_->recv_message_error_,
1655
- closures);
1656
- call_attempt_->recv_message_ready_deferred_batch_.reset(
1657
- DEBUG_LOCATION, "resuming deferred recv_message_ready");
1658
- call_attempt_->recv_message_error_ = absl::OkStatus();
1659
- }
1660
- // Add closures for deferred on_complete callbacks.
1661
- for (auto& on_complete_deferred_batch :
1662
- call_attempt_->on_complete_deferred_batches_) {
1663
- closures->Add(&on_complete_deferred_batch.batch->on_complete_,
1664
- on_complete_deferred_batch.error, "resuming on_complete");
1665
- on_complete_deferred_batch.batch.release();
1666
- }
1667
- call_attempt_->on_complete_deferred_batches_.clear();
1668
- }
1669
-
1670
- void RetryFilter::CallData::CallAttempt::BatchData::
1671
- AddClosuresToFailUnstartedPendingBatches(
1672
- grpc_error_handle error, CallCombinerClosureList* closures) {
1673
- auto* calld = call_attempt_->calld_;
1674
- for (size_t i = 0; i < GPR_ARRAY_SIZE(calld->pending_batches_); ++i) {
1675
- PendingBatch* pending = &calld->pending_batches_[i];
1676
- if (pending->batch == nullptr) continue;
1677
- if (call_attempt_->PendingBatchContainsUnstartedSendOps(pending)) {
1678
- closures->Add(pending->batch->on_complete, error,
1679
- "failing on_complete for pending batch");
1680
- pending->batch->on_complete = nullptr;
1681
- calld->MaybeClearPendingBatch(pending);
1682
- }
1683
- }
1684
- }
1685
-
1686
- void RetryFilter::CallData::CallAttempt::BatchData::RunClosuresForCompletedCall(
1687
- grpc_error_handle error) {
1688
- // Construct list of closures to execute.
1689
- CallCombinerClosureList closures;
1690
- // First, add closure for recv_trailing_metadata_ready.
1691
- MaybeAddClosureForRecvTrailingMetadataReady(error, &closures);
1692
- // If there are deferred batch completion callbacks, add them to closures.
1693
- AddClosuresForDeferredCompletionCallbacks(&closures);
1694
- // Add closures to fail any pending batches that have not yet been started.
1695
- AddClosuresToFailUnstartedPendingBatches(error, &closures);
1696
- // Schedule all of the closures identified above.
1697
- // Note: This will release the call combiner.
1698
- closures.RunClosures(call_attempt_->calld_->call_combiner_);
1699
- }
1700
-
1701
- void RetryFilter::CallData::CallAttempt::BatchData::RecvTrailingMetadataReady(
1702
- void* arg, grpc_error_handle error) {
1703
- RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
1704
- CallAttempt* call_attempt = batch_data->call_attempt_;
1705
- CallData* calld = call_attempt->calld_;
1706
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1707
- gpr_log(GPR_INFO,
1708
- "chand=%p calld=%p attempt=%p batch_data=%p: "
1709
- "got recv_trailing_metadata_ready, error=%s",
1710
- calld->chand_, calld, call_attempt, batch_data.get(),
1711
- StatusToString(error).c_str());
1712
- }
1713
- call_attempt->completed_recv_trailing_metadata_ = true;
1714
- // If this attempt has been abandoned, then we're not going to use the
1715
- // result of this recv_trailing_metadata op, so do nothing.
1716
- if (call_attempt->abandoned_) {
1717
- GRPC_CALL_COMBINER_STOP(
1718
- calld->call_combiner_,
1719
- "recv_trailing_metadata_ready for abandoned attempt");
1720
- return;
1721
- }
1722
- // Cancel per-attempt recv timer, if any.
1723
- call_attempt->MaybeCancelPerAttemptRecvTimer();
1724
- // Get the call's status and check for server pushback metadata.
1725
- grpc_status_code status = GRPC_STATUS_OK;
1726
- absl::optional<Duration> server_pushback;
1727
- bool is_lb_drop = false;
1728
- absl::optional<GrpcStreamNetworkState::ValueType> stream_network_state;
1729
- grpc_metadata_batch* md_batch =
1730
- batch_data->batch_.payload->recv_trailing_metadata.recv_trailing_metadata;
1731
- GetCallStatus(calld->deadline_, md_batch, error, &status, &server_pushback,
1732
- &is_lb_drop, &stream_network_state);
1733
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1734
- gpr_log(GPR_INFO,
1735
- "chand=%p calld=%p attempt=%p: call finished, status=%s "
1736
- "server_pushback=%s is_lb_drop=%d stream_network_state=%s",
1737
- calld->chand_, calld, call_attempt,
1738
- grpc_status_code_to_string(status),
1739
- server_pushback.has_value() ? server_pushback->ToString().c_str()
1740
- : "N/A",
1741
- is_lb_drop,
1742
- stream_network_state.has_value()
1743
- ? absl::StrCat(*stream_network_state).c_str()
1744
- : "N/A");
1745
- }
1746
- // Check if we should retry.
1747
- if (!is_lb_drop) { // Never retry on LB drops.
1748
- enum { kNoRetry, kTransparentRetry, kConfigurableRetry } retry = kNoRetry;
1749
- // Handle transparent retries.
1750
- if (stream_network_state.has_value() && !calld->retry_committed_) {
1751
- // If not sent on wire, then always retry.
1752
- // If sent on wire but not seen by server, retry exactly once.
1753
- if (*stream_network_state == GrpcStreamNetworkState::kNotSentOnWire) {
1754
- retry = kTransparentRetry;
1755
- } else if (*stream_network_state ==
1756
- GrpcStreamNetworkState::kNotSeenByServer &&
1757
- !calld->sent_transparent_retry_not_seen_by_server_) {
1758
- calld->sent_transparent_retry_not_seen_by_server_ = true;
1759
- retry = kTransparentRetry;
1760
- }
1761
- }
1762
- // If not transparently retrying, check for configurable retry.
1763
- if (retry == kNoRetry &&
1764
- call_attempt->ShouldRetry(status, server_pushback)) {
1765
- retry = kConfigurableRetry;
1766
- }
1767
- // If we're retrying, do so.
1768
- if (retry != kNoRetry) {
1769
- CallCombinerClosureList closures;
1770
- // Cancel call attempt.
1771
- call_attempt->MaybeAddBatchForCancelOp(
1772
- error.ok() ? grpc_error_set_int(
1773
- GRPC_ERROR_CREATE("call attempt failed"),
1774
- StatusIntProperty::kRpcStatus, GRPC_STATUS_CANCELLED)
1775
- : error,
1776
- &closures);
1777
- // For transparent retries, add a closure to immediately start a new
1778
- // call attempt.
1779
- // For configurable retries, start retry timer.
1780
- if (retry == kTransparentRetry) {
1781
- calld->AddClosureToStartTransparentRetry(&closures);
1782
- } else {
1783
- calld->StartRetryTimer(server_pushback);
1784
- }
1785
- // Record that this attempt has been abandoned.
1786
- call_attempt->Abandon();
1787
- // Yields call combiner.
1788
- closures.RunClosures(calld->call_combiner_);
1789
- return;
1790
- }
1791
- }
1792
- // Not retrying, so commit the call.
1793
- calld->RetryCommit(call_attempt);
1794
- // If retry state is no longer needed, switch to fast path for
1795
- // subsequent batches.
1796
- call_attempt->MaybeSwitchToFastPath();
1797
- // Run any necessary closures.
1798
- batch_data->RunClosuresForCompletedCall(error);
1799
- }
1800
-
1801
- //
1802
- // on_complete callback handling
1803
- //
1804
-
1805
- void RetryFilter::CallData::CallAttempt::BatchData::
1806
- AddClosuresForCompletedPendingBatch(grpc_error_handle error,
1807
- CallCombinerClosureList* closures) {
1808
- auto* calld = call_attempt_->calld_;
1809
- PendingBatch* pending = calld->PendingBatchFind(
1810
- "completed", [this](grpc_transport_stream_op_batch* batch) {
1811
- // Match the pending batch with the same set of send ops as the
1812
- // batch we've just completed.
1813
- return batch->on_complete != nullptr &&
1814
- batch_.send_initial_metadata == batch->send_initial_metadata &&
1815
- batch_.send_message == batch->send_message &&
1816
- batch_.send_trailing_metadata == batch->send_trailing_metadata;
1817
- });
1818
- // If batch_data is a replay batch, then there will be no pending
1819
- // batch to complete.
1820
- if (pending == nullptr) {
121
+ absl::StatusOr<URI> uri = URI::Parse(*server_uri);
122
+ if (!uri.ok() || uri->path().empty()) {
123
+ *error = GRPC_ERROR_CREATE("could not extract server name from target URI");
1821
124
  return;
1822
125
  }
1823
- // Propagate payload.
1824
- if (batch_.send_message) {
1825
- pending->batch->payload->send_message.stream_write_closed =
1826
- batch_.payload->send_message.stream_write_closed;
1827
- }
1828
- // Add closure.
1829
- closures->Add(pending->batch->on_complete, error,
1830
- "on_complete for pending batch");
1831
- pending->batch->on_complete = nullptr;
1832
- calld->MaybeClearPendingBatch(pending);
1833
- }
1834
-
1835
- void RetryFilter::CallData::CallAttempt::BatchData::
1836
- AddClosuresForReplayOrPendingSendOps(CallCombinerClosureList* closures) {
1837
- auto* calld = call_attempt_->calld_;
1838
- bool have_pending_send_ops = call_attempt_->HaveSendOpsToReplay();
1839
- // We don't check send_initial_metadata here, because that op will always
1840
- // be started as soon as it is received from the surface, so it will
1841
- // never need to be started at this point.
1842
- if (!have_pending_send_ops) {
1843
- for (size_t i = 0; i < GPR_ARRAY_SIZE(calld->pending_batches_); ++i) {
1844
- PendingBatch* pending = &calld->pending_batches_[i];
1845
- grpc_transport_stream_op_batch* batch = pending->batch;
1846
- if (batch == nullptr || pending->send_ops_cached) continue;
1847
- if (batch->send_message || batch->send_trailing_metadata) {
1848
- have_pending_send_ops = true;
1849
- break;
1850
- }
1851
- }
1852
- }
1853
- if (have_pending_send_ops) {
1854
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1855
- gpr_log(GPR_INFO,
1856
- "chand=%p calld=%p attempt=%p: starting next batch for pending "
1857
- "send op(s)",
1858
- calld->chand_, calld, call_attempt_);
1859
- }
1860
- call_attempt_->AddRetriableBatches(closures);
1861
- }
1862
- }
1863
-
1864
- void RetryFilter::CallData::CallAttempt::BatchData::OnComplete(
1865
- void* arg, grpc_error_handle error) {
1866
- RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
1867
- CallAttempt* call_attempt = batch_data->call_attempt_;
1868
- CallData* calld = call_attempt->calld_;
1869
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1870
- gpr_log(GPR_INFO,
1871
- "chand=%p calld=%p attempt=%p batch_data=%p: "
1872
- "got on_complete, error=%s, batch=%s",
1873
- calld->chand_, calld, call_attempt, batch_data.get(),
1874
- StatusToString(error).c_str(),
1875
- grpc_transport_stream_op_batch_string(&batch_data->batch_, false)
1876
- .c_str());
1877
- }
1878
- // If this attempt has been abandoned, then we're not going to propagate
1879
- // the completion of this batch, so do nothing.
1880
- if (call_attempt->abandoned_) {
1881
- GRPC_CALL_COMBINER_STOP(calld->call_combiner_,
1882
- "on_complete for abandoned attempt");
1883
- return;
1884
- }
1885
- // If we got an error and have not yet gotten the
1886
- // recv_trailing_metadata_ready callback, then defer propagating this
1887
- // callback back to the surface. We can evaluate whether to retry when
1888
- // recv_trailing_metadata comes back.
1889
- if (GPR_UNLIKELY(!calld->retry_committed_ && !error.ok() &&
1890
- !call_attempt->completed_recv_trailing_metadata_)) {
1891
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1892
- gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: deferring on_complete",
1893
- calld->chand_, calld, call_attempt);
1894
- }
1895
- call_attempt->on_complete_deferred_batches_.emplace_back(
1896
- std::move(batch_data), error);
1897
- CallCombinerClosureList closures;
1898
- call_attempt->MaybeAddBatchForCancelOp(error, &closures);
1899
- if (!call_attempt->started_recv_trailing_metadata_) {
1900
- // recv_trailing_metadata not yet started by application; start it
1901
- // ourselves to get status.
1902
- call_attempt->AddBatchForInternalRecvTrailingMetadata(&closures);
1903
- }
1904
- closures.RunClosures(calld->call_combiner_);
1905
- return;
1906
- }
1907
- // Update bookkeeping in call_attempt.
1908
- if (batch_data->batch_.send_initial_metadata) {
1909
- call_attempt->completed_send_initial_metadata_ = true;
1910
- }
1911
- if (batch_data->batch_.send_message) {
1912
- ++call_attempt->completed_send_message_count_;
1913
- }
1914
- if (batch_data->batch_.send_trailing_metadata) {
1915
- call_attempt->completed_send_trailing_metadata_ = true;
1916
- }
1917
- // If the call is committed, free cached data for send ops that we've just
1918
- // completed.
1919
- if (calld->retry_committed_) {
1920
- batch_data->FreeCachedSendOpDataForCompletedBatch();
1921
- }
1922
- // Construct list of closures to execute.
1923
- CallCombinerClosureList closures;
1924
- // Add closure for the completed pending batch, if any.
1925
- batch_data->AddClosuresForCompletedPendingBatch(error, &closures);
1926
- // If needed, add a callback to start any replay or pending send ops on
1927
- // the LB call.
1928
- if (!call_attempt->completed_recv_trailing_metadata_) {
1929
- batch_data->AddClosuresForReplayOrPendingSendOps(&closures);
1930
- }
1931
- // If retry state is no longer needed (i.e., we're committed and there
1932
- // are no more send ops to replay), switch to fast path for subsequent
1933
- // batches.
1934
- call_attempt->MaybeSwitchToFastPath();
1935
- // Schedule all of the closures identified above.
1936
- // Note: This yields the call combiner.
1937
- closures.RunClosures(calld->call_combiner_);
1938
- }
1939
-
1940
- void RetryFilter::CallData::CallAttempt::BatchData::OnCompleteForCancelOp(
1941
- void* arg, grpc_error_handle error) {
1942
- RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
1943
- CallAttempt* call_attempt = batch_data->call_attempt_;
1944
- CallData* calld = call_attempt->calld_;
1945
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1946
- gpr_log(GPR_INFO,
1947
- "chand=%p calld=%p attempt=%p batch_data=%p: "
1948
- "got on_complete for cancel_stream batch, error=%s, batch=%s",
1949
- calld->chand_, calld, call_attempt, batch_data.get(),
1950
- StatusToString(error).c_str(),
1951
- grpc_transport_stream_op_batch_string(&batch_data->batch_, false)
1952
- .c_str());
1953
- }
1954
- GRPC_CALL_COMBINER_STOP(
1955
- calld->call_combiner_,
1956
- "on_complete for internally generated cancel_stream op");
1957
- }
1958
-
1959
- //
1960
- // retriable batch construction
1961
- //
1962
-
1963
- void RetryFilter::CallData::CallAttempt::BatchData::
1964
- AddRetriableSendInitialMetadataOp() {
1965
- auto* calld = call_attempt_->calld_;
1966
- // We need to make a copy of the metadata batch for each attempt, since
1967
- // the filters in the subchannel stack may modify this batch, and we don't
1968
- // want those modifications to be passed forward to subsequent attempts.
1969
- //
1970
- // If we've already completed one or more attempts, add the
1971
- // grpc-retry-attempts header.
1972
- call_attempt_->send_initial_metadata_ = calld->send_initial_metadata_.Copy();
1973
- if (GPR_UNLIKELY(calld->num_attempts_completed_ > 0)) {
1974
- call_attempt_->send_initial_metadata_.Set(GrpcPreviousRpcAttemptsMetadata(),
1975
- calld->num_attempts_completed_);
1976
- } else {
1977
- call_attempt_->send_initial_metadata_.Remove(
1978
- GrpcPreviousRpcAttemptsMetadata());
1979
- }
1980
- call_attempt_->started_send_initial_metadata_ = true;
1981
- batch_.send_initial_metadata = true;
1982
- batch_.payload->send_initial_metadata.send_initial_metadata =
1983
- &call_attempt_->send_initial_metadata_;
1984
- }
1985
-
1986
- void RetryFilter::CallData::CallAttempt::BatchData::
1987
- AddRetriableSendMessageOp() {
1988
- auto* calld = call_attempt_->calld_;
1989
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
1990
- gpr_log(
1991
- GPR_INFO,
1992
- "chand=%p calld=%p attempt=%p: starting calld->send_messages[%" PRIuPTR
1993
- "]",
1994
- calld->chand_, calld, call_attempt_,
1995
- call_attempt_->started_send_message_count_);
1996
- }
1997
- CachedSendMessage cache =
1998
- calld->send_messages_[call_attempt_->started_send_message_count_];
1999
- ++call_attempt_->started_send_message_count_;
2000
- batch_.send_message = true;
2001
- batch_.payload->send_message.send_message = cache.slices;
2002
- batch_.payload->send_message.flags = cache.flags;
2003
- }
2004
-
2005
- void RetryFilter::CallData::CallAttempt::BatchData::
2006
- AddRetriableSendTrailingMetadataOp() {
2007
- auto* calld = call_attempt_->calld_;
2008
- // We need to make a copy of the metadata batch for each attempt, since
2009
- // the filters in the subchannel stack may modify this batch, and we don't
2010
- // want those modifications to be passed forward to subsequent attempts.
2011
- call_attempt_->send_trailing_metadata_ =
2012
- calld->send_trailing_metadata_.Copy();
2013
- call_attempt_->started_send_trailing_metadata_ = true;
2014
- batch_.send_trailing_metadata = true;
2015
- batch_.payload->send_trailing_metadata.send_trailing_metadata =
2016
- &call_attempt_->send_trailing_metadata_;
2017
- }
2018
-
2019
- void RetryFilter::CallData::CallAttempt::BatchData::
2020
- AddRetriableRecvInitialMetadataOp() {
2021
- call_attempt_->started_recv_initial_metadata_ = true;
2022
- batch_.recv_initial_metadata = true;
2023
- call_attempt_->recv_initial_metadata_.Clear();
2024
- batch_.payload->recv_initial_metadata.recv_initial_metadata =
2025
- &call_attempt_->recv_initial_metadata_;
2026
- batch_.payload->recv_initial_metadata.trailing_metadata_available =
2027
- &call_attempt_->trailing_metadata_available_;
2028
- GRPC_CLOSURE_INIT(&call_attempt_->recv_initial_metadata_ready_,
2029
- RecvInitialMetadataReady, this, grpc_schedule_on_exec_ctx);
2030
- batch_.payload->recv_initial_metadata.recv_initial_metadata_ready =
2031
- &call_attempt_->recv_initial_metadata_ready_;
2032
- }
2033
-
2034
- void RetryFilter::CallData::CallAttempt::BatchData::
2035
- AddRetriableRecvMessageOp() {
2036
- ++call_attempt_->started_recv_message_count_;
2037
- batch_.recv_message = true;
2038
- batch_.payload->recv_message.recv_message = &call_attempt_->recv_message_;
2039
- batch_.payload->recv_message.flags = &call_attempt_->recv_message_flags_;
2040
- batch_.payload->recv_message.call_failed_before_recv_message = nullptr;
2041
- GRPC_CLOSURE_INIT(&call_attempt_->recv_message_ready_, RecvMessageReady, this,
2042
- grpc_schedule_on_exec_ctx);
2043
- batch_.payload->recv_message.recv_message_ready =
2044
- &call_attempt_->recv_message_ready_;
2045
- }
2046
-
2047
- void RetryFilter::CallData::CallAttempt::BatchData::
2048
- AddRetriableRecvTrailingMetadataOp() {
2049
- call_attempt_->started_recv_trailing_metadata_ = true;
2050
- batch_.recv_trailing_metadata = true;
2051
- call_attempt_->recv_trailing_metadata_.Clear();
2052
- batch_.payload->recv_trailing_metadata.recv_trailing_metadata =
2053
- &call_attempt_->recv_trailing_metadata_;
2054
- batch_.payload->recv_trailing_metadata.collect_stats =
2055
- &call_attempt_->collect_stats_;
2056
- GRPC_CLOSURE_INIT(&call_attempt_->recv_trailing_metadata_ready_,
2057
- RecvTrailingMetadataReady, this, grpc_schedule_on_exec_ctx);
2058
- batch_.payload->recv_trailing_metadata.recv_trailing_metadata_ready =
2059
- &call_attempt_->recv_trailing_metadata_ready_;
2060
- }
2061
-
2062
- void RetryFilter::CallData::CallAttempt::BatchData::AddCancelStreamOp(
2063
- grpc_error_handle error) {
2064
- batch_.cancel_stream = true;
2065
- batch_.payload->cancel_stream.cancel_error = error;
2066
- // Override on_complete callback.
2067
- GRPC_CLOSURE_INIT(&on_complete_, OnCompleteForCancelOp, this, nullptr);
2068
- }
2069
-
2070
- //
2071
- // CallData vtable functions
2072
- //
2073
-
2074
- grpc_error_handle RetryFilter::CallData::Init(
2075
- grpc_call_element* elem, const grpc_call_element_args* args) {
2076
- auto* chand = static_cast<RetryFilter*>(elem->channel_data);
2077
- new (elem->call_data) CallData(chand, *args);
2078
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2079
- gpr_log(GPR_INFO, "chand=%p calld=%p: created call", chand,
2080
- elem->call_data);
2081
- }
2082
- return absl::OkStatus();
2083
- }
2084
-
2085
- void RetryFilter::CallData::Destroy(grpc_call_element* elem,
2086
- const grpc_call_final_info* /*final_info*/,
2087
- grpc_closure* then_schedule_closure) {
2088
- auto* calld = static_cast<CallData*>(elem->call_data);
2089
- // Save our ref to the CallStackDestructionBarrier until after our
2090
- // dtor is invoked.
2091
- RefCountedPtr<CallStackDestructionBarrier> call_stack_destruction_barrier =
2092
- std::move(calld->call_stack_destruction_barrier_);
2093
- calld->~CallData();
2094
- // Now set the callback in the CallStackDestructionBarrier object,
2095
- // right before we release our ref to it (implicitly upon returning).
2096
- // The callback will be invoked when the CallStackDestructionBarrier
2097
- // is destroyed.
2098
- call_stack_destruction_barrier->set_on_call_stack_destruction(
2099
- then_schedule_closure);
2100
- }
2101
-
2102
- void RetryFilter::CallData::StartTransportStreamOpBatch(
2103
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
2104
- auto* calld = static_cast<CallData*>(elem->call_data);
2105
- calld->StartTransportStreamOpBatch(batch);
2106
- }
2107
-
2108
- void RetryFilter::CallData::SetPollent(grpc_call_element* elem,
2109
- grpc_polling_entity* pollent) {
2110
- auto* calld = static_cast<CallData*>(elem->call_data);
2111
- calld->pollent_ = pollent;
126
+ std::string server_name(absl::StripPrefix(uri->path(), "/"));
127
+ // Get throttling config for server_name.
128
+ retry_throttle_data_ =
129
+ internal::ServerRetryThrottleMap::Get()->GetDataForServer(
130
+ server_name, config->max_milli_tokens(), config->milli_token_ratio());
2112
131
  }
2113
132
 
2114
- //
2115
- // CallData implementation
2116
- //
2117
-
2118
133
  const RetryMethodConfig* RetryFilter::GetRetryPolicy(
2119
134
  const grpc_call_context_element* context) {
2120
135
  if (context == nullptr) return nullptr;
@@ -2125,521 +140,15 @@ const RetryMethodConfig* RetryFilter::GetRetryPolicy(
2125
140
  svc_cfg_call_data->GetMethodParsedConfig(service_config_parser_index_));
2126
141
  }
2127
142
 
2128
- RetryFilter::CallData::CallData(RetryFilter* chand,
2129
- const grpc_call_element_args& args)
2130
- : chand_(chand),
2131
- retry_throttle_data_(chand->retry_throttle_data_),
2132
- retry_policy_(chand->GetRetryPolicy(args.context)),
2133
- retry_backoff_(
2134
- BackOff::Options()
2135
- .set_initial_backoff(retry_policy_ == nullptr
2136
- ? Duration::Zero()
2137
- : retry_policy_->initial_backoff())
2138
- .set_multiplier(retry_policy_ == nullptr
2139
- ? 0
2140
- : retry_policy_->backoff_multiplier())
2141
- .set_jitter(RETRY_BACKOFF_JITTER)
2142
- .set_max_backoff(retry_policy_ == nullptr
2143
- ? Duration::Zero()
2144
- : retry_policy_->max_backoff())),
2145
- path_(CSliceRef(args.path)),
2146
- deadline_(args.deadline),
2147
- arena_(args.arena),
2148
- owning_call_(args.call_stack),
2149
- call_combiner_(args.call_combiner),
2150
- call_context_(args.context),
2151
- call_stack_destruction_barrier_(
2152
- arena_->New<CallStackDestructionBarrier>()),
2153
- pending_send_initial_metadata_(false),
2154
- pending_send_message_(false),
2155
- pending_send_trailing_metadata_(false),
2156
- retry_committed_(false),
2157
- retry_codepath_started_(false),
2158
- sent_transparent_retry_not_seen_by_server_(false) {}
2159
-
2160
- RetryFilter::CallData::~CallData() {
2161
- FreeAllCachedSendOpData();
2162
- CSliceUnref(path_);
2163
- // Make sure there are no remaining pending batches.
2164
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2165
- GPR_ASSERT(pending_batches_[i].batch == nullptr);
2166
- }
2167
- }
2168
-
2169
- void RetryFilter::CallData::StartTransportStreamOpBatch(
2170
- grpc_transport_stream_op_batch* batch) {
2171
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace) &&
2172
- !GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
2173
- gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from surface: %s",
2174
- chand_, this,
2175
- grpc_transport_stream_op_batch_string(batch, false).c_str());
2176
- }
2177
- // If we have an LB call, delegate to the LB call.
2178
- if (committed_call_ != nullptr) {
2179
- // Note: This will release the call combiner.
2180
- committed_call_->StartTransportStreamOpBatch(batch);
2181
- return;
2182
- }
2183
- // If we were previously cancelled from the surface, fail this
2184
- // batch immediately.
2185
- if (!cancelled_from_surface_.ok()) {
2186
- // Note: This will release the call combiner.
2187
- grpc_transport_stream_op_batch_finish_with_failure(
2188
- batch, cancelled_from_surface_, call_combiner_);
2189
- return;
2190
- }
2191
- // Handle cancellation.
2192
- if (GPR_UNLIKELY(batch->cancel_stream)) {
2193
- // Save cancel_error in case subsequent batches are started.
2194
- cancelled_from_surface_ = batch->payload->cancel_stream.cancel_error;
2195
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2196
- gpr_log(GPR_INFO, "chand=%p calld=%p: cancelled from surface: %s", chand_,
2197
- this, StatusToString(cancelled_from_surface_).c_str());
2198
- }
2199
- // Fail any pending batches.
2200
- PendingBatchesFail(cancelled_from_surface_);
2201
- // If we have a current call attempt, commit the call, then send
2202
- // the cancellation down to that attempt. When the call fails, it
2203
- // will not be retried, because we have committed it here.
2204
- if (call_attempt_ != nullptr) {
2205
- RetryCommit(call_attempt_.get());
2206
- // TODO(roth): When implementing hedging, this will get more
2207
- // complex, because instead of just passing the batch down to a
2208
- // single call attempt, we'll need to cancel multiple call
2209
- // attempts and wait for the cancellation on_complete from each call
2210
- // attempt before we propagate the on_complete from this batch
2211
- // back to the surface.
2212
- // Note: This will release the call combiner.
2213
- call_attempt_->CancelFromSurface(batch);
2214
- return;
2215
- }
2216
- // Cancel retry timer if needed.
2217
- if (retry_timer_handle_.has_value()) {
2218
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2219
- gpr_log(GPR_INFO, "chand=%p calld=%p: cancelling retry timer", chand_,
2220
- this);
2221
- }
2222
- if (chand_->event_engine_->Cancel(*retry_timer_handle_)) {
2223
- GRPC_CALL_STACK_UNREF(owning_call_, "OnRetryTimer");
2224
- }
2225
- retry_timer_handle_.reset();
2226
- FreeAllCachedSendOpData();
2227
- }
2228
- // We have no call attempt, so there's nowhere to send the cancellation
2229
- // batch. Return it back to the surface immediately.
2230
- // Note: This will release the call combiner.
2231
- grpc_transport_stream_op_batch_finish_with_failure(
2232
- batch, cancelled_from_surface_, call_combiner_);
2233
- return;
2234
- }
2235
- // Add the batch to the pending list.
2236
- PendingBatch* pending = PendingBatchesAdd(batch);
2237
- // If the timer is pending, yield the call combiner and wait for it to
2238
- // run, since we don't want to start another call attempt until it does.
2239
- if (retry_timer_handle_.has_value()) {
2240
- GRPC_CALL_COMBINER_STOP(call_combiner_,
2241
- "added pending batch while retry timer pending");
2242
- return;
2243
- }
2244
- // If we do not yet have a call attempt, create one.
2245
- if (call_attempt_ == nullptr) {
2246
- // If this is the first batch and retries are already committed
2247
- // (e.g., if this batch put the call above the buffer size limit), then
2248
- // immediately create an LB call and delegate the batch to it. This
2249
- // avoids the overhead of unnecessarily allocating a CallAttempt
2250
- // object or caching any of the send op data.
2251
- // Note that we would ideally like to do this also on subsequent
2252
- // attempts (e.g., if a batch puts the call above the buffer size
2253
- // limit since the last attempt was complete), but in practice that's
2254
- // not really worthwhile, because we will almost always have cached and
2255
- // completed at least the send_initial_metadata op on the previous
2256
- // attempt, which means that we'd need special logic to replay the
2257
- // batch anyway, which is exactly what the CallAttempt object provides.
2258
- // We also skip this optimization if perAttemptRecvTimeout is set in the
2259
- // retry policy, because we need the code in CallAttempt to handle
2260
- // the associated timer.
2261
- if (!retry_codepath_started_ && retry_committed_ &&
2262
- (retry_policy_ == nullptr ||
2263
- !retry_policy_->per_attempt_recv_timeout().has_value())) {
2264
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2265
- gpr_log(GPR_INFO,
2266
- "chand=%p calld=%p: retry committed before first attempt; "
2267
- "creating LB call",
2268
- chand_, this);
2269
- }
2270
- PendingBatchClear(pending);
2271
- auto* service_config_call_data =
2272
- static_cast<ClientChannelServiceConfigCallData*>(
2273
- call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
2274
- committed_call_ = CreateLoadBalancedCall(
2275
- service_config_call_data->call_dispatch_controller(),
2276
- /*is_transparent_retry=*/false);
2277
- committed_call_->StartTransportStreamOpBatch(batch);
2278
- return;
2279
- }
2280
- // Otherwise, create a call attempt.
2281
- // The attempt will automatically start any necessary replays or
2282
- // pending batches.
2283
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2284
- gpr_log(GPR_INFO, "chand=%p calld=%p: creating call attempt", chand_,
2285
- this);
2286
- }
2287
- retry_codepath_started_ = true;
2288
- CreateCallAttempt(/*is_transparent_retry=*/false);
2289
- return;
2290
- }
2291
- // Send batches to call attempt.
2292
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2293
- gpr_log(GPR_INFO, "chand=%p calld=%p: starting batch on attempt=%p", chand_,
2294
- this, call_attempt_.get());
2295
- }
2296
- call_attempt_->StartRetriableBatches();
2297
- }
2298
-
2299
- OrphanablePtr<ClientChannel::FilterBasedLoadBalancedCall>
2300
- RetryFilter::CallData::CreateLoadBalancedCall(
2301
- ConfigSelector::CallDispatchController* call_dispatch_controller,
2302
- bool is_transparent_retry) {
2303
- grpc_call_element_args args = {owning_call_, nullptr, call_context_,
2304
- path_, /*start_time=*/0, deadline_,
2305
- arena_, call_combiner_};
2306
- return chand_->client_channel_->CreateLoadBalancedCall(
2307
- args, pollent_,
2308
- // This callback holds a ref to the CallStackDestructionBarrier
2309
- // object until the LB call is destroyed.
2310
- call_stack_destruction_barrier_->MakeLbCallDestructionClosure(this),
2311
- call_dispatch_controller, is_transparent_retry);
2312
- }
2313
-
2314
- void RetryFilter::CallData::CreateCallAttempt(bool is_transparent_retry) {
2315
- call_attempt_ = MakeRefCounted<CallAttempt>(this, is_transparent_retry);
2316
- call_attempt_->StartRetriableBatches();
2317
- }
2318
-
2319
- //
2320
- // send op data caching
2321
- //
2322
-
2323
- void RetryFilter::CallData::MaybeCacheSendOpsForBatch(PendingBatch* pending) {
2324
- if (pending->send_ops_cached) return;
2325
- pending->send_ops_cached = true;
2326
- grpc_transport_stream_op_batch* batch = pending->batch;
2327
- // Save a copy of metadata for send_initial_metadata ops.
2328
- if (batch->send_initial_metadata) {
2329
- seen_send_initial_metadata_ = true;
2330
- grpc_metadata_batch* send_initial_metadata =
2331
- batch->payload->send_initial_metadata.send_initial_metadata;
2332
- send_initial_metadata_ = send_initial_metadata->Copy();
2333
- }
2334
- // Set up cache for send_message ops.
2335
- if (batch->send_message) {
2336
- SliceBuffer* cache = arena_->New<SliceBuffer>(std::move(
2337
- *std::exchange(batch->payload->send_message.send_message, nullptr)));
2338
- send_messages_.push_back({cache, batch->payload->send_message.flags});
2339
- }
2340
- // Save metadata batch for send_trailing_metadata ops.
2341
- if (batch->send_trailing_metadata) {
2342
- seen_send_trailing_metadata_ = true;
2343
- grpc_metadata_batch* send_trailing_metadata =
2344
- batch->payload->send_trailing_metadata.send_trailing_metadata;
2345
- send_trailing_metadata_ = send_trailing_metadata->Copy();
2346
- }
2347
- }
2348
-
2349
- void RetryFilter::CallData::FreeCachedSendInitialMetadata() {
2350
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2351
- gpr_log(GPR_INFO, "chand=%p calld=%p: destroying send_initial_metadata",
2352
- chand_, this);
2353
- }
2354
- send_initial_metadata_.Clear();
2355
- }
2356
-
2357
- void RetryFilter::CallData::FreeCachedSendMessage(size_t idx) {
2358
- if (send_messages_[idx].slices != nullptr) {
2359
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2360
- gpr_log(GPR_INFO,
2361
- "chand=%p calld=%p: destroying send_messages[%" PRIuPTR "]",
2362
- chand_, this, idx);
2363
- }
2364
- Destruct(std::exchange(send_messages_[idx].slices, nullptr));
2365
- }
2366
- }
2367
-
2368
- void RetryFilter::CallData::FreeCachedSendTrailingMetadata() {
2369
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2370
- gpr_log(GPR_INFO, "chand=%p calld=%p: destroying send_trailing_metadata",
2371
- chand_, this);
2372
- }
2373
- send_trailing_metadata_.Clear();
2374
- }
2375
-
2376
- void RetryFilter::CallData::FreeAllCachedSendOpData() {
2377
- if (seen_send_initial_metadata_) {
2378
- FreeCachedSendInitialMetadata();
2379
- }
2380
- for (size_t i = 0; i < send_messages_.size(); ++i) {
2381
- FreeCachedSendMessage(i);
2382
- }
2383
- if (seen_send_trailing_metadata_) {
2384
- FreeCachedSendTrailingMetadata();
2385
- }
2386
- }
2387
-
2388
- //
2389
- // pending_batches management
2390
- //
2391
-
2392
- size_t RetryFilter::CallData::GetBatchIndex(
2393
- grpc_transport_stream_op_batch* batch) {
2394
- if (batch->send_initial_metadata) return 0;
2395
- if (batch->send_message) return 1;
2396
- if (batch->send_trailing_metadata) return 2;
2397
- if (batch->recv_initial_metadata) return 3;
2398
- if (batch->recv_message) return 4;
2399
- if (batch->recv_trailing_metadata) return 5;
2400
- GPR_UNREACHABLE_CODE(return (size_t)-1);
2401
- }
2402
-
2403
- // This is called via the call combiner, so access to calld is synchronized.
2404
- RetryFilter::CallData::PendingBatch* RetryFilter::CallData::PendingBatchesAdd(
2405
- grpc_transport_stream_op_batch* batch) {
2406
- const size_t idx = GetBatchIndex(batch);
2407
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2408
- gpr_log(GPR_INFO,
2409
- "chand=%p calld=%p: adding pending batch at index %" PRIuPTR,
2410
- chand_, this, idx);
2411
- }
2412
- PendingBatch* pending = &pending_batches_[idx];
2413
- GPR_ASSERT(pending->batch == nullptr);
2414
- pending->batch = batch;
2415
- pending->send_ops_cached = false;
2416
- // Update state in calld about pending batches.
2417
- // Also check if the batch takes us over the retry buffer limit.
2418
- // Note: We don't check the size of trailing metadata here, because
2419
- // gRPC clients do not send trailing metadata.
2420
- if (batch->send_initial_metadata) {
2421
- pending_send_initial_metadata_ = true;
2422
- bytes_buffered_for_retry_ += batch->payload->send_initial_metadata
2423
- .send_initial_metadata->TransportSize();
2424
- }
2425
- if (batch->send_message) {
2426
- pending_send_message_ = true;
2427
- bytes_buffered_for_retry_ +=
2428
- batch->payload->send_message.send_message->Length();
2429
- }
2430
- if (batch->send_trailing_metadata) {
2431
- pending_send_trailing_metadata_ = true;
2432
- }
2433
- // TODO(roth): When we implement hedging, if there are currently attempts
2434
- // in flight, we will need to pick the one on which the max number of send
2435
- // ops have already been sent, and we commit to that attempt.
2436
- if (GPR_UNLIKELY(bytes_buffered_for_retry_ >
2437
- chand_->per_rpc_retry_buffer_size_)) {
2438
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2439
- gpr_log(GPR_INFO,
2440
- "chand=%p calld=%p: exceeded retry buffer size, committing",
2441
- chand_, this);
2442
- }
2443
- RetryCommit(call_attempt_.get());
2444
- }
2445
- return pending;
2446
- }
2447
-
2448
- void RetryFilter::CallData::PendingBatchClear(PendingBatch* pending) {
2449
- if (pending->batch->send_initial_metadata) {
2450
- pending_send_initial_metadata_ = false;
2451
- }
2452
- if (pending->batch->send_message) {
2453
- pending_send_message_ = false;
2454
- }
2455
- if (pending->batch->send_trailing_metadata) {
2456
- pending_send_trailing_metadata_ = false;
2457
- }
2458
- pending->batch = nullptr;
2459
- }
2460
-
2461
- void RetryFilter::CallData::MaybeClearPendingBatch(PendingBatch* pending) {
2462
- grpc_transport_stream_op_batch* batch = pending->batch;
2463
- // We clear the pending batch if all of its callbacks have been
2464
- // scheduled and reset to nullptr.
2465
- if (batch->on_complete == nullptr &&
2466
- (!batch->recv_initial_metadata ||
2467
- batch->payload->recv_initial_metadata.recv_initial_metadata_ready ==
2468
- nullptr) &&
2469
- (!batch->recv_message ||
2470
- batch->payload->recv_message.recv_message_ready == nullptr) &&
2471
- (!batch->recv_trailing_metadata ||
2472
- batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready ==
2473
- nullptr)) {
2474
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2475
- gpr_log(GPR_INFO, "chand=%p calld=%p: clearing pending batch", chand_,
2476
- this);
2477
- }
2478
- PendingBatchClear(pending);
2479
- }
2480
- }
2481
-
2482
- // This is called via the call combiner, so access to calld is synchronized.
2483
- void RetryFilter::CallData::FailPendingBatchInCallCombiner(
2484
- void* arg, grpc_error_handle error) {
2485
- grpc_transport_stream_op_batch* batch =
2486
- static_cast<grpc_transport_stream_op_batch*>(arg);
2487
- CallData* call = static_cast<CallData*>(batch->handler_private.extra_arg);
2488
- // Note: This will release the call combiner.
2489
- grpc_transport_stream_op_batch_finish_with_failure(batch, error,
2490
- call->call_combiner_);
2491
- }
2492
-
2493
- // This is called via the call combiner, so access to calld is synchronized.
2494
- void RetryFilter::CallData::PendingBatchesFail(grpc_error_handle error) {
2495
- GPR_ASSERT(!error.ok());
2496
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2497
- size_t num_batches = 0;
2498
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2499
- if (pending_batches_[i].batch != nullptr) ++num_batches;
2500
- }
2501
- gpr_log(GPR_INFO,
2502
- "chand=%p calld=%p: failing %" PRIuPTR " pending batches: %s",
2503
- chand_, this, num_batches, StatusToString(error).c_str());
2504
- }
2505
- CallCombinerClosureList closures;
2506
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2507
- PendingBatch* pending = &pending_batches_[i];
2508
- grpc_transport_stream_op_batch* batch = pending->batch;
2509
- if (batch != nullptr) {
2510
- batch->handler_private.extra_arg = this;
2511
- GRPC_CLOSURE_INIT(&batch->handler_private.closure,
2512
- FailPendingBatchInCallCombiner, batch,
2513
- grpc_schedule_on_exec_ctx);
2514
- closures.Add(&batch->handler_private.closure, error,
2515
- "PendingBatchesFail");
2516
- PendingBatchClear(pending);
2517
- }
2518
- }
2519
- closures.RunClosuresWithoutYielding(call_combiner_);
2520
- }
2521
-
2522
- template <typename Predicate>
2523
- RetryFilter::CallData::PendingBatch* RetryFilter::CallData::PendingBatchFind(
2524
- const char* log_message, Predicate predicate) {
2525
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2526
- PendingBatch* pending = &pending_batches_[i];
2527
- grpc_transport_stream_op_batch* batch = pending->batch;
2528
- if (batch != nullptr && predicate(batch)) {
2529
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2530
- gpr_log(GPR_INFO,
2531
- "chand=%p calld=%p: %s pending batch at index %" PRIuPTR,
2532
- chand_, this, log_message, i);
2533
- }
2534
- return pending;
2535
- }
2536
- }
2537
- return nullptr;
2538
- }
2539
-
2540
- //
2541
- // retry code
2542
- //
2543
-
2544
- void RetryFilter::CallData::RetryCommit(CallAttempt* call_attempt) {
2545
- if (retry_committed_) return;
2546
- retry_committed_ = true;
2547
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2548
- gpr_log(GPR_INFO, "chand=%p calld=%p: committing retries", chand_, this);
2549
- }
2550
- if (call_attempt != nullptr) {
2551
- // If the call attempt's LB call has been committed, inform the call
2552
- // dispatch controller that the call has been committed.
2553
- // Note: If call_attempt is null, this is happening before the first
2554
- // retry attempt is started, in which case we'll just pass the real
2555
- // call dispatch controller down into the LB call, and it won't be
2556
- // our problem anymore.
2557
- if (call_attempt->lb_call_committed()) {
2558
- auto* service_config_call_data =
2559
- static_cast<ClientChannelServiceConfigCallData*>(
2560
- call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
2561
- service_config_call_data->call_dispatch_controller()->Commit();
2562
- }
2563
- // Free cached send ops.
2564
- call_attempt->FreeCachedSendOpDataAfterCommit();
2565
- }
2566
- }
2567
-
2568
- void RetryFilter::CallData::StartRetryTimer(
2569
- absl::optional<Duration> server_pushback) {
2570
- // Reset call attempt.
2571
- call_attempt_.reset(DEBUG_LOCATION, "StartRetryTimer");
2572
- // Compute backoff delay.
2573
- Duration next_attempt_timeout;
2574
- if (server_pushback.has_value()) {
2575
- GPR_ASSERT(*server_pushback >= Duration::Zero());
2576
- next_attempt_timeout = *server_pushback;
2577
- retry_backoff_.Reset();
2578
- } else {
2579
- next_attempt_timeout = retry_backoff_.NextAttemptTime() - Timestamp::Now();
2580
- }
2581
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2582
- gpr_log(GPR_INFO,
2583
- "chand=%p calld=%p: retrying failed call in %" PRId64 " ms", chand_,
2584
- this, next_attempt_timeout.millis());
2585
- }
2586
- // Schedule retry after computed delay.
2587
- GRPC_CALL_STACK_REF(owning_call_, "OnRetryTimer");
2588
- retry_timer_handle_ =
2589
- chand_->event_engine_->RunAfter(next_attempt_timeout, [this] {
2590
- ApplicationCallbackExecCtx callback_exec_ctx;
2591
- ExecCtx exec_ctx;
2592
- OnRetryTimer();
2593
- });
2594
- }
2595
-
2596
- void RetryFilter::CallData::OnRetryTimer() {
2597
- GRPC_CLOSURE_INIT(&retry_closure_, OnRetryTimerLocked, this, nullptr);
2598
- GRPC_CALL_COMBINER_START(call_combiner_, &retry_closure_, absl::OkStatus(),
2599
- "retry timer fired");
2600
- }
2601
-
2602
- void RetryFilter::CallData::OnRetryTimerLocked(void* arg,
2603
- grpc_error_handle /*error*/) {
2604
- auto* calld = static_cast<CallData*>(arg);
2605
- calld->retry_timer_handle_.reset();
2606
- calld->CreateCallAttempt(/*is_transparent_retry=*/false);
2607
- GRPC_CALL_STACK_UNREF(calld->owning_call_, "OnRetryTimer");
2608
- }
2609
-
2610
- void RetryFilter::CallData::AddClosureToStartTransparentRetry(
2611
- CallCombinerClosureList* closures) {
2612
- if (GRPC_TRACE_FLAG_ENABLED(grpc_retry_trace)) {
2613
- gpr_log(GPR_INFO, "chand=%p calld=%p: scheduling transparent retry", chand_,
2614
- this);
2615
- }
2616
- GRPC_CALL_STACK_REF(owning_call_, "OnRetryTimer");
2617
- GRPC_CLOSURE_INIT(&retry_closure_, StartTransparentRetry, this, nullptr);
2618
- closures->Add(&retry_closure_, absl::OkStatus(), "start transparent retry");
2619
- }
2620
-
2621
- void RetryFilter::CallData::StartTransparentRetry(void* arg,
2622
- grpc_error_handle /*error*/) {
2623
- auto* calld = static_cast<CallData*>(arg);
2624
- if (calld->cancelled_from_surface_.ok()) {
2625
- calld->CreateCallAttempt(/*is_transparent_retry=*/true);
2626
- } else {
2627
- GRPC_CALL_COMBINER_STOP(calld->call_combiner_,
2628
- "call cancelled before transparent retry");
2629
- }
2630
- GRPC_CALL_STACK_UNREF(calld->owning_call_, "OnRetryTimer");
2631
- }
2632
-
2633
- } // namespace
2634
-
2635
- const grpc_channel_filter kRetryFilterVtable = {
2636
- RetryFilter::CallData::StartTransportStreamOpBatch,
143
+ const grpc_channel_filter RetryFilter::kVtable = {
144
+ RetryFilter::LegacyCallData::StartTransportStreamOpBatch,
2637
145
  nullptr,
146
+ /* init_call: */ nullptr,
2638
147
  RetryFilter::StartTransportOp,
2639
- sizeof(RetryFilter::CallData),
2640
- RetryFilter::CallData::Init,
2641
- RetryFilter::CallData::SetPollent,
2642
- RetryFilter::CallData::Destroy,
148
+ sizeof(RetryFilter::LegacyCallData),
149
+ RetryFilter::LegacyCallData::Init,
150
+ RetryFilter::LegacyCallData::SetPollent,
151
+ RetryFilter::LegacyCallData::Destroy,
2643
152
  sizeof(RetryFilter),
2644
153
  RetryFilter::Init,
2645
154
  grpc_channel_stack_no_post_init,