grpc 1.43.1 → 1.45.0

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

Potentially problematic release.


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

Files changed (1240) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +349 -216
  3. data/include/grpc/event_engine/event_engine.h +2 -2
  4. data/include/grpc/grpc.h +40 -14
  5. data/include/grpc/grpc_posix.h +20 -19
  6. data/include/grpc/grpc_security.h +36 -50
  7. data/include/grpc/impl/codegen/compression_types.h +0 -2
  8. data/include/grpc/impl/codegen/grpc_types.h +17 -8
  9. data/include/grpc/impl/codegen/port_platform.h +2 -2
  10. data/include/grpc/impl/codegen/slice.h +4 -1
  11. data/include/grpc/slice.h +0 -11
  12. data/src/core/ext/filters/client_channel/backend_metric.cc +3 -3
  13. data/src/core/ext/filters/client_channel/backend_metric.h +1 -1
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
  16. data/src/core/ext/filters/client_channel/client_channel.cc +140 -124
  17. data/src/core/ext/filters/client_channel/client_channel.h +38 -37
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +6 -12
  19. data/src/core/ext/filters/client_channel/config_selector.h +4 -4
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -2
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +2 -2
  23. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
  24. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
  25. data/src/core/ext/filters/client_channel/health/health_check_client.cc +32 -31
  26. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  27. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +10 -13
  28. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
  29. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +4 -7
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +99 -79
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
  36. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +50 -32
  37. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +28 -19
  38. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +120 -68
  39. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +161 -112
  40. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +62 -61
  41. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
  42. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -7
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +28 -19
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +65 -36
  46. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +5 -3
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +69 -117
  48. data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
  49. data/src/core/ext/filters/client_channel/lb_policy.h +19 -3
  50. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +10 -16
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +259 -120
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +23 -38
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +136 -226
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +25 -32
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +120 -113
  59. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -17
  60. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
  61. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +83 -61
  62. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +40 -39
  63. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +185 -96
  64. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +8 -11
  65. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +13 -7
  66. data/src/core/ext/filters/client_channel/retry_filter.cc +236 -169
  67. data/src/core/ext/filters/client_channel/retry_service_config.cc +16 -18
  68. data/src/core/ext/filters/client_channel/retry_service_config.h +18 -12
  69. data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
  70. data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
  71. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +8 -7
  72. data/src/core/ext/filters/client_channel/subchannel.cc +45 -52
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -7
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +96 -159
  75. data/src/core/ext/filters/client_idle/idle_filter_state.h +2 -2
  76. data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
  77. data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
  78. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +53 -58
  79. data/src/core/ext/filters/fault_injection/service_config_parser.cc +11 -13
  80. data/src/core/ext/filters/fault_injection/service_config_parser.h +10 -4
  81. data/src/core/ext/filters/http/client/http_client_filter.cc +58 -125
  82. data/src/core/ext/filters/http/client_authority_filter.cc +28 -87
  83. data/src/core/ext/filters/http/client_authority_filter.h +23 -5
  84. data/src/core/ext/filters/http/http_filters_plugin.cc +11 -12
  85. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +43 -140
  86. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +15 -27
  87. data/src/core/ext/filters/http/server/http_server_filter.cc +51 -135
  88. data/src/core/ext/filters/max_age/max_age_filter.cc +46 -40
  89. data/src/core/ext/filters/message_size/message_size_filter.cc +27 -35
  90. data/src/core/ext/filters/message_size/message_size_filter.h +10 -3
  91. data/src/core/ext/filters/rbac/rbac_filter.cc +162 -0
  92. data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
  93. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
  94. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
  95. data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -2
  96. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +12 -6
  97. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +234 -0
  98. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +236 -34
  99. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +155 -233
  100. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -2
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
  104. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
  105. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
  106. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +342 -281
  107. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +70 -160
  108. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
  109. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  110. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +29 -78
  111. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -1
  112. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +94 -1
  113. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -24
  114. data/src/core/ext/transport/chttp2/transport/internal.h +6 -39
  115. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -9
  116. data/src/core/ext/transport/chttp2/transport/writing.cc +62 -128
  117. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
  118. data/src/core/ext/transport/inproc/inproc_transport.cc +27 -75
  119. data/src/core/ext/transport/inproc/inproc_transport.h +0 -3
  120. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
  121. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
  122. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
  123. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
  124. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +165 -163
  125. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +798 -575
  126. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
  127. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
  128. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
  129. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
  130. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
  131. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
  132. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
  133. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
  134. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
  135. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
  136. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
  137. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
  138. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
  139. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
  140. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -20
  141. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +17 -16
  142. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +15 -13
  143. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +31 -23
  144. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +90 -88
  145. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +421 -317
  146. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +156 -152
  147. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +787 -571
  148. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +27 -25
  149. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +115 -79
  150. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +206 -204
  151. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +954 -662
  152. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
  153. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +33 -23
  154. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +29 -27
  155. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +127 -79
  156. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
  157. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +49 -47
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +221 -159
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +10 -8
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +33 -23
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +154 -151
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +691 -499
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +39 -37
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +178 -130
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +25 -19
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +18 -16
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +74 -53
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +100 -98
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +449 -329
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +77 -75
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +365 -264
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +36 -26
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +140 -105
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +675 -345
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +25 -17
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
  183. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +59 -42
  184. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +13 -11
  185. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +39 -25
  186. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +14 -12
  187. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +45 -35
  188. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +10 -8
  189. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +34 -24
  190. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +31 -29
  191. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +113 -85
  192. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +47 -45
  193. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +210 -151
  194. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +48 -46
  195. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +210 -142
  196. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
  197. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +28 -20
  198. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +58 -54
  199. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +282 -193
  200. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +64 -62
  201. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +286 -218
  202. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +15 -13
  203. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +62 -42
  204. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +12 -10
  205. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +54 -39
  206. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
  207. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
  208. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +55 -53
  209. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +244 -185
  210. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +57 -55
  211. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +260 -192
  212. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +70 -68
  213. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +235 -191
  214. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +30 -28
  215. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +142 -112
  216. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +435 -428
  217. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2037 -1507
  218. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
  219. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +107 -64
  220. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
  221. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
  222. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
  223. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
  224. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
  225. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
  226. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +15 -13
  227. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +55 -40
  228. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
  229. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
  230. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
  231. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
  232. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
  233. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
  234. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
  235. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
  236. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
  237. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
  238. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
  239. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
  240. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
  241. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
  242. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
  243. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +29 -23
  244. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +26 -24
  245. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +125 -93
  246. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +33 -31
  247. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -105
  248. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +63 -0
  249. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +165 -0
  250. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +15 -13
  251. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +53 -37
  252. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +175 -173
  253. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +803 -559
  254. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +3 -1
  255. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
  256. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +75 -52
  257. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +368 -194
  258. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +24 -22
  259. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +95 -71
  260. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +60 -58
  261. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +266 -193
  262. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
  263. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
  264. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +6 -4
  265. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -16
  266. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +64 -62
  267. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +297 -218
  268. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
  269. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +73 -54
  270. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +46 -44
  271. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +197 -145
  272. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
  273. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
  274. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +19 -17
  275. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +91 -70
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +16 -14
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +64 -47
  280. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
  281. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +34 -26
  282. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
  283. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +25 -19
  284. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
  285. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +25 -19
  286. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
  287. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +85 -61
  288. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
  289. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +65 -52
  290. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
  291. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +56 -43
  292. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +21 -19
  293. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +74 -58
  294. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +30 -28
  295. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +163 -125
  296. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +34 -32
  297. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +157 -113
  298. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
  299. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
  300. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +3 -1
  301. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
  302. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
  303. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
  304. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +13 -11
  305. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +51 -34
  306. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
  307. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +80 -52
  308. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
  309. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
  310. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
  311. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +31 -19
  312. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
  313. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
  314. data/src/core/ext/upb-generated/google/api/annotations.upb.c +10 -8
  315. data/src/core/ext/upb-generated/google/api/annotations.upb.h +6 -5
  316. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +100 -98
  317. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +371 -281
  318. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +110 -108
  319. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +409 -298
  320. data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
  321. data/src/core/ext/upb-generated/google/api/http.upb.h +117 -89
  322. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
  323. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
  324. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +9 -7
  325. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +32 -22
  326. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +287 -234
  327. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1088 -764
  328. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
  329. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +28 -18
  330. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
  331. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -16
  332. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +30 -28
  333. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +80 -64
  334. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
  335. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +28 -18
  336. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
  337. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +213 -149
  338. data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
  339. data/src/core/ext/upb-generated/google/rpc/status.upb.h +36 -26
  340. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
  341. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
  342. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +20 -18
  343. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +60 -42
  344. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +95 -93
  345. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +396 -285
  346. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +15 -13
  347. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +58 -39
  348. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
  349. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +50 -35
  350. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +55 -53
  351. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +255 -183
  352. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
  353. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +76 -57
  354. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +46 -44
  355. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +102 -78
  356. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +16 -14
  357. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +32 -22
  358. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +9 -7
  359. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +6 -5
  360. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +16 -14
  361. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +32 -22
  362. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +15 -13
  363. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +31 -23
  364. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -304
  365. data/src/core/ext/upb-generated/validate/validate.upb.h +1114 -741
  366. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
  367. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
  368. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
  369. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
  370. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
  371. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
  372. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +40 -38
  373. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +109 -78
  374. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
  375. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
  376. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +8 -6
  377. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +27 -19
  378. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +17 -15
  379. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +63 -46
  380. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
  381. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +31 -25
  382. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
  383. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
  384. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +11 -9
  385. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +39 -27
  386. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
  387. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +73 -54
  388. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
  389. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +43 -29
  390. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +23 -21
  391. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +43 -31
  392. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
  393. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
  394. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
  395. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
  396. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
  397. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
  398. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +10 -8
  399. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +33 -23
  400. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
  401. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
  402. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
  403. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
  404. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +14 -12
  405. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
  406. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
  407. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  408. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
  409. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
  410. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
  411. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
  412. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
  413. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
  414. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
  415. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  416. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
  417. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
  418. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
  419. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
  420. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +8 -6
  421. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
  422. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
  423. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
  424. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +20 -17
  425. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
  426. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +248 -240
  427. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
  428. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +16 -13
  429. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
  430. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +375 -371
  431. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
  432. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
  433. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
  434. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -13
  435. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
  436. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
  437. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  438. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +15 -13
  439. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
  440. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
  441. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
  442. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +85 -80
  443. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
  444. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +18 -16
  445. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
  446. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +14 -12
  447. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
  448. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +15 -12
  449. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
  450. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
  451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +21 -18
  453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
  454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +23 -20
  455. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
  456. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +14 -12
  457. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
  458. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +250 -221
  459. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
  460. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +12 -9
  461. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
  462. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +14 -11
  463. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
  464. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +14 -11
  465. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
  466. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +18 -15
  467. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
  468. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +13 -11
  469. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
  470. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +18 -15
  471. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
  472. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +19 -16
  473. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
  474. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +18 -15
  475. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
  476. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +14 -11
  477. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
  478. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +52 -45
  479. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
  480. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +23 -20
  481. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
  482. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +19 -16
  483. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
  484. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +15 -12
  485. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
  486. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
  487. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  488. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +17 -14
  489. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
  490. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +17 -14
  491. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
  492. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
  493. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
  494. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +19 -16
  495. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
  496. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +816 -801
  497. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
  498. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
  499. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
  500. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
  501. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
  502. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
  503. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  504. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
  505. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  506. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +15 -12
  507. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
  508. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
  509. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  510. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
  511. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  512. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
  513. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
  514. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
  515. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  516. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
  517. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  518. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
  519. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  520. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
  521. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  522. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +15 -11
  523. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
  524. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +17 -14
  525. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
  526. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +18 -15
  527. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
  528. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
  529. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  530. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +17 -13
  531. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
  532. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +135 -130
  533. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +58 -58
  534. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +15 -11
  535. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
  536. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +169 -140
  537. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
  538. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +19 -16
  539. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
  540. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +21 -17
  541. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
  542. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
  543. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  544. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +14 -11
  545. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
  546. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
  547. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
  548. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +16 -13
  549. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
  550. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +20 -17
  551. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
  552. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
  553. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  554. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +13 -10
  555. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
  556. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
  557. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
  558. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +15 -12
  559. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
  560. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +15 -12
  561. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
  562. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +15 -12
  563. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
  564. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +15 -12
  565. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
  566. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -12
  567. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
  568. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
  569. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
  570. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +14 -12
  571. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
  572. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +16 -13
  573. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
  574. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +13 -10
  575. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
  576. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +14 -11
  577. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
  578. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
  579. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  580. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +10 -8
  581. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
  582. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
  583. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
  584. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +12 -10
  585. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
  586. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +11 -8
  587. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
  588. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  589. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  590. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +11 -9
  591. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
  592. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
  593. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  594. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +5 -5
  595. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
  596. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
  597. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  598. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
  599. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  600. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +3 -3
  601. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
  602. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
  603. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
  604. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +3 -3
  605. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
  606. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +3 -3
  607. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
  608. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
  609. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
  610. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
  611. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
  612. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
  613. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
  614. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
  615. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
  616. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
  617. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
  618. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
  619. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
  620. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
  621. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  622. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +4 -4
  623. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
  624. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
  625. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
  626. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
  627. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
  628. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
  629. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
  630. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
  631. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
  632. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
  633. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
  634. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
  635. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
  636. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
  637. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
  638. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
  639. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  640. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +4 -4
  641. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
  642. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
  643. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
  644. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +5 -5
  645. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
  646. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +7 -7
  647. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
  648. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +4 -4
  649. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
  650. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
  651. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
  652. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +6 -6
  653. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
  654. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +6 -6
  655. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
  656. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +6 -6
  657. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
  658. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
  659. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  660. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
  661. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  662. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
  663. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
  664. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -5
  665. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
  666. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
  667. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  668. data/src/core/ext/xds/upb_utils.h +67 -0
  669. data/src/core/ext/xds/xds_api.cc +127 -3487
  670. data/src/core/ext/xds/xds_api.h +60 -615
  671. data/src/core/ext/xds/xds_bootstrap.cc +221 -125
  672. data/src/core/ext/xds/xds_bootstrap.h +31 -15
  673. data/src/core/ext/xds/xds_certificate_provider.h +1 -0
  674. data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -17
  675. data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
  676. data/src/core/ext/xds/xds_client.cc +702 -1077
  677. data/src/core/ext/xds/xds_client.h +101 -150
  678. data/src/core/ext/xds/xds_client_stats.cc +15 -15
  679. data/src/core/ext/xds/xds_client_stats.h +5 -4
  680. data/src/core/ext/xds/xds_cluster.cc +453 -0
  681. data/src/core/ext/xds/xds_cluster.h +108 -0
  682. data/src/core/ext/xds/xds_common_types.cc +388 -0
  683. data/src/core/ext/xds/xds_common_types.h +95 -0
  684. data/src/core/ext/xds/xds_endpoint.cc +364 -0
  685. data/src/core/ext/xds/xds_endpoint.h +135 -0
  686. data/src/core/ext/xds/xds_http_fault_filter.cc +6 -6
  687. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  688. data/src/core/ext/xds/xds_http_filters.cc +11 -5
  689. data/src/core/ext/xds/xds_http_filters.h +4 -4
  690. data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
  691. data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
  692. data/src/core/ext/xds/xds_listener.cc +1039 -0
  693. data/src/core/ext/xds/xds_listener.h +220 -0
  694. data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → xds/xds_resource_type.cc} +12 -9
  695. data/src/core/ext/xds/xds_resource_type.h +98 -0
  696. data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
  697. data/src/core/ext/xds/xds_route_config.cc +985 -0
  698. data/src/core/ext/xds/xds_route_config.h +215 -0
  699. data/src/core/ext/xds/xds_routing.cc +12 -9
  700. data/src/core/ext/xds/xds_routing.h +8 -5
  701. data/src/core/ext/xds/xds_server_config_fetcher.cc +162 -101
  702. data/src/core/lib/address_utils/parse_address.cc +20 -0
  703. data/src/core/lib/address_utils/parse_address.h +5 -0
  704. data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
  705. data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
  706. data/src/core/lib/backoff/backoff.cc +8 -37
  707. data/src/core/lib/backoff/backoff.h +11 -11
  708. data/src/core/lib/channel/call_finalization.h +86 -0
  709. data/src/core/lib/channel/channel_args.cc +60 -1
  710. data/src/core/lib/channel/channel_args.h +2 -0
  711. data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
  712. data/src/core/lib/channel/channel_stack.cc +10 -3
  713. data/src/core/lib/channel/channel_stack.h +42 -6
  714. data/src/core/lib/channel/channel_stack_builder.cc +66 -248
  715. data/src/core/lib/channel/channel_stack_builder.h +95 -147
  716. data/src/core/lib/channel/channel_trace.cc +3 -6
  717. data/src/core/lib/channel/channelz.cc +1 -0
  718. data/src/core/lib/channel/connected_channel.cc +9 -4
  719. data/src/core/lib/channel/connected_channel.h +1 -1
  720. data/src/core/lib/channel/context.h +11 -0
  721. data/src/core/lib/channel/handshaker.cc +1 -1
  722. data/src/core/lib/channel/handshaker.h +1 -1
  723. data/src/core/lib/channel/promise_based_filter.cc +669 -0
  724. data/src/core/lib/channel/promise_based_filter.h +423 -0
  725. data/src/core/lib/compression/compression.cc +20 -112
  726. data/src/core/lib/compression/compression_internal.cc +143 -203
  727. data/src/core/lib/compression/compression_internal.h +64 -69
  728. data/src/core/lib/compression/message_compress.cc +11 -11
  729. data/src/core/lib/compression/message_compress.h +2 -2
  730. data/src/core/lib/config/core_configuration.cc +8 -2
  731. data/src/core/lib/config/core_configuration.h +39 -0
  732. data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
  733. data/src/core/lib/event_engine/event_engine.cc +23 -8
  734. data/src/core/lib/event_engine/event_engine_factory.h +3 -0
  735. data/src/core/lib/event_engine/memory_allocator.cc +9 -13
  736. data/src/core/lib/event_engine/{event_engine_factory.cc → resolved_address.cc} +10 -20
  737. data/src/core/lib/gpr/sync_posix.cc +1 -0
  738. data/src/core/lib/gpr/time.cc +2 -1
  739. data/src/core/lib/gpr/useful.h +18 -0
  740. data/src/core/lib/gprpp/bitset.h +7 -0
  741. data/src/core/lib/gprpp/capture.h +76 -0
  742. data/src/core/lib/gprpp/chunked_vector.h +45 -3
  743. data/src/core/lib/gprpp/debug_location.h +2 -0
  744. data/src/core/lib/gprpp/status_helper.cc +30 -38
  745. data/src/core/lib/gprpp/status_helper.h +6 -19
  746. data/src/core/lib/gprpp/table.h +11 -0
  747. data/src/core/lib/gprpp/time.cc +186 -0
  748. data/src/core/lib/gprpp/time.h +292 -0
  749. data/src/core/lib/http/format_request.cc +27 -23
  750. data/src/core/lib/http/format_request.h +7 -6
  751. data/src/core/lib/http/httpcli.cc +307 -239
  752. data/src/core/lib/http/httpcli.h +182 -89
  753. data/src/core/lib/http/httpcli_security_connector.cc +62 -73
  754. data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
  755. data/src/core/lib/http/parser.h +1 -1
  756. data/src/core/lib/iomgr/buffer_list.h +5 -5
  757. data/src/core/lib/iomgr/call_combiner.cc +15 -4
  758. data/src/core/lib/iomgr/closure.h +29 -9
  759. data/src/core/lib/iomgr/combiner.cc +25 -3
  760. data/src/core/lib/iomgr/error.cc +13 -10
  761. data/src/core/lib/iomgr/error.h +0 -2
  762. data/src/core/lib/iomgr/ev_apple.cc +6 -5
  763. data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
  764. data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -9
  765. data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
  766. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  767. data/src/core/lib/iomgr/ev_posix.h +1 -1
  768. data/src/core/lib/iomgr/event_engine/iomgr.cc +3 -2
  769. data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
  770. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
  771. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
  772. data/src/core/lib/iomgr/event_engine/resolver.cc +66 -48
  773. data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
  774. data/src/core/lib/iomgr/event_engine/tcp.cc +4 -3
  775. data/src/core/lib/iomgr/event_engine/timer.cc +3 -4
  776. data/src/core/lib/iomgr/exec_ctx.cc +25 -97
  777. data/src/core/lib/iomgr/exec_ctx.h +7 -23
  778. data/src/core/lib/iomgr/executor.cc +10 -1
  779. data/src/core/lib/iomgr/fork_posix.cc +3 -2
  780. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  781. data/src/core/lib/iomgr/iocp_windows.h +1 -1
  782. data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
  783. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  784. data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
  785. data/src/core/lib/iomgr/polling_entity.h +6 -0
  786. data/src/core/lib/iomgr/pollset.cc +1 -1
  787. data/src/core/lib/iomgr/pollset.h +4 -4
  788. data/src/core/lib/iomgr/pollset_windows.cc +2 -2
  789. data/src/core/lib/iomgr/port.h +6 -9
  790. data/src/core/lib/iomgr/resolve_address.cc +5 -24
  791. data/src/core/lib/iomgr/resolve_address.h +47 -44
  792. data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
  793. data/src/core/lib/iomgr/resolve_address_posix.cc +83 -67
  794. data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
  795. data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
  796. data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
  797. data/src/core/lib/iomgr/resolved_address.h +39 -0
  798. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
  799. data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
  800. data/src/core/lib/iomgr/tcp_client.cc +1 -1
  801. data/src/core/lib/iomgr/tcp_client.h +3 -2
  802. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
  803. data/src/core/lib/iomgr/tcp_client_posix.cc +2 -2
  804. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  805. data/src/core/lib/iomgr/tcp_client_windows.cc +1 -1
  806. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  807. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
  808. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
  809. data/src/core/lib/iomgr/tcp_windows.cc +17 -10
  810. data/src/core/lib/iomgr/timer.cc +2 -2
  811. data/src/core/lib/iomgr/timer.h +11 -6
  812. data/src/core/lib/iomgr/timer_generic.cc +96 -77
  813. data/src/core/lib/iomgr/timer_manager.cc +15 -14
  814. data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
  815. data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
  816. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
  817. data/src/core/lib/iomgr/work_serializer.cc +15 -10
  818. data/src/core/lib/json/json_util.cc +4 -4
  819. data/src/core/lib/json/json_util.h +2 -2
  820. data/src/core/lib/matchers/matchers.cc +1 -1
  821. data/src/core/lib/promise/activity.cc +14 -8
  822. data/src/core/lib/promise/activity.h +183 -142
  823. data/src/core/lib/promise/arena_promise.h +188 -0
  824. data/src/core/lib/promise/detail/basic_seq.h +92 -3
  825. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  826. data/src/core/lib/promise/detail/status.h +5 -0
  827. data/src/core/lib/promise/loop.h +34 -8
  828. data/src/core/lib/promise/poll.h +6 -0
  829. data/src/core/lib/promise/promise.h +95 -0
  830. data/src/core/lib/promise/seq.h +19 -1
  831. data/src/core/lib/promise/sleep.cc +74 -0
  832. data/src/core/lib/promise/sleep.h +66 -0
  833. data/src/core/lib/promise/try_seq.h +157 -0
  834. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
  835. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
  836. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -31
  837. data/src/core/lib/resolver/resolver_registry.cc +156 -0
  838. data/src/core/lib/resolver/resolver_registry.h +113 -0
  839. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
  840. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +4 -4
  841. data/src/core/lib/resource_quota/api.h +0 -1
  842. data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
  843. data/src/core/lib/{gprpp → resource_quota}/arena.h +24 -13
  844. data/src/core/lib/resource_quota/memory_quota.cc +118 -94
  845. data/src/core/lib/resource_quota/memory_quota.h +100 -64
  846. data/src/core/lib/security/authorization/evaluate_args.cc +26 -21
  847. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  848. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
  849. data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
  850. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
  851. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
  852. data/src/core/lib/security/authorization/matchers.cc +227 -0
  853. data/src/core/lib/security/authorization/matchers.h +211 -0
  854. data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
  855. data/src/core/lib/security/authorization/rbac_policy.h +171 -0
  856. data/src/core/lib/security/context/security_context.cc +4 -2
  857. data/src/core/lib/security/context/security_context.h +1 -1
  858. data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
  859. data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
  860. data/src/core/lib/security/credentials/call_creds_util.h +42 -0
  861. data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
  862. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
  863. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -81
  864. data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -9
  865. data/src/core/lib/security/credentials/credentials.cc +2 -3
  866. data/src/core/lib/security/credentials/credentials.h +68 -57
  867. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +46 -30
  868. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  869. data/src/core/lib/security/credentials/external/external_account_credentials.cc +51 -33
  870. data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -9
  871. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
  872. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -13
  873. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
  874. data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -18
  875. data/src/core/lib/security/credentials/fake/fake_credentials.h +14 -16
  876. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +16 -13
  877. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
  878. data/src/core/lib/security/credentials/iam/iam_credentials.cc +19 -27
  879. data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -9
  880. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
  881. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
  882. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +27 -43
  883. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -12
  884. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +54 -41
  885. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  886. data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
  887. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +137 -158
  888. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +52 -33
  889. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +95 -153
  890. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -27
  891. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
  892. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -3
  893. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +25 -0
  894. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +17 -1
  895. data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
  896. data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -1
  897. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +8 -14
  898. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
  899. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -12
  900. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
  901. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -16
  902. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +4 -9
  903. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -16
  904. data/src/core/lib/security/security_connector/security_connector.cc +3 -15
  905. data/src/core/lib/security/security_connector/security_connector.h +16 -21
  906. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -11
  907. data/src/core/lib/security/security_connector/ssl_utils.cc +29 -31
  908. data/src/core/lib/security/security_connector/ssl_utils.h +13 -17
  909. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
  910. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -6
  911. data/src/core/lib/security/transport/auth_filters.h +37 -4
  912. data/src/core/lib/security/transport/client_auth_filter.cc +87 -358
  913. data/src/core/lib/security/transport/security_handshaker.cc +14 -6
  914. data/src/core/lib/security/transport/server_auth_filter.cc +41 -35
  915. data/src/core/lib/service_config/service_config.h +82 -0
  916. data/src/core/{ext → lib}/service_config/service_config_call_data.h +5 -5
  917. data/src/core/{ext/service_config/service_config.cc → lib/service_config/service_config_impl.cc} +20 -17
  918. data/src/core/{ext/service_config/service_config.h → lib/service_config/service_config_impl.h} +16 -18
  919. data/src/core/{ext → lib}/service_config/service_config_parser.cc +31 -27
  920. data/src/core/{ext → lib}/service_config/service_config_parser.h +39 -30
  921. data/src/core/lib/slice/slice.cc +76 -179
  922. data/src/core/lib/slice/slice.h +67 -24
  923. data/src/core/lib/slice/slice_internal.h +12 -31
  924. data/src/core/lib/slice/slice_refcount.cc +18 -0
  925. data/src/core/lib/slice/slice_refcount.h +6 -85
  926. data/src/core/lib/slice/slice_refcount_base.h +16 -136
  927. data/src/core/lib/surface/builtins.cc +6 -6
  928. data/src/core/lib/surface/call.cc +152 -387
  929. data/src/core/lib/surface/call.h +5 -5
  930. data/src/core/lib/surface/channel.cc +64 -71
  931. data/src/core/lib/surface/channel.h +10 -11
  932. data/src/core/lib/surface/channel_init.cc +1 -1
  933. data/src/core/lib/surface/channel_init.h +4 -4
  934. data/src/core/lib/surface/completion_queue.cc +10 -9
  935. data/src/core/lib/surface/init.cc +78 -9
  936. data/src/core/lib/surface/init.h +0 -2
  937. data/src/core/lib/surface/lame_client.cc +2 -2
  938. data/src/core/lib/surface/server.cc +23 -51
  939. data/src/core/lib/surface/server.h +5 -5
  940. data/src/core/lib/surface/version.cc +2 -2
  941. data/src/core/lib/transport/bdp_estimator.cc +9 -10
  942. data/src/core/lib/transport/bdp_estimator.h +2 -2
  943. data/src/core/lib/transport/error_utils.cc +5 -3
  944. data/src/core/lib/transport/error_utils.h +2 -1
  945. data/src/core/lib/transport/metadata_batch.h +1010 -750
  946. data/src/core/lib/transport/parsed_metadata.cc +2 -0
  947. data/src/core/lib/transport/parsed_metadata.h +115 -96
  948. data/src/core/lib/transport/status_conversion.cc +2 -2
  949. data/src/core/lib/transport/status_conversion.h +1 -1
  950. data/src/core/lib/transport/timeout_encoding.cc +204 -67
  951. data/src/core/lib/transport/timeout_encoding.h +40 -10
  952. data/src/core/lib/transport/transport.cc +3 -1
  953. data/src/core/lib/transport/transport.h +88 -3
  954. data/src/core/lib/transport/transport_impl.h +13 -0
  955. data/src/core/lib/transport/transport_op_string.cc +5 -47
  956. data/src/core/lib/uri/uri_parser.cc +227 -53
  957. data/src/core/lib/uri/uri_parser.h +37 -23
  958. data/src/core/plugin_registry/grpc_plugin_registry.cc +19 -87
  959. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
  960. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +27 -22
  961. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
  962. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -11
  963. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
  964. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  965. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
  966. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
  967. data/src/core/tsi/local_transport_security.cc +3 -11
  968. data/src/core/tsi/local_transport_security.h +1 -4
  969. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
  970. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
  971. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
  972. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
  973. data/src/core/tsi/ssl_transport_security.cc +105 -14
  974. data/src/core/tsi/ssl_transport_security.h +38 -6
  975. data/src/ruby/ext/grpc/extconf.rb +10 -3
  976. data/src/ruby/ext/grpc/rb_channel.c +5 -2
  977. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +20 -24
  978. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +30 -36
  979. data/src/ruby/ext/grpc/rb_server.c +7 -4
  980. data/src/ruby/lib/grpc/version.rb +1 -1
  981. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
  982. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
  983. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  984. data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
  985. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  986. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  987. data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
  988. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  989. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  990. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  991. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
  992. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
  993. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  994. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  995. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  996. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
  997. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
  998. data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
  999. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  1000. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  1001. data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
  1002. data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
  1003. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
  1004. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  1005. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
  1006. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  1007. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  1008. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  1009. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  1010. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  1011. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  1012. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
  1013. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  1014. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  1015. data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
  1016. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  1017. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
  1018. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
  1019. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
  1020. data/third_party/abseil-cpp/absl/random/random.h +189 -0
  1021. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  1022. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  1023. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  1024. data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
  1025. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  1026. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  1027. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
  1028. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
  1029. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
  1030. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
  1031. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
  1032. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
  1033. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
  1034. data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
  1035. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
  1036. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
  1037. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
  1038. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  1039. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
  1040. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
  1041. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -0
  1042. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  1043. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
  1044. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
  1045. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
  1046. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
  1047. data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
  1048. data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
  1049. data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
  1050. data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
  1051. data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
  1052. data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
  1053. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
  1054. data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
  1055. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
  1056. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
  1057. data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
  1058. data/third_party/cares/cares/src/lib/ares_android.c +444 -0
  1059. data/third_party/cares/cares/src/lib/ares_android.h +27 -0
  1060. data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
  1061. data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
  1062. data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
  1063. data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
  1064. data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
  1065. data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
  1066. data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
  1067. data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
  1068. data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
  1069. data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
  1070. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
  1071. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
  1072. data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
  1073. data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
  1074. data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
  1075. data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
  1076. data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
  1077. data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
  1078. data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
  1079. data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
  1080. data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
  1081. data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
  1082. data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
  1083. data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
  1084. data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
  1085. data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
  1086. data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
  1087. data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
  1088. data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
  1089. data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
  1090. data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
  1091. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
  1092. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
  1093. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
  1094. data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
  1095. data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
  1096. data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
  1097. data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
  1098. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
  1099. data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
  1100. data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
  1101. data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
  1102. data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
  1103. data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
  1104. data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
  1105. data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
  1106. data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
  1107. data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
  1108. data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
  1109. data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
  1110. data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
  1111. data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
  1112. data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
  1113. data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
  1114. data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
  1115. data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
  1116. data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
  1117. data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
  1118. data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
  1119. data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
  1120. data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
  1121. data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
  1122. data/third_party/cares/cares/src/lib/config-dos.h +115 -0
  1123. data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
  1124. data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
  1125. data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
  1126. data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
  1127. data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
  1128. data/third_party/upb/third_party/utf8_range/naive.c +92 -0
  1129. data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
  1130. data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
  1131. data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
  1132. data/third_party/upb/upb/decode.c +526 -319
  1133. data/third_party/upb/upb/decode.h +43 -17
  1134. data/third_party/upb/upb/decode_fast.c +303 -301
  1135. data/third_party/upb/upb/decode_fast.h +18 -18
  1136. data/third_party/upb/upb/decode_internal.h +73 -56
  1137. data/third_party/upb/upb/def.c +1863 -1078
  1138. data/third_party/upb/upb/def.h +318 -286
  1139. data/third_party/upb/upb/def.hpp +129 -172
  1140. data/third_party/upb/upb/encode.c +202 -175
  1141. data/third_party/upb/upb/encode.h +15 -17
  1142. data/third_party/upb/upb/msg.c +144 -124
  1143. data/third_party/upb/upb/msg.h +40 -33
  1144. data/third_party/upb/upb/msg_internal.h +321 -272
  1145. data/third_party/upb/upb/reflection.c +239 -199
  1146. data/third_party/upb/upb/reflection.h +87 -67
  1147. data/third_party/upb/upb/reflection.hpp +6 -6
  1148. data/third_party/upb/upb/table.c +222 -142
  1149. data/third_party/upb/upb/table_internal.h +128 -96
  1150. data/third_party/upb/upb/text_encode.c +113 -90
  1151. data/third_party/upb/upb/text_encode.h +10 -10
  1152. data/third_party/upb/upb/upb.c +111 -72
  1153. data/third_party/upb/upb/upb.h +120 -144
  1154. data/third_party/upb/upb/upb.hpp +31 -28
  1155. data/third_party/upb/upb/upb_internal.h +21 -11
  1156. data/third_party/xxhash/xxhash.h +607 -352
  1157. metadata +406 -203
  1158. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
  1159. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
  1160. data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -194
  1161. data/src/core/ext/filters/client_channel/resolver_registry.h +0 -88
  1162. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -122
  1163. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
  1164. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
  1165. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
  1166. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
  1167. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
  1168. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
  1169. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
  1170. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
  1171. data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
  1172. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -38
  1173. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
  1174. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
  1175. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
  1176. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
  1177. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
  1178. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
  1179. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
  1180. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
  1181. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
  1182. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
  1183. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
  1184. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
  1185. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
  1186. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
  1187. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
  1188. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
  1189. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
  1190. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -68
  1191. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
  1192. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -67
  1193. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
  1194. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -75
  1195. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
  1196. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -69
  1197. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
  1198. data/src/core/lib/compression/algorithm_metadata.h +0 -62
  1199. data/src/core/lib/compression/compression_args.cc +0 -140
  1200. data/src/core/lib/compression/compression_args.h +0 -58
  1201. data/src/core/lib/compression/stream_compression.cc +0 -81
  1202. data/src/core/lib/compression/stream_compression.h +0 -117
  1203. data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
  1204. data/src/core/lib/compression/stream_compression_gzip.h +0 -28
  1205. data/src/core/lib/compression/stream_compression_identity.cc +0 -91
  1206. data/src/core/lib/compression/stream_compression_identity.h +0 -29
  1207. data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
  1208. data/src/core/lib/iomgr/iomgr_custom.h +0 -49
  1209. data/src/core/lib/iomgr/pollset_custom.cc +0 -105
  1210. data/src/core/lib/iomgr/pollset_custom.h +0 -37
  1211. data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
  1212. data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
  1213. data/src/core/lib/iomgr/resolve_address_custom.cc +0 -169
  1214. data/src/core/lib/iomgr/resolve_address_custom.h +0 -44
  1215. data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
  1216. data/src/core/lib/iomgr/tcp_custom.cc +0 -350
  1217. data/src/core/lib/iomgr/tcp_custom.h +0 -85
  1218. data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
  1219. data/src/core/lib/iomgr/timer_custom.cc +0 -96
  1220. data/src/core/lib/iomgr/timer_custom.h +0 -43
  1221. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -173
  1222. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
  1223. data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
  1224. data/src/core/lib/slice/slice_intern.cc +0 -367
  1225. data/src/core/lib/slice/slice_utils.h +0 -200
  1226. data/src/core/lib/slice/static_slice.cc +0 -377
  1227. data/src/core/lib/slice/static_slice.h +0 -300
  1228. data/src/core/lib/surface/init_secure.cc +0 -103
  1229. data/src/core/lib/transport/metadata.cc +0 -714
  1230. data/src/core/lib/transport/metadata.h +0 -449
  1231. data/src/core/lib/transport/metadata_batch.cc +0 -99
  1232. data/src/core/lib/transport/static_metadata.cc +0 -1032
  1233. data/src/core/lib/transport/static_metadata.h +0 -322
  1234. data/src/core/lib/transport/status_metadata.cc +0 -63
  1235. data/src/core/lib/transport/status_metadata.h +0 -48
  1236. data/third_party/cares/cares/ares_getopt.c +0 -122
  1237. data/third_party/cares/cares/ares_getopt.h +0 -53
  1238. data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
  1239. data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
  1240. data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -1,20 +1,18 @@
1
- /*
2
- *
3
- * Copyright 2018 gRPC authors.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
1
+ //
2
+ // Copyright 2018 gRPC authors.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
18
16
 
19
17
  #ifndef GRPC_CORE_EXT_XDS_XDS_API_H
20
18
  #define GRPC_CORE_EXT_XDS_XDS_API_H
@@ -25,567 +23,59 @@
25
23
 
26
24
  #include <set>
27
25
 
28
- #include "absl/container/inlined_vector.h"
29
- #include "absl/types/optional.h"
30
- #include "absl/types/variant.h"
31
26
  #include "envoy/admin/v3/config_dump.upb.h"
32
- #include "re2/re2.h"
33
27
  #include "upb/def.hpp"
34
28
 
35
- #include <grpc/slice_buffer.h>
29
+ #include <grpc/slice.h>
36
30
 
37
- #include "src/core/ext/filters/client_channel/server_address.h"
31
+ #include "src/core/ext/xds/upb_utils.h"
38
32
  #include "src/core/ext/xds/xds_bootstrap.h"
39
33
  #include "src/core/ext/xds/xds_client_stats.h"
40
34
  #include "src/core/ext/xds/xds_http_filters.h"
41
35
  #include "src/core/lib/channel/status_util.h"
42
36
  #include "src/core/lib/matchers/matchers.h"
37
+ #include "src/core/lib/resolver/server_address.h"
43
38
 
44
39
  namespace grpc_core {
45
40
 
46
- bool XdsRbacEnabled();
47
-
48
41
  class XdsClient;
49
42
 
43
+ // TODO(roth): When we have time, split this into multiple pieces:
44
+ // - a common upb-based parsing framework (combine with XdsEncodingContext)
45
+ // - ADS request/response handling
46
+ // - LRS request/response handling
47
+ // - CSDS response generation
50
48
  class XdsApi {
51
49
  public:
52
- static const char* kLdsTypeUrl;
53
- static const char* kRdsTypeUrl;
54
- static const char* kCdsTypeUrl;
55
- static const char* kEdsTypeUrl;
56
-
57
- struct Duration {
58
- Duration() {}
59
- int64_t seconds = 0;
60
- int32_t nanos = 0;
61
- bool operator==(const Duration& other) const {
62
- return seconds == other.seconds && nanos == other.nanos;
63
- }
64
- std::string ToString() const {
65
- return absl::StrFormat("Duration seconds: %ld, nanos %d", seconds, nanos);
66
- }
67
- };
68
-
69
- using TypedPerFilterConfig =
70
- std::map<std::string, XdsHttpFilterImpl::FilterConfig>;
71
-
72
- struct RetryPolicy {
73
- internal::StatusCodeSet retry_on;
74
- uint32_t num_retries;
75
-
76
- struct RetryBackOff {
77
- Duration base_interval;
78
- Duration max_interval;
79
-
80
- bool operator==(const RetryBackOff& other) const {
81
- return base_interval == other.base_interval &&
82
- max_interval == other.max_interval;
83
- }
84
- std::string ToString() const;
85
- };
86
- RetryBackOff retry_back_off;
87
-
88
- bool operator==(const RetryPolicy& other) const {
89
- return (retry_on == other.retry_on && num_retries == other.num_retries &&
90
- retry_back_off == other.retry_back_off);
91
- }
92
- std::string ToString() const;
93
- };
94
-
95
- // TODO(donnadionne): When we can use absl::variant<>, consider using that
96
- // for: PathMatcher, HeaderMatcher, cluster_name and weighted_clusters
97
- struct Route {
98
- // Matchers for this route.
99
- struct Matchers {
100
- StringMatcher path_matcher;
101
- std::vector<HeaderMatcher> header_matchers;
102
- absl::optional<uint32_t> fraction_per_million;
103
-
104
- bool operator==(const Matchers& other) const {
105
- return path_matcher == other.path_matcher &&
106
- header_matchers == other.header_matchers &&
107
- fraction_per_million == other.fraction_per_million;
108
- }
109
- std::string ToString() const;
110
- };
111
-
112
- Matchers matchers;
113
-
114
- struct UnknownAction {
115
- bool operator==(const UnknownAction& /* other */) const { return true; }
116
- };
117
-
118
- struct RouteAction {
119
- struct HashPolicy {
120
- enum Type { HEADER, CHANNEL_ID };
121
- Type type;
122
- bool terminal = false;
123
- // Fields used for type HEADER.
124
- std::string header_name;
125
- std::unique_ptr<RE2> regex = nullptr;
126
- std::string regex_substitution;
127
-
128
- HashPolicy() {}
129
-
130
- // Copyable.
131
- HashPolicy(const HashPolicy& other);
132
- HashPolicy& operator=(const HashPolicy& other);
133
-
134
- // Moveable.
135
- HashPolicy(HashPolicy&& other) noexcept;
136
- HashPolicy& operator=(HashPolicy&& other) noexcept;
137
-
138
- bool operator==(const HashPolicy& other) const;
139
- std::string ToString() const;
140
- };
141
-
142
- struct ClusterWeight {
143
- std::string name;
144
- uint32_t weight;
145
- TypedPerFilterConfig typed_per_filter_config;
146
-
147
- bool operator==(const ClusterWeight& other) const {
148
- return name == other.name && weight == other.weight &&
149
- typed_per_filter_config == other.typed_per_filter_config;
150
- }
151
- std::string ToString() const;
152
- };
153
-
154
- std::vector<HashPolicy> hash_policies;
155
- absl::optional<RetryPolicy> retry_policy;
156
-
157
- // Action for this route.
158
- // TODO(roth): When we can use absl::variant<>, consider using that
159
- // here, to enforce the fact that only one of the two fields can be set.
160
- std::string cluster_name;
161
- std::vector<ClusterWeight> weighted_clusters;
162
- // Storing the timeout duration from route action:
163
- // RouteAction.max_stream_duration.grpc_timeout_header_max or
164
- // RouteAction.max_stream_duration.max_stream_duration if the former is
165
- // not set.
166
- absl::optional<Duration> max_stream_duration;
167
-
168
- bool operator==(const RouteAction& other) const {
169
- return hash_policies == other.hash_policies &&
170
- retry_policy == other.retry_policy &&
171
- cluster_name == other.cluster_name &&
172
- weighted_clusters == other.weighted_clusters &&
173
- max_stream_duration == other.max_stream_duration;
174
- }
175
- std::string ToString() const;
176
- };
177
-
178
- struct NonForwardingAction {
179
- bool operator==(const NonForwardingAction& /* other */) const {
180
- return true;
181
- }
182
- };
183
-
184
- absl::variant<UnknownAction, RouteAction, NonForwardingAction> action;
185
- TypedPerFilterConfig typed_per_filter_config;
186
-
187
- bool operator==(const Route& other) const {
188
- return matchers == other.matchers && action == other.action &&
189
- typed_per_filter_config == other.typed_per_filter_config;
190
- }
191
- std::string ToString() const;
192
- };
193
-
194
- struct RdsUpdate {
195
- struct VirtualHost {
196
- std::vector<std::string> domains;
197
- std::vector<Route> routes;
198
- TypedPerFilterConfig typed_per_filter_config;
199
-
200
- bool operator==(const VirtualHost& other) const {
201
- return domains == other.domains && routes == other.routes &&
202
- typed_per_filter_config == other.typed_per_filter_config;
203
- }
204
- };
205
-
206
- std::vector<VirtualHost> virtual_hosts;
207
-
208
- bool operator==(const RdsUpdate& other) const {
209
- return virtual_hosts == other.virtual_hosts;
210
- }
211
- std::string ToString() const;
212
- };
213
-
214
- struct CommonTlsContext {
215
- struct CertificateProviderPluginInstance {
216
- std::string instance_name;
217
- std::string certificate_name;
218
-
219
- bool operator==(const CertificateProviderPluginInstance& other) const {
220
- return instance_name == other.instance_name &&
221
- certificate_name == other.certificate_name;
222
- }
223
-
224
- std::string ToString() const;
225
- bool Empty() const;
226
- };
227
-
228
- struct CertificateValidationContext {
229
- CertificateProviderPluginInstance ca_certificate_provider_instance;
230
- std::vector<StringMatcher> match_subject_alt_names;
231
-
232
- bool operator==(const CertificateValidationContext& other) const {
233
- return ca_certificate_provider_instance ==
234
- other.ca_certificate_provider_instance &&
235
- match_subject_alt_names == other.match_subject_alt_names;
236
- }
237
-
238
- std::string ToString() const;
239
- bool Empty() const;
240
- };
241
-
242
- CertificateValidationContext certificate_validation_context;
243
- CertificateProviderPluginInstance tls_certificate_provider_instance;
244
-
245
- bool operator==(const CommonTlsContext& other) const {
246
- return certificate_validation_context ==
247
- other.certificate_validation_context &&
248
- tls_certificate_provider_instance ==
249
- other.tls_certificate_provider_instance;
250
- }
251
-
252
- std::string ToString() const;
253
- bool Empty() const;
254
- };
255
-
256
- struct DownstreamTlsContext {
257
- CommonTlsContext common_tls_context;
258
- bool require_client_certificate = false;
259
-
260
- bool operator==(const DownstreamTlsContext& other) const {
261
- return common_tls_context == other.common_tls_context &&
262
- require_client_certificate == other.require_client_certificate;
263
- }
264
-
265
- std::string ToString() const;
266
- bool Empty() const;
267
- };
268
-
269
- // TODO(roth): When we can use absl::variant<>, consider using that
270
- // here, to enforce the fact that only one of the two fields can be set.
271
- struct LdsUpdate {
272
- enum class ListenerType {
273
- kTcpListener = 0,
274
- kHttpApiListener,
275
- } type;
276
-
277
- struct HttpConnectionManager {
278
- // The name to use in the RDS request.
279
- std::string route_config_name;
280
- // Storing the Http Connection Manager Common Http Protocol Option
281
- // max_stream_duration
282
- Duration http_max_stream_duration;
283
- // The RouteConfiguration to use for this listener.
284
- // Present only if it is inlined in the LDS response.
285
- absl::optional<RdsUpdate> rds_update;
286
-
287
- struct HttpFilter {
288
- std::string name;
289
- XdsHttpFilterImpl::FilterConfig config;
290
-
291
- bool operator==(const HttpFilter& other) const {
292
- return name == other.name && config == other.config;
293
- }
294
-
295
- std::string ToString() const;
296
- };
297
- std::vector<HttpFilter> http_filters;
298
-
299
- bool operator==(const HttpConnectionManager& other) const {
300
- return route_config_name == other.route_config_name &&
301
- http_max_stream_duration == other.http_max_stream_duration &&
302
- rds_update == other.rds_update &&
303
- http_filters == other.http_filters;
304
- }
305
-
306
- std::string ToString() const;
307
- };
308
-
309
- // Populated for type=kHttpApiListener.
310
- HttpConnectionManager http_connection_manager;
311
-
312
- // Populated for type=kTcpListener.
313
- // host:port listening_address set when type is kTcpListener
314
- std::string address;
315
-
316
- struct FilterChainData {
317
- DownstreamTlsContext downstream_tls_context;
318
- // This is in principle the filter list.
319
- // We currently require exactly one filter, which is the HCM.
320
- HttpConnectionManager http_connection_manager;
321
-
322
- bool operator==(const FilterChainData& other) const {
323
- return downstream_tls_context == other.downstream_tls_context &&
324
- http_connection_manager == other.http_connection_manager;
325
- }
326
-
327
- std::string ToString() const;
50
+ // Interface defined by caller and passed to ParseAdsResponse().
51
+ class AdsResponseParserInterface {
52
+ public:
53
+ struct AdsResponseFields {
54
+ std::string type_url;
55
+ std::string version;
56
+ std::string nonce;
57
+ size_t num_resources;
328
58
  };
329
59
 
330
- // A multi-level map used to determine which filter chain to use for a given
331
- // incoming connection. Determining the right filter chain for a given
332
- // connection checks the following properties, in order:
333
- // - destination port (never matched, so not present in map)
334
- // - destination IP address
335
- // - server name (never matched, so not present in map)
336
- // - transport protocol (allows only "raw_buffer" or unset, prefers the
337
- // former, so only one of those two types is present in map)
338
- // - application protocol (never matched, so not present in map)
339
- // - connection source type (any, local or external)
340
- // - source IP address
341
- // - source port
342
- // https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener_components.proto#config-listener-v3-filterchainmatch
343
- // for more details
344
- struct FilterChainMap {
345
- struct FilterChainDataSharedPtr {
346
- std::shared_ptr<FilterChainData> data;
347
- bool operator==(const FilterChainDataSharedPtr& other) const {
348
- return *data == *other.data;
349
- }
350
- };
351
- struct CidrRange {
352
- grpc_resolved_address address;
353
- uint32_t prefix_len;
354
-
355
- bool operator==(const CidrRange& other) const {
356
- return memcmp(&address, &other.address, sizeof(address)) == 0 &&
357
- prefix_len == other.prefix_len;
358
- }
359
-
360
- std::string ToString() const;
361
- };
362
- using SourcePortsMap = std::map<uint16_t, FilterChainDataSharedPtr>;
363
- struct SourceIp {
364
- absl::optional<CidrRange> prefix_range;
365
- SourcePortsMap ports_map;
366
-
367
- bool operator==(const SourceIp& other) const {
368
- return prefix_range == other.prefix_range &&
369
- ports_map == other.ports_map;
370
- }
371
- };
372
- using SourceIpVector = std::vector<SourceIp>;
373
- enum class ConnectionSourceType {
374
- kAny = 0,
375
- kSameIpOrLoopback,
376
- kExternal
377
- };
378
- using ConnectionSourceTypesArray = std::array<SourceIpVector, 3>;
379
- struct DestinationIp {
380
- absl::optional<CidrRange> prefix_range;
381
- // We always fail match on server name, so those filter chains are not
382
- // included here.
383
- ConnectionSourceTypesArray source_types_array;
384
-
385
- bool operator==(const DestinationIp& other) const {
386
- return prefix_range == other.prefix_range &&
387
- source_types_array == other.source_types_array;
388
- }
389
- };
390
- // We always fail match on destination ports map
391
- using DestinationIpVector = std::vector<DestinationIp>;
392
- DestinationIpVector destination_ip_vector;
393
-
394
- bool operator==(const FilterChainMap& other) const {
395
- return destination_ip_vector == other.destination_ip_vector;
396
- }
397
-
398
- std::string ToString() const;
399
- } filter_chain_map;
400
-
401
- absl::optional<FilterChainData> default_filter_chain;
402
-
403
- bool operator==(const LdsUpdate& other) const {
404
- return http_connection_manager == other.http_connection_manager &&
405
- address == other.address &&
406
- filter_chain_map == other.filter_chain_map &&
407
- default_filter_chain == other.default_filter_chain;
408
- }
409
-
410
- std::string ToString() const;
411
- };
412
-
413
- struct ResourceName {
414
- std::string authority;
415
- std::string id;
416
-
417
- bool operator<(const ResourceName& other) const {
418
- if (authority < other.authority) return true;
419
- if (id < other.id) return true;
420
- return false;
421
- }
422
- };
423
-
424
- struct LdsResourceData {
425
- LdsUpdate resource;
426
- std::string serialized_proto;
427
- };
428
-
429
- using LdsUpdateMap = std::map<ResourceName, LdsResourceData>;
430
-
431
- struct RdsResourceData {
432
- RdsUpdate resource;
433
- std::string serialized_proto;
434
- };
60
+ virtual ~AdsResponseParserInterface() = default;
435
61
 
436
- using RdsUpdateMap = std::map<ResourceName, RdsResourceData>;
62
+ // Called when the top-level ADS fields are parsed.
63
+ // If this returns non-OK, parsing will stop, and the individual
64
+ // resources will not be processed.
65
+ virtual absl::Status ProcessAdsResponseFields(AdsResponseFields fields) = 0;
437
66
 
438
- struct CdsUpdate {
439
- enum ClusterType { EDS, LOGICAL_DNS, AGGREGATE };
440
- ClusterType cluster_type;
441
- // For cluster type EDS.
442
- // The name to use in the EDS request.
443
- // If empty, the cluster name will be used.
444
- std::string eds_service_name;
445
- // For cluster type LOGICAL_DNS.
446
- // The hostname to lookup in DNS.
447
- std::string dns_hostname;
448
- // For cluster type AGGREGATE.
449
- // The prioritized list of cluster names.
450
- std::vector<std::string> prioritized_cluster_names;
451
-
452
- // Tls Context used by clients
453
- CommonTlsContext common_tls_context;
454
-
455
- // The LRS server to use for load reporting.
456
- // If not set, load reporting will be disabled.
457
- // If set to the empty string, will use the same server we obtained the CDS
458
- // data from.
459
- absl::optional<std::string> lrs_load_reporting_server_name;
460
-
461
- // The LB policy to use (e.g., "ROUND_ROBIN" or "RING_HASH").
462
- std::string lb_policy;
463
- // Used for RING_HASH LB policy only.
464
- uint64_t min_ring_size = 1024;
465
- uint64_t max_ring_size = 8388608;
466
- // Maximum number of outstanding requests can be made to the upstream
467
- // cluster.
468
- uint32_t max_concurrent_requests = 1024;
469
-
470
- bool operator==(const CdsUpdate& other) const {
471
- return cluster_type == other.cluster_type &&
472
- eds_service_name == other.eds_service_name &&
473
- dns_hostname == other.dns_hostname &&
474
- prioritized_cluster_names == other.prioritized_cluster_names &&
475
- common_tls_context == other.common_tls_context &&
476
- lrs_load_reporting_server_name ==
477
- other.lrs_load_reporting_server_name &&
478
- lb_policy == other.lb_policy &&
479
- min_ring_size == other.min_ring_size &&
480
- max_ring_size == other.max_ring_size &&
481
- max_concurrent_requests == other.max_concurrent_requests;
482
- }
483
-
484
- std::string ToString() const;
485
- };
486
-
487
- struct CdsResourceData {
488
- CdsUpdate resource;
489
- std::string serialized_proto;
67
+ // Called to parse each individual resource in the ADS response.
68
+ virtual void ParseResource(const XdsEncodingContext& context, size_t idx,
69
+ absl::string_view type_url,
70
+ absl::string_view serialized_resource) = 0;
490
71
  };
491
72
 
492
- using CdsUpdateMap = std::map<ResourceName, CdsResourceData>;
493
-
494
- struct EdsUpdate {
495
- struct Priority {
496
- struct Locality {
497
- RefCountedPtr<XdsLocalityName> name;
498
- uint32_t lb_weight;
499
- ServerAddressList endpoints;
500
-
501
- bool operator==(const Locality& other) const {
502
- return *name == *other.name && lb_weight == other.lb_weight &&
503
- endpoints == other.endpoints;
504
- }
505
- bool operator!=(const Locality& other) const {
506
- return !(*this == other);
507
- }
508
- std::string ToString() const;
509
- };
510
-
511
- std::map<XdsLocalityName*, Locality, XdsLocalityName::Less> localities;
512
-
513
- bool operator==(const Priority& other) const;
514
- std::string ToString() const;
515
- };
516
- using PriorityList = absl::InlinedVector<Priority, 2>;
517
-
518
- // There are two phases of accessing this class's content:
519
- // 1. to initialize in the control plane combiner;
520
- // 2. to use in the data plane combiner.
521
- // So no additional synchronization is needed.
522
- class DropConfig : public RefCounted<DropConfig> {
523
- public:
524
- struct DropCategory {
525
- bool operator==(const DropCategory& other) const {
526
- return name == other.name &&
527
- parts_per_million == other.parts_per_million;
528
- }
529
-
530
- std::string name;
531
- const uint32_t parts_per_million;
532
- };
533
-
534
- using DropCategoryList = absl::InlinedVector<DropCategory, 2>;
535
-
536
- void AddCategory(std::string name, uint32_t parts_per_million) {
537
- drop_category_list_.emplace_back(
538
- DropCategory{std::move(name), parts_per_million});
539
- if (parts_per_million == 1000000) drop_all_ = true;
540
- }
541
-
542
- // The only method invoked from outside the WorkSerializer (used in
543
- // the data plane).
544
- bool ShouldDrop(const std::string** category_name) const;
545
-
546
- const DropCategoryList& drop_category_list() const {
547
- return drop_category_list_;
548
- }
549
-
550
- bool drop_all() const { return drop_all_; }
551
-
552
- bool operator==(const DropConfig& other) const {
553
- return drop_category_list_ == other.drop_category_list_;
554
- }
555
- bool operator!=(const DropConfig& other) const {
556
- return !(*this == other);
557
- }
558
-
559
- std::string ToString() const;
560
-
561
- private:
562
- DropCategoryList drop_category_list_;
563
- bool drop_all_ = false;
564
- };
565
-
566
- PriorityList priorities;
567
- RefCountedPtr<DropConfig> drop_config;
568
-
569
- bool operator==(const EdsUpdate& other) const {
570
- return priorities == other.priorities &&
571
- *drop_config == *other.drop_config;
572
- }
573
- std::string ToString() const;
574
- };
575
-
576
- struct EdsResourceData {
577
- EdsUpdate resource;
578
- std::string serialized_proto;
579
- };
580
-
581
- using EdsUpdateMap = std::map<ResourceName, EdsResourceData>;
582
-
583
73
  struct ClusterLoadReport {
584
74
  XdsClusterDropStats::Snapshot dropped_requests;
585
75
  std::map<RefCountedPtr<XdsLocalityName>, XdsClusterLocalityStats::Snapshot,
586
76
  XdsLocalityName::Less>
587
77
  locality_stats;
588
- grpc_millis load_report_interval;
78
+ Duration load_report_interval;
589
79
  };
590
80
  using ClusterLoadReportMap = std::map<
591
81
  std::pair<std::string /*cluster_name*/, std::string /*eds_service_name*/>,
@@ -616,7 +106,7 @@ class XdsApi {
616
106
  // The serialized bytes of the last successfully updated raw xDS resource.
617
107
  std::string serialized_proto;
618
108
  // The timestamp when the resource was last successfully updated.
619
- grpc_millis update_time = 0;
109
+ Timestamp update_time;
620
110
  // The last successfully updated version of the resource.
621
111
  std::string version;
622
112
  // The rejected version string of the last failed update attempt.
@@ -624,7 +114,7 @@ class XdsApi {
624
114
  // Details about the last failed update attempt.
625
115
  std::string failed_details;
626
116
  // Timestamp of the last failed update attempt.
627
- grpc_millis failed_update_time = 0;
117
+ Timestamp failed_update_time;
628
118
  };
629
119
  using ResourceMetadataMap =
630
120
  std::map<std::string /*resource_name*/, const ResourceMetadata*>;
@@ -647,69 +137,24 @@ class XdsApi {
647
137
  ResourceMetadata::ClientResourceStatus::NACKED,
648
138
  "");
649
139
 
650
- // If the response can't be parsed at the top level, the resulting
651
- // type_url will be empty.
652
- // If there is any other type of validation error, the parse_error
653
- // field will be set to something other than GRPC_ERROR_NONE and the
654
- // resource_names_failed field will be populated.
655
- // Otherwise, one of the *_update_map fields will be populated, based
656
- // on the type_url field.
657
- struct AdsParseResult {
658
- grpc_error_handle parse_error = GRPC_ERROR_NONE;
659
- std::string version;
660
- std::string nonce;
661
- std::string type_url;
662
- LdsUpdateMap lds_update_map;
663
- RdsUpdateMap rds_update_map;
664
- CdsUpdateMap cds_update_map;
665
- EdsUpdateMap eds_update_map;
666
- std::set<ResourceName> resource_names_failed;
667
- };
668
-
669
140
  XdsApi(XdsClient* client, TraceFlag* tracer, const XdsBootstrap::Node* node,
670
- const CertificateProviderStore::PluginDefinitionMap* map);
671
-
672
- static bool IsLds(absl::string_view type_url);
673
- static bool IsRds(absl::string_view type_url);
674
- static bool IsCds(absl::string_view type_url);
675
- static bool IsEds(absl::string_view type_url);
676
-
677
- // A helper method to parse the resource name and return back a ResourceName
678
- // struct. Optionally the parser can check the resource type portion of the
679
- // resource name.
680
- static absl::StatusOr<ResourceName> ParseResourceName(
681
- absl::string_view name,
682
- bool (*is_expected_type)(absl::string_view) = nullptr);
683
-
684
- // A helper method to construct the resource name from parts.
685
- static std::string ConstructFullResourceName(absl::string_view authority,
686
- absl::string_view resource_type,
687
- absl::string_view name);
141
+ const CertificateProviderStore::PluginDefinitionMap* map,
142
+ upb::SymbolTable* symtab);
688
143
 
689
144
  // Creates an ADS request.
690
145
  // Takes ownership of \a error.
691
- grpc_slice CreateAdsRequest(
692
- const XdsBootstrap::XdsServer& server, const std::string& type_url,
693
- const std::map<absl::string_view /*authority*/,
694
- std::set<absl::string_view /*name*/>>& resource_names,
695
- const std::string& version, const std::string& nonce,
696
- grpc_error_handle error, bool populate_node);
697
-
698
- // Parses an ADS response.
699
- AdsParseResult ParseAdsResponse(
700
- const XdsBootstrap::XdsServer& server, const grpc_slice& encoded_response,
701
- const std::map<absl::string_view /*authority*/,
702
- std::set<absl::string_view /*name*/>>&
703
- subscribed_listener_names,
704
- const std::map<absl::string_view /*authority*/,
705
- std::set<absl::string_view /*name*/>>&
706
- subscribed_route_config_names,
707
- const std::map<absl::string_view /*authority*/,
708
- std::set<absl::string_view /*name*/>>&
709
- subscribed_cluster_names,
710
- const std::map<absl::string_view /*authority*/,
711
- std::set<absl::string_view /*name*/>>&
712
- subscribed_eds_service_names);
146
+ grpc_slice CreateAdsRequest(const XdsBootstrap::XdsServer& server,
147
+ absl::string_view type_url,
148
+ absl::string_view version,
149
+ absl::string_view nonce,
150
+ const std::vector<std::string>& resource_names,
151
+ grpc_error_handle error, bool populate_node);
152
+
153
+ // Returns non-OK when failing to deserialize response message.
154
+ // Otherwise, all events are reported to the parser.
155
+ absl::Status ParseAdsResponse(const XdsBootstrap::XdsServer& server,
156
+ const grpc_slice& encoded_response,
157
+ AdsResponseParserInterface* parser);
713
158
 
714
159
  // Creates an initial LRS request.
715
160
  grpc_slice CreateLrsInitialRequest(const XdsBootstrap::XdsServer& server);
@@ -723,7 +168,7 @@ class XdsApi {
723
168
  grpc_error_handle ParseLrsResponse(const grpc_slice& encoded_response,
724
169
  bool* send_all_clusters,
725
170
  std::set<std::string>* cluster_names,
726
- grpc_millis* load_reporting_interval);
171
+ Duration* load_reporting_interval);
727
172
 
728
173
  // Assemble the client config proto message and return the serialized result.
729
174
  std::string AssembleClientConfig(
@@ -735,7 +180,7 @@ class XdsApi {
735
180
  const XdsBootstrap::Node* node_; // Do not own.
736
181
  const CertificateProviderStore::PluginDefinitionMap*
737
182
  certificate_provider_definition_map_; // Do not own.
738
- upb::SymbolTable symtab_;
183
+ upb::SymbolTable* symtab_; // Do not own.
739
184
  const std::string build_version_;
740
185
  const std::string user_agent_name_;
741
186
  const std::string user_agent_version_;
@@ -743,4 +188,4 @@ class XdsApi {
743
188
 
744
189
  } // namespace grpc_core
745
190
 
746
- #endif /* GRPC_CORE_EXT_XDS_XDS_API_H */
191
+ #endif // GRPC_CORE_EXT_XDS_XDS_API_H