grpc 1.48.0-x86_64-linux → 1.49.0.pre1-x86_64-linux
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.
- checksums.yaml +4 -4
- data/Makefile +104 -41
- data/include/grpc/event_engine/event_engine.h +19 -16
- data/include/grpc/impl/codegen/grpc_types.h +3 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +117 -200
- data/src/core/ext/filters/client_channel/client_channel.h +15 -8
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +12 -4
- data/src/core/ext/filters/client_channel/connector.h +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +53 -65
- data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +100 -124
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +60 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
- data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +170 -99
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
- data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
- data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
- data/src/core/ext/filters/client_channel/subchannel.cc +49 -89
- data/src/core/ext/filters/client_channel/subchannel.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +2 -3
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/client_authority_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -3
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +35 -62
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/xds/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +53 -86
- data/src/core/ext/xds/xds_api.h +19 -28
- data/src/core/ext/xds/xds_bootstrap.cc +39 -52
- data/src/core/ext/xds/xds_bootstrap.h +28 -8
- data/src/core/ext/xds/xds_certificate_provider.h +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
- data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
- data/src/core/ext/xds/xds_client.cc +555 -1214
- data/src/core/ext/xds/xds_client.h +16 -44
- data/src/core/ext/xds/xds_client_grpc.cc +291 -0
- data/src/core/ext/xds/xds_client_grpc.h +102 -0
- data/src/core/ext/xds/xds_cluster.cc +92 -103
- data/src/core/ext/xds/xds_cluster.h +6 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +134 -110
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +80 -80
- data/src/core/ext/xds/xds_endpoint.h +4 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -20
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +329 -299
- data/src/core/ext/xds/xds_listener.h +4 -4
- data/src/core/ext/xds/xds_resource_type.h +13 -2
- data/src/core/ext/xds/xds_route_config.cc +180 -177
- data/src/core/ext/xds/xds_route_config.h +31 -17
- data/src/core/ext/xds/xds_routing.cc +3 -6
- data/src/core/ext/xds/xds_routing.h +7 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +76 -81
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +349 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +19 -17
- data/src/core/lib/address_utils/parse_address.h +8 -5
- data/src/core/lib/avl/avl.h +47 -25
- data/src/core/lib/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +113 -62
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_stack_builder.h +2 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
- data/src/core/lib/channel/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/config/core_configuration.h +48 -35
- data/src/core/lib/debug/stats.cc +12 -15
- data/src/core/lib/debug/stats.h +11 -3
- data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
- data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
- data/src/core/lib/event_engine/forkable.cc +98 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/poller.h +54 -0
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +46 -10
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
- data/src/core/lib/event_engine/promise.h +11 -2
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
- data/src/core/lib/event_engine/utils.cc +49 -0
- data/src/core/lib/event_engine/utils.h +40 -0
- data/src/core/lib/event_engine/windows/iocp.cc +149 -0
- data/src/core/lib/event_engine/windows/iocp.h +68 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
- data/src/core/lib/gpr/time.cc +11 -9
- data/src/core/lib/gpr/useful.h +29 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/no_destruct.h +94 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/table.h +0 -1
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- data/src/core/lib/http/httpcli.cc +12 -24
- data/src/core/lib/http/httpcli_security_connector.cc +11 -11
- data/src/core/lib/iomgr/call_combiner.cc +0 -26
- data/src/core/lib/iomgr/closure.h +0 -9
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +0 -773
- data/src/core/lib/iomgr/error.h +0 -145
- data/src/core/lib/iomgr/error_cfstream.cc +0 -5
- data/src/core/lib/iomgr/ev_poll_posix.cc +17 -9
- data/src/core/lib/iomgr/exec_ctx.cc +0 -12
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +29 -6
- data/src/core/lib/iomgr/resolve_address_posix.cc +38 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +40 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +118 -6
- data/src/core/lib/iomgr/timer_generic.cc +6 -8
- data/src/core/lib/json/json.h +19 -22
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_object_loader.cc +233 -0
- data/src/core/lib/json/json_object_loader.h +618 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +8 -36
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +15 -24
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +56 -8
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/basic_seq.h +43 -23
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/seq.h +25 -4
- data/src/core/lib/promise/sleep.cc +38 -42
- data/src/core/lib/promise/sleep.h +27 -24
- data/src/core/lib/promise/try_seq.h +26 -6
- data/src/core/lib/resolver/resolver.cc +0 -47
- data/src/core/lib/resolver/resolver.h +2 -12
- data/src/core/lib/resolver/resolver_factory.h +2 -3
- data/src/core/lib/resolver/resolver_registry.cc +1 -1
- data/src/core/lib/resolver/resolver_registry.h +2 -3
- data/src/core/lib/resolver/server_address.cc +11 -15
- data/src/core/lib/resolver/server_address.h +4 -8
- data/src/core/lib/resource_quota/api.cc +1 -1
- data/src/core/lib/resource_quota/arena.cc +21 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +157 -17
- data/src/core/lib/resource_quota/memory_quota.h +98 -17
- data/src/core/lib/resource_quota/periodic_update.cc +79 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +13 -10
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
- data/src/core/lib/security/credentials/credentials.h +16 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +29 -26
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -13
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +6 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +5 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
- data/src/core/lib/security/transport/auth_filters.h +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +3 -4
- data/src/core/lib/security/transport/security_handshaker.cc +32 -44
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/service_config/service_config.h +11 -0
- data/src/core/lib/service_config/service_config_impl.cc +98 -97
- data/src/core/lib/service_config/service_config_impl.h +11 -13
- data/src/core/lib/service_config/service_config_parser.cc +26 -27
- data/src/core/lib/service_config/service_config_parser.h +10 -22
- data/src/core/lib/slice/percent_encoding.cc +4 -13
- data/src/core/lib/slice/slice.cc +10 -4
- data/src/core/lib/surface/call.cc +8 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +0 -2
- data/src/core/lib/surface/completion_queue.h +0 -3
- data/src/core/lib/surface/init.cc +2 -6
- data/src/core/lib/surface/lame_client.cc +2 -3
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +7 -12
- data/src/core/lib/surface/server.h +7 -7
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/connectivity_state.cc +0 -1
- data/src/core/lib/transport/connectivity_state.h +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -36
- data/src/core/lib/transport/handshaker.cc +7 -9
- data/src/core/lib/transport/handshaker.h +4 -5
- data/src/core/lib/transport/handshaker_factory.h +2 -3
- data/src/core/lib/transport/handshaker_registry.cc +2 -1
- data/src/core/lib/transport/handshaker_registry.h +2 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
- data/src/core/lib/transport/metadata_batch.cc +5 -0
- data/src/core/lib/transport/metadata_batch.h +52 -7
- data/src/core/lib/transport/parsed_metadata.h +0 -1
- data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
- data/src/core/lib/transport/transport.h +0 -7
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
- data/src/core/tsi/fake_transport_security.cc +53 -30
- data/src/core/tsi/local_transport_security.cc +9 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
- data/src/core/tsi/ssl_transport_security.cc +47 -23
- data/src/core/tsi/transport_security.cc +18 -6
- data/src/core/tsi/transport_security.h +2 -1
- data/src/core/tsi/transport_security_interface.h +17 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +161 -65
- data/third_party/upb/upb/decode.h +1 -0
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/def.c +10 -2
- data/third_party/upb/upb/def.h +8 -1
- data/third_party/upb/upb/def.hpp +7 -4
- data/third_party/upb/upb/encode.c +29 -20
- data/third_party/upb/upb/encode.h +16 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +7 -3
- data/third_party/upb/upb/json_encode.h +6 -3
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +2 -62
- data/third_party/upb/upb/msg.h +2 -45
- data/third_party/upb/upb/msg_internal.h +28 -22
- data/third_party/upb/upb/port_def.inc +2 -1
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +2 -159
- data/third_party/upb/upb/reflection.h +2 -112
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +2 -2
- data/third_party/upb/upb/table_internal.h +3 -352
- data/third_party/upb/upb/text_encode.c +3 -2
- data/third_party/upb/upb/upb.c +4 -290
- data/third_party/upb/upb/upb.h +7 -196
- metadata +90 -38
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -27,11 +27,11 @@
|
|
27
27
|
#include <utility>
|
28
28
|
#include <vector>
|
29
29
|
|
30
|
-
#include "absl/container/inlined_vector.h"
|
31
30
|
#include "absl/memory/memory.h"
|
32
31
|
#include "absl/status/status.h"
|
33
32
|
#include "absl/status/statusor.h"
|
34
33
|
#include "absl/strings/str_cat.h"
|
34
|
+
#include "absl/strings/str_join.h"
|
35
35
|
#include "absl/strings/string_view.h"
|
36
36
|
#include "absl/types/optional.h"
|
37
37
|
|
@@ -39,19 +39,16 @@
|
|
39
39
|
#include <grpc/impl/codegen/grpc_types.h>
|
40
40
|
#include <grpc/support/log.h>
|
41
41
|
|
42
|
-
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
43
42
|
#include "src/core/ext/filters/client_channel/lb_policy/address_filtering.h"
|
44
43
|
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
45
44
|
#include "src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h"
|
46
45
|
#include "src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h"
|
47
46
|
#include "src/core/ext/filters/client_channel/lb_policy/xds/xds.h"
|
48
47
|
#include "src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h"
|
49
|
-
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
50
|
-
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
51
48
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
52
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
53
49
|
#include "src/core/ext/xds/xds_bootstrap.h"
|
54
50
|
#include "src/core/ext/xds/xds_client.h"
|
51
|
+
#include "src/core/ext/xds/xds_client_grpc.h"
|
55
52
|
#include "src/core/ext/xds/xds_client_stats.h"
|
56
53
|
#include "src/core/ext/xds/xds_endpoint.h"
|
57
54
|
#include "src/core/ext/xds/xds_resource_type_impl.h"
|
@@ -62,15 +59,19 @@
|
|
62
59
|
#include "src/core/lib/gprpp/debug_location.h"
|
63
60
|
#include "src/core/lib/gprpp/orphanable.h"
|
64
61
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
65
|
-
#include "src/core/lib/gprpp/
|
62
|
+
#include "src/core/lib/gprpp/work_serializer.h"
|
66
63
|
#include "src/core/lib/iomgr/error.h"
|
67
64
|
#include "src/core/lib/iomgr/pollset_set.h"
|
68
|
-
#include "src/core/lib/iomgr/work_serializer.h"
|
69
65
|
#include "src/core/lib/json/json.h"
|
66
|
+
#include "src/core/lib/load_balancing/lb_policy.h"
|
67
|
+
#include "src/core/lib/load_balancing/lb_policy_factory.h"
|
68
|
+
#include "src/core/lib/load_balancing/lb_policy_registry.h"
|
69
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
70
70
|
#include "src/core/lib/resolver/resolver.h"
|
71
71
|
#include "src/core/lib/resolver/resolver_registry.h"
|
72
72
|
#include "src/core/lib/resolver/server_address.h"
|
73
73
|
#include "src/core/lib/transport/connectivity_state.h"
|
74
|
+
#include "src/core/lib/transport/error_utils.h"
|
74
75
|
|
75
76
|
#define GRPC_EDS_DEFAULT_FALLBACK_TIMEOUT 10000
|
76
77
|
|
@@ -82,7 +83,8 @@ const char* kXdsLocalityNameAttributeKey = "xds_locality_name";
|
|
82
83
|
|
83
84
|
namespace {
|
84
85
|
|
85
|
-
constexpr
|
86
|
+
constexpr absl::string_view kXdsClusterResolver =
|
87
|
+
"xds_cluster_resolver_experimental";
|
86
88
|
|
87
89
|
// Config for EDS LB policy.
|
88
90
|
class XdsClusterResolverLbConfig : public LoadBalancingPolicy::Config {
|
@@ -116,7 +118,8 @@ class XdsClusterResolverLbConfig : public LoadBalancingPolicy::Config {
|
|
116
118
|
: discovery_mechanisms_(std::move(discovery_mechanisms)),
|
117
119
|
xds_lb_policy_(std::move(xds_lb_policy)) {}
|
118
120
|
|
119
|
-
|
121
|
+
absl::string_view name() const override { return kXdsClusterResolver; }
|
122
|
+
|
120
123
|
const std::vector<DiscoveryMechanism>& discovery_mechanisms() const {
|
121
124
|
return discovery_mechanisms_;
|
122
125
|
}
|
@@ -133,7 +136,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
133
136
|
public:
|
134
137
|
XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client, Args args);
|
135
138
|
|
136
|
-
|
139
|
+
absl::string_view name() const override { return kXdsClusterResolver; }
|
137
140
|
|
138
141
|
void UpdateLocked(UpdateArgs args) override;
|
139
142
|
void ResetBackoffLocked() override;
|
@@ -224,16 +227,44 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
224
227
|
// in methods of this class rather than in lambdas to work around an MSVC
|
225
228
|
// bug.
|
226
229
|
void OnResourceChangedHelper(XdsEndpointResource update) {
|
230
|
+
std::string resolution_note;
|
231
|
+
if (update.priorities.empty()) {
|
232
|
+
resolution_note = absl::StrCat(
|
233
|
+
"EDS resource ", discovery_mechanism_->GetEdsResourceName(),
|
234
|
+
" contains no localities");
|
235
|
+
} else {
|
236
|
+
std::set<std::string> empty_localities;
|
237
|
+
for (const auto& priority : update.priorities) {
|
238
|
+
for (const auto& p : priority.localities) {
|
239
|
+
if (p.second.endpoints.empty()) {
|
240
|
+
empty_localities.insert(p.first->AsHumanReadableString());
|
241
|
+
}
|
242
|
+
}
|
243
|
+
}
|
244
|
+
if (!empty_localities.empty()) {
|
245
|
+
resolution_note = absl::StrCat(
|
246
|
+
"EDS resource ", discovery_mechanism_->GetEdsResourceName(),
|
247
|
+
" contains empty localities: [",
|
248
|
+
absl::StrJoin(empty_localities, "; "), "]");
|
249
|
+
}
|
250
|
+
}
|
227
251
|
discovery_mechanism_->parent()->OnEndpointChanged(
|
228
|
-
discovery_mechanism_->index(), std::move(update)
|
252
|
+
discovery_mechanism_->index(), std::move(update),
|
253
|
+
std::move(resolution_note));
|
229
254
|
}
|
230
255
|
void OnErrorHelper(absl::Status status) {
|
231
|
-
discovery_mechanism_->parent()->OnError(
|
232
|
-
|
256
|
+
discovery_mechanism_->parent()->OnError(
|
257
|
+
discovery_mechanism_->index(),
|
258
|
+
absl::StrCat("EDS watcher error for resource ",
|
259
|
+
discovery_mechanism_->GetEdsResourceName(), " (",
|
260
|
+
status.ToString(), ")"));
|
233
261
|
}
|
234
262
|
void OnResourceDoesNotExistHelper() {
|
235
263
|
discovery_mechanism_->parent()->OnResourceDoesNotExist(
|
236
|
-
discovery_mechanism_->index()
|
264
|
+
discovery_mechanism_->index(),
|
265
|
+
absl::StrCat("EDS resource ",
|
266
|
+
discovery_mechanism_->GetEdsResourceName(),
|
267
|
+
" does not exist"));
|
237
268
|
}
|
238
269
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
239
270
|
};
|
@@ -288,6 +319,11 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
288
319
|
// access protected member in base class.
|
289
320
|
friend class ResolverResultHandler;
|
290
321
|
|
322
|
+
absl::string_view GetDnsHostname() const {
|
323
|
+
auto& config = parent()->config_->discovery_mechanisms()[index()];
|
324
|
+
return config.dns_hostname;
|
325
|
+
}
|
326
|
+
|
291
327
|
OrphanablePtr<Resolver> resolver_;
|
292
328
|
};
|
293
329
|
|
@@ -295,6 +331,8 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
295
331
|
OrphanablePtr<DiscoveryMechanism> discovery_mechanism;
|
296
332
|
// Most recent update reported by the discovery mechanism.
|
297
333
|
absl::optional<XdsEndpointResource> latest_update;
|
334
|
+
// Last resolution note reported by the discovery mechanism, if any.
|
335
|
+
std::string resolution_note;
|
298
336
|
// State used to retain child policy names for priority policy.
|
299
337
|
std::vector<size_t /*child_number*/> priority_child_numbers;
|
300
338
|
size_t next_available_child_number = 0;
|
@@ -317,7 +355,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
317
355
|
}
|
318
356
|
|
319
357
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
320
|
-
ServerAddress address, const
|
358
|
+
ServerAddress address, const ChannelArgs& args) override;
|
321
359
|
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
322
360
|
std::unique_ptr<SubchannelPicker> picker) override;
|
323
361
|
// This is a no-op, because we get the addresses from the xds
|
@@ -335,25 +373,26 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
335
373
|
|
336
374
|
void ShutdownLocked() override;
|
337
375
|
|
338
|
-
void OnEndpointChanged(size_t index, XdsEndpointResource update
|
339
|
-
|
340
|
-
void
|
376
|
+
void OnEndpointChanged(size_t index, XdsEndpointResource update,
|
377
|
+
std::string resolution_note);
|
378
|
+
void OnError(size_t index, std::string resolution_note);
|
379
|
+
void OnResourceDoesNotExist(size_t index, std::string resolution_note);
|
341
380
|
|
342
381
|
void MaybeDestroyChildPolicyLocked();
|
343
382
|
|
344
383
|
void UpdateChildPolicyLocked();
|
345
384
|
OrphanablePtr<LoadBalancingPolicy> CreateChildPolicyLocked(
|
346
|
-
const
|
385
|
+
const ChannelArgs& args);
|
347
386
|
ServerAddressList CreateChildPolicyAddressesLocked();
|
387
|
+
std::string CreateChildPolicyResolutionNoteLocked();
|
348
388
|
RefCountedPtr<Config> CreateChildPolicyConfigLocked();
|
349
|
-
|
350
|
-
const grpc_channel_args* args_in);
|
389
|
+
ChannelArgs CreateChildPolicyArgsLocked(const ChannelArgs& args_in);
|
351
390
|
|
352
391
|
// The xds client and endpoint watcher.
|
353
392
|
RefCountedPtr<XdsClient> xds_client_;
|
354
393
|
|
355
394
|
// Current channel args and config from the resolver.
|
356
|
-
|
395
|
+
ChannelArgs args_;
|
357
396
|
RefCountedPtr<XdsClusterResolverLbConfig> config_;
|
358
397
|
|
359
398
|
// Internal state.
|
@@ -371,7 +410,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
371
410
|
|
372
411
|
RefCountedPtr<SubchannelInterface>
|
373
412
|
XdsClusterResolverLb::Helper::CreateSubchannel(ServerAddress address,
|
374
|
-
const
|
413
|
+
const ChannelArgs& args) {
|
375
414
|
if (xds_cluster_resolver_policy_->shutting_down_) return nullptr;
|
376
415
|
return xds_cluster_resolver_policy_->channel_control_helper()
|
377
416
|
->CreateSubchannel(std::move(address), args);
|
@@ -441,30 +480,26 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::Orphan() {
|
|
441
480
|
//
|
442
481
|
|
443
482
|
void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::Start() {
|
444
|
-
std::string target
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
grpc_channel_args_find_pointer<FakeResolverResponseGenerator>(
|
449
|
-
parent()->args_,
|
483
|
+
std::string target;
|
484
|
+
ChannelArgs args = parent()->args_;
|
485
|
+
auto* fake_resolver_response_generator =
|
486
|
+
args.GetPointer<FakeResolverResponseGenerator>(
|
450
487
|
GRPC_ARG_XDS_LOGICAL_DNS_CLUSTER_FAKE_RESOLVER_RESPONSE_GENERATOR);
|
451
488
|
if (fake_resolver_response_generator != nullptr) {
|
452
|
-
target = absl::StrCat("fake:",
|
453
|
-
|
454
|
-
fake_resolver_response_generator);
|
455
|
-
args = grpc_channel_args_copy_and_add(parent()->args_, &new_arg, 1);
|
489
|
+
target = absl::StrCat("fake:", GetDnsHostname());
|
490
|
+
args = args.SetObject(fake_resolver_response_generator->Ref());
|
456
491
|
} else {
|
457
|
-
target = absl::StrCat("dns:",
|
458
|
-
args = grpc_channel_args_copy(parent()->args_);
|
492
|
+
target = absl::StrCat("dns:", GetDnsHostname());
|
459
493
|
}
|
460
494
|
resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
|
461
495
|
target.c_str(), args, parent()->interested_parties(),
|
462
496
|
parent()->work_serializer(),
|
463
497
|
absl::make_unique<ResolverResultHandler>(
|
464
498
|
Ref(DEBUG_LOCATION, "LogicalDNSDiscoveryMechanism")));
|
465
|
-
grpc_channel_args_destroy(args);
|
466
499
|
if (resolver_ == nullptr) {
|
467
|
-
parent()->OnResourceDoesNotExist(
|
500
|
+
parent()->OnResourceDoesNotExist(
|
501
|
+
index(),
|
502
|
+
absl::StrCat("error creating DNS resolver for ", GetDnsHostname()));
|
468
503
|
return;
|
469
504
|
}
|
470
505
|
resolver_->StartLocked();
|
@@ -494,14 +529,18 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::Orphan() {
|
|
494
529
|
|
495
530
|
void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
496
531
|
ReportResult(Resolver::Result result) {
|
532
|
+
XdsClusterResolverLb* lb_policy = discovery_mechanism_->parent();
|
533
|
+
size_t index = discovery_mechanism_->index();
|
497
534
|
if (!result.addresses.ok()) {
|
498
|
-
|
499
|
-
|
535
|
+
if (result.resolution_note.empty()) {
|
536
|
+
result.resolution_note = absl::StrCat(
|
537
|
+
"DNS resolution failed for ", discovery_mechanism_->GetDnsHostname(),
|
538
|
+
" (", result.addresses.status().ToString(), ")");
|
539
|
+
}
|
540
|
+
lb_policy->OnError(index, result.resolution_note);
|
500
541
|
return;
|
501
542
|
}
|
502
543
|
// Convert resolver result to EDS update.
|
503
|
-
// TODO(roth): Figure out a way to pass resolution_note through to the
|
504
|
-
// child policy.
|
505
544
|
XdsEndpointResource update;
|
506
545
|
XdsEndpointResource::Priority::Locality locality;
|
507
546
|
locality.name = MakeRefCounted<XdsLocalityName>("", "", "");
|
@@ -510,8 +549,8 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
|
510
549
|
XdsEndpointResource::Priority priority;
|
511
550
|
priority.localities.emplace(locality.name.get(), std::move(locality));
|
512
551
|
update.priorities.emplace_back(std::move(priority));
|
513
|
-
|
514
|
-
|
552
|
+
lb_policy->OnEndpointChanged(index, std::move(update),
|
553
|
+
std::move(result.resolution_note));
|
515
554
|
}
|
516
555
|
|
517
556
|
//
|
@@ -560,9 +599,7 @@ void XdsClusterResolverLb::ShutdownLocked() {
|
|
560
599
|
MaybeDestroyChildPolicyLocked();
|
561
600
|
discovery_mechanisms_.clear();
|
562
601
|
xds_client_.reset(DEBUG_LOCATION, "XdsClusterResolverLb");
|
563
|
-
|
564
|
-
grpc_channel_args_destroy(args_);
|
565
|
-
args_ = nullptr;
|
602
|
+
args_ = ChannelArgs();
|
566
603
|
}
|
567
604
|
|
568
605
|
void XdsClusterResolverLb::MaybeDestroyChildPolicyLocked() {
|
@@ -577,14 +614,12 @@ void XdsClusterResolverLb::UpdateLocked(UpdateArgs args) {
|
|
577
614
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_cluster_resolver_trace)) {
|
578
615
|
gpr_log(GPR_INFO, "[xds_cluster_resolver_lb %p] Received update", this);
|
579
616
|
}
|
580
|
-
const bool is_initial_update = args_ ==
|
617
|
+
const bool is_initial_update = args_ == ChannelArgs();
|
581
618
|
// Update config.
|
582
619
|
auto old_config = std::move(config_);
|
583
620
|
config_ = std::move(args.config);
|
584
621
|
// Update args.
|
585
|
-
|
586
|
-
args_ = args.args;
|
587
|
-
args.args = nullptr;
|
622
|
+
args_ = std::move(args.args);
|
588
623
|
// Update child policy if needed.
|
589
624
|
if (child_policy_ != nullptr) UpdateChildPolicyLocked();
|
590
625
|
// Create endpoint watcher if needed.
|
@@ -625,13 +660,14 @@ void XdsClusterResolverLb::ExitIdleLocked() {
|
|
625
660
|
}
|
626
661
|
|
627
662
|
void XdsClusterResolverLb::OnEndpointChanged(size_t index,
|
628
|
-
XdsEndpointResource update
|
663
|
+
XdsEndpointResource update,
|
664
|
+
std::string resolution_note) {
|
629
665
|
if (shutting_down_) return;
|
630
666
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_cluster_resolver_trace)) {
|
631
667
|
gpr_log(GPR_INFO,
|
632
668
|
"[xds_cluster_resolver_lb %p] Received update from xds client"
|
633
|
-
" for discovery mechanism %" PRIuPTR "",
|
634
|
-
this, index);
|
669
|
+
" for discovery mechanism %" PRIuPTR " (resolution_note=\"%s\")",
|
670
|
+
this, index, resolution_note.c_str());
|
635
671
|
}
|
636
672
|
DiscoveryMechanismEntry& discovery_entry = discovery_mechanisms_[index];
|
637
673
|
// We need at least one priority for each discovery mechanism, just so that we
|
@@ -704,6 +740,7 @@ void XdsClusterResolverLb::OnEndpointChanged(size_t index,
|
|
704
740
|
}
|
705
741
|
// Save update.
|
706
742
|
discovery_entry.latest_update = std::move(update);
|
743
|
+
discovery_entry.resolution_note = std::move(resolution_note);
|
707
744
|
discovery_entry.priority_child_numbers = std::move(priority_child_numbers);
|
708
745
|
// If any discovery mechanism has not received its first update,
|
709
746
|
// wait until that happens before creating the child policy.
|
@@ -721,27 +758,28 @@ void XdsClusterResolverLb::OnEndpointChanged(size_t index,
|
|
721
758
|
UpdateChildPolicyLocked();
|
722
759
|
}
|
723
760
|
|
724
|
-
void XdsClusterResolverLb::OnError(size_t index,
|
761
|
+
void XdsClusterResolverLb::OnError(size_t index, std::string resolution_note) {
|
725
762
|
gpr_log(GPR_ERROR,
|
726
763
|
"[xds_cluster_resolver_lb %p] discovery mechanism %" PRIuPTR
|
727
|
-
"
|
728
|
-
this, index,
|
764
|
+
" reported error: %s",
|
765
|
+
this, index, resolution_note.c_str());
|
729
766
|
if (shutting_down_) return;
|
730
767
|
if (!discovery_mechanisms_[index].latest_update.has_value()) {
|
731
|
-
// Call OnEndpointChanged with an empty update just like
|
732
|
-
// OnResourceDoesNotExist.
|
733
|
-
OnEndpointChanged(index, XdsEndpointResource());
|
768
|
+
// Call OnEndpointChanged() with an empty update just like
|
769
|
+
// OnResourceDoesNotExist().
|
770
|
+
OnEndpointChanged(index, XdsEndpointResource(), std::move(resolution_note));
|
734
771
|
}
|
735
772
|
}
|
736
773
|
|
737
|
-
void XdsClusterResolverLb::OnResourceDoesNotExist(size_t index
|
774
|
+
void XdsClusterResolverLb::OnResourceDoesNotExist(size_t index,
|
775
|
+
std::string resolution_note) {
|
738
776
|
gpr_log(GPR_ERROR,
|
739
777
|
"[xds_cluster_resolver_lb %p] discovery mechanism %" PRIuPTR
|
740
|
-
" resource does not exist",
|
741
|
-
this, index);
|
778
|
+
" resource does not exist: %s",
|
779
|
+
this, index, resolution_note.c_str());
|
742
780
|
if (shutting_down_) return;
|
743
|
-
// Call OnEndpointChanged with an empty update.
|
744
|
-
OnEndpointChanged(index, XdsEndpointResource());
|
781
|
+
// Call OnEndpointChanged() with an empty update.
|
782
|
+
OnEndpointChanged(index, XdsEndpointResource(), std::move(resolution_note));
|
745
783
|
}
|
746
784
|
|
747
785
|
//
|
@@ -790,6 +828,16 @@ ServerAddressList XdsClusterResolverLb::CreateChildPolicyAddressesLocked() {
|
|
790
828
|
return addresses;
|
791
829
|
}
|
792
830
|
|
831
|
+
std::string XdsClusterResolverLb::CreateChildPolicyResolutionNoteLocked() {
|
832
|
+
std::vector<absl::string_view> resolution_notes;
|
833
|
+
for (const auto& discovery_entry : discovery_mechanisms_) {
|
834
|
+
if (!discovery_entry.resolution_note.empty()) {
|
835
|
+
resolution_notes.push_back(discovery_entry.resolution_note);
|
836
|
+
}
|
837
|
+
}
|
838
|
+
return absl::StrJoin(resolution_notes, "; ");
|
839
|
+
}
|
840
|
+
|
793
841
|
RefCountedPtr<LoadBalancingPolicy::Config>
|
794
842
|
XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
795
843
|
Json::Object priority_children;
|
@@ -885,10 +933,6 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
885
933
|
if (discovery_entry.config().outlier_detection_lb_config.has_value()) {
|
886
934
|
outlier_detection_config =
|
887
935
|
discovery_entry.config().outlier_detection_lb_config.value();
|
888
|
-
} else {
|
889
|
-
// outlier detection will be a no-op
|
890
|
-
outlier_detection_config["interval"] =
|
891
|
-
Duration::Infinity().ToJsonString();
|
892
936
|
}
|
893
937
|
outlier_detection_config["childPolicy"] = Json::Array{Json::Object{
|
894
938
|
{"xds_cluster_impl_experimental",
|
@@ -930,17 +974,15 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
930
974
|
"[xds_cluster_resolver_lb %p] generated config for child policy: %s",
|
931
975
|
this, json_str.c_str());
|
932
976
|
}
|
933
|
-
|
934
|
-
|
935
|
-
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(json, &error);
|
936
|
-
if (!GRPC_ERROR_IS_NONE(error)) {
|
977
|
+
auto config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(json);
|
978
|
+
if (!config.ok()) {
|
937
979
|
// This should never happen, but if it does, we basically have no
|
938
980
|
// way to fix it, so we put the channel in TRANSIENT_FAILURE.
|
939
981
|
gpr_log(GPR_ERROR,
|
940
982
|
"[xds_cluster_resolver_lb %p] error parsing generated child policy "
|
941
983
|
"config -- "
|
942
984
|
"will put channel in TRANSIENT_FAILURE: %s",
|
943
|
-
this,
|
985
|
+
this, config.status().ToString().c_str());
|
944
986
|
absl::Status status = absl::InternalError(
|
945
987
|
"xds_cluster_resolver LB policy: error parsing generated child policy "
|
946
988
|
"config");
|
@@ -949,7 +991,7 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
949
991
|
absl::make_unique<TransientFailurePicker>(status));
|
950
992
|
return nullptr;
|
951
993
|
}
|
952
|
-
return config;
|
994
|
+
return std::move(*config);
|
953
995
|
}
|
954
996
|
|
955
997
|
void XdsClusterResolverLb::UpdateChildPolicyLocked() {
|
@@ -958,6 +1000,7 @@ void XdsClusterResolverLb::UpdateChildPolicyLocked() {
|
|
958
1000
|
update_args.config = CreateChildPolicyConfigLocked();
|
959
1001
|
if (update_args.config == nullptr) return;
|
960
1002
|
update_args.addresses = CreateChildPolicyAddressesLocked();
|
1003
|
+
update_args.resolution_note = CreateChildPolicyResolutionNoteLocked();
|
961
1004
|
update_args.args = CreateChildPolicyArgsLocked(args_);
|
962
1005
|
if (child_policy_ == nullptr) {
|
963
1006
|
child_policy_ = CreateChildPolicyLocked(update_args.args);
|
@@ -969,19 +1012,15 @@ void XdsClusterResolverLb::UpdateChildPolicyLocked() {
|
|
969
1012
|
child_policy_->UpdateLocked(std::move(update_args));
|
970
1013
|
}
|
971
1014
|
|
972
|
-
|
973
|
-
const
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
grpc_channel_arg_integer_create(
|
978
|
-
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1),
|
979
|
-
};
|
980
|
-
return grpc_channel_args_copy_and_add(args, new_args.data(), new_args.size());
|
1015
|
+
ChannelArgs XdsClusterResolverLb::CreateChildPolicyArgsLocked(
|
1016
|
+
const ChannelArgs& args) {
|
1017
|
+
// Inhibit client-side health checking, since the balancer does this
|
1018
|
+
// for us.
|
1019
|
+
return args.Set(GRPC_ARG_INHIBIT_HEALTH_CHECKING, 1);
|
981
1020
|
}
|
982
1021
|
|
983
1022
|
OrphanablePtr<LoadBalancingPolicy>
|
984
|
-
XdsClusterResolverLb::CreateChildPolicyLocked(const
|
1023
|
+
XdsClusterResolverLb::CreateChildPolicyLocked(const ChannelArgs& args) {
|
985
1024
|
LoadBalancingPolicy::Args lb_policy_args;
|
986
1025
|
lb_policy_args.work_serializer = work_serializer();
|
987
1026
|
lb_policy_args.args = args;
|
@@ -1016,8 +1055,8 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1016
1055
|
public:
|
1017
1056
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1018
1057
|
LoadBalancingPolicy::Args args) const override {
|
1019
|
-
|
1020
|
-
|
1058
|
+
auto xds_client = args.args.GetObjectRef<GrpcXdsClient>(
|
1059
|
+
DEBUG_LOCATION, "XdsClusterResolverLbFactory");
|
1021
1060
|
if (xds_client == nullptr) {
|
1022
1061
|
gpr_log(GPR_ERROR,
|
1023
1062
|
"XdsClient not present in channel args -- cannot instantiate "
|
@@ -1028,19 +1067,17 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1028
1067
|
std::move(args));
|
1029
1068
|
}
|
1030
1069
|
|
1031
|
-
|
1070
|
+
absl::string_view name() const override { return kXdsClusterResolver; }
|
1032
1071
|
|
1033
|
-
RefCountedPtr<LoadBalancingPolicy::Config
|
1034
|
-
|
1035
|
-
GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
|
1072
|
+
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
|
1073
|
+
ParseLoadBalancingConfig(const Json& json) const override {
|
1036
1074
|
if (json.type() == Json::Type::JSON_NULL) {
|
1037
1075
|
// xds_cluster_resolver was mentioned as a policy in the deprecated
|
1038
1076
|
// loadBalancingPolicy field or in the client API.
|
1039
|
-
|
1077
|
+
return absl::InvalidArgumentError(
|
1040
1078
|
"field:loadBalancingPolicy error:xds_cluster_resolver policy "
|
1041
1079
|
"requires configuration. "
|
1042
1080
|
"Please use loadBalancingConfig field of service config instead.");
|
1043
|
-
return nullptr;
|
1044
1081
|
}
|
1045
1082
|
std::vector<grpc_error_handle> error_list;
|
1046
1083
|
std::vector<XdsClusterResolverLbConfig::DiscoveryMechanism>
|
@@ -1102,10 +1139,11 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1102
1139
|
policy_it = policy.find("RING_HASH");
|
1103
1140
|
if (policy_it != policy.end()) {
|
1104
1141
|
xds_lb_policy = array[i];
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1142
|
+
auto config = ParseRingHashLbConfig(policy_it->second);
|
1143
|
+
if (!config.ok()) {
|
1144
|
+
error_list.emplace_back(
|
1145
|
+
absl_status_to_grpc_error(config.status()));
|
1146
|
+
}
|
1109
1147
|
}
|
1110
1148
|
}
|
1111
1149
|
}
|
@@ -1115,9 +1153,11 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1115
1153
|
return MakeRefCounted<XdsClusterResolverLbConfig>(
|
1116
1154
|
std::move(discovery_mechanisms), std::move(xds_lb_policy));
|
1117
1155
|
} else {
|
1118
|
-
|
1156
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_VECTOR(
|
1119
1157
|
"xds_cluster_resolver_experimental LB policy config", &error_list);
|
1120
|
-
|
1158
|
+
absl::Status status = grpc_error_to_absl_status(error);
|
1159
|
+
GRPC_ERROR_UNREF(error);
|
1160
|
+
return status;
|
1121
1161
|
}
|
1122
1162
|
}
|
1123
1163
|
|
@@ -1239,6 +1279,10 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1239
1279
|
&grpc_lb_xds_cluster_resolver_trace),
|
1240
1280
|
xds_client_(std::move(xds_client)) {}
|
1241
1281
|
|
1282
|
+
~XdsClusterResolverChildHandler() override {
|
1283
|
+
xds_client_.reset(DEBUG_LOCATION, "XdsClusterResolverChildHandler");
|
1284
|
+
}
|
1285
|
+
|
1242
1286
|
bool ConfigChangeRequiresNewPolicyInstance(
|
1243
1287
|
LoadBalancingPolicy::Config* old_config,
|
1244
1288
|
LoadBalancingPolicy::Config* new_config) const override {
|
@@ -1248,13 +1292,38 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1248
1292
|
static_cast<XdsClusterResolverLbConfig*>(old_config);
|
1249
1293
|
XdsClusterResolverLbConfig* new_xds_cluster_resolver_config =
|
1250
1294
|
static_cast<XdsClusterResolverLbConfig*>(new_config);
|
1251
|
-
|
1252
|
-
|
1295
|
+
if (old_xds_cluster_resolver_config->discovery_mechanisms().size() !=
|
1296
|
+
new_xds_cluster_resolver_config->discovery_mechanisms().size()) {
|
1297
|
+
return true;
|
1298
|
+
}
|
1299
|
+
for (size_t i = 0;
|
1300
|
+
i < old_xds_cluster_resolver_config->discovery_mechanisms().size();
|
1301
|
+
++i) {
|
1302
|
+
auto& old_discovery_mechanism =
|
1303
|
+
old_xds_cluster_resolver_config->discovery_mechanisms()[i];
|
1304
|
+
auto& new_discovery_mechanism =
|
1305
|
+
new_xds_cluster_resolver_config->discovery_mechanisms()[i];
|
1306
|
+
if (old_discovery_mechanism.type != new_discovery_mechanism.type ||
|
1307
|
+
old_discovery_mechanism.cluster_name !=
|
1308
|
+
new_discovery_mechanism.cluster_name ||
|
1309
|
+
old_discovery_mechanism.eds_service_name !=
|
1310
|
+
new_discovery_mechanism.eds_service_name ||
|
1311
|
+
old_discovery_mechanism.dns_hostname !=
|
1312
|
+
new_discovery_mechanism.dns_hostname ||
|
1313
|
+
!(old_discovery_mechanism.lrs_load_reporting_server ==
|
1314
|
+
new_discovery_mechanism.lrs_load_reporting_server)) {
|
1315
|
+
return true;
|
1316
|
+
}
|
1317
|
+
}
|
1318
|
+
return false;
|
1253
1319
|
}
|
1254
1320
|
|
1255
1321
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1256
|
-
|
1257
|
-
|
1322
|
+
absl::string_view /*name*/,
|
1323
|
+
LoadBalancingPolicy::Args args) const override {
|
1324
|
+
return MakeOrphanable<XdsClusterResolverLb>(
|
1325
|
+
xds_client_->Ref(DEBUG_LOCATION, "XdsClusterResolverLb"),
|
1326
|
+
std::move(args));
|
1258
1327
|
}
|
1259
1328
|
|
1260
1329
|
private:
|
@@ -21,8 +21,12 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
24
|
+
#include <string>
|
25
25
|
|
26
|
+
#include "absl/strings/string_view.h"
|
27
|
+
#include "absl/types/optional.h"
|
28
|
+
|
29
|
+
#include "src/core/lib/channel/channel_args.h"
|
26
30
|
#include "src/core/lib/iomgr/resolved_address.h"
|
27
31
|
|
28
32
|
namespace grpc_core {
|
@@ -32,21 +36,16 @@ class ProxyMapperInterface {
|
|
32
36
|
virtual ~ProxyMapperInterface() = default;
|
33
37
|
|
34
38
|
/// Determines the proxy name to resolve for \a server_uri.
|
35
|
-
/// If no proxy is needed, returns
|
36
|
-
/// Otherwise,
|
37
|
-
|
38
|
-
|
39
|
-
char** name_to_resolve,
|
40
|
-
grpc_channel_args** new_args) = 0;
|
39
|
+
/// If no proxy is needed, returns nullopt.
|
40
|
+
/// Otherwise, updates \a args and returns the name to resolve.
|
41
|
+
virtual absl::optional<std::string> MapName(absl::string_view server_uri,
|
42
|
+
ChannelArgs* args) = 0;
|
41
43
|
|
42
44
|
/// Determines the proxy address to use to contact \a address.
|
43
|
-
/// If no proxy is needed, returns
|
44
|
-
/// Otherwise,
|
45
|
-
|
46
|
-
|
47
|
-
const grpc_channel_args* args,
|
48
|
-
grpc_resolved_address** new_address,
|
49
|
-
grpc_channel_args** new_args) = 0;
|
45
|
+
/// If no proxy is needed, returns nullopt.
|
46
|
+
/// Otherwise, updates \a args, and returns a new address.
|
47
|
+
virtual absl::optional<grpc_resolved_address> MapAddress(
|
48
|
+
const grpc_resolved_address& address, ChannelArgs* args) = 0;
|
50
49
|
};
|
51
50
|
|
52
51
|
} // namespace grpc_core
|