grpc 1.48.0-x86_64-linux → 1.49.1-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 +125 -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 +102 -131
- 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 +63 -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 +38 -17
- 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 +101 -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 +42 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +44 -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.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 +89 -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
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
@@ -58,7 +58,6 @@
|
|
58
58
|
// IWYU pragma: no_include <sys/socket.h>
|
59
59
|
|
60
60
|
#include <inttypes.h>
|
61
|
-
#include <limits.h>
|
62
61
|
#include <stdlib.h>
|
63
62
|
#include <string.h>
|
64
63
|
|
@@ -94,16 +93,12 @@
|
|
94
93
|
#include <grpc/support/log.h>
|
95
94
|
|
96
95
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
97
|
-
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
98
96
|
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
99
97
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h"
|
100
98
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h"
|
101
99
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h"
|
102
100
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h"
|
103
|
-
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
104
|
-
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
105
101
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
106
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
107
102
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
108
103
|
#include "src/core/lib/backoff/backoff.h"
|
109
104
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -111,7 +106,7 @@
|
|
111
106
|
#include "src/core/lib/channel/channelz.h"
|
112
107
|
#include "src/core/lib/config/core_configuration.h"
|
113
108
|
#include "src/core/lib/debug/trace.h"
|
114
|
-
#include "src/core/lib/event_engine/
|
109
|
+
#include "src/core/lib/event_engine/default_event_engine.h"
|
115
110
|
#include "src/core/lib/gpr/string.h"
|
116
111
|
#include "src/core/lib/gpr/useful.h"
|
117
112
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -119,6 +114,7 @@
|
|
119
114
|
#include "src/core/lib/gprpp/ref_counted.h"
|
120
115
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
121
116
|
#include "src/core/lib/gprpp/time.h"
|
117
|
+
#include "src/core/lib/gprpp/work_serializer.h"
|
122
118
|
#include "src/core/lib/iomgr/closure.h"
|
123
119
|
#include "src/core/lib/iomgr/error.h"
|
124
120
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
@@ -127,8 +123,11 @@
|
|
127
123
|
#include "src/core/lib/iomgr/sockaddr.h"
|
128
124
|
#include "src/core/lib/iomgr/socket_utils.h"
|
129
125
|
#include "src/core/lib/iomgr/timer.h"
|
130
|
-
#include "src/core/lib/iomgr/work_serializer.h"
|
131
126
|
#include "src/core/lib/json/json.h"
|
127
|
+
#include "src/core/lib/load_balancing/lb_policy.h"
|
128
|
+
#include "src/core/lib/load_balancing/lb_policy_factory.h"
|
129
|
+
#include "src/core/lib/load_balancing/lb_policy_registry.h"
|
130
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
132
131
|
#include "src/core/lib/resolver/resolver.h"
|
133
132
|
#include "src/core/lib/resolver/server_address.h"
|
134
133
|
#include "src/core/lib/security/credentials/credentials.h"
|
@@ -161,7 +160,7 @@ namespace {
|
|
161
160
|
using ::grpc_event_engine::experimental::EventEngine;
|
162
161
|
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
|
163
162
|
|
164
|
-
constexpr
|
163
|
+
constexpr absl::string_view kGrpclb = "grpclb";
|
165
164
|
|
166
165
|
class GrpcLbConfig : public LoadBalancingPolicy::Config {
|
167
166
|
public:
|
@@ -169,7 +168,8 @@ class GrpcLbConfig : public LoadBalancingPolicy::Config {
|
|
169
168
|
std::string service_name)
|
170
169
|
: child_policy_(std::move(child_policy)),
|
171
170
|
service_name_(std::move(service_name)) {}
|
172
|
-
|
171
|
+
|
172
|
+
absl::string_view name() const override { return kGrpclb; }
|
173
173
|
|
174
174
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy() const {
|
175
175
|
return child_policy_;
|
@@ -186,7 +186,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
186
186
|
public:
|
187
187
|
explicit GrpcLb(Args args);
|
188
188
|
|
189
|
-
|
189
|
+
absl::string_view name() const override { return kGrpclb; }
|
190
190
|
|
191
191
|
void UpdateLocked(UpdateArgs args) override;
|
192
192
|
void ResetBackoffLocked() override;
|
@@ -219,7 +219,6 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
219
219
|
void SendClientLoadReportLocked();
|
220
220
|
|
221
221
|
// EventEngine callbacks
|
222
|
-
void MaybeSendClientLoadReport();
|
223
222
|
void MaybeSendClientLoadReportLocked();
|
224
223
|
|
225
224
|
static void ClientLoadReportDone(void* arg, grpc_error_handle error);
|
@@ -426,7 +425,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
426
425
|
: parent_(std::move(parent)) {}
|
427
426
|
|
428
427
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
429
|
-
ServerAddress address, const
|
428
|
+
ServerAddress address, const ChannelArgs& args) override;
|
430
429
|
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
431
430
|
std::unique_ptr<SubchannelPicker> picker) override;
|
432
431
|
void RequestReresolution() override;
|
@@ -470,12 +469,10 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
470
469
|
RefCountedPtr<GrpcLb> parent_;
|
471
470
|
};
|
472
471
|
|
473
|
-
~GrpcLb() override;
|
474
|
-
|
475
472
|
void ShutdownLocked() override;
|
476
473
|
|
477
474
|
// Helper functions used in UpdateLocked().
|
478
|
-
void UpdateBalancerChannelLocked(const
|
475
|
+
void UpdateBalancerChannelLocked(const ChannelArgs& args);
|
479
476
|
|
480
477
|
void CancelBalancerChannelConnectivityWatchLocked();
|
481
478
|
|
@@ -491,10 +488,10 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
491
488
|
void OnBalancerCallRetryTimerLocked(grpc_error_handle error);
|
492
489
|
|
493
490
|
// Methods for dealing with the child policy.
|
494
|
-
|
491
|
+
ChannelArgs CreateChildPolicyArgsLocked(
|
495
492
|
bool is_backend_from_grpclb_load_balancer);
|
496
493
|
OrphanablePtr<LoadBalancingPolicy> CreateChildPolicyLocked(
|
497
|
-
const
|
494
|
+
const ChannelArgs& args);
|
498
495
|
void CreateOrUpdateChildPolicyLocked();
|
499
496
|
|
500
497
|
// Subchannel caching.
|
@@ -510,7 +507,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
510
507
|
RefCountedPtr<GrpcLbConfig> config_;
|
511
508
|
|
512
509
|
// Current channel args from the resolver.
|
513
|
-
|
510
|
+
ChannelArgs args_;
|
514
511
|
|
515
512
|
// Internal state.
|
516
513
|
bool shutting_down_ = false;
|
@@ -674,7 +671,7 @@ ServerAddressList GrpcLb::Serverlist::GetServerAddressList(
|
|
674
671
|
absl::make_unique<TokenAndClientStatsAttribute>(std::move(lb_token),
|
675
672
|
stats);
|
676
673
|
// Add address.
|
677
|
-
addresses.emplace_back(addr,
|
674
|
+
addresses.emplace_back(addr, ChannelArgs(), std::move(attributes));
|
678
675
|
}
|
679
676
|
return addresses;
|
680
677
|
}
|
@@ -759,7 +756,7 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
759
756
|
//
|
760
757
|
|
761
758
|
RefCountedPtr<SubchannelInterface> GrpcLb::Helper::CreateSubchannel(
|
762
|
-
ServerAddress address, const
|
759
|
+
ServerAddress address, const ChannelArgs& args) {
|
763
760
|
if (parent_->shutting_down_) return nullptr;
|
764
761
|
const TokenAndClientStatsAttribute* attribute =
|
765
762
|
static_cast<const TokenAndClientStatsAttribute*>(
|
@@ -998,15 +995,11 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
|
998
995
|
GetDefaultEventEngine()->RunAfter(client_stats_report_interval_, [this] {
|
999
996
|
ApplicationCallbackExecCtx callback_exec_ctx;
|
1000
997
|
ExecCtx exec_ctx;
|
1001
|
-
|
998
|
+
grpclb_policy()->work_serializer()->Run(
|
999
|
+
[this] { MaybeSendClientLoadReportLocked(); }, DEBUG_LOCATION);
|
1002
1000
|
});
|
1003
1001
|
}
|
1004
1002
|
|
1005
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport() {
|
1006
|
-
grpclb_policy()->work_serializer()->Run(
|
1007
|
-
[this] { MaybeSendClientLoadReportLocked(); }, DEBUG_LOCATION);
|
1008
|
-
}
|
1009
|
-
|
1010
1003
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked() {
|
1011
1004
|
client_load_report_handle_.reset();
|
1012
1005
|
if (this != grpclb_policy()->lb_calld_.get()) {
|
@@ -1343,7 +1336,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1343
1336
|
// helper code for creating balancer channel
|
1344
1337
|
//
|
1345
1338
|
|
1346
|
-
ServerAddressList ExtractBalancerAddresses(const
|
1339
|
+
ServerAddressList ExtractBalancerAddresses(const ChannelArgs& args) {
|
1347
1340
|
const ServerAddressList* addresses =
|
1348
1341
|
FindGrpclbBalancerAddressesInChannelArgs(args);
|
1349
1342
|
if (addresses != nullptr) return *addresses;
|
@@ -1357,88 +1350,78 @@ ServerAddressList ExtractBalancerAddresses(const grpc_channel_args& args) {
|
|
1357
1350
|
* - \a response_generator: in order to propagate updates from the resolver
|
1358
1351
|
* above the grpclb policy.
|
1359
1352
|
* - \a args: other args inherited from the grpclb policy. */
|
1360
|
-
|
1353
|
+
ChannelArgs BuildBalancerChannelArgs(
|
1361
1354
|
FakeResolverResponseGenerator* response_generator,
|
1362
|
-
const
|
1363
|
-
//
|
1364
|
-
|
1355
|
+
const ChannelArgs& args) {
|
1356
|
+
// Create channel args for channel credentials that does not contain bearer
|
1357
|
+
// token credentials.
|
1358
|
+
auto* channel_credentials = args.GetObject<grpc_channel_credentials>();
|
1359
|
+
GPR_ASSERT(channel_credentials != nullptr);
|
1360
|
+
RefCountedPtr<grpc_channel_credentials> creds_sans_call_creds =
|
1361
|
+
channel_credentials->duplicate_without_call_credentials();
|
1362
|
+
GPR_ASSERT(creds_sans_call_creds != nullptr);
|
1363
|
+
return args
|
1365
1364
|
// LB policy name, since we want to use the default (pick_first) in
|
1366
1365
|
// the LB channel.
|
1367
|
-
GRPC_ARG_LB_POLICY_NAME
|
1366
|
+
.Remove(GRPC_ARG_LB_POLICY_NAME)
|
1368
1367
|
// Strip out the service config, since we don't want the LB policy
|
1369
1368
|
// config specified for the parent channel to affect the LB channel.
|
1370
|
-
GRPC_ARG_SERVICE_CONFIG
|
1369
|
+
.Remove(GRPC_ARG_SERVICE_CONFIG)
|
1371
1370
|
// The channel arg for the server URI, since that will be different for
|
1372
1371
|
// the LB channel than for the parent channel. The client channel
|
1373
1372
|
// factory will re-add this arg with the right value.
|
1374
|
-
GRPC_ARG_SERVER_URI
|
1373
|
+
.Remove(GRPC_ARG_SERVER_URI)
|
1375
1374
|
// The fake resolver response generator, because we are replacing it
|
1376
1375
|
// with the one from the grpclb policy, used to propagate updates to
|
1377
1376
|
// the LB channel.
|
1378
|
-
GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR
|
1377
|
+
.Remove(GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR)
|
1379
1378
|
// The LB channel should use the authority indicated by the target
|
1380
1379
|
// authority table (see \a ModifyGrpclbBalancerChannelArgs),
|
1381
1380
|
// as opposed to the authority from the parent channel.
|
1382
|
-
GRPC_ARG_DEFAULT_AUTHORITY
|
1381
|
+
.Remove(GRPC_ARG_DEFAULT_AUTHORITY)
|
1383
1382
|
// Just as for \a GRPC_ARG_DEFAULT_AUTHORITY, the LB channel should be
|
1384
1383
|
// treated as a stand-alone channel and not inherit this argument from the
|
1385
1384
|
// args of the parent channel.
|
1386
|
-
GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
|
1385
|
+
.Remove(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG)
|
1387
1386
|
// Don't want to pass down channelz node from parent; the balancer
|
1388
1387
|
// channel will get its own.
|
1389
|
-
GRPC_ARG_CHANNELZ_CHANNEL_NODE
|
1388
|
+
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
1390
1389
|
// Remove the channel args for channel credentials and replace it
|
1391
1390
|
// with a version that does not contain call credentials. The loadbalancer
|
1392
1391
|
// is not necessarily trusted to handle bearer token credentials.
|
1393
|
-
GRPC_ARG_CHANNEL_CREDENTIALS
|
1394
|
-
};
|
1395
|
-
// Create channel args for channel credentials that does not contain bearer
|
1396
|
-
// token credentials.
|
1397
|
-
grpc_channel_credentials* channel_credentials =
|
1398
|
-
grpc_channel_credentials_find_in_args(args);
|
1399
|
-
GPR_ASSERT(channel_credentials != nullptr);
|
1400
|
-
RefCountedPtr<grpc_channel_credentials> creds_sans_call_creds =
|
1401
|
-
channel_credentials->duplicate_without_call_credentials();
|
1402
|
-
GPR_ASSERT(creds_sans_call_creds != nullptr);
|
1403
|
-
// Channel args to add.
|
1404
|
-
absl::InlinedVector<grpc_arg, 4> args_to_add = {
|
1405
|
-
// The fake resolver response generator, which we use to inject
|
1406
|
-
// address updates into the LB channel.
|
1407
|
-
FakeResolverResponseGenerator::MakeChannelArg(response_generator),
|
1392
|
+
.Remove(GRPC_ARG_CHANNEL_CREDENTIALS)
|
1408
1393
|
// A channel arg indicating the target is a grpclb load balancer.
|
1409
|
-
|
1410
|
-
const_cast<char*>(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER), 1),
|
1394
|
+
.Set(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER, 1)
|
1411
1395
|
// Tells channelz that this is an internal channel.
|
1412
|
-
|
1413
|
-
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
1396
|
+
.Set(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL, 1)
|
1414
1397
|
// A channel args for new channel credentials that does not contain bearer
|
1415
1398
|
// tokens.
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
args_to_add.size());
|
1399
|
+
.SetObject(creds_sans_call_creds)
|
1400
|
+
// The fake resolver response generator, which we use to inject
|
1401
|
+
// address updates into the LB channel.
|
1402
|
+
.SetObject(response_generator->Ref());
|
1421
1403
|
}
|
1422
1404
|
|
1423
1405
|
//
|
1424
1406
|
// ctor and dtor
|
1425
1407
|
//
|
1426
1408
|
|
1427
|
-
std::string GetServerNameFromChannelArgs(const
|
1428
|
-
|
1429
|
-
|
1430
|
-
GPR_ASSERT(server_uri != nullptr);
|
1431
|
-
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1409
|
+
std::string GetServerNameFromChannelArgs(const ChannelArgs& args) {
|
1410
|
+
absl::StatusOr<URI> uri =
|
1411
|
+
URI::Parse(args.GetString(GRPC_ARG_SERVER_URI).value());
|
1432
1412
|
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1433
1413
|
return std::string(absl::StripPrefix(uri->path(), "/"));
|
1434
1414
|
}
|
1435
1415
|
|
1436
1416
|
GrpcLb::GrpcLb(Args args)
|
1437
1417
|
: LoadBalancingPolicy(std::move(args)),
|
1438
|
-
server_name_(GetServerNameFromChannelArgs(
|
1418
|
+
server_name_(GetServerNameFromChannelArgs(channel_args())),
|
1439
1419
|
response_generator_(MakeRefCounted<FakeResolverResponseGenerator>()),
|
1440
|
-
lb_call_timeout_(
|
1441
|
-
|
1420
|
+
lb_call_timeout_(std::max(
|
1421
|
+
Duration::Zero(),
|
1422
|
+
channel_args()
|
1423
|
+
.GetDurationFromIntMillis(GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS)
|
1424
|
+
.value_or(Duration::Zero()))),
|
1442
1425
|
lb_call_backoff_(
|
1443
1426
|
BackOff::Options()
|
1444
1427
|
.set_initial_backoff(Duration::Seconds(
|
@@ -1447,15 +1430,19 @@ GrpcLb::GrpcLb(Args args)
|
|
1447
1430
|
.set_jitter(GRPC_GRPCLB_RECONNECT_JITTER)
|
1448
1431
|
.set_max_backoff(Duration::Seconds(
|
1449
1432
|
GRPC_GRPCLB_RECONNECT_MAX_BACKOFF_SECONDS))),
|
1450
|
-
fallback_at_startup_timeout_(
|
1451
|
-
Duration::
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1433
|
+
fallback_at_startup_timeout_(std::max(
|
1434
|
+
Duration::Zero(),
|
1435
|
+
channel_args()
|
1436
|
+
.GetDurationFromIntMillis(GRPC_ARG_GRPCLB_FALLBACK_TIMEOUT_MS)
|
1437
|
+
.value_or(Duration::Milliseconds(
|
1438
|
+
GRPC_GRPCLB_DEFAULT_FALLBACK_TIMEOUT_MS)))),
|
1439
|
+
subchannel_cache_interval_(std::max(
|
1440
|
+
Duration::Zero(),
|
1441
|
+
channel_args()
|
1442
|
+
.GetDurationFromIntMillis(
|
1443
|
+
GRPC_ARG_GRPCLB_SUBCHANNEL_CACHE_INTERVAL_MS)
|
1444
|
+
.value_or(Duration::Milliseconds(
|
1445
|
+
GRPC_GRPCLB_DEFAULT_SUBCHANNEL_DELETION_DELAY_MS)))) {
|
1459
1446
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1460
1447
|
gpr_log(GPR_INFO,
|
1461
1448
|
"[grpclb %p] Will use '%s' as the server name for LB request.",
|
@@ -1470,8 +1457,6 @@ GrpcLb::GrpcLb(Args args)
|
|
1470
1457
|
nullptr);
|
1471
1458
|
}
|
1472
1459
|
|
1473
|
-
GrpcLb::~GrpcLb() { grpc_channel_args_destroy(args_); }
|
1474
|
-
|
1475
1460
|
void GrpcLb::ShutdownLocked() {
|
1476
1461
|
shutting_down_ = true;
|
1477
1462
|
lb_calld_.reset();
|
@@ -1538,7 +1523,7 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1538
1523
|
}
|
1539
1524
|
resolution_note_ = std::move(args.resolution_note);
|
1540
1525
|
// Update balancer channel.
|
1541
|
-
UpdateBalancerChannelLocked(
|
1526
|
+
UpdateBalancerChannelLocked(args.args);
|
1542
1527
|
// Update the existing child policy, if any.
|
1543
1528
|
if (child_policy_ != nullptr) CreateOrUpdateChildPolicyLocked();
|
1544
1529
|
// If this is the initial update, start the fallback-at-startup checks
|
@@ -1569,37 +1554,28 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1569
1554
|
// helpers for UpdateLocked()
|
1570
1555
|
//
|
1571
1556
|
|
1572
|
-
void GrpcLb::UpdateBalancerChannelLocked(const
|
1557
|
+
void GrpcLb::UpdateBalancerChannelLocked(const ChannelArgs& args) {
|
1573
1558
|
// Make sure that GRPC_ARG_LB_POLICY_NAME is set in channel args,
|
1574
1559
|
// since we use this to trigger the client_load_reporting filter.
|
1575
|
-
|
1576
|
-
grpc_arg new_arg = grpc_channel_arg_string_create(
|
1577
|
-
const_cast<char*>(GRPC_ARG_LB_POLICY_NAME), const_cast<char*>("grpclb"));
|
1578
|
-
grpc_channel_args_destroy(args_);
|
1579
|
-
args_ = grpc_channel_args_copy_and_add_and_remove(
|
1580
|
-
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), &new_arg, 1);
|
1560
|
+
args_ = args.Set(GRPC_ARG_LB_POLICY_NAME, "grpclb");
|
1581
1561
|
// Construct args for balancer channel.
|
1582
1562
|
ServerAddressList balancer_addresses = ExtractBalancerAddresses(args);
|
1583
|
-
|
1584
|
-
BuildBalancerChannelArgs(response_generator_.get(),
|
1563
|
+
ChannelArgs lb_channel_args =
|
1564
|
+
BuildBalancerChannelArgs(response_generator_.get(), args);
|
1585
1565
|
// Create balancer channel if needed.
|
1586
1566
|
if (lb_channel_ == nullptr) {
|
1587
1567
|
std::string uri_str = absl::StrCat("fake:///", server_name_);
|
1588
|
-
|
1589
|
-
grpc_channel_credentials_find_in_args(lb_channel_args);
|
1568
|
+
auto* creds = lb_channel_args.GetObject<grpc_channel_credentials>();
|
1590
1569
|
GPR_ASSERT(creds != nullptr);
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
lb_channel_ = grpc_channel_create(uri_str.c_str(), creds, new_args);
|
1570
|
+
lb_channel_ = grpc_channel_create(
|
1571
|
+
uri_str.c_str(), creds,
|
1572
|
+
lb_channel_args.Remove(GRPC_ARG_CHANNEL_CREDENTIALS).ToC().get());
|
1595
1573
|
GPR_ASSERT(lb_channel_ != nullptr);
|
1596
|
-
grpc_channel_args_destroy(new_args);
|
1597
1574
|
// Set up channelz linkage.
|
1598
1575
|
channelz::ChannelNode* child_channelz_node =
|
1599
1576
|
grpc_channel_get_channelz_node(lb_channel_);
|
1600
1577
|
channelz::ChannelNode* parent_channelz_node =
|
1601
|
-
|
1602
|
-
&args, GRPC_ARG_CHANNELZ_CHANNEL_NODE);
|
1578
|
+
args.GetObject<channelz::ChannelNode>();
|
1603
1579
|
if (child_channelz_node != nullptr && parent_channelz_node != nullptr) {
|
1604
1580
|
parent_channelz_node->AddChildChannel(child_channelz_node->uuid());
|
1605
1581
|
parent_channelz_node_ = parent_channelz_node->Ref();
|
@@ -1734,22 +1710,19 @@ void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
|
1734
1710
|
// code for interacting with the child policy
|
1735
1711
|
//
|
1736
1712
|
|
1737
|
-
|
1713
|
+
ChannelArgs GrpcLb::CreateChildPolicyArgsLocked(
|
1738
1714
|
bool is_backend_from_grpclb_load_balancer) {
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
is_backend_from_grpclb_load_balancer));
|
1715
|
+
ChannelArgs r =
|
1716
|
+
args_.Set(GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER,
|
1717
|
+
is_backend_from_grpclb_load_balancer);
|
1743
1718
|
if (is_backend_from_grpclb_load_balancer) {
|
1744
|
-
|
1745
|
-
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1));
|
1719
|
+
r = r.Set(GRPC_ARG_INHIBIT_HEALTH_CHECKING, 1);
|
1746
1720
|
}
|
1747
|
-
return
|
1748
|
-
args_to_add.size());
|
1721
|
+
return r;
|
1749
1722
|
}
|
1750
1723
|
|
1751
1724
|
OrphanablePtr<LoadBalancingPolicy> GrpcLb::CreateChildPolicyLocked(
|
1752
|
-
const
|
1725
|
+
const ChannelArgs& args) {
|
1753
1726
|
LoadBalancingPolicy::Args lb_policy_args;
|
1754
1727
|
lb_policy_args.work_serializer = work_serializer();
|
1755
1728
|
lb_policy_args.args = args;
|
@@ -1793,7 +1766,7 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
|
|
1793
1766
|
}
|
1794
1767
|
update_args.args =
|
1795
1768
|
CreateChildPolicyArgsLocked(is_backend_from_grpclb_load_balancer);
|
1796
|
-
GPR_ASSERT(update_args.args !=
|
1769
|
+
GPR_ASSERT(update_args.args != ChannelArgs());
|
1797
1770
|
update_args.config = config_->child_policy();
|
1798
1771
|
// Create child policy if needed.
|
1799
1772
|
if (child_policy_ == nullptr) {
|
@@ -1868,28 +1841,27 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1868
1841
|
return MakeOrphanable<GrpcLb>(std::move(args));
|
1869
1842
|
}
|
1870
1843
|
|
1871
|
-
|
1844
|
+
absl::string_view name() const override { return kGrpclb; }
|
1872
1845
|
|
1873
|
-
RefCountedPtr<LoadBalancingPolicy::Config
|
1874
|
-
|
1875
|
-
GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
|
1846
|
+
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
|
1847
|
+
ParseLoadBalancingConfig(const Json& json) const override {
|
1876
1848
|
if (json.type() == Json::Type::JSON_NULL) {
|
1877
1849
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1878
1850
|
}
|
1879
|
-
std::vector<
|
1880
|
-
Json child_policy_config_json_tmp;
|
1881
|
-
const Json* child_policy_config_json;
|
1851
|
+
std::vector<std::string> error_list;
|
1882
1852
|
std::string service_name;
|
1883
1853
|
auto it = json.object_value().find("serviceName");
|
1884
1854
|
if (it != json.object_value().end()) {
|
1885
1855
|
const Json& service_name_json = it->second;
|
1886
1856
|
if (service_name_json.type() != Json::Type::STRING) {
|
1887
|
-
error_list.
|
1888
|
-
"field:serviceName error:type should be string")
|
1857
|
+
error_list.emplace_back(
|
1858
|
+
"field:serviceName error:type should be string");
|
1889
1859
|
} else {
|
1890
1860
|
service_name = service_name_json.string_value();
|
1891
1861
|
}
|
1892
1862
|
}
|
1863
|
+
Json child_policy_config_json_tmp;
|
1864
|
+
const Json* child_policy_config_json;
|
1893
1865
|
it = json.object_value().find("childPolicy");
|
1894
1866
|
if (it == json.object_value().end()) {
|
1895
1867
|
child_policy_config_json_tmp = Json::Array{Json::Object{
|
@@ -1899,22 +1871,21 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1899
1871
|
} else {
|
1900
1872
|
child_policy_config_json = &it->second;
|
1901
1873
|
}
|
1902
|
-
|
1903
|
-
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1874
|
+
auto child_policy_config =
|
1904
1875
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1905
|
-
*child_policy_config_json
|
1906
|
-
if (!
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
1876
|
+
*child_policy_config_json);
|
1877
|
+
if (!child_policy_config.ok()) {
|
1878
|
+
error_list.emplace_back(
|
1879
|
+
absl::StrCat("error parsing childPolicy field: ",
|
1880
|
+
child_policy_config.status().message()));
|
1911
1881
|
}
|
1912
1882
|
if (error_list.empty()) {
|
1913
|
-
return MakeRefCounted<GrpcLbConfig>(std::move(child_policy_config),
|
1883
|
+
return MakeRefCounted<GrpcLbConfig>(std::move(*child_policy_config),
|
1914
1884
|
std::move(service_name));
|
1915
1885
|
} else {
|
1916
|
-
|
1917
|
-
|
1886
|
+
return absl::InvalidArgumentError(
|
1887
|
+
absl::StrCat("errors parsing grpclb LB policy config: [",
|
1888
|
+
absl::StrJoin(error_list, "; "), "]"));
|
1918
1889
|
}
|
1919
1890
|
}
|
1920
1891
|
};
|
@@ -21,6 +21,7 @@
|
|
21
21
|
#include <stddef.h>
|
22
22
|
|
23
23
|
#include <memory>
|
24
|
+
#include <utility>
|
24
25
|
|
25
26
|
#include "src/core/lib/channel/channel_args.h"
|
26
27
|
#include "src/core/lib/gpr/useful.h"
|
@@ -72,9 +73,17 @@ grpc_arg CreateGrpclbBalancerAddressesArg(
|
|
72
73
|
}
|
73
74
|
|
74
75
|
const ServerAddressList* FindGrpclbBalancerAddressesInChannelArgs(
|
75
|
-
const
|
76
|
-
return
|
77
|
-
|
76
|
+
const ChannelArgs& args) {
|
77
|
+
return args.GetPointer<const ServerAddressList>(
|
78
|
+
GRPC_ARG_GRPCLB_BALANCER_ADDRESSES);
|
79
|
+
}
|
80
|
+
|
81
|
+
ChannelArgs SetGrpcLbBalancerAddresses(const ChannelArgs& args,
|
82
|
+
ServerAddressList address_list) {
|
83
|
+
return args.Set(
|
84
|
+
GRPC_ARG_GRPCLB_BALANCER_ADDRESSES,
|
85
|
+
ChannelArgs::Pointer(new ServerAddressList(std::move(address_list)),
|
86
|
+
&kBalancerAddressesArgVtable));
|
78
87
|
}
|
79
88
|
|
80
89
|
} // namespace grpc_core
|
@@ -21,14 +21,18 @@
|
|
21
21
|
|
22
22
|
#include <grpc/impl/codegen/grpc_types.h>
|
23
23
|
|
24
|
+
#include "src/core/lib/channel/channel_args.h"
|
24
25
|
#include "src/core/lib/resolver/server_address.h"
|
25
26
|
|
26
27
|
namespace grpc_core {
|
27
28
|
|
28
29
|
grpc_arg CreateGrpclbBalancerAddressesArg(
|
29
30
|
const ServerAddressList* address_list);
|
31
|
+
GRPC_MUST_USE_RESULT
|
32
|
+
ChannelArgs SetGrpcLbBalancerAddresses(const ChannelArgs& args,
|
33
|
+
ServerAddressList address_list);
|
30
34
|
const ServerAddressList* FindGrpclbBalancerAddressesInChannelArgs(
|
31
|
-
const
|
35
|
+
const ChannelArgs& args);
|
32
36
|
|
33
37
|
} // namespace grpc_core
|
34
38
|
|
@@ -18,14 +18,13 @@
|
|
18
18
|
|
19
19
|
#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
|
20
20
|
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
|
21
|
-
|
22
21
|
#include <grpc/support/port_platform.h>
|
23
22
|
|
24
23
|
#include <stdint.h>
|
25
24
|
|
26
25
|
#include <vector>
|
27
26
|
|
28
|
-
#include "upb/
|
27
|
+
#include "upb/arena.h"
|
29
28
|
|
30
29
|
#include <grpc/slice.h>
|
31
30
|
|
@@ -22,8 +22,8 @@
|
|
22
22
|
#include <memory>
|
23
23
|
|
24
24
|
#include "src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h"
|
25
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
26
25
|
#include "src/core/lib/gprpp/time.h"
|
26
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
27
27
|
|
28
28
|
namespace grpc_core {
|
29
29
|
|