grpc 1.48.0 → 1.56.0

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

Potentially problematic release.


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

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