grpc 1.48.0 → 1.49.0.pre1
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/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
@@ -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;
|
@@ -426,7 +426,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
426
426
|
: parent_(std::move(parent)) {}
|
427
427
|
|
428
428
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
429
|
-
ServerAddress address, const
|
429
|
+
ServerAddress address, const ChannelArgs& args) override;
|
430
430
|
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
431
431
|
std::unique_ptr<SubchannelPicker> picker) override;
|
432
432
|
void RequestReresolution() override;
|
@@ -470,12 +470,10 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
470
470
|
RefCountedPtr<GrpcLb> parent_;
|
471
471
|
};
|
472
472
|
|
473
|
-
~GrpcLb() override;
|
474
|
-
|
475
473
|
void ShutdownLocked() override;
|
476
474
|
|
477
475
|
// Helper functions used in UpdateLocked().
|
478
|
-
void UpdateBalancerChannelLocked(const
|
476
|
+
void UpdateBalancerChannelLocked(const ChannelArgs& args);
|
479
477
|
|
480
478
|
void CancelBalancerChannelConnectivityWatchLocked();
|
481
479
|
|
@@ -491,10 +489,10 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
491
489
|
void OnBalancerCallRetryTimerLocked(grpc_error_handle error);
|
492
490
|
|
493
491
|
// Methods for dealing with the child policy.
|
494
|
-
|
492
|
+
ChannelArgs CreateChildPolicyArgsLocked(
|
495
493
|
bool is_backend_from_grpclb_load_balancer);
|
496
494
|
OrphanablePtr<LoadBalancingPolicy> CreateChildPolicyLocked(
|
497
|
-
const
|
495
|
+
const ChannelArgs& args);
|
498
496
|
void CreateOrUpdateChildPolicyLocked();
|
499
497
|
|
500
498
|
// Subchannel caching.
|
@@ -510,7 +508,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
510
508
|
RefCountedPtr<GrpcLbConfig> config_;
|
511
509
|
|
512
510
|
// Current channel args from the resolver.
|
513
|
-
|
511
|
+
ChannelArgs args_;
|
514
512
|
|
515
513
|
// Internal state.
|
516
514
|
bool shutting_down_ = false;
|
@@ -674,7 +672,7 @@ ServerAddressList GrpcLb::Serverlist::GetServerAddressList(
|
|
674
672
|
absl::make_unique<TokenAndClientStatsAttribute>(std::move(lb_token),
|
675
673
|
stats);
|
676
674
|
// Add address.
|
677
|
-
addresses.emplace_back(addr,
|
675
|
+
addresses.emplace_back(addr, ChannelArgs(), std::move(attributes));
|
678
676
|
}
|
679
677
|
return addresses;
|
680
678
|
}
|
@@ -759,7 +757,7 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
759
757
|
//
|
760
758
|
|
761
759
|
RefCountedPtr<SubchannelInterface> GrpcLb::Helper::CreateSubchannel(
|
762
|
-
ServerAddress address, const
|
760
|
+
ServerAddress address, const ChannelArgs& args) {
|
763
761
|
if (parent_->shutting_down_) return nullptr;
|
764
762
|
const TokenAndClientStatsAttribute* attribute =
|
765
763
|
static_cast<const TokenAndClientStatsAttribute*>(
|
@@ -1343,7 +1341,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1343
1341
|
// helper code for creating balancer channel
|
1344
1342
|
//
|
1345
1343
|
|
1346
|
-
ServerAddressList ExtractBalancerAddresses(const
|
1344
|
+
ServerAddressList ExtractBalancerAddresses(const ChannelArgs& args) {
|
1347
1345
|
const ServerAddressList* addresses =
|
1348
1346
|
FindGrpclbBalancerAddressesInChannelArgs(args);
|
1349
1347
|
if (addresses != nullptr) return *addresses;
|
@@ -1357,88 +1355,78 @@ ServerAddressList ExtractBalancerAddresses(const grpc_channel_args& args) {
|
|
1357
1355
|
* - \a response_generator: in order to propagate updates from the resolver
|
1358
1356
|
* above the grpclb policy.
|
1359
1357
|
* - \a args: other args inherited from the grpclb policy. */
|
1360
|
-
|
1358
|
+
ChannelArgs BuildBalancerChannelArgs(
|
1361
1359
|
FakeResolverResponseGenerator* response_generator,
|
1362
|
-
const
|
1363
|
-
//
|
1364
|
-
|
1360
|
+
const ChannelArgs& args) {
|
1361
|
+
// Create channel args for channel credentials that does not contain bearer
|
1362
|
+
// token credentials.
|
1363
|
+
auto* channel_credentials = args.GetObject<grpc_channel_credentials>();
|
1364
|
+
GPR_ASSERT(channel_credentials != nullptr);
|
1365
|
+
RefCountedPtr<grpc_channel_credentials> creds_sans_call_creds =
|
1366
|
+
channel_credentials->duplicate_without_call_credentials();
|
1367
|
+
GPR_ASSERT(creds_sans_call_creds != nullptr);
|
1368
|
+
return args
|
1365
1369
|
// LB policy name, since we want to use the default (pick_first) in
|
1366
1370
|
// the LB channel.
|
1367
|
-
GRPC_ARG_LB_POLICY_NAME
|
1371
|
+
.Remove(GRPC_ARG_LB_POLICY_NAME)
|
1368
1372
|
// Strip out the service config, since we don't want the LB policy
|
1369
1373
|
// config specified for the parent channel to affect the LB channel.
|
1370
|
-
GRPC_ARG_SERVICE_CONFIG
|
1374
|
+
.Remove(GRPC_ARG_SERVICE_CONFIG)
|
1371
1375
|
// The channel arg for the server URI, since that will be different for
|
1372
1376
|
// the LB channel than for the parent channel. The client channel
|
1373
1377
|
// factory will re-add this arg with the right value.
|
1374
|
-
GRPC_ARG_SERVER_URI
|
1378
|
+
.Remove(GRPC_ARG_SERVER_URI)
|
1375
1379
|
// The fake resolver response generator, because we are replacing it
|
1376
1380
|
// with the one from the grpclb policy, used to propagate updates to
|
1377
1381
|
// the LB channel.
|
1378
|
-
GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR
|
1382
|
+
.Remove(GRPC_ARG_FAKE_RESOLVER_RESPONSE_GENERATOR)
|
1379
1383
|
// The LB channel should use the authority indicated by the target
|
1380
1384
|
// authority table (see \a ModifyGrpclbBalancerChannelArgs),
|
1381
1385
|
// as opposed to the authority from the parent channel.
|
1382
|
-
GRPC_ARG_DEFAULT_AUTHORITY
|
1386
|
+
.Remove(GRPC_ARG_DEFAULT_AUTHORITY)
|
1383
1387
|
// Just as for \a GRPC_ARG_DEFAULT_AUTHORITY, the LB channel should be
|
1384
1388
|
// treated as a stand-alone channel and not inherit this argument from the
|
1385
1389
|
// args of the parent channel.
|
1386
|
-
GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
|
1390
|
+
.Remove(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG)
|
1387
1391
|
// Don't want to pass down channelz node from parent; the balancer
|
1388
1392
|
// channel will get its own.
|
1389
|
-
GRPC_ARG_CHANNELZ_CHANNEL_NODE
|
1393
|
+
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
1390
1394
|
// Remove the channel args for channel credentials and replace it
|
1391
1395
|
// with a version that does not contain call credentials. The loadbalancer
|
1392
1396
|
// 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),
|
1397
|
+
.Remove(GRPC_ARG_CHANNEL_CREDENTIALS)
|
1408
1398
|
// A channel arg indicating the target is a grpclb load balancer.
|
1409
|
-
|
1410
|
-
const_cast<char*>(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER), 1),
|
1399
|
+
.Set(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER, 1)
|
1411
1400
|
// Tells channelz that this is an internal channel.
|
1412
|
-
|
1413
|
-
const_cast<char*>(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL), 1),
|
1401
|
+
.Set(GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL, 1)
|
1414
1402
|
// A channel args for new channel credentials that does not contain bearer
|
1415
1403
|
// tokens.
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
args_to_add.size());
|
1404
|
+
.SetObject(creds_sans_call_creds)
|
1405
|
+
// The fake resolver response generator, which we use to inject
|
1406
|
+
// address updates into the LB channel.
|
1407
|
+
.SetObject(response_generator->Ref());
|
1421
1408
|
}
|
1422
1409
|
|
1423
1410
|
//
|
1424
1411
|
// ctor and dtor
|
1425
1412
|
//
|
1426
1413
|
|
1427
|
-
std::string GetServerNameFromChannelArgs(const
|
1428
|
-
|
1429
|
-
|
1430
|
-
GPR_ASSERT(server_uri != nullptr);
|
1431
|
-
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1414
|
+
std::string GetServerNameFromChannelArgs(const ChannelArgs& args) {
|
1415
|
+
absl::StatusOr<URI> uri =
|
1416
|
+
URI::Parse(args.GetString(GRPC_ARG_SERVER_URI).value());
|
1432
1417
|
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1433
1418
|
return std::string(absl::StripPrefix(uri->path(), "/"));
|
1434
1419
|
}
|
1435
1420
|
|
1436
1421
|
GrpcLb::GrpcLb(Args args)
|
1437
1422
|
: LoadBalancingPolicy(std::move(args)),
|
1438
|
-
server_name_(GetServerNameFromChannelArgs(
|
1423
|
+
server_name_(GetServerNameFromChannelArgs(channel_args())),
|
1439
1424
|
response_generator_(MakeRefCounted<FakeResolverResponseGenerator>()),
|
1440
|
-
lb_call_timeout_(
|
1441
|
-
|
1425
|
+
lb_call_timeout_(std::max(
|
1426
|
+
Duration::Zero(),
|
1427
|
+
channel_args()
|
1428
|
+
.GetDurationFromIntMillis(GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS)
|
1429
|
+
.value_or(Duration::Zero()))),
|
1442
1430
|
lb_call_backoff_(
|
1443
1431
|
BackOff::Options()
|
1444
1432
|
.set_initial_backoff(Duration::Seconds(
|
@@ -1447,15 +1435,19 @@ GrpcLb::GrpcLb(Args args)
|
|
1447
1435
|
.set_jitter(GRPC_GRPCLB_RECONNECT_JITTER)
|
1448
1436
|
.set_max_backoff(Duration::Seconds(
|
1449
1437
|
GRPC_GRPCLB_RECONNECT_MAX_BACKOFF_SECONDS))),
|
1450
|
-
fallback_at_startup_timeout_(
|
1451
|
-
Duration::
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1438
|
+
fallback_at_startup_timeout_(std::max(
|
1439
|
+
Duration::Zero(),
|
1440
|
+
channel_args()
|
1441
|
+
.GetDurationFromIntMillis(GRPC_ARG_GRPCLB_FALLBACK_TIMEOUT_MS)
|
1442
|
+
.value_or(Duration::Milliseconds(
|
1443
|
+
GRPC_GRPCLB_DEFAULT_FALLBACK_TIMEOUT_MS)))),
|
1444
|
+
subchannel_cache_interval_(std::max(
|
1445
|
+
Duration::Zero(),
|
1446
|
+
channel_args()
|
1447
|
+
.GetDurationFromIntMillis(
|
1448
|
+
GRPC_ARG_GRPCLB_SUBCHANNEL_CACHE_INTERVAL_MS)
|
1449
|
+
.value_or(Duration::Milliseconds(
|
1450
|
+
GRPC_GRPCLB_DEFAULT_SUBCHANNEL_DELETION_DELAY_MS)))) {
|
1459
1451
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1460
1452
|
gpr_log(GPR_INFO,
|
1461
1453
|
"[grpclb %p] Will use '%s' as the server name for LB request.",
|
@@ -1470,8 +1462,6 @@ GrpcLb::GrpcLb(Args args)
|
|
1470
1462
|
nullptr);
|
1471
1463
|
}
|
1472
1464
|
|
1473
|
-
GrpcLb::~GrpcLb() { grpc_channel_args_destroy(args_); }
|
1474
|
-
|
1475
1465
|
void GrpcLb::ShutdownLocked() {
|
1476
1466
|
shutting_down_ = true;
|
1477
1467
|
lb_calld_.reset();
|
@@ -1538,7 +1528,7 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1538
1528
|
}
|
1539
1529
|
resolution_note_ = std::move(args.resolution_note);
|
1540
1530
|
// Update balancer channel.
|
1541
|
-
UpdateBalancerChannelLocked(
|
1531
|
+
UpdateBalancerChannelLocked(args.args);
|
1542
1532
|
// Update the existing child policy, if any.
|
1543
1533
|
if (child_policy_ != nullptr) CreateOrUpdateChildPolicyLocked();
|
1544
1534
|
// If this is the initial update, start the fallback-at-startup checks
|
@@ -1569,37 +1559,28 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1569
1559
|
// helpers for UpdateLocked()
|
1570
1560
|
//
|
1571
1561
|
|
1572
|
-
void GrpcLb::UpdateBalancerChannelLocked(const
|
1562
|
+
void GrpcLb::UpdateBalancerChannelLocked(const ChannelArgs& args) {
|
1573
1563
|
// Make sure that GRPC_ARG_LB_POLICY_NAME is set in channel args,
|
1574
1564
|
// 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);
|
1565
|
+
args_ = args.Set(GRPC_ARG_LB_POLICY_NAME, "grpclb");
|
1581
1566
|
// Construct args for balancer channel.
|
1582
1567
|
ServerAddressList balancer_addresses = ExtractBalancerAddresses(args);
|
1583
|
-
|
1584
|
-
BuildBalancerChannelArgs(response_generator_.get(),
|
1568
|
+
ChannelArgs lb_channel_args =
|
1569
|
+
BuildBalancerChannelArgs(response_generator_.get(), args);
|
1585
1570
|
// Create balancer channel if needed.
|
1586
1571
|
if (lb_channel_ == nullptr) {
|
1587
1572
|
std::string uri_str = absl::StrCat("fake:///", server_name_);
|
1588
|
-
|
1589
|
-
grpc_channel_credentials_find_in_args(lb_channel_args);
|
1573
|
+
auto* creds = lb_channel_args.GetObject<grpc_channel_credentials>();
|
1590
1574
|
GPR_ASSERT(creds != nullptr);
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
lb_channel_ = grpc_channel_create(uri_str.c_str(), creds, new_args);
|
1575
|
+
lb_channel_ = grpc_channel_create(
|
1576
|
+
uri_str.c_str(), creds,
|
1577
|
+
lb_channel_args.Remove(GRPC_ARG_CHANNEL_CREDENTIALS).ToC().get());
|
1595
1578
|
GPR_ASSERT(lb_channel_ != nullptr);
|
1596
|
-
grpc_channel_args_destroy(new_args);
|
1597
1579
|
// Set up channelz linkage.
|
1598
1580
|
channelz::ChannelNode* child_channelz_node =
|
1599
1581
|
grpc_channel_get_channelz_node(lb_channel_);
|
1600
1582
|
channelz::ChannelNode* parent_channelz_node =
|
1601
|
-
|
1602
|
-
&args, GRPC_ARG_CHANNELZ_CHANNEL_NODE);
|
1583
|
+
args.GetObject<channelz::ChannelNode>();
|
1603
1584
|
if (child_channelz_node != nullptr && parent_channelz_node != nullptr) {
|
1604
1585
|
parent_channelz_node->AddChildChannel(child_channelz_node->uuid());
|
1605
1586
|
parent_channelz_node_ = parent_channelz_node->Ref();
|
@@ -1734,22 +1715,19 @@ void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
|
1734
1715
|
// code for interacting with the child policy
|
1735
1716
|
//
|
1736
1717
|
|
1737
|
-
|
1718
|
+
ChannelArgs GrpcLb::CreateChildPolicyArgsLocked(
|
1738
1719
|
bool is_backend_from_grpclb_load_balancer) {
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
is_backend_from_grpclb_load_balancer));
|
1720
|
+
ChannelArgs r =
|
1721
|
+
args_.Set(GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER,
|
1722
|
+
is_backend_from_grpclb_load_balancer);
|
1743
1723
|
if (is_backend_from_grpclb_load_balancer) {
|
1744
|
-
|
1745
|
-
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1));
|
1724
|
+
r = r.Set(GRPC_ARG_INHIBIT_HEALTH_CHECKING, 1);
|
1746
1725
|
}
|
1747
|
-
return
|
1748
|
-
args_to_add.size());
|
1726
|
+
return r;
|
1749
1727
|
}
|
1750
1728
|
|
1751
1729
|
OrphanablePtr<LoadBalancingPolicy> GrpcLb::CreateChildPolicyLocked(
|
1752
|
-
const
|
1730
|
+
const ChannelArgs& args) {
|
1753
1731
|
LoadBalancingPolicy::Args lb_policy_args;
|
1754
1732
|
lb_policy_args.work_serializer = work_serializer();
|
1755
1733
|
lb_policy_args.args = args;
|
@@ -1793,7 +1771,7 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
|
|
1793
1771
|
}
|
1794
1772
|
update_args.args =
|
1795
1773
|
CreateChildPolicyArgsLocked(is_backend_from_grpclb_load_balancer);
|
1796
|
-
GPR_ASSERT(update_args.args !=
|
1774
|
+
GPR_ASSERT(update_args.args != ChannelArgs());
|
1797
1775
|
update_args.config = config_->child_policy();
|
1798
1776
|
// Create child policy if needed.
|
1799
1777
|
if (child_policy_ == nullptr) {
|
@@ -1868,28 +1846,27 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1868
1846
|
return MakeOrphanable<GrpcLb>(std::move(args));
|
1869
1847
|
}
|
1870
1848
|
|
1871
|
-
|
1849
|
+
absl::string_view name() const override { return kGrpclb; }
|
1872
1850
|
|
1873
|
-
RefCountedPtr<LoadBalancingPolicy::Config
|
1874
|
-
|
1875
|
-
GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
|
1851
|
+
absl::StatusOr<RefCountedPtr<LoadBalancingPolicy::Config>>
|
1852
|
+
ParseLoadBalancingConfig(const Json& json) const override {
|
1876
1853
|
if (json.type() == Json::Type::JSON_NULL) {
|
1877
1854
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1878
1855
|
}
|
1879
|
-
std::vector<
|
1880
|
-
Json child_policy_config_json_tmp;
|
1881
|
-
const Json* child_policy_config_json;
|
1856
|
+
std::vector<std::string> error_list;
|
1882
1857
|
std::string service_name;
|
1883
1858
|
auto it = json.object_value().find("serviceName");
|
1884
1859
|
if (it != json.object_value().end()) {
|
1885
1860
|
const Json& service_name_json = it->second;
|
1886
1861
|
if (service_name_json.type() != Json::Type::STRING) {
|
1887
|
-
error_list.
|
1888
|
-
"field:serviceName error:type should be string")
|
1862
|
+
error_list.emplace_back(
|
1863
|
+
"field:serviceName error:type should be string");
|
1889
1864
|
} else {
|
1890
1865
|
service_name = service_name_json.string_value();
|
1891
1866
|
}
|
1892
1867
|
}
|
1868
|
+
Json child_policy_config_json_tmp;
|
1869
|
+
const Json* child_policy_config_json;
|
1893
1870
|
it = json.object_value().find("childPolicy");
|
1894
1871
|
if (it == json.object_value().end()) {
|
1895
1872
|
child_policy_config_json_tmp = Json::Array{Json::Object{
|
@@ -1899,22 +1876,21 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1899
1876
|
} else {
|
1900
1877
|
child_policy_config_json = &it->second;
|
1901
1878
|
}
|
1902
|
-
|
1903
|
-
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1879
|
+
auto child_policy_config =
|
1904
1880
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1905
|
-
*child_policy_config_json
|
1906
|
-
if (!
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
1881
|
+
*child_policy_config_json);
|
1882
|
+
if (!child_policy_config.ok()) {
|
1883
|
+
error_list.emplace_back(
|
1884
|
+
absl::StrCat("error parsing childPolicy field: ",
|
1885
|
+
child_policy_config.status().message()));
|
1911
1886
|
}
|
1912
1887
|
if (error_list.empty()) {
|
1913
|
-
return MakeRefCounted<GrpcLbConfig>(std::move(child_policy_config),
|
1888
|
+
return MakeRefCounted<GrpcLbConfig>(std::move(*child_policy_config),
|
1914
1889
|
std::move(service_name));
|
1915
1890
|
} else {
|
1916
|
-
|
1917
|
-
|
1891
|
+
return absl::InvalidArgumentError(
|
1892
|
+
absl::StrCat("errors parsing grpclb LB policy config: [",
|
1893
|
+
absl::StrJoin(error_list, "; "), "]"));
|
1918
1894
|
}
|
1919
1895
|
}
|
1920
1896
|
};
|
@@ -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
|
|