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
@@ -39,7 +39,6 @@
|
|
39
39
|
#include <vector>
|
40
40
|
|
41
41
|
#include "absl/base/thread_annotations.h"
|
42
|
-
#include "absl/container/inlined_vector.h"
|
43
42
|
#include "absl/hash/hash.h"
|
44
43
|
#include "absl/memory/memory.h"
|
45
44
|
#include "absl/status/status.h"
|
@@ -64,11 +63,7 @@
|
|
64
63
|
#include <grpc/support/log.h>
|
65
64
|
|
66
65
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
67
|
-
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
68
66
|
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
69
|
-
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
70
|
-
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
71
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
72
67
|
#include "src/core/lib/backoff/backoff.h"
|
73
68
|
#include "src/core/lib/channel/channel_args.h"
|
74
69
|
#include "src/core/lib/channel/channelz.h"
|
@@ -80,14 +75,18 @@
|
|
80
75
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
81
76
|
#include "src/core/lib/gprpp/sync.h"
|
82
77
|
#include "src/core/lib/gprpp/time.h"
|
78
|
+
#include "src/core/lib/gprpp/work_serializer.h"
|
83
79
|
#include "src/core/lib/iomgr/closure.h"
|
84
80
|
#include "src/core/lib/iomgr/error.h"
|
85
81
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
86
82
|
#include "src/core/lib/iomgr/pollset_set.h"
|
87
83
|
#include "src/core/lib/iomgr/timer.h"
|
88
|
-
#include "src/core/lib/iomgr/work_serializer.h"
|
89
84
|
#include "src/core/lib/json/json.h"
|
90
85
|
#include "src/core/lib/json/json_util.h"
|
86
|
+
#include "src/core/lib/load_balancing/lb_policy.h"
|
87
|
+
#include "src/core/lib/load_balancing/lb_policy_factory.h"
|
88
|
+
#include "src/core/lib/load_balancing/lb_policy_registry.h"
|
89
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
91
90
|
#include "src/core/lib/resolver/resolver_registry.h"
|
92
91
|
#include "src/core/lib/resolver/server_address.h"
|
93
92
|
#include "src/core/lib/security/credentials/credentials.h"
|
@@ -108,7 +107,7 @@ TraceFlag grpc_lb_rls_trace(false, "rls_lb");
|
|
108
107
|
|
109
108
|
namespace {
|
110
109
|
|
111
|
-
|
110
|
+
constexpr absl::string_view kRls = "rls_experimental";
|
112
111
|
const char kGrpc[] = "grpc";
|
113
112
|
const char* kRlsRequestPath = "/grpc.lookup.v1.RouteLookupService/RouteLookup";
|
114
113
|
const char* kFakeTargetFieldValue = "fake_target_field_value";
|
@@ -163,7 +162,7 @@ class RlsLbConfig : public LoadBalancingPolicy::Config {
|
|
163
162
|
default_child_policy_parsed_config_(
|
164
163
|
std::move(default_child_policy_parsed_config)) {}
|
165
164
|
|
166
|
-
|
165
|
+
absl::string_view name() const override { return kRls; }
|
167
166
|
|
168
167
|
const KeyBuilderMap& key_builder_map() const {
|
169
168
|
return route_lookup_config_.key_builder_map;
|
@@ -208,7 +207,7 @@ class RlsLb : public LoadBalancingPolicy {
|
|
208
207
|
public:
|
209
208
|
explicit RlsLb(Args args);
|
210
209
|
|
211
|
-
|
210
|
+
absl::string_view name() const override { return kRls; }
|
212
211
|
void UpdateLocked(UpdateArgs args) override;
|
213
212
|
void ExitIdleLocked() override;
|
214
213
|
void ResetBackoffLocked() override;
|
@@ -325,7 +324,7 @@ class RlsLb : public LoadBalancingPolicy {
|
|
325
324
|
}
|
326
325
|
|
327
326
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
328
|
-
ServerAddress address, const
|
327
|
+
ServerAddress address, const ChannelArgs& args) override;
|
329
328
|
void UpdateState(grpc_connectivity_state state,
|
330
329
|
const absl::Status& status,
|
331
330
|
std::unique_ptr<SubchannelPicker> picker) override;
|
@@ -707,7 +706,7 @@ class RlsLb : public LoadBalancingPolicy {
|
|
707
706
|
|
708
707
|
// Accessed only from within WorkSerializer.
|
709
708
|
absl::StatusOr<ServerAddressList> addresses_;
|
710
|
-
|
709
|
+
ChannelArgs channel_args_;
|
711
710
|
RefCountedPtr<RlsLbConfig> config_;
|
712
711
|
RefCountedPtr<ChildPolicyWrapper> default_child_policy_;
|
713
712
|
std::map<std::string /*target*/, ChildPolicyWrapper*> child_policy_map_;
|
@@ -791,23 +790,23 @@ void RlsLb::ChildPolicyWrapper::StartUpdate() {
|
|
791
790
|
lb_policy_.get(), this, target_.c_str(),
|
792
791
|
child_policy_config.Dump().c_str());
|
793
792
|
}
|
794
|
-
|
795
|
-
child_policy_config
|
793
|
+
auto config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
794
|
+
child_policy_config);
|
796
795
|
// Returned RLS target fails the validation.
|
797
|
-
if (!
|
796
|
+
if (!config.ok()) {
|
798
797
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
|
799
798
|
gpr_log(GPR_INFO,
|
800
799
|
"[rlslb %p] ChildPolicyWrapper=%p [%s]: config failed to parse: "
|
801
|
-
"%s
|
800
|
+
"%s",
|
802
801
|
lb_policy_.get(), this, target_.c_str(),
|
803
|
-
|
804
|
-
child_policy_config.Dump().c_str());
|
802
|
+
config.status().ToString().c_str());
|
805
803
|
}
|
806
804
|
pending_config_.reset();
|
807
805
|
picker_ = absl::make_unique<TransientFailurePicker>(
|
808
|
-
|
809
|
-
GRPC_ERROR_UNREF(error);
|
806
|
+
absl::UnavailableError(config.status().message()));
|
810
807
|
child_policy_.reset();
|
808
|
+
} else {
|
809
|
+
pending_config_ = std::move(*config);
|
811
810
|
}
|
812
811
|
}
|
813
812
|
|
@@ -843,7 +842,7 @@ void RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
|
|
843
842
|
UpdateArgs update_args;
|
844
843
|
update_args.config = std::move(pending_config_);
|
845
844
|
update_args.addresses = lb_policy_->addresses_;
|
846
|
-
update_args.args =
|
845
|
+
update_args.args = lb_policy_->channel_args_;
|
847
846
|
child_policy_->UpdateLocked(std::move(update_args));
|
848
847
|
}
|
849
848
|
|
@@ -853,7 +852,7 @@ void RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
|
|
853
852
|
|
854
853
|
RefCountedPtr<SubchannelInterface>
|
855
854
|
RlsLb::ChildPolicyWrapper::ChildPolicyHelper::CreateSubchannel(
|
856
|
-
ServerAddress address, const
|
855
|
+
ServerAddress address, const ChannelArgs& args) {
|
857
856
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
|
858
857
|
gpr_log(GPR_INFO,
|
859
858
|
"[rlslb %p] ChildPolicyWrapper=%p [%s] ChildPolicyHelper=%p: "
|
@@ -1544,41 +1543,32 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
|
|
1544
1543
|
// Get channel creds from parent channel.
|
1545
1544
|
// TODO(roth): Once we eliminate insecure builds, get this via a
|
1546
1545
|
// method on the helper instead of digging through channel args.
|
1547
|
-
|
1548
|
-
grpc_channel_credentials_find_in_args(lb_policy_->channel_args_);
|
1546
|
+
auto* creds = lb_policy_->channel_args_.GetObject<grpc_channel_credentials>();
|
1549
1547
|
// Use the parent channel's authority.
|
1550
1548
|
std::string authority(lb_policy_->channel_control_helper()->GetAuthority());
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
const_cast<char*>(authority.c_str())),
|
1555
|
-
grpc_channel_arg_integer_create(
|
1556
|
-
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
1557
|
-
};
|
1549
|
+
ChannelArgs args = ChannelArgs()
|
1550
|
+
.Set(GRPC_ARG_DEFAULT_AUTHORITY, authority)
|
1551
|
+
.Set(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL, 1);
|
1558
1552
|
// Propagate fake security connector expected targets, if any.
|
1559
1553
|
// (This is ugly, but it seems better than propagating all channel args
|
1560
1554
|
// from the parent channel by default and then having a giant
|
1561
1555
|
// exclude list of args to strip out, like we do in grpclb.)
|
1562
|
-
|
1563
|
-
lb_policy_->channel_args_
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1556
|
+
absl::optional<absl::string_view> fake_security_expected_targets =
|
1557
|
+
lb_policy_->channel_args_.GetString(
|
1558
|
+
GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS);
|
1559
|
+
if (fake_security_expected_targets.has_value()) {
|
1560
|
+
args = args.Set(GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS,
|
1561
|
+
*fake_security_expected_targets);
|
1568
1562
|
}
|
1569
1563
|
// Add service config args if needed.
|
1570
1564
|
const std::string& service_config =
|
1571
1565
|
lb_policy_->config_->rls_channel_service_config();
|
1572
1566
|
if (!service_config.empty()) {
|
1573
|
-
args.
|
1574
|
-
|
1575
|
-
const_cast<char*>(service_config.c_str())));
|
1576
|
-
args.push_back(grpc_channel_arg_integer_create(
|
1577
|
-
const_cast<char*>(GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION), 1));
|
1567
|
+
args = args.Set(GRPC_ARG_SERVICE_CONFIG, service_config)
|
1568
|
+
.Set(GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION, 1);
|
1578
1569
|
}
|
1579
|
-
grpc_channel_args rls_channel_args = {args.size(), args.data()};
|
1580
1570
|
channel_ = grpc_channel_create(lb_policy_->config_->lookup_service().c_str(),
|
1581
|
-
creds,
|
1571
|
+
creds, args.ToC().get());
|
1582
1572
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
|
1583
1573
|
gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p: created channel %p for %s",
|
1584
1574
|
lb_policy_.get(), this, channel_,
|
@@ -1589,8 +1579,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
|
|
1589
1579
|
channelz::ChannelNode* child_channelz_node =
|
1590
1580
|
grpc_channel_get_channelz_node(channel_);
|
1591
1581
|
channelz::ChannelNode* parent_channelz_node =
|
1592
|
-
|
1593
|
-
lb_policy_->channel_args_, GRPC_ARG_CHANNELZ_CHANNEL_NODE);
|
1582
|
+
lb_policy_->channel_args_.GetObject<channelz::ChannelNode>();
|
1594
1583
|
if (child_channelz_node != nullptr && parent_channelz_node != nullptr) {
|
1595
1584
|
parent_channelz_node->AddChildChannel(child_channelz_node->uuid());
|
1596
1585
|
parent_channelz_node_ = parent_channelz_node->Ref();
|
@@ -1890,18 +1879,17 @@ RlsLb::ResponseInfo RlsLb::RlsRequest::ParseResponseProto() {
|
|
1890
1879
|
// RlsLb
|
1891
1880
|
//
|
1892
1881
|
|
1893
|
-
std::string GetServerUri(const
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
absl::StatusOr<URI> uri = URI::Parse(server_uri_str);
|
1882
|
+
std::string GetServerUri(const ChannelArgs& args) {
|
1883
|
+
auto server_uri_str = args.GetString(GRPC_ARG_SERVER_URI);
|
1884
|
+
GPR_ASSERT(server_uri_str.has_value());
|
1885
|
+
absl::StatusOr<URI> uri = URI::Parse(*server_uri_str);
|
1898
1886
|
GPR_ASSERT(uri.ok());
|
1899
1887
|
return std::string(absl::StripPrefix(uri->path(), "/"));
|
1900
1888
|
}
|
1901
1889
|
|
1902
1890
|
RlsLb::RlsLb(Args args)
|
1903
1891
|
: LoadBalancingPolicy(std::move(args)),
|
1904
|
-
server_name_(GetServerUri(
|
1892
|
+
server_name_(GetServerUri(channel_args())),
|
1905
1893
|
cache_(this) {
|
1906
1894
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
|
1907
1895
|
gpr_log(GPR_INFO, "[rlslb %p] policy created", this);
|
@@ -1933,14 +1921,12 @@ void RlsLb::UpdateLocked(UpdateArgs args) {
|
|
1933
1921
|
old_addresses = addresses_;
|
1934
1922
|
}
|
1935
1923
|
// Swap out channel args.
|
1936
|
-
|
1937
|
-
channel_args_ = grpc_channel_args_copy(args.args);
|
1924
|
+
channel_args_ = std::move(args.args);
|
1938
1925
|
// Determine whether we need to update all child policies.
|
1939
1926
|
bool update_child_policies =
|
1940
1927
|
old_config == nullptr ||
|
1941
1928
|
old_config->child_policy_config() != config_->child_policy_config() ||
|
1942
|
-
old_addresses != addresses_ ||
|
1943
|
-
grpc_channel_args_compare(args.args, channel_args_) != 0;
|
1929
|
+
old_addresses != addresses_ || args.args != channel_args_;
|
1944
1930
|
// If default target changes, swap out child policy.
|
1945
1931
|
bool created_default_child = false;
|
1946
1932
|
if (old_config == nullptr ||
|
@@ -2050,9 +2036,7 @@ void RlsLb::ShutdownLocked() {
|
|
2050
2036
|
MutexLock lock(&mu_);
|
2051
2037
|
is_shutdown_ = true;
|
2052
2038
|
config_.reset(DEBUG_LOCATION, "ShutdownLocked");
|
2053
|
-
|
2054
|
-
grpc_channel_args_destroy(channel_args_);
|
2055
|
-
}
|
2039
|
+
channel_args_ = ChannelArgs();
|
2056
2040
|
cache_.Shutdown();
|
2057
2041
|
request_map_.clear();
|
2058
2042
|
rls_channel_.reset();
|
@@ -2457,43 +2441,42 @@ grpc_error_handle ValidateChildPolicyList(
|
|
2457
2441
|
child_policy_config_target_field_name, target, child_policy_config);
|
2458
2442
|
if (!GRPC_ERROR_IS_NONE(error)) return error;
|
2459
2443
|
// Parse the config.
|
2460
|
-
|
2461
|
-
|
2462
|
-
|
2463
|
-
|
2444
|
+
auto parsed_config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
2445
|
+
*child_policy_config);
|
2446
|
+
if (!parsed_config.ok()) {
|
2447
|
+
return absl_status_to_grpc_error(parsed_config.status());
|
2448
|
+
}
|
2464
2449
|
// Find the chosen config and return it in JSON form.
|
2465
2450
|
// We remove all non-selected configs, and in the selected config, we leave
|
2466
2451
|
// the target field in place, set to the default value. This slightly
|
2467
2452
|
// optimizes what we need to do later when we update a child policy for a
|
2468
2453
|
// given target.
|
2469
|
-
|
2470
|
-
|
2471
|
-
|
2472
|
-
|
2473
|
-
|
2474
|
-
|
2475
|
-
break;
|
2476
|
-
}
|
2454
|
+
for (Json& config : *(child_policy_config->mutable_array())) {
|
2455
|
+
if (config.object_value().begin()->first == (*parsed_config)->name()) {
|
2456
|
+
Json save_config = std::move(config);
|
2457
|
+
child_policy_config->mutable_array()->clear();
|
2458
|
+
child_policy_config->mutable_array()->push_back(std::move(save_config));
|
2459
|
+
break;
|
2477
2460
|
}
|
2478
2461
|
}
|
2479
2462
|
// If default target is set, return the parsed config.
|
2480
2463
|
if (!default_target.empty()) {
|
2481
|
-
*default_child_policy_parsed_config = std::move(parsed_config);
|
2464
|
+
*default_child_policy_parsed_config = std::move(*parsed_config);
|
2482
2465
|
}
|
2483
2466
|
return GRPC_ERROR_NONE;
|
2484
2467
|
}
|
2485
2468
|
|
2486
2469
|
class RlsLbFactory : public LoadBalancingPolicyFactory {
|
2487
2470
|
public:
|
2488
|
-
|
2471
|
+
absl::string_view name() const override { return kRls; }
|
2489
2472
|
|
2490
2473
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
2491
2474
|
LoadBalancingPolicy::Args args) const override {
|
2492
2475
|
return MakeOrphanable<RlsLb>(std::move(args));
|
2493
2476
|
}
|
2494
2477
|
|
2495
|
-
RefCountedPtr<LoadBalancingPolicy::Config
|
2496
|
-
|
2478
|
+
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
|
2479
|
+
ParseLoadBalancingConfig(const Json& config) const override {
|
2497
2480
|
std::vector<grpc_error_handle> error_list;
|
2498
2481
|
// Parse routeLookupConfig.
|
2499
2482
|
RlsLbConfig::RouteLookupConfig route_lookup_config;
|
@@ -2517,7 +2500,7 @@ class RlsLbFactory : public LoadBalancingPolicyFactory {
|
|
2517
2500
|
*rls_channel_service_config_json_obj);
|
2518
2501
|
rls_channel_service_config = rls_channel_service_config_json.Dump();
|
2519
2502
|
auto service_config = MakeRefCounted<ServiceConfigImpl>(
|
2520
|
-
|
2503
|
+
ChannelArgs(), rls_channel_service_config,
|
2521
2504
|
std::move(rls_channel_service_config_json), &child_error);
|
2522
2505
|
if (!GRPC_ERROR_IS_NONE(child_error)) {
|
2523
2506
|
error_list.push_back(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
@@ -2558,8 +2541,13 @@ class RlsLbFactory : public LoadBalancingPolicyFactory {
|
|
2558
2541
|
}
|
2559
2542
|
}
|
2560
2543
|
// Return result.
|
2561
|
-
|
2562
|
-
|
2544
|
+
if (!error_list.empty()) {
|
2545
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_VECTOR(
|
2546
|
+
"errors parsing RLS LB policy config", &error_list);
|
2547
|
+
std::string error_string = grpc_error_std_string(error);
|
2548
|
+
GRPC_ERROR_UNREF(error);
|
2549
|
+
return absl::InvalidArgumentError(error_string);
|
2550
|
+
}
|
2563
2551
|
return MakeRefCounted<RlsLbConfig>(
|
2564
2552
|
std::move(route_lookup_config), std::move(rls_channel_service_config),
|
2565
2553
|
std::move(child_policy_config),
|
@@ -29,23 +29,23 @@
|
|
29
29
|
#include "absl/status/status.h"
|
30
30
|
#include "absl/status/statusor.h"
|
31
31
|
#include "absl/strings/str_cat.h"
|
32
|
+
#include "absl/strings/string_view.h"
|
32
33
|
#include "absl/types/optional.h"
|
33
34
|
|
34
35
|
#include <grpc/impl/codegen/connectivity_state.h>
|
35
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
36
36
|
#include <grpc/support/log.h>
|
37
37
|
|
38
|
-
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
39
38
|
#include "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h"
|
40
|
-
#include "src/core/
|
41
|
-
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
42
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
39
|
+
#include "src/core/lib/channel/channel_args.h"
|
43
40
|
#include "src/core/lib/debug/trace.h"
|
44
41
|
#include "src/core/lib/gprpp/debug_location.h"
|
45
42
|
#include "src/core/lib/gprpp/orphanable.h"
|
46
43
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
47
|
-
#include "src/core/lib/iomgr/error.h"
|
48
44
|
#include "src/core/lib/json/json.h"
|
45
|
+
#include "src/core/lib/load_balancing/lb_policy.h"
|
46
|
+
#include "src/core/lib/load_balancing/lb_policy_factory.h"
|
47
|
+
#include "src/core/lib/load_balancing/lb_policy_registry.h"
|
48
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
49
49
|
#include "src/core/lib/resolver/server_address.h"
|
50
50
|
#include "src/core/lib/transport/connectivity_state.h"
|
51
51
|
|
@@ -59,13 +59,13 @@ namespace {
|
|
59
59
|
// round_robin LB policy
|
60
60
|
//
|
61
61
|
|
62
|
-
constexpr
|
62
|
+
constexpr absl::string_view kRoundRobin = "round_robin";
|
63
63
|
|
64
64
|
class RoundRobin : public LoadBalancingPolicy {
|
65
65
|
public:
|
66
66
|
explicit RoundRobin(Args args);
|
67
67
|
|
68
|
-
|
68
|
+
absl::string_view name() const override { return kRoundRobin; }
|
69
69
|
|
70
70
|
void UpdateLocked(UpdateArgs args) override;
|
71
71
|
void ResetBackoffLocked() override;
|
@@ -120,7 +120,7 @@ class RoundRobin : public LoadBalancingPolicy {
|
|
120
120
|
RoundRobinSubchannelData> {
|
121
121
|
public:
|
122
122
|
RoundRobinSubchannelList(RoundRobin* policy, ServerAddressList addresses,
|
123
|
-
const
|
123
|
+
const ChannelArgs& args)
|
124
124
|
: SubchannelList(policy,
|
125
125
|
(GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)
|
126
126
|
? "RoundRobinSubchannelList"
|
@@ -289,7 +289,8 @@ void RoundRobin::UpdateLocked(UpdateArgs args) {
|
|
289
289
|
this, latest_pending_subchannel_list_.get());
|
290
290
|
}
|
291
291
|
latest_pending_subchannel_list_ = MakeOrphanable<RoundRobinSubchannelList>(
|
292
|
-
this, std::move(addresses),
|
292
|
+
this, std::move(addresses), args.args);
|
293
|
+
latest_pending_subchannel_list_->StartWatchingLocked();
|
293
294
|
// If the new list is empty, immediately promote it to
|
294
295
|
// subchannel_list_ and report TRANSIENT_FAILURE.
|
295
296
|
if (latest_pending_subchannel_list_->num_subchannels() == 0) {
|
@@ -499,7 +500,7 @@ void RoundRobin::RoundRobinSubchannelData::UpdateLogicalConnectivityStateLocked(
|
|
499
500
|
|
500
501
|
class RoundRobinConfig : public LoadBalancingPolicy::Config {
|
501
502
|
public:
|
502
|
-
|
503
|
+
absl::string_view name() const override { return kRoundRobin; }
|
503
504
|
};
|
504
505
|
|
505
506
|
class RoundRobinFactory : public LoadBalancingPolicyFactory {
|
@@ -509,10 +510,10 @@ class RoundRobinFactory : public LoadBalancingPolicyFactory {
|
|
509
510
|
return MakeOrphanable<RoundRobin>(std::move(args));
|
510
511
|
}
|
511
512
|
|
512
|
-
|
513
|
+
absl::string_view name() const override { return kRoundRobin; }
|
513
514
|
|
514
|
-
RefCountedPtr<LoadBalancingPolicy::Config
|
515
|
-
|
515
|
+
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
|
516
|
+
ParseLoadBalancingConfig(const Json& /*json*/) const override {
|
516
517
|
return MakeRefCounted<RoundRobinConfig>();
|
517
518
|
}
|
518
519
|
};
|
@@ -31,16 +31,16 @@
|
|
31
31
|
#include "absl/types/optional.h"
|
32
32
|
|
33
33
|
#include <grpc/impl/codegen/connectivity_state.h>
|
34
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
35
34
|
#include <grpc/support/log.h>
|
36
35
|
|
37
|
-
#include "src/core/
|
38
|
-
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
36
|
+
#include "src/core/lib/channel/channel_args.h"
|
39
37
|
#include "src/core/lib/gprpp/debug_location.h"
|
40
38
|
#include "src/core/lib/gprpp/manual_constructor.h"
|
41
39
|
#include "src/core/lib/gprpp/orphanable.h"
|
42
40
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
43
41
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
42
|
+
#include "src/core/lib/load_balancing/lb_policy.h"
|
43
|
+
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
44
44
|
#include "src/core/lib/resolver/server_address.h"
|
45
45
|
#include "src/core/lib/transport/connectivity_state.h"
|
46
46
|
|
@@ -178,9 +178,9 @@ class SubchannelData {
|
|
178
178
|
template <typename SubchannelListType, typename SubchannelDataType>
|
179
179
|
class SubchannelList : public InternallyRefCounted<SubchannelListType> {
|
180
180
|
public:
|
181
|
-
//
|
182
|
-
//
|
183
|
-
|
181
|
+
// Starts watching the connectivity state of all subchannels.
|
182
|
+
// Must be called immediately after instantiation.
|
183
|
+
void StartWatchingLocked();
|
184
184
|
|
185
185
|
// The number of subchannels in the list.
|
186
186
|
size_t num_subchannels() const { return subchannels_.size(); }
|
@@ -209,7 +209,7 @@ class SubchannelList : public InternallyRefCounted<SubchannelListType> {
|
|
209
209
|
SubchannelList(LoadBalancingPolicy* policy, const char* tracer,
|
210
210
|
ServerAddressList addresses,
|
211
211
|
LoadBalancingPolicy::ChannelControlHelper* helper,
|
212
|
-
const
|
212
|
+
const ChannelArgs& args);
|
213
213
|
|
214
214
|
virtual ~SubchannelList();
|
215
215
|
|
@@ -225,7 +225,9 @@ class SubchannelList : public InternallyRefCounted<SubchannelListType> {
|
|
225
225
|
const char* tracer_;
|
226
226
|
|
227
227
|
// The list of subchannels.
|
228
|
-
|
228
|
+
// We use ManualConstructor here to support SubchannelDataType classes
|
229
|
+
// that are not copyable.
|
230
|
+
std::vector<ManualConstructor<SubchannelDataType>> subchannels_;
|
229
231
|
|
230
232
|
// Is this list shutting down? This may be true due to the shutdown of the
|
231
233
|
// policy itself or because a newer update has arrived while this one hadn't
|
@@ -362,8 +364,7 @@ template <typename SubchannelListType, typename SubchannelDataType>
|
|
362
364
|
SubchannelList<SubchannelListType, SubchannelDataType>::SubchannelList(
|
363
365
|
LoadBalancingPolicy* policy, const char* tracer,
|
364
366
|
ServerAddressList addresses,
|
365
|
-
LoadBalancingPolicy::ChannelControlHelper* helper,
|
366
|
-
const grpc_channel_args& args)
|
367
|
+
LoadBalancingPolicy::ChannelControlHelper* helper, const ChannelArgs& args)
|
367
368
|
: InternallyRefCounted<SubchannelListType>(tracer),
|
368
369
|
policy_(policy),
|
369
370
|
tracer_(tracer) {
|
@@ -396,10 +397,6 @@ SubchannelList<SubchannelListType, SubchannelDataType>::SubchannelList(
|
|
396
397
|
subchannels_.emplace_back();
|
397
398
|
subchannels_.back().Init(this, std::move(address), std::move(subchannel));
|
398
399
|
}
|
399
|
-
// Start watching subchannel connectivity state.
|
400
|
-
for (auto& sd : subchannels_) {
|
401
|
-
sd->StartConnectivityWatchLocked();
|
402
|
-
}
|
403
400
|
}
|
404
401
|
|
405
402
|
template <typename SubchannelListType, typename SubchannelDataType>
|
@@ -413,6 +410,14 @@ SubchannelList<SubchannelListType, SubchannelDataType>::~SubchannelList() {
|
|
413
410
|
}
|
414
411
|
}
|
415
412
|
|
413
|
+
template <typename SubchannelListType, typename SubchannelDataType>
|
414
|
+
void SubchannelList<SubchannelListType,
|
415
|
+
SubchannelDataType>::StartWatchingLocked() {
|
416
|
+
for (auto& sd : subchannels_) {
|
417
|
+
sd->StartConnectivityWatchLocked();
|
418
|
+
}
|
419
|
+
}
|
420
|
+
|
416
421
|
template <typename SubchannelListType, typename SubchannelDataType>
|
417
422
|
void SubchannelList<SubchannelListType, SubchannelDataType>::ShutdownLocked() {
|
418
423
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|