grpc 1.71.0 → 1.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -75
  3. data/include/grpc/event_engine/memory_request.h +3 -3
  4. data/include/grpc/impl/channel_arg_names.h +70 -50
  5. data/include/grpc/support/workaround_list.h +1 -4
  6. data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
  7. data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
  8. data/src/core/{lib/transport → call}/call_destination.h +4 -4
  9. data/src/core/{lib/transport → call}/call_filters.cc +2 -2
  10. data/src/core/{lib/transport → call}/call_filters.h +25 -6
  11. data/src/core/{lib/channel → call}/call_finalization.h +3 -3
  12. data/src/core/{lib/transport → call}/call_spine.cc +1 -1
  13. data/src/core/{lib/transport → call}/call_spine.h +68 -26
  14. data/src/core/{lib/transport → call}/call_state.cc +1 -1
  15. data/src/core/{lib/transport → call}/call_state.h +3 -3
  16. data/src/core/{lib/surface → call}/client_call.cc +9 -7
  17. data/src/core/{lib/surface → call}/client_call.h +4 -4
  18. data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
  19. data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
  20. data/src/core/{lib/transport → call}/interception_chain.h +7 -7
  21. data/src/core/{lib/transport → call}/message.cc +1 -1
  22. data/src/core/{lib/transport → call}/message.h +7 -3
  23. data/src/core/{lib/transport → call}/metadata.cc +2 -2
  24. data/src/core/{lib/transport → call}/metadata.h +4 -4
  25. data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
  26. data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
  27. data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
  28. data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
  29. data/src/core/{lib/transport → call}/metadata_info.h +4 -4
  30. data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
  31. data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
  32. data/src/core/call/request_buffer.h +3 -3
  33. data/src/core/call/security_context.cc +125 -0
  34. data/src/core/call/security_context.h +114 -0
  35. data/src/core/{lib/surface → call}/server_call.cc +3 -3
  36. data/src/core/{lib/surface → call}/server_call.h +5 -5
  37. data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
  38. data/src/core/{lib/channel → call}/status_util.cc +1 -1
  39. data/src/core/{lib/channel → call}/status_util.h +3 -3
  40. data/src/core/client_channel/client_channel.cc +24 -16
  41. data/src/core/client_channel/client_channel.h +4 -3
  42. data/src/core/client_channel/client_channel_filter.cc +10 -20
  43. data/src/core/client_channel/client_channel_filter.h +1 -1
  44. data/src/core/client_channel/client_channel_internal.h +1 -1
  45. data/src/core/client_channel/config_selector.h +2 -2
  46. data/src/core/client_channel/direct_channel.cc +2 -2
  47. data/src/core/client_channel/dynamic_filters.cc +0 -1
  48. data/src/core/client_channel/dynamic_filters.h +0 -1
  49. data/src/core/client_channel/lb_metadata.h +1 -1
  50. data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
  51. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  52. data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
  53. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
  54. data/src/core/client_channel/retry_interceptor.h +1 -1
  55. data/src/core/client_channel/retry_service_config.cc +1 -1
  56. data/src/core/client_channel/retry_service_config.h +1 -1
  57. data/src/core/client_channel/retry_throttle.cc +30 -34
  58. data/src/core/client_channel/retry_throttle.h +10 -2
  59. data/src/core/client_channel/subchannel.cc +7 -8
  60. data/src/core/client_channel/subchannel.h +1 -2
  61. data/src/core/client_channel/subchannel_stream_client.cc +14 -11
  62. data/src/core/client_channel/subchannel_stream_client.h +2 -2
  63. data/src/core/config/core_configuration.h +2 -2
  64. data/src/core/credentials/call/call_credentials.h +157 -0
  65. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
  66. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
  67. data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
  68. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  69. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
  70. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
  71. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
  72. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
  73. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
  74. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
  75. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
  76. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
  77. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
  78. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
  79. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
  80. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
  81. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
  82. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
  83. data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
  84. data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
  85. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
  86. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
  87. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
  88. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
  89. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
  90. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
  91. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
  92. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
  93. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
  94. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
  95. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
  96. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
  97. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
  98. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
  99. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
  100. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
  101. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
  102. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
  103. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
  104. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
  105. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
  106. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
  107. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
  108. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
  109. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
  110. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
  111. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
  112. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  113. data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
  114. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
  115. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
  116. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
  117. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
  118. data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
  119. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
  120. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
  121. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
  122. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
  123. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
  124. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
  125. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
  126. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
  127. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
  128. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
  129. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
  130. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
  131. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
  132. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
  133. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
  134. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
  135. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
  136. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
  137. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
  138. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
  139. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
  140. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
  141. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
  142. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
  143. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
  144. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
  145. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
  146. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
  147. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
  148. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
  149. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
  150. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
  151. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
  152. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
  153. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
  154. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
  155. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
  156. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
  157. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
  158. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
  159. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
  160. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
  161. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
  162. data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
  163. data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
  164. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
  165. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
  166. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  167. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  170. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  171. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  172. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  173. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  174. data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
  175. data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
  176. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  177. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  178. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
  179. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
  180. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
  181. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
  182. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  183. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  184. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
  185. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
  186. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  187. data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
  188. data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
  189. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
  190. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
  191. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
  192. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
  193. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
  194. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
  195. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
  196. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  197. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
  198. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
  199. data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
  200. data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
  201. data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
  202. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
  203. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
  204. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
  205. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
  206. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
  209. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
  210. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
  212. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
  213. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
  214. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
  215. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
  216. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
  217. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
  218. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
  219. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
  220. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
  221. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
  222. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
  223. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
  224. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
  243. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
  244. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
  245. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
  246. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
  247. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
  248. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
  249. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
  250. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
  251. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
  252. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
  253. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
  254. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
  255. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
  256. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
  257. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
  258. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
  259. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
  260. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
  269. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
  277. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
  278. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
  279. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
  280. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
  281. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
  282. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
  283. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
  284. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
  285. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
  286. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
  287. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
  288. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
  289. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
  290. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
  291. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
  292. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
  294. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
  295. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
  296. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
  297. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
  298. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
  299. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
  300. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
  301. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
  302. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
  303. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
  304. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
  305. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
  306. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
  307. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
  308. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
  309. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
  310. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
  311. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
  312. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
  313. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
  314. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
  315. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
  316. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
  317. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
  318. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
  319. data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
  320. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
  321. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
  322. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
  323. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
  324. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
  325. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
  326. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
  327. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
  328. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
  329. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
  330. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
  331. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
  332. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
  333. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
  334. data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
  335. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
  336. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
  337. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
  338. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
  339. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
  340. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
  341. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
  342. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
  343. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
  344. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
  345. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
  346. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
  347. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
  348. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
  349. data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
  350. data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
  351. data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
  352. data/src/core/handshaker/handshaker.cc +0 -8
  353. data/src/core/handshaker/security/security_handshaker.cc +1 -1
  354. data/src/core/handshaker/security/security_handshaker.h +1 -1
  355. data/src/core/lib/channel/channel_args.h +49 -30
  356. data/src/core/lib/channel/channel_stack.h +1 -2
  357. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  358. data/src/core/lib/channel/connected_channel.cc +2 -2
  359. data/src/core/lib/channel/promise_based_filter.h +3 -3
  360. data/src/core/lib/debug/trace_flags.cc +2 -4
  361. data/src/core/lib/debug/trace_flags.h +1 -2
  362. data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
  363. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
  364. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  365. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  366. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  367. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
  368. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
  369. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
  370. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
  371. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  372. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
  373. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
  374. data/src/core/lib/event_engine/shim.cc +9 -16
  375. data/src/core/lib/event_engine/shim.h +11 -0
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
  377. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
  378. data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
  379. data/src/core/lib/event_engine/windows/win_socket.h +3 -0
  380. data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
  381. data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
  382. data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
  383. data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
  384. data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
  385. data/src/core/lib/experiments/experiments.cc +174 -21
  386. data/src/core/lib/experiments/experiments.h +70 -13
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
  389. data/src/core/lib/iomgr/error.cc +27 -43
  390. data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
  391. data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
  392. data/src/core/lib/iomgr/polling_entity.cc +2 -7
  393. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  394. data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
  395. data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
  396. data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
  397. data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
  398. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  399. data/src/core/lib/iomgr/tcp_posix.cc +58 -31
  400. data/src/core/lib/iomgr/tcp_posix.h +10 -2
  401. data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
  402. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
  403. data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
  404. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
  405. data/src/core/lib/promise/all_ok.h +31 -0
  406. data/src/core/lib/promise/loop.h +8 -5
  407. data/src/core/lib/promise/map.h +65 -2
  408. data/src/core/lib/promise/party.h +5 -1
  409. data/src/core/lib/promise/poll.h +22 -20
  410. data/src/core/lib/promise/promise.h +2 -2
  411. data/src/core/lib/promise/status_flag.h +23 -11
  412. data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
  413. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  414. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  415. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  416. data/src/core/lib/slice/slice.h +6 -0
  417. data/src/core/lib/surface/call.cc +20 -18
  418. data/src/core/lib/surface/call_utils.cc +3 -3
  419. data/src/core/lib/surface/call_utils.h +3 -3
  420. data/src/core/lib/surface/channel.h +2 -2
  421. data/src/core/lib/surface/channel_init.h +2 -2
  422. data/src/core/lib/surface/completion_queue.cc +77 -17
  423. data/src/core/lib/surface/filter_stack_call.cc +40 -27
  424. data/src/core/lib/surface/filter_stack_call.h +1 -1
  425. data/src/core/lib/surface/init.cc +2 -3
  426. data/src/core/lib/surface/lame_client.cc +1 -1
  427. data/src/core/lib/surface/legacy_channel.cc +27 -23
  428. data/src/core/lib/surface/legacy_channel.h +1 -1
  429. data/src/core/lib/surface/version.cc +2 -2
  430. data/src/core/lib/transport/error_utils.cc +65 -11
  431. data/src/core/lib/transport/error_utils.h +2 -2
  432. data/src/core/lib/transport/status_conversion.cc +16 -14
  433. data/src/core/lib/transport/status_conversion.h +5 -4
  434. data/src/core/lib/transport/transport.h +5 -5
  435. data/src/core/lib/transport/transport_op_string.cc +1 -1
  436. data/src/core/load_balancing/delegating_helper.h +1 -1
  437. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
  438. data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
  439. data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
  440. data/src/core/load_balancing/rls/rls.cc +31 -37
  441. data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
  442. data/src/core/load_balancing/xds/cds.cc +3 -10
  443. data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
  444. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  445. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
  446. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
  447. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
  448. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
  449. data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
  450. data/src/core/resolver/xds/xds_resolver.cc +2 -2
  451. data/src/core/server/server.cc +7 -4
  452. data/src/core/server/server.h +1 -1
  453. data/src/core/server/server_call_tracer_filter.cc +1 -1
  454. data/src/core/server/server_config_selector.h +1 -1
  455. data/src/core/server/server_config_selector_filter.cc +1 -1
  456. data/src/core/server/xds_server_config_fetcher.cc +5 -5
  457. data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
  458. data/src/core/telemetry/call_tracer.cc +2 -4
  459. data/src/core/telemetry/call_tracer.h +3 -3
  460. data/src/core/telemetry/metrics.cc +30 -12
  461. data/src/core/telemetry/metrics.h +15 -3
  462. data/src/core/telemetry/stats_data.cc +75 -2
  463. data/src/core/telemetry/stats_data.h +46 -4
  464. data/src/core/telemetry/tcp_tracer.h +90 -84
  465. data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
  466. data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
  467. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  468. data/src/core/tsi/ssl_transport_security.cc +1 -1
  469. data/src/core/util/check_class_size.h +48 -0
  470. data/src/core/util/gcp_metadata_query.cc +1 -1
  471. data/src/core/util/http_client/httpcli.cc +3 -3
  472. data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
  473. data/src/core/util/load_file.cc +26 -14
  474. data/src/core/util/status_helper.cc +86 -63
  475. data/src/core/util/status_helper.h +9 -26
  476. data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
  477. data/src/core/xds/grpc/certificate_provider_store.h +3 -3
  478. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  479. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  480. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
  481. data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
  482. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  483. data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
  484. data/src/core/xds/grpc/xds_client_grpc.h +4 -2
  485. data/src/core/xds/grpc/xds_cluster.h +3 -3
  486. data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
  487. data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
  488. data/src/core/xds/grpc/xds_http_filter.h +1 -1
  489. data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
  490. data/src/core/xds/grpc/xds_route_config.h +1 -1
  491. data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
  492. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  493. data/src/core/xds/grpc/xds_routing.h +1 -1
  494. data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
  495. data/src/core/xds/grpc/xds_server_grpc.h +23 -13
  496. data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
  497. data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
  498. data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
  499. data/src/core/xds/xds_client/lrs_client.cc +6 -5
  500. data/src/core/xds/xds_client/lrs_client.h +7 -7
  501. data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
  502. data/src/core/xds/xds_client/xds_client.cc +25 -23
  503. data/src/core/xds/xds_client/xds_client.h +3 -1
  504. data/src/core/xds/xds_client/xds_resource_type.h +1 -2
  505. data/src/core/xds/xds_client/xds_transport.h +1 -1
  506. data/src/ruby/ext/grpc/extconf.rb +1 -1
  507. data/src/ruby/lib/grpc/version.rb +1 -1
  508. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
  509. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
  510. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
  511. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
  512. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
  513. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
  514. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
  515. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
  516. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
  518. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
  519. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
  520. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
  521. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  522. data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
  523. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
  526. data/third_party/upb/upb/base/internal/log2.h +3 -1
  527. data/third_party/upb/upb/base/string_view.h +10 -0
  528. data/third_party/upb/upb/hash/common.c +5 -1
  529. data/third_party/upb/upb/json/decode.c +2 -2
  530. data/third_party/upb/upb/json/decode.h +0 -1
  531. data/third_party/upb/upb/mem/alloc.h +5 -0
  532. data/third_party/upb/upb/mem/arena.c +296 -142
  533. data/third_party/upb/upb/mem/arena.h +47 -11
  534. data/third_party/upb/upb/mem/arena.hpp +4 -20
  535. data/third_party/upb/upb/mem/internal/arena.h +4 -6
  536. data/third_party/upb/upb/message/accessors.h +41 -0
  537. data/third_party/upb/upb/message/compat.c +11 -14
  538. data/third_party/upb/upb/message/compat.h +4 -3
  539. data/third_party/upb/upb/message/copy.c +35 -30
  540. data/third_party/upb/upb/message/internal/accessors.h +139 -10
  541. data/third_party/upb/upb/message/internal/extension.c +28 -25
  542. data/third_party/upb/upb/message/internal/extension.h +21 -5
  543. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  544. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  545. data/third_party/upb/upb/message/internal/map.h +2 -3
  546. data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
  547. data/third_party/upb/upb/message/internal/message.c +48 -29
  548. data/third_party/upb/upb/message/internal/message.h +154 -24
  549. data/third_party/upb/upb/message/map_sorter.c +20 -8
  550. data/third_party/upb/upb/message/message.c +90 -38
  551. data/third_party/upb/upb/message/message.h +58 -2
  552. data/third_party/upb/upb/message/value.h +9 -0
  553. data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
  554. data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
  555. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  556. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  557. data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
  558. data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
  559. data/third_party/upb/upb/mini_table/message.c +21 -13
  560. data/third_party/upb/upb/port/atomic.h +134 -7
  561. data/third_party/upb/upb/port/def.inc +140 -38
  562. data/third_party/upb/upb/port/undef.inc +11 -1
  563. data/third_party/upb/upb/reflection/def.hpp +5 -1
  564. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  565. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
  566. data/third_party/upb/upb/reflection/file_def.c +12 -5
  567. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  568. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  569. data/third_party/upb/upb/reflection/message.c +19 -16
  570. data/third_party/upb/upb/reflection/message.h +3 -1
  571. data/third_party/upb/upb/text/encode.c +1 -13
  572. data/third_party/upb/upb/text/internal/encode.c +25 -6
  573. data/third_party/upb/upb/text/internal/encode.h +4 -0
  574. data/third_party/upb/upb/wire/decode.c +60 -45
  575. data/third_party/upb/upb/wire/decode.h +4 -2
  576. data/third_party/upb/upb/wire/encode.c +77 -42
  577. data/third_party/upb/upb/wire/encode.h +2 -0
  578. data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
  579. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  580. data/third_party/utf8_range/utf8_range.c +15 -275
  581. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  582. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  583. data/third_party/zlib/deflate.c +40 -15
  584. data/third_party/zlib/deflate.h +33 -2
  585. data/third_party/zlib/gzguts.h +2 -6
  586. data/third_party/zlib/inflate.c +1 -1
  587. data/third_party/zlib/inftrees.c +3 -3
  588. data/third_party/zlib/inftrees.h +2 -2
  589. data/third_party/zlib/trees.c +18 -4
  590. data/third_party/zlib/zconf.h +1 -9
  591. data/third_party/zlib/zlib.h +12 -12
  592. data/third_party/zlib/zutil.h +4 -25
  593. metadata +155 -145
  594. data/include/grpc/grpc_cronet.h +0 -37
  595. data/src/core/lib/transport/http2_errors.h +0 -43
  596. data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
  597. data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -161,16 +161,16 @@ class GrpcXdsClient::MetricsReporter final : public XdsMetricsReporter {
161
161
  absl::string_view resource_type,
162
162
  uint64_t num_valid_resources,
163
163
  uint64_t num_invalid_resources) override {
164
- xds_client_.stats_plugin_group_.AddCounter(
164
+ xds_client_.stats_plugin_group_->AddCounter(
165
165
  kMetricResourceUpdatesValid, num_valid_resources,
166
166
  {xds_client_.key_, xds_server, resource_type}, {});
167
- xds_client_.stats_plugin_group_.AddCounter(
167
+ xds_client_.stats_plugin_group_->AddCounter(
168
168
  kMetricResourceUpdatesInvalid, num_invalid_resources,
169
169
  {xds_client_.key_, xds_server, resource_type}, {});
170
170
  }
171
171
 
172
172
  void ReportServerFailure(absl::string_view xds_server) override {
173
- xds_client_.stats_plugin_group_.AddCounter(
173
+ xds_client_.stats_plugin_group_->AddCounter(
174
174
  kMetricServerFailure, 1, {xds_client_.key_, xds_server}, {});
175
175
  }
176
176
 
@@ -225,7 +225,7 @@ absl::StatusOr<std::string> GetBootstrapContents(const char* fallback_config) {
225
225
  "not defined");
226
226
  }
227
227
 
228
- GlobalStatsPluginRegistry::StatsPluginGroup
228
+ std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
229
229
  GetStatsPluginGroupForKeyAndChannelArgs(absl::string_view key,
230
230
  const ChannelArgs& channel_args) {
231
231
  if (key == GrpcXdsClient::kServerKey) {
@@ -309,7 +309,8 @@ GrpcXdsClient::GrpcXdsClient(
309
309
  absl::string_view key, std::shared_ptr<GrpcXdsBootstrap> bootstrap,
310
310
  const ChannelArgs& args,
311
311
  RefCountedPtr<XdsTransportFactory> transport_factory,
312
- GlobalStatsPluginRegistry::StatsPluginGroup stats_plugin_group)
312
+ std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
313
+ stats_plugin_group)
313
314
  : XdsClient(
314
315
  bootstrap, transport_factory,
315
316
  grpc_event_engine::experimental::GetDefaultEventEngine(),
@@ -324,7 +325,7 @@ GrpcXdsClient::GrpcXdsClient(
324
325
  DownCast<const GrpcXdsBootstrap&>(this->bootstrap())
325
326
  .certificate_providers())),
326
327
  stats_plugin_group_(std::move(stats_plugin_group)),
327
- registered_metric_callback_(stats_plugin_group_.RegisterCallback(
328
+ registered_metric_callback_(stats_plugin_group_->RegisterCallback(
328
329
  [this](CallbackMetricReporter& reporter) {
329
330
  ReportCallbackMetrics(reporter);
330
331
  },
@@ -64,7 +64,8 @@ class GrpcXdsClient final : public XdsClient {
64
64
  std::shared_ptr<GrpcXdsBootstrap> bootstrap,
65
65
  const ChannelArgs& args,
66
66
  RefCountedPtr<XdsTransportFactory> transport_factory,
67
- GlobalStatsPluginRegistry::StatsPluginGroup stats_plugin_group);
67
+ std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
68
+ stats_plugin_group);
68
69
 
69
70
  // Helpers for encoding the XdsClient object in channel args.
70
71
  static absl::string_view ChannelArgName() {
@@ -97,7 +98,8 @@ class GrpcXdsClient final : public XdsClient {
97
98
 
98
99
  std::string key_;
99
100
  OrphanablePtr<CertificateProviderStore> certificate_provider_store_;
100
- GlobalStatsPluginRegistry::StatsPluginGroup stats_plugin_group_;
101
+ std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
102
+ stats_plugin_group_;
101
103
  std::unique_ptr<RegisteredMetricCallback> registered_metric_callback_;
102
104
  RefCountedPtr<LrsClient> lrs_client_;
103
105
  };
@@ -36,8 +36,8 @@
36
36
  namespace grpc_core {
37
37
 
38
38
  inline bool LrsServersEqual(
39
- const std::shared_ptr<const GrpcXdsServer>& lrs_server1,
40
- const std::shared_ptr<const GrpcXdsServer>& lrs_server2) {
39
+ const std::shared_ptr<const GrpcXdsServerTarget>& lrs_server1,
40
+ const std::shared_ptr<const GrpcXdsServerTarget>& lrs_server2) {
41
41
  if (lrs_server1 == nullptr) return lrs_server2 == nullptr;
42
42
  if (lrs_server2 == nullptr) return false;
43
43
  // Neither one is null, so compare them.
@@ -90,7 +90,7 @@ struct XdsClusterResource : public XdsResourceType::ResourceData {
90
90
 
91
91
  // The LRS server to use for load reporting.
92
92
  // If null, load reporting will be disabled.
93
- std::shared_ptr<const GrpcXdsServer> lrs_load_reporting_server;
93
+ std::shared_ptr<const GrpcXdsServerTarget> lrs_load_reporting_server;
94
94
  // The set of metrics to propagate from ORCA to LRS.
95
95
  RefCountedPtr<const BackendMetricPropagation> lrs_backend_metric_propagation;
96
96
 
@@ -509,8 +509,9 @@ absl::StatusOr<std::shared_ptr<const XdsClusterResource>> CdsResourceParse(
509
509
  ValidationErrors::ScopedField field(&errors, ".lrs_server");
510
510
  errors.AddError("ConfigSource is not self");
511
511
  }
512
- cds_update->lrs_load_reporting_server = std::make_shared<GrpcXdsServer>(
513
- DownCast<const GrpcXdsServer&>(context.server));
512
+ cds_update->lrs_load_reporting_server =
513
+ std::static_pointer_cast<const GrpcXdsServerTarget>(
514
+ context.server.target());
514
515
  }
515
516
  // Record LRS metric propagation.
516
517
  auto propagation = MakeRefCounted<BackendMetricPropagation>();
@@ -33,10 +33,10 @@
33
33
  #include "envoy/extensions/filters/http/fault/v3/fault.upbdefs.h"
34
34
  #include "envoy/type/v3/percent.upb.h"
35
35
  #include "google/protobuf/wrappers.upb.h"
36
+ #include "src/core/call/status_util.h"
36
37
  #include "src/core/ext/filters/fault_injection/fault_injection_filter.h"
37
38
  #include "src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h"
38
39
  #include "src/core/lib/channel/channel_args.h"
39
- #include "src/core/lib/channel/status_util.h"
40
40
  #include "src/core/lib/transport/status_conversion.h"
41
41
  #include "src/core/util/json/json.h"
42
42
  #include "src/core/util/json/json_writer.h"
@@ -23,9 +23,9 @@
23
23
  #include "absl/status/statusor.h"
24
24
  #include "absl/strings/str_cat.h"
25
25
  #include "absl/strings/string_view.h"
26
+ #include "src/core/call/interception_chain.h"
26
27
  #include "src/core/lib/channel/channel_args.h"
27
28
  #include "src/core/lib/channel/channel_fwd.h"
28
- #include "src/core/lib/transport/interception_chain.h"
29
29
  #include "src/core/util/json/json.h"
30
30
  #include "src/core/util/json/json_writer.h"
31
31
  #include "src/core/util/validation_errors.h"
@@ -26,9 +26,9 @@
26
26
 
27
27
  #include "absl/status/statusor.h"
28
28
  #include "absl/strings/string_view.h"
29
+ #include "src/core/call/interception_chain.h"
29
30
  #include "src/core/lib/channel/channel_args.h"
30
31
  #include "src/core/lib/channel/channel_fwd.h"
31
- #include "src/core/lib/transport/interception_chain.h"
32
32
  #include "src/core/util/validation_errors.h"
33
33
  #include "src/core/xds/grpc/xds_common_types.h"
34
34
  #include "src/core/xds/grpc/xds_http_filter.h"
@@ -28,7 +28,7 @@
28
28
  #include <vector>
29
29
 
30
30
  #include "re2/re2.h"
31
- #include "src/core/lib/channel/status_util.h"
31
+ #include "src/core/call/status_util.h"
32
32
  #include "src/core/util/matchers.h"
33
33
  #include "src/core/util/time.h"
34
34
  #include "src/core/xds/grpc/xds_http_filter.h"
@@ -52,8 +52,8 @@
52
52
  #include "google/protobuf/duration.upb.h"
53
53
  #include "google/protobuf/wrappers.upb.h"
54
54
  #include "re2/re2.h"
55
+ #include "src/core/call/status_util.h"
55
56
  #include "src/core/config/core_configuration.h"
56
- #include "src/core/lib/channel/status_util.h"
57
57
  #include "src/core/lib/debug/trace.h"
58
58
  #include "src/core/load_balancing/lb_policy_registry.h"
59
59
  #include "src/core/util/down_cast.h"
@@ -31,7 +31,7 @@
31
31
  #include "envoy/config/route/v3/route.upb.h"
32
32
  #include "envoy/config/route/v3/route.upbdefs.h"
33
33
  #include "re2/re2.h"
34
- #include "src/core/lib/channel/status_util.h"
34
+ #include "src/core/call/status_util.h"
35
35
  #include "src/core/util/down_cast.h"
36
36
  #include "src/core/util/time.h"
37
37
  #include "src/core/util/validation_errors.h"
@@ -29,8 +29,8 @@
29
29
 
30
30
  #include "absl/status/statusor.h"
31
31
  #include "absl/strings/string_view.h"
32
+ #include "src/core/call/metadata_batch.h"
32
33
  #include "src/core/lib/channel/channel_args.h"
33
- #include "src/core/lib/transport/metadata_batch.h"
34
34
  #include "src/core/xds/grpc/xds_http_filter_registry.h"
35
35
  #include "src/core/xds/grpc/xds_listener.h"
36
36
  #include "src/core/xds/grpc/xds_route_config.h"
@@ -71,19 +71,12 @@ bool GrpcXdsServer::TrustedXdsServer() const {
71
71
 
72
72
  bool GrpcXdsServer::Equals(const XdsServer& other) const {
73
73
  const auto& o = DownCast<const GrpcXdsServer&>(other);
74
- return (server_uri_ == o.server_uri_ &&
75
- channel_creds_config_->type() == o.channel_creds_config_->type() &&
76
- channel_creds_config_->Equals(*o.channel_creds_config_) &&
74
+ return (server_target_->Equals(*o.server_target_) &&
77
75
  server_features_ == o.server_features_);
78
76
  }
79
77
 
80
- std::string GrpcXdsServer::Key() const { return JsonDump(ToJson()); }
81
-
82
78
  const JsonLoaderInterface* GrpcXdsServer::JsonLoader(const JsonArgs&) {
83
- static const auto* loader =
84
- JsonObjectLoader<GrpcXdsServer>()
85
- .Field("server_uri", &GrpcXdsServer::server_uri_)
86
- .Finish();
79
+ static const auto* loader = JsonObjectLoader<GrpcXdsServer>().Finish();
87
80
  return loader;
88
81
  }
89
82
 
@@ -107,29 +100,32 @@ struct ChannelCreds {
107
100
 
108
101
  void GrpcXdsServer::JsonPostLoad(const Json& json, const JsonArgs& args,
109
102
  ValidationErrors* errors) {
110
- // Parse "channel_creds".
111
- auto channel_creds_list = LoadJsonObjectField<std::vector<ChannelCreds>>(
112
- json.object(), args, "channel_creds", errors);
113
- if (channel_creds_list.has_value()) {
114
- ValidationErrors::ScopedField field(errors, ".channel_creds");
115
- for (size_t i = 0; i < channel_creds_list->size(); ++i) {
116
- ValidationErrors::ScopedField field(errors, absl::StrCat("[", i, "]"));
117
- auto& creds = (*channel_creds_list)[i];
118
- // Select the first channel creds type that we support, but
119
- // validate all entries.
120
- if (CoreConfiguration::Get().channel_creds_registry().IsSupported(
121
- creds.type)) {
122
- ValidationErrors::ScopedField field(errors, ".config");
123
- auto config =
124
- CoreConfiguration::Get().channel_creds_registry().ParseConfig(
125
- creds.type, Json::FromObject(creds.config), args, errors);
126
- if (channel_creds_config_ == nullptr) {
127
- channel_creds_config_ = std::move(config);
103
+ RefCountedPtr<ChannelCredsConfig> channel_creds_config;
104
+ {
105
+ // Parse "channel_creds".
106
+ auto channel_creds_list = LoadJsonObjectField<std::vector<ChannelCreds>>(
107
+ json.object(), args, "channel_creds", errors);
108
+ if (channel_creds_list.has_value()) {
109
+ ValidationErrors::ScopedField field(errors, ".channel_creds");
110
+ for (size_t i = 0; i < channel_creds_list->size(); ++i) {
111
+ ValidationErrors::ScopedField field(errors, absl::StrCat("[", i, "]"));
112
+ auto& creds = (*channel_creds_list)[i];
113
+ // Select the first channel creds type that we support, but
114
+ // validate all entries.
115
+ if (CoreConfiguration::Get().channel_creds_registry().IsSupported(
116
+ creds.type)) {
117
+ ValidationErrors::ScopedField field(errors, ".config");
118
+ auto config =
119
+ CoreConfiguration::Get().channel_creds_registry().ParseConfig(
120
+ creds.type, Json::FromObject(creds.config), args, errors);
121
+ if (channel_creds_config == nullptr) {
122
+ channel_creds_config = std::move(config);
123
+ }
128
124
  }
129
125
  }
130
- }
131
- if (channel_creds_config_ == nullptr) {
132
- errors->AddError("no known creds type found");
126
+ if (channel_creds_config == nullptr) {
127
+ errors->AddError("no known creds type found");
128
+ }
133
129
  }
134
130
  }
135
131
  // Parse "server_features".
@@ -154,28 +150,44 @@ void GrpcXdsServer::JsonPostLoad(const Json& json, const JsonArgs& args,
154
150
  }
155
151
  }
156
152
  }
153
+ // Parse "server_uri".
154
+ std::string server_uri_target = LoadJsonObjectField<std::string>(
155
+ json.object(), args, "server_uri", errors)
156
+ .value_or("");
157
+ server_target_ = std::make_shared<GrpcXdsServerTarget>(
158
+ std::move(server_uri_target), std::move(channel_creds_config));
157
159
  }
158
160
 
159
- Json GrpcXdsServer::ToJson() const {
160
- Json::Object channel_creds_json{
161
- {"type", Json::FromString(std::string(channel_creds_config_->type()))},
162
- };
163
- if (channel_creds_config_ != nullptr) {
164
- channel_creds_json["config"] = channel_creds_config_->ToJson();
165
- }
166
- Json::Object json{
167
- {"server_uri", Json::FromString(server_uri_)},
168
- {"channel_creds",
169
- Json::FromArray({Json::FromObject(std::move(channel_creds_json))})},
170
- };
161
+ std::string GrpcXdsServer::Key() const {
162
+ std::vector<std::string> parts;
163
+ parts.push_back("{");
164
+ parts.push_back(absl::StrCat("target=", server_target_->Key()));
171
165
  if (!server_features_.empty()) {
172
- Json::Array server_features_json;
173
- for (auto& feature : server_features_) {
174
- server_features_json.emplace_back(Json::FromString(feature));
175
- }
176
- json["server_features"] = Json::FromArray(std::move(server_features_json));
166
+ parts.push_back(absl::StrCat("server_features=[",
167
+ absl::StrJoin(server_features_, ","), "]"));
168
+ }
169
+ parts.push_back("}");
170
+ return absl::StrJoin(parts, ",");
171
+ }
172
+
173
+ std::string GrpcXdsServerTarget::Key() const {
174
+ std::vector<std::string> parts;
175
+ parts.push_back("{");
176
+ parts.push_back(absl::StrCat("server_uri=", server_uri_));
177
+ if (channel_creds_config_ != nullptr) {
178
+ parts.push_back(absl::StrCat("creds_type=", channel_creds_config_->type()));
179
+ parts.push_back(
180
+ absl::StrCat("creds_config=", channel_creds_config_->ToString()));
177
181
  }
178
- return Json::FromObject(std::move(json));
182
+ parts.push_back("}");
183
+ return absl::StrJoin(parts, ",");
184
+ }
185
+
186
+ bool GrpcXdsServerTarget::Equals(const XdsServerTarget& other) const {
187
+ const auto& o = DownCast<const GrpcXdsServerTarget&>(other);
188
+ return (server_uri_ == o.server_uri_ &&
189
+ channel_creds_config_->type() == o.channel_creds_config_->type() &&
190
+ channel_creds_config_->Equals(*o.channel_creds_config_));
179
191
  }
180
192
 
181
193
  } // namespace grpc_core
@@ -20,7 +20,7 @@
20
20
  #include <set>
21
21
  #include <string>
22
22
 
23
- #include "src/core/lib/security/credentials/channel_creds_registry.h"
23
+ #include "src/core/credentials/transport/channel_creds_registry.h"
24
24
  #include "src/core/util/json/json.h"
25
25
  #include "src/core/util/json/json_args.h"
26
26
  #include "src/core/util/json/json_object_loader.h"
@@ -31,33 +31,43 @@
31
31
 
32
32
  namespace grpc_core {
33
33
 
34
- class GrpcXdsServer final : public GrpcXdsServerInterface {
34
+ class GrpcXdsServerTarget final : public GrpcXdsServerInterface {
35
35
  public:
36
+ explicit GrpcXdsServerTarget(
37
+ std::string server_uri,
38
+ RefCountedPtr<ChannelCredsConfig> channel_creds_config)
39
+ : server_uri_(std::move(server_uri)),
40
+ channel_creds_config_(std::move(channel_creds_config)) {}
41
+
42
+ bool Equals(const XdsServerTarget& other) const override;
43
+ std::string Key() const override;
36
44
  const std::string& server_uri() const override { return server_uri_; }
45
+ RefCountedPtr<ChannelCredsConfig> channel_creds_config() const override {
46
+ return channel_creds_config_;
47
+ }
37
48
 
49
+ private:
50
+ std::string server_uri_;
51
+ RefCountedPtr<ChannelCredsConfig> channel_creds_config_;
52
+ };
53
+
54
+ class GrpcXdsServer final : public XdsBootstrap::XdsServer {
55
+ public:
38
56
  bool IgnoreResourceDeletion() const override;
39
57
  bool FailOnDataErrors() const override;
40
58
  bool ResourceTimerIsTransientFailure() const override;
41
-
42
59
  bool TrustedXdsServer() const;
43
-
44
60
  bool Equals(const XdsServer& other) const override;
45
-
46
61
  std::string Key() const override;
47
-
48
- RefCountedPtr<ChannelCredsConfig> channel_creds_config() const override {
49
- return channel_creds_config_;
62
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> target() const override {
63
+ return server_target_;
50
64
  }
51
-
52
65
  static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
53
66
  void JsonPostLoad(const Json& json, const JsonArgs& args,
54
67
  ValidationErrors* errors);
55
68
 
56
- Json ToJson() const;
57
-
58
69
  private:
59
- std::string server_uri_;
60
- RefCountedPtr<ChannelCredsConfig> channel_creds_config_;
70
+ std::shared_ptr<GrpcXdsServerTarget> server_target_;
61
71
  std::set<std::string> server_features_;
62
72
  };
63
73
 
@@ -17,13 +17,13 @@
17
17
  #ifndef GRPC_SRC_CORE_XDS_GRPC_XDS_SERVER_GRPC_INTERFACE_H
18
18
  #define GRPC_SRC_CORE_XDS_GRPC_XDS_SERVER_GRPC_INTERFACE_H
19
19
 
20
- #include "src/core/lib/security/credentials/channel_creds_registry.h"
20
+ #include "src/core/credentials/transport/channel_creds_registry.h"
21
21
  #include "src/core/util/ref_counted_ptr.h"
22
22
  #include "src/core/xds/xds_client/xds_bootstrap.h"
23
23
 
24
24
  namespace grpc_core {
25
25
 
26
- class GrpcXdsServerInterface : public XdsBootstrap::XdsServer {
26
+ class GrpcXdsServerInterface : public XdsBootstrap::XdsServerTarget {
27
27
  public:
28
28
  virtual RefCountedPtr<ChannelCredsConfig> channel_creds_config() const = 0;
29
29
  };
@@ -35,6 +35,8 @@
35
35
  #include "absl/strings/str_cat.h"
36
36
  #include "src/core/client_channel/client_channel_filter.h"
37
37
  #include "src/core/config/core_configuration.h"
38
+ #include "src/core/credentials/transport/channel_creds_registry.h"
39
+ #include "src/core/credentials/transport/transport_credentials.h"
38
40
  #include "src/core/lib/channel/channel_args.h"
39
41
  #include "src/core/lib/channel/channel_fwd.h"
40
42
  #include "src/core/lib/channel/channel_stack.h"
@@ -43,8 +45,6 @@
43
45
  #include "src/core/lib/iomgr/closure.h"
44
46
  #include "src/core/lib/iomgr/exec_ctx.h"
45
47
  #include "src/core/lib/iomgr/pollset_set.h"
46
- #include "src/core/lib/security/credentials/channel_creds_registry.h"
47
- #include "src/core/lib/security/credentials/credentials.h"
48
48
  #include "src/core/lib/slice/slice.h"
49
49
  #include "src/core/lib/slice/slice_internal.h"
50
50
  #include "src/core/lib/surface/call.h"
@@ -263,7 +263,7 @@ RefCountedPtr<Channel> CreateXdsChannel(const ChannelArgs& args,
263
263
 
264
264
  GrpcXdsTransportFactory::GrpcXdsTransport::GrpcXdsTransport(
265
265
  WeakRefCountedPtr<GrpcXdsTransportFactory> factory,
266
- const XdsBootstrap::XdsServer& server, absl::Status* status)
266
+ const XdsBootstrap::XdsServerTarget& server, absl::Status* status)
267
267
  : XdsTransport(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
268
268
  ? "GrpcXdsTransport"
269
269
  : nullptr),
@@ -372,8 +372,8 @@ GrpcXdsTransportFactory::~GrpcXdsTransportFactory() {
372
372
  }
373
373
 
374
374
  RefCountedPtr<XdsTransportFactory::XdsTransport>
375
- GrpcXdsTransportFactory::GetTransport(const XdsBootstrap::XdsServer& server,
376
- absl::Status* status) {
375
+ GrpcXdsTransportFactory::GetTransport(
376
+ const XdsBootstrap::XdsServerTarget& server, absl::Status* status) {
377
377
  std::string key = server.Key();
378
378
  RefCountedPtr<GrpcXdsTransport> transport;
379
379
  MutexLock lock(&mu_);
@@ -51,7 +51,8 @@ class GrpcXdsTransportFactory final : public XdsTransportFactory {
51
51
  void Orphaned() override {}
52
52
 
53
53
  RefCountedPtr<XdsTransport> GetTransport(
54
- const XdsBootstrap::XdsServer& server, absl::Status* status) override;
54
+ const XdsBootstrap::XdsServerTarget& server,
55
+ absl::Status* status) override;
55
56
 
56
57
  grpc_pollset_set* interested_parties() const { return interested_parties_; }
57
58
 
@@ -60,7 +61,7 @@ class GrpcXdsTransportFactory final : public XdsTransportFactory {
60
61
  grpc_pollset_set* interested_parties_;
61
62
 
62
63
  Mutex mu_;
63
- absl::flat_hash_map<std::string /*XdsServer key*/, GrpcXdsTransport*>
64
+ absl::flat_hash_map<std::string /*XdsServerTarget key*/, GrpcXdsTransport*>
64
65
  transports_ ABSL_GUARDED_BY(&mu_);
65
66
  };
66
67
 
@@ -70,7 +71,8 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
70
71
  class GrpcStreamingCall;
71
72
 
72
73
  GrpcXdsTransport(WeakRefCountedPtr<GrpcXdsTransportFactory> factory,
73
- const XdsBootstrap::XdsServer& server, absl::Status* status);
74
+ const XdsBootstrap::XdsServerTarget& server,
75
+ absl::Status* status);
74
76
  ~GrpcXdsTransport() override;
75
77
 
76
78
  void Orphaned() override;
@@ -389,7 +389,7 @@ class LrsClient::LrsChannel::LrsCall final
389
389
 
390
390
  LrsClient::LrsChannel::LrsChannel(
391
391
  WeakRefCountedPtr<LrsClient> lrs_client,
392
- std::shared_ptr<const XdsBootstrap::XdsServer> server)
392
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> server)
393
393
  : DualRefCounted<LrsChannel>(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
394
394
  ? "LrsChannel"
395
395
  : nullptr),
@@ -791,7 +791,8 @@ void LrsClient::Orphaned() {
791
791
  }
792
792
 
793
793
  RefCountedPtr<LrsClient::LrsChannel> LrsClient::GetOrCreateLrsChannelLocked(
794
- std::shared_ptr<const XdsBootstrap::XdsServer> server, const char* reason) {
794
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> server,
795
+ const char* reason) {
795
796
  std::string key = server->Key();
796
797
  auto it = lrs_channel_map_.find(key);
797
798
  if (it != lrs_channel_map_.end()) {
@@ -805,7 +806,7 @@ RefCountedPtr<LrsClient::LrsChannel> LrsClient::GetOrCreateLrsChannelLocked(
805
806
  }
806
807
 
807
808
  RefCountedPtr<LrsClient::ClusterDropStats> LrsClient::AddClusterDropStats(
808
- std::shared_ptr<const XdsBootstrap::XdsServer> lrs_server,
809
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> lrs_server,
809
810
  absl::string_view cluster_name, absl::string_view eds_service_name) {
810
811
  auto key =
811
812
  std::pair(std::string(cluster_name), std::string(eds_service_name));
@@ -868,7 +869,7 @@ void LrsClient::RemoveClusterDropStats(
868
869
 
869
870
  RefCountedPtr<LrsClient::ClusterLocalityStats>
870
871
  LrsClient::AddClusterLocalityStats(
871
- std::shared_ptr<const XdsBootstrap::XdsServer> lrs_server,
872
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> lrs_server,
872
873
  absl::string_view cluster_name, absl::string_view eds_service_name,
873
874
  RefCountedPtr<XdsLocalityName> locality,
874
875
  RefCountedPtr<const BackendMetricPropagation> backend_metric_propagation) {
@@ -954,7 +955,7 @@ void LrsClient::ResetBackoff() {
954
955
  }
955
956
 
956
957
  LrsClient::ClusterLoadReportMap LrsClient::BuildLoadReportSnapshotLocked(
957
- const XdsBootstrap::XdsServer& lrs_server, bool send_all_clusters,
958
+ const XdsBootstrap::XdsServerTarget& lrs_server, bool send_all_clusters,
958
959
  const std::set<std::string>& clusters) {
959
960
  GRPC_TRACE_LOG(xds_client, INFO)
960
961
  << "[lrs_client " << this << "] start building load report";
@@ -237,13 +237,13 @@ class LrsClient : public DualRefCounted<LrsClient> {
237
237
 
238
238
  // Adds drop stats for cluster_name and eds_service_name.
239
239
  RefCountedPtr<ClusterDropStats> AddClusterDropStats(
240
- std::shared_ptr<const XdsBootstrap::XdsServer> lrs_server,
240
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> lrs_server,
241
241
  absl::string_view cluster_name, absl::string_view eds_service_name);
242
242
 
243
243
  // Adds locality stats for cluster_name and eds_service_name for the
244
244
  // specified locality with the specified backend metric propagation.
245
245
  RefCountedPtr<ClusterLocalityStats> AddClusterLocalityStats(
246
- std::shared_ptr<const XdsBootstrap::XdsServer> lrs_server,
246
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> lrs_server,
247
247
  absl::string_view cluster_name, absl::string_view eds_service_name,
248
248
  RefCountedPtr<XdsLocalityName> locality,
249
249
  RefCountedPtr<const BackendMetricPropagation> backend_metric_propagation);
@@ -270,7 +270,7 @@ class LrsClient : public DualRefCounted<LrsClient> {
270
270
  class LrsCall;
271
271
 
272
272
  LrsChannel(WeakRefCountedPtr<LrsClient> lrs_client,
273
- std::shared_ptr<const XdsBootstrap::XdsServer> server);
273
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> server);
274
274
  ~LrsChannel() override;
275
275
 
276
276
  LrsClient* lrs_client() const { return lrs_client_.get(); }
@@ -289,7 +289,7 @@ class LrsClient : public DualRefCounted<LrsClient> {
289
289
  // The owning LrsClient.
290
290
  WeakRefCountedPtr<LrsClient> lrs_client_;
291
291
 
292
- std::shared_ptr<const XdsBootstrap::XdsServer> server_;
292
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> server_;
293
293
 
294
294
  RefCountedPtr<XdsTransportFactory::XdsTransport> transport_;
295
295
 
@@ -337,12 +337,12 @@ class LrsClient : public DualRefCounted<LrsClient> {
337
337
  void Orphaned() override;
338
338
 
339
339
  ClusterLoadReportMap BuildLoadReportSnapshotLocked(
340
- const XdsBootstrap::XdsServer& lrs_server, bool send_all_clusters,
340
+ const XdsBootstrap::XdsServerTarget& lrs_server, bool send_all_clusters,
341
341
  const std::set<std::string>& clusters) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
342
342
 
343
343
  RefCountedPtr<LrsChannel> GetOrCreateLrsChannelLocked(
344
- std::shared_ptr<const XdsBootstrap::XdsServer> server, const char* reason)
345
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
344
+ std::shared_ptr<const XdsBootstrap::XdsServerTarget> server,
345
+ const char* reason) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
346
346
 
347
347
  static bool LoadReportCountersAreZero(const ClusterLoadReportMap& snapshot);
348
348
 
@@ -42,11 +42,26 @@ class XdsBootstrap {
42
42
  virtual const Json::Object& metadata() const = 0;
43
43
  };
44
44
 
45
+ class XdsServerTarget {
46
+ public:
47
+ virtual ~XdsServerTarget() = default;
48
+ virtual const std::string& server_uri() const = 0;
49
+ // Returns a key to be used for uniquely identifying this XdsServerTarget.
50
+ virtual std::string Key() const = 0;
51
+ virtual bool Equals(const XdsServerTarget& other) const = 0;
52
+ friend bool operator==(const XdsServerTarget& a, const XdsServerTarget& b) {
53
+ return a.Equals(b);
54
+ }
55
+ friend bool operator!=(const XdsServerTarget& a, const XdsServerTarget& b) {
56
+ return !a.Equals(b);
57
+ }
58
+ };
59
+
45
60
  class XdsServer {
46
61
  public:
47
62
  virtual ~XdsServer() = default;
48
63
 
49
- virtual const std::string& server_uri() const = 0;
64
+ virtual std::shared_ptr<const XdsServerTarget> target() const = 0;
50
65
 
51
66
  // TODO(roth): Remove this method once the data error handling
52
67
  // feature passes interop tests.