grpc 1.48.0 → 1.49.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +104 -41
- data/include/grpc/event_engine/event_engine.h +19 -16
- data/include/grpc/impl/codegen/grpc_types.h +3 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +125 -200
- data/src/core/ext/filters/client_channel/client_channel.h +15 -8
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +12 -4
- data/src/core/ext/filters/client_channel/connector.h +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +53 -65
- data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +102 -131
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +63 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
- data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +170 -99
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +38 -17
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
- data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
- data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
- data/src/core/ext/filters/client_channel/subchannel.cc +49 -89
- data/src/core/ext/filters/client_channel/subchannel.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +2 -3
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/client_authority_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -3
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +35 -62
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/xds/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +53 -86
- data/src/core/ext/xds/xds_api.h +19 -28
- data/src/core/ext/xds/xds_bootstrap.cc +39 -52
- data/src/core/ext/xds/xds_bootstrap.h +28 -8
- data/src/core/ext/xds/xds_certificate_provider.h +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
- data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
- data/src/core/ext/xds/xds_client.cc +555 -1214
- data/src/core/ext/xds/xds_client.h +16 -44
- data/src/core/ext/xds/xds_client_grpc.cc +291 -0
- data/src/core/ext/xds/xds_client_grpc.h +102 -0
- data/src/core/ext/xds/xds_cluster.cc +92 -103
- data/src/core/ext/xds/xds_cluster.h +6 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +134 -110
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +80 -80
- data/src/core/ext/xds/xds_endpoint.h +4 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -20
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +329 -299
- data/src/core/ext/xds/xds_listener.h +4 -4
- data/src/core/ext/xds/xds_resource_type.h +13 -2
- data/src/core/ext/xds/xds_route_config.cc +180 -177
- data/src/core/ext/xds/xds_route_config.h +31 -17
- data/src/core/ext/xds/xds_routing.cc +3 -6
- data/src/core/ext/xds/xds_routing.h +7 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +76 -81
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +349 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +19 -17
- data/src/core/lib/address_utils/parse_address.h +8 -5
- data/src/core/lib/avl/avl.h +47 -25
- data/src/core/lib/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +113 -62
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_stack_builder.h +2 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
- data/src/core/lib/channel/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/config/core_configuration.h +48 -35
- data/src/core/lib/debug/stats.cc +12 -15
- data/src/core/lib/debug/stats.h +11 -3
- data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
- data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
- data/src/core/lib/event_engine/forkable.cc +101 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/poller.h +54 -0
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +46 -10
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
- data/src/core/lib/event_engine/promise.h +11 -2
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
- data/src/core/lib/event_engine/utils.cc +49 -0
- data/src/core/lib/event_engine/utils.h +40 -0
- data/src/core/lib/event_engine/windows/iocp.cc +149 -0
- data/src/core/lib/event_engine/windows/iocp.h +68 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
- data/src/core/lib/gpr/time.cc +11 -9
- data/src/core/lib/gpr/useful.h +29 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/no_destruct.h +94 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/table.h +0 -1
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- data/src/core/lib/http/httpcli.cc +12 -24
- data/src/core/lib/http/httpcli_security_connector.cc +11 -11
- data/src/core/lib/iomgr/call_combiner.cc +0 -26
- data/src/core/lib/iomgr/closure.h +0 -9
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +0 -773
- data/src/core/lib/iomgr/error.h +0 -145
- data/src/core/lib/iomgr/error_cfstream.cc +0 -5
- data/src/core/lib/iomgr/ev_poll_posix.cc +17 -9
- data/src/core/lib/iomgr/exec_ctx.cc +0 -12
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +29 -6
- data/src/core/lib/iomgr/resolve_address_posix.cc +42 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +44 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +118 -6
- data/src/core/lib/iomgr/timer_generic.cc +6 -8
- data/src/core/lib/json/json.h +19 -22
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_object_loader.cc +233 -0
- data/src/core/lib/json/json_object_loader.h +618 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +8 -36
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +15 -24
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +56 -8
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/basic_seq.h +43 -23
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/seq.h +25 -4
- data/src/core/lib/promise/sleep.cc +38 -42
- data/src/core/lib/promise/sleep.h +27 -24
- data/src/core/lib/promise/try_seq.h +26 -6
- data/src/core/lib/resolver/resolver.cc +0 -47
- data/src/core/lib/resolver/resolver.h +2 -12
- data/src/core/lib/resolver/resolver_factory.h +2 -3
- data/src/core/lib/resolver/resolver_registry.cc +1 -1
- data/src/core/lib/resolver/resolver_registry.h +2 -3
- data/src/core/lib/resolver/server_address.cc +11 -15
- data/src/core/lib/resolver/server_address.h +4 -8
- data/src/core/lib/resource_quota/api.cc +1 -1
- data/src/core/lib/resource_quota/arena.cc +21 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +157 -17
- data/src/core/lib/resource_quota/memory_quota.h +98 -17
- data/src/core/lib/resource_quota/periodic_update.cc +79 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +13 -10
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
- data/src/core/lib/security/credentials/credentials.h +16 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +29 -26
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -13
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +6 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +5 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
- data/src/core/lib/security/transport/auth_filters.h +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +3 -4
- data/src/core/lib/security/transport/security_handshaker.cc +32 -44
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/service_config/service_config.h +11 -0
- data/src/core/lib/service_config/service_config_impl.cc +98 -97
- data/src/core/lib/service_config/service_config_impl.h +11 -13
- data/src/core/lib/service_config/service_config_parser.cc +26 -27
- data/src/core/lib/service_config/service_config_parser.h +10 -22
- data/src/core/lib/slice/percent_encoding.cc +4 -13
- data/src/core/lib/slice/slice.cc +10 -4
- data/src/core/lib/surface/call.cc +8 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +0 -2
- data/src/core/lib/surface/completion_queue.h +0 -3
- data/src/core/lib/surface/init.cc +2 -6
- data/src/core/lib/surface/lame_client.cc +2 -3
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +7 -12
- data/src/core/lib/surface/server.h +7 -7
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/connectivity_state.cc +0 -1
- data/src/core/lib/transport/connectivity_state.h +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -36
- data/src/core/lib/transport/handshaker.cc +7 -9
- data/src/core/lib/transport/handshaker.h +4 -5
- data/src/core/lib/transport/handshaker_factory.h +2 -3
- data/src/core/lib/transport/handshaker_registry.cc +2 -1
- data/src/core/lib/transport/handshaker_registry.h +2 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
- data/src/core/lib/transport/metadata_batch.cc +5 -0
- data/src/core/lib/transport/metadata_batch.h +52 -7
- data/src/core/lib/transport/parsed_metadata.h +0 -1
- data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
- data/src/core/lib/transport/transport.h +0 -7
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
- data/src/core/tsi/fake_transport_security.cc +53 -30
- data/src/core/tsi/local_transport_security.cc +9 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
- data/src/core/tsi/ssl_transport_security.cc +47 -23
- data/src/core/tsi/transport_security.cc +18 -6
- data/src/core/tsi/transport_security.h +2 -1
- data/src/core/tsi/transport_security_interface.h +17 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/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 +88 -36
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/promise/detail/switch.h +0 -1455
data/src/core/ext/xds/xds_api.cc
CHANGED
@@ -28,7 +28,6 @@
|
|
28
28
|
|
29
29
|
#include "absl/strings/str_cat.h"
|
30
30
|
#include "absl/strings/strip.h"
|
31
|
-
#include "envoy/admin/v3/config_dump.upb.h"
|
32
31
|
#include "envoy/config/core/v3/base.upb.h"
|
33
32
|
#include "envoy/config/endpoint/v3/load_report.upb.h"
|
34
33
|
#include "envoy/service/discovery/v3/discovery.upb.h"
|
@@ -53,7 +52,6 @@
|
|
53
52
|
|
54
53
|
#include "src/core/ext/xds/upb_utils.h"
|
55
54
|
#include "src/core/ext/xds/xds_client.h"
|
56
|
-
#include "src/core/lib/iomgr/error.h"
|
57
55
|
#include "src/core/lib/json/json.h"
|
58
56
|
|
59
57
|
// IWYU pragma: no_include "upb/msg_internal.h"
|
@@ -79,14 +77,10 @@ namespace grpc_core {
|
|
79
77
|
#endif
|
80
78
|
|
81
79
|
XdsApi::XdsApi(XdsClient* client, TraceFlag* tracer,
|
82
|
-
const XdsBootstrap::Node* node,
|
83
|
-
const CertificateProviderStore::PluginDefinitionMap*
|
84
|
-
certificate_provider_definition_map,
|
85
|
-
upb::SymbolTable* symtab)
|
80
|
+
const XdsBootstrap::Node* node, upb::SymbolTable* symtab)
|
86
81
|
: client_(client),
|
87
82
|
tracer_(tracer),
|
88
83
|
node_(node),
|
89
|
-
certificate_provider_definition_map_(certificate_provider_definition_map),
|
90
84
|
symtab_(symtab),
|
91
85
|
build_version_(absl::StrCat("gRPC C-core ", GPR_PLATFORM_STRING, " ",
|
92
86
|
grpc_version_string(),
|
@@ -101,10 +95,18 @@ XdsApi::XdsApi(XdsClient* client, TraceFlag* tracer,
|
|
101
95
|
|
102
96
|
namespace {
|
103
97
|
|
104
|
-
|
98
|
+
struct XdsApiContext {
|
99
|
+
XdsClient* client;
|
100
|
+
TraceFlag* tracer;
|
101
|
+
upb_DefPool* symtab;
|
102
|
+
upb_Arena* arena;
|
103
|
+
bool use_v3;
|
104
|
+
};
|
105
|
+
|
106
|
+
void PopulateMetadataValue(const XdsApiContext& context,
|
105
107
|
google_protobuf_Value* value_pb, const Json& value);
|
106
108
|
|
107
|
-
void PopulateListValue(const
|
109
|
+
void PopulateListValue(const XdsApiContext& context,
|
108
110
|
google_protobuf_ListValue* list_value,
|
109
111
|
const Json::Array& values) {
|
110
112
|
for (const auto& value : values) {
|
@@ -114,7 +116,7 @@ void PopulateListValue(const XdsEncodingContext& context,
|
|
114
116
|
}
|
115
117
|
}
|
116
118
|
|
117
|
-
void PopulateMetadata(const
|
119
|
+
void PopulateMetadata(const XdsApiContext& context,
|
118
120
|
google_protobuf_Struct* metadata_pb,
|
119
121
|
const Json::Object& metadata) {
|
120
122
|
for (const auto& p : metadata) {
|
@@ -125,7 +127,7 @@ void PopulateMetadata(const XdsEncodingContext& context,
|
|
125
127
|
}
|
126
128
|
}
|
127
129
|
|
128
|
-
void PopulateMetadataValue(const
|
130
|
+
void PopulateMetadataValue(const XdsApiContext& context,
|
129
131
|
google_protobuf_Value* value_pb, const Json& value) {
|
130
132
|
switch (value.type()) {
|
131
133
|
case Json::Type::JSON_NULL:
|
@@ -181,7 +183,7 @@ std::string EncodeStringField(uint32_t field_number, const std::string& str) {
|
|
181
183
|
EncodeVarint(str.size()) + str;
|
182
184
|
}
|
183
185
|
|
184
|
-
void PopulateBuildVersion(const
|
186
|
+
void PopulateBuildVersion(const XdsApiContext& context,
|
185
187
|
envoy_config_core_v3_Node* node_msg,
|
186
188
|
const std::string& build_version) {
|
187
189
|
std::string encoded_build_version = EncodeStringField(5, build_version);
|
@@ -193,8 +195,7 @@ void PopulateBuildVersion(const XdsEncodingContext& context,
|
|
193
195
|
encoded_build_version.size(), context.arena);
|
194
196
|
}
|
195
197
|
|
196
|
-
void PopulateNode(const
|
197
|
-
const XdsBootstrap::Node* node,
|
198
|
+
void PopulateNode(const XdsApiContext& context, const XdsBootstrap::Node* node,
|
198
199
|
const std::string& build_version,
|
199
200
|
const std::string& user_agent_name,
|
200
201
|
const std::string& user_agent_version,
|
@@ -245,7 +246,7 @@ void PopulateNode(const XdsEncodingContext& context,
|
|
245
246
|
}
|
246
247
|
|
247
248
|
void MaybeLogDiscoveryRequest(
|
248
|
-
const
|
249
|
+
const XdsApiContext& context,
|
249
250
|
const envoy_service_discovery_v3_DiscoveryRequest* request) {
|
250
251
|
if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
|
251
252
|
gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
@@ -258,30 +259,25 @@ void MaybeLogDiscoveryRequest(
|
|
258
259
|
}
|
259
260
|
}
|
260
261
|
|
261
|
-
|
262
|
-
const
|
262
|
+
std::string SerializeDiscoveryRequest(
|
263
|
+
const XdsApiContext& context,
|
263
264
|
envoy_service_discovery_v3_DiscoveryRequest* request) {
|
264
265
|
size_t output_length;
|
265
266
|
char* output = envoy_service_discovery_v3_DiscoveryRequest_serialize(
|
266
267
|
request, context.arena, &output_length);
|
267
|
-
return
|
268
|
+
return std::string(output, output_length);
|
268
269
|
}
|
269
270
|
|
270
271
|
} // namespace
|
271
272
|
|
272
|
-
|
273
|
+
std::string XdsApi::CreateAdsRequest(
|
273
274
|
const XdsBootstrap::XdsServer& server, absl::string_view type_url,
|
274
275
|
absl::string_view version, absl::string_view nonce,
|
275
|
-
const std::vector<std::string>& resource_names,
|
276
|
+
const std::vector<std::string>& resource_names, absl::Status status,
|
276
277
|
bool populate_node) {
|
277
278
|
upb::Arena arena;
|
278
|
-
const
|
279
|
-
|
280
|
-
tracer_,
|
281
|
-
symtab_->ptr(),
|
282
|
-
arena.ptr(),
|
283
|
-
server.ShouldUseV3(),
|
284
|
-
certificate_provider_definition_map_};
|
279
|
+
const XdsApiContext context = {client_, tracer_, symtab_->ptr(), arena.ptr(),
|
280
|
+
server.ShouldUseV3()};
|
285
281
|
// Create a request.
|
286
282
|
envoy_service_discovery_v3_DiscoveryRequest* request =
|
287
283
|
envoy_service_discovery_v3_DiscoveryRequest_new(arena.ptr());
|
@@ -301,7 +297,7 @@ grpc_slice XdsApi::CreateAdsRequest(
|
|
301
297
|
}
|
302
298
|
// Set error_detail if it's a NACK.
|
303
299
|
std::string error_string_storage;
|
304
|
-
if (!
|
300
|
+
if (!status.ok()) {
|
305
301
|
google_rpc_Status* error_detail =
|
306
302
|
envoy_service_discovery_v3_DiscoveryRequest_mutable_error_detail(
|
307
303
|
request, arena.ptr());
|
@@ -310,12 +306,11 @@ grpc_slice XdsApi::CreateAdsRequest(
|
|
310
306
|
// we could attach a status code to the individual errors where we
|
311
307
|
// generate them in the parsing code, and then use that here.
|
312
308
|
google_rpc_Status_set_code(error_detail, GRPC_STATUS_INVALID_ARGUMENT);
|
313
|
-
// Error description comes from the
|
314
|
-
error_string_storage =
|
309
|
+
// Error description comes from the status that was passed in.
|
310
|
+
error_string_storage = std::string(status.message());
|
315
311
|
upb_StringView error_description =
|
316
312
|
StdStringToUpbString(error_string_storage);
|
317
313
|
google_rpc_Status_set_message(error_detail, error_description);
|
318
|
-
GRPC_ERROR_UNREF(error);
|
319
314
|
}
|
320
315
|
// Populate node.
|
321
316
|
if (populate_node) {
|
@@ -340,7 +335,7 @@ grpc_slice XdsApi::CreateAdsRequest(
|
|
340
335
|
namespace {
|
341
336
|
|
342
337
|
void MaybeLogDiscoveryResponse(
|
343
|
-
const
|
338
|
+
const XdsApiContext& context,
|
344
339
|
const envoy_service_discovery_v3_DiscoveryResponse* response) {
|
345
340
|
if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
|
346
341
|
gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
@@ -356,21 +351,15 @@ void MaybeLogDiscoveryResponse(
|
|
356
351
|
} // namespace
|
357
352
|
|
358
353
|
absl::Status XdsApi::ParseAdsResponse(const XdsBootstrap::XdsServer& server,
|
359
|
-
|
354
|
+
absl::string_view encoded_response,
|
360
355
|
AdsResponseParserInterface* parser) {
|
361
356
|
upb::Arena arena;
|
362
|
-
const
|
363
|
-
|
364
|
-
tracer_,
|
365
|
-
symtab_->ptr(),
|
366
|
-
arena.ptr(),
|
367
|
-
server.ShouldUseV3(),
|
368
|
-
certificate_provider_definition_map_};
|
357
|
+
const XdsApiContext context = {client_, tracer_, symtab_->ptr(), arena.ptr(),
|
358
|
+
server.ShouldUseV3()};
|
369
359
|
// Decode the response.
|
370
360
|
const envoy_service_discovery_v3_DiscoveryResponse* response =
|
371
361
|
envoy_service_discovery_v3_DiscoveryResponse_parse(
|
372
|
-
|
373
|
-
GRPC_SLICE_LENGTH(encoded_response), arena.ptr());
|
362
|
+
encoded_response.data(), encoded_response.size(), arena.ptr());
|
374
363
|
// If decoding fails, report a fatal error and return.
|
375
364
|
if (response == nullptr) {
|
376
365
|
return absl::InvalidArgumentError("Can't decode DiscoveryResponse.");
|
@@ -417,7 +406,7 @@ absl::Status XdsApi::ParseAdsResponse(const XdsBootstrap::XdsServer& server,
|
|
417
406
|
serialized_resource =
|
418
407
|
UpbStringToAbsl(google_protobuf_Any_value(resource));
|
419
408
|
}
|
420
|
-
parser->ParseResource(context, i, type_url, serialized_resource);
|
409
|
+
parser->ParseResource(context.arena, i, type_url, serialized_resource);
|
421
410
|
}
|
422
411
|
return absl::OkStatus();
|
423
412
|
}
|
@@ -425,7 +414,7 @@ absl::Status XdsApi::ParseAdsResponse(const XdsBootstrap::XdsServer& server,
|
|
425
414
|
namespace {
|
426
415
|
|
427
416
|
void MaybeLogLrsRequest(
|
428
|
-
const
|
417
|
+
const XdsApiContext& context,
|
429
418
|
const envoy_service_load_stats_v3_LoadStatsRequest* request) {
|
430
419
|
if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
|
431
420
|
gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
|
@@ -438,27 +427,22 @@ void MaybeLogLrsRequest(
|
|
438
427
|
}
|
439
428
|
}
|
440
429
|
|
441
|
-
|
442
|
-
const
|
430
|
+
std::string SerializeLrsRequest(
|
431
|
+
const XdsApiContext& context,
|
443
432
|
const envoy_service_load_stats_v3_LoadStatsRequest* request) {
|
444
433
|
size_t output_length;
|
445
434
|
char* output = envoy_service_load_stats_v3_LoadStatsRequest_serialize(
|
446
435
|
request, context.arena, &output_length);
|
447
|
-
return
|
436
|
+
return std::string(output, output_length);
|
448
437
|
}
|
449
438
|
|
450
439
|
} // namespace
|
451
440
|
|
452
|
-
|
441
|
+
std::string XdsApi::CreateLrsInitialRequest(
|
453
442
|
const XdsBootstrap::XdsServer& server) {
|
454
443
|
upb::Arena arena;
|
455
|
-
const
|
456
|
-
|
457
|
-
tracer_,
|
458
|
-
symtab_->ptr(),
|
459
|
-
arena.ptr(),
|
460
|
-
server.ShouldUseV3(),
|
461
|
-
certificate_provider_definition_map_};
|
444
|
+
const XdsApiContext context = {client_, tracer_, symtab_->ptr(), arena.ptr(),
|
445
|
+
server.ShouldUseV3()};
|
462
446
|
// Create a request.
|
463
447
|
envoy_service_load_stats_v3_LoadStatsRequest* request =
|
464
448
|
envoy_service_load_stats_v3_LoadStatsRequest_new(arena.ptr());
|
@@ -479,7 +463,7 @@ grpc_slice XdsApi::CreateLrsInitialRequest(
|
|
479
463
|
namespace {
|
480
464
|
|
481
465
|
void LocalityStatsPopulate(
|
482
|
-
const
|
466
|
+
const XdsApiContext& context,
|
483
467
|
envoy_config_endpoint_v3_UpstreamLocalityStats* output,
|
484
468
|
const XdsLocalityName& locality_name,
|
485
469
|
const XdsClusterLocalityStats::Snapshot& snapshot) {
|
@@ -526,19 +510,11 @@ void LocalityStatsPopulate(
|
|
526
510
|
|
527
511
|
} // namespace
|
528
512
|
|
529
|
-
|
513
|
+
std::string XdsApi::CreateLrsRequest(
|
530
514
|
ClusterLoadReportMap cluster_load_report_map) {
|
531
515
|
upb::Arena arena;
|
532
|
-
|
533
|
-
|
534
|
-
XdsBootstrap::XdsServer empty_server;
|
535
|
-
const XdsEncodingContext context = {client_,
|
536
|
-
empty_server,
|
537
|
-
tracer_,
|
538
|
-
symtab_->ptr(),
|
539
|
-
arena.ptr(),
|
540
|
-
false,
|
541
|
-
certificate_provider_definition_map_};
|
516
|
+
const XdsApiContext context = {client_, tracer_, symtab_->ptr(), arena.ptr(),
|
517
|
+
/*use_v3=*/false};
|
542
518
|
// Create a request.
|
543
519
|
envoy_service_load_stats_v3_LoadStatsRequest* request =
|
544
520
|
envoy_service_load_stats_v3_LoadStatsRequest_new(arena.ptr());
|
@@ -597,19 +573,18 @@ grpc_slice XdsApi::CreateLrsRequest(
|
|
597
573
|
return SerializeLrsRequest(context, request);
|
598
574
|
}
|
599
575
|
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
576
|
+
absl::Status XdsApi::ParseLrsResponse(absl::string_view encoded_response,
|
577
|
+
bool* send_all_clusters,
|
578
|
+
std::set<std::string>* cluster_names,
|
579
|
+
Duration* load_reporting_interval) {
|
604
580
|
upb::Arena arena;
|
605
581
|
// Decode the response.
|
606
582
|
const envoy_service_load_stats_v3_LoadStatsResponse* decoded_response =
|
607
583
|
envoy_service_load_stats_v3_LoadStatsResponse_parse(
|
608
|
-
|
609
|
-
GRPC_SLICE_LENGTH(encoded_response), arena.ptr());
|
584
|
+
encoded_response.data(), encoded_response.size(), arena.ptr());
|
610
585
|
// Parse the response.
|
611
586
|
if (decoded_response == nullptr) {
|
612
|
-
return
|
587
|
+
return absl::UnavailableError("Can't decode response.");
|
613
588
|
}
|
614
589
|
// Check send_all_clusters.
|
615
590
|
if (envoy_service_load_stats_v3_LoadStatsResponse_send_all_clusters(
|
@@ -632,12 +607,12 @@ grpc_error_handle XdsApi::ParseLrsResponse(const grpc_slice& encoded_response,
|
|
632
607
|
*load_reporting_interval = Duration::FromSecondsAndNanoseconds(
|
633
608
|
google_protobuf_Duration_seconds(load_reporting_interval_duration),
|
634
609
|
google_protobuf_Duration_nanos(load_reporting_interval_duration));
|
635
|
-
return
|
610
|
+
return absl::OkStatus();
|
636
611
|
}
|
637
612
|
|
638
613
|
namespace {
|
639
614
|
|
640
|
-
google_protobuf_Timestamp* EncodeTimestamp(const
|
615
|
+
google_protobuf_Timestamp* EncodeTimestamp(const XdsApiContext& context,
|
641
616
|
Timestamp value) {
|
642
617
|
google_protobuf_Timestamp* timestamp =
|
643
618
|
google_protobuf_Timestamp_new(context.arena);
|
@@ -657,16 +632,8 @@ std::string XdsApi::AssembleClientConfig(
|
|
657
632
|
// Fill-in the node information
|
658
633
|
auto* node = envoy_service_status_v3_ClientConfig_mutable_node(client_config,
|
659
634
|
arena.ptr());
|
660
|
-
|
661
|
-
|
662
|
-
XdsBootstrap::XdsServer empty_server;
|
663
|
-
const XdsEncodingContext context = {client_,
|
664
|
-
empty_server,
|
665
|
-
tracer_,
|
666
|
-
symtab_->ptr(),
|
667
|
-
arena.ptr(),
|
668
|
-
true,
|
669
|
-
certificate_provider_definition_map_};
|
635
|
+
const XdsApiContext context = {client_, tracer_, symtab_->ptr(), arena.ptr(),
|
636
|
+
/*use_v3=*/true};
|
670
637
|
PopulateNode(context, node_, build_version_, user_agent_name_,
|
671
638
|
user_agent_version_, node);
|
672
639
|
// Dump each resource.
|
data/src/core/ext/xds/xds_api.h
CHANGED
@@ -29,26 +29,21 @@
|
|
29
29
|
|
30
30
|
#include "absl/status/status.h"
|
31
31
|
#include "absl/strings/string_view.h"
|
32
|
-
#include "envoy/admin/v3/
|
32
|
+
#include "envoy/admin/v3/config_dump_shared.upb.h"
|
33
|
+
#include "upb/arena.h"
|
33
34
|
#include "upb/def.hpp"
|
34
35
|
|
35
|
-
#include <grpc/slice.h>
|
36
|
-
|
37
|
-
#include "src/core/ext/xds/certificate_provider_store.h"
|
38
|
-
#include "src/core/ext/xds/upb_utils.h"
|
39
36
|
#include "src/core/ext/xds/xds_bootstrap.h"
|
40
37
|
#include "src/core/ext/xds/xds_client_stats.h"
|
41
38
|
#include "src/core/lib/debug/trace.h"
|
42
39
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
43
40
|
#include "src/core/lib/gprpp/time.h"
|
44
|
-
#include "src/core/lib/iomgr/error.h"
|
45
41
|
|
46
42
|
namespace grpc_core {
|
47
43
|
|
48
44
|
class XdsClient;
|
49
45
|
|
50
46
|
// TODO(roth): When we have time, split this into multiple pieces:
|
51
|
-
// - a common upb-based parsing framework (combine with XdsEncodingContext)
|
52
47
|
// - ADS request/response handling
|
53
48
|
// - LRS request/response handling
|
54
49
|
// - CSDS response generation
|
@@ -72,7 +67,7 @@ class XdsApi {
|
|
72
67
|
virtual absl::Status ProcessAdsResponseFields(AdsResponseFields fields) = 0;
|
73
68
|
|
74
69
|
// Called to parse each individual resource in the ADS response.
|
75
|
-
virtual void ParseResource(
|
70
|
+
virtual void ParseResource(upb_Arena* arena, size_t idx,
|
76
71
|
absl::string_view type_url,
|
77
72
|
absl::string_view serialized_resource) = 0;
|
78
73
|
};
|
@@ -145,37 +140,35 @@ class XdsApi {
|
|
145
140
|
"");
|
146
141
|
|
147
142
|
XdsApi(XdsClient* client, TraceFlag* tracer, const XdsBootstrap::Node* node,
|
148
|
-
const CertificateProviderStore::PluginDefinitionMap* map,
|
149
143
|
upb::SymbolTable* symtab);
|
150
144
|
|
151
145
|
// Creates an ADS request.
|
152
146
|
// Takes ownership of \a error.
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
147
|
+
std::string CreateAdsRequest(const XdsBootstrap::XdsServer& server,
|
148
|
+
absl::string_view type_url,
|
149
|
+
absl::string_view version,
|
150
|
+
absl::string_view nonce,
|
151
|
+
const std::vector<std::string>& resource_names,
|
152
|
+
absl::Status status, bool populate_node);
|
159
153
|
|
160
154
|
// Returns non-OK when failing to deserialize response message.
|
161
155
|
// Otherwise, all events are reported to the parser.
|
162
156
|
absl::Status ParseAdsResponse(const XdsBootstrap::XdsServer& server,
|
163
|
-
|
157
|
+
absl::string_view encoded_response,
|
164
158
|
AdsResponseParserInterface* parser);
|
165
159
|
|
166
160
|
// Creates an initial LRS request.
|
167
|
-
|
161
|
+
std::string CreateLrsInitialRequest(const XdsBootstrap::XdsServer& server);
|
168
162
|
|
169
163
|
// Creates an LRS request sending a client-side load report.
|
170
|
-
|
164
|
+
std::string CreateLrsRequest(ClusterLoadReportMap cluster_load_report_map);
|
171
165
|
|
172
|
-
// Parses the LRS response and
|
173
|
-
//
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
Duration* load_reporting_interval);
|
166
|
+
// Parses the LRS response and populates send_all_clusters,
|
167
|
+
// cluster_names, and load_reporting_interval.
|
168
|
+
absl::Status ParseLrsResponse(absl::string_view encoded_response,
|
169
|
+
bool* send_all_clusters,
|
170
|
+
std::set<std::string>* cluster_names,
|
171
|
+
Duration* load_reporting_interval);
|
179
172
|
|
180
173
|
// Assemble the client config proto message and return the serialized result.
|
181
174
|
std::string AssembleClientConfig(
|
@@ -185,9 +178,7 @@ class XdsApi {
|
|
185
178
|
XdsClient* client_;
|
186
179
|
TraceFlag* tracer_;
|
187
180
|
const XdsBootstrap::Node* node_; // Do not own.
|
188
|
-
|
189
|
-
certificate_provider_definition_map_; // Do not own.
|
190
|
-
upb::SymbolTable* symtab_; // Do not own.
|
181
|
+
upb::SymbolTable* symtab_; // Do not own.
|
191
182
|
const std::string build_version_;
|
192
183
|
const std::string user_agent_name_;
|
193
184
|
const std::string user_agent_version_;
|
@@ -24,6 +24,8 @@
|
|
24
24
|
#include <vector>
|
25
25
|
|
26
26
|
#include "absl/memory/memory.h"
|
27
|
+
#include "absl/status/status.h"
|
28
|
+
#include "absl/status/statusor.h"
|
27
29
|
#include "absl/strings/match.h"
|
28
30
|
#include "absl/strings/str_cat.h"
|
29
31
|
#include "absl/strings/str_format.h"
|
@@ -32,14 +34,12 @@
|
|
32
34
|
|
33
35
|
#include <grpc/support/alloc.h>
|
34
36
|
|
35
|
-
#include "src/core/ext/xds/certificate_provider_factory.h"
|
36
|
-
#include "src/core/ext/xds/certificate_provider_registry.h"
|
37
37
|
#include "src/core/lib/config/core_configuration.h"
|
38
38
|
#include "src/core/lib/gpr/env.h"
|
39
39
|
#include "src/core/lib/gpr/string.h"
|
40
|
-
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
41
40
|
#include "src/core/lib/json/json_util.h"
|
42
41
|
#include "src/core/lib/security/credentials/channel_creds_registry.h"
|
42
|
+
#include "src/core/lib/transport/error_utils.h"
|
43
43
|
|
44
44
|
namespace grpc_core {
|
45
45
|
|
@@ -178,20 +178,27 @@ bool XdsBootstrap::XdsServer::IgnoreResourceDeletion() const {
|
|
178
178
|
//
|
179
179
|
|
180
180
|
std::unique_ptr<XdsBootstrap> XdsBootstrap::Create(
|
181
|
-
absl::string_view json_string,
|
182
|
-
|
183
|
-
|
184
|
-
grpc_error_handle
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
181
|
+
absl::string_view json_string,
|
182
|
+
std::unique_ptr<XdsCertificateProviderPluginMapInterface>
|
183
|
+
certificate_provider_plugin_map,
|
184
|
+
grpc_error_handle* error) {
|
185
|
+
auto json = Json::Parse(json_string);
|
186
|
+
if (!json.ok()) {
|
187
|
+
*error = GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrCat(
|
188
|
+
"Failed to parse bootstrap JSON string: ", json.status().ToString()));
|
189
189
|
return nullptr;
|
190
190
|
}
|
191
|
-
return absl::make_unique<XdsBootstrap>(
|
191
|
+
return absl::make_unique<XdsBootstrap>(
|
192
|
+
std::move(*json), std::move(certificate_provider_plugin_map), error);
|
192
193
|
}
|
193
194
|
|
194
|
-
XdsBootstrap::XdsBootstrap(
|
195
|
+
XdsBootstrap::XdsBootstrap(
|
196
|
+
Json json,
|
197
|
+
std::unique_ptr<XdsCertificateProviderPluginMapInterface>
|
198
|
+
certificate_provider_plugin_map,
|
199
|
+
grpc_error_handle* error)
|
200
|
+
: certificate_provider_plugin_map_(
|
201
|
+
std::move(certificate_provider_plugin_map)) {
|
195
202
|
if (json.type() != Json::Type::OBJECT) {
|
196
203
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
197
204
|
"malformed JSON in bootstrap file");
|
@@ -470,36 +477,25 @@ grpc_error_handle XdsBootstrap::ParseCertificateProvider(
|
|
470
477
|
"\"plugin_name\" field is not a string"));
|
471
478
|
} else {
|
472
479
|
std::string plugin_name = std::move(*(it->second.mutable_string_value()));
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
absl::StrCat("Unrecognized plugin name: ", plugin_name)));
|
479
|
-
} else {
|
480
|
-
RefCountedPtr<CertificateProviderFactory::Config> config;
|
481
|
-
it = certificate_provider_json->mutable_object()->find("config");
|
482
|
-
if (it != certificate_provider_json->mutable_object()->end()) {
|
483
|
-
if (it->second.type() != Json::Type::OBJECT) {
|
484
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
485
|
-
"\"config\" field is not an object"));
|
486
|
-
} else {
|
487
|
-
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
488
|
-
config = factory->CreateCertificateProviderConfig(it->second,
|
489
|
-
&parse_error);
|
490
|
-
if (!GRPC_ERROR_IS_NONE(parse_error)) {
|
491
|
-
error_list.push_back(parse_error);
|
492
|
-
}
|
493
|
-
}
|
480
|
+
it = certificate_provider_json->mutable_object()->find("config");
|
481
|
+
if (it != certificate_provider_json->mutable_object()->end()) {
|
482
|
+
if (it->second.type() != Json::Type::OBJECT) {
|
483
|
+
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
484
|
+
"\"config\" field is not an object"));
|
494
485
|
} else {
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
486
|
+
absl::Status status = certificate_provider_plugin_map_->AddPlugin(
|
487
|
+
instance_name, plugin_name, it->second);
|
488
|
+
if (!status.ok()) {
|
489
|
+
error_list.push_back(absl_status_to_grpc_error(status));
|
490
|
+
}
|
491
|
+
}
|
492
|
+
} else {
|
493
|
+
// "config" is an optional field, so create an empty JSON object.
|
494
|
+
absl::Status status = certificate_provider_plugin_map_->AddPlugin(
|
495
|
+
instance_name, plugin_name, Json::Object());
|
496
|
+
if (!status.ok()) {
|
497
|
+
error_list.push_back(absl_status_to_grpc_error(status));
|
500
498
|
}
|
501
|
-
certificate_providers_.insert(
|
502
|
-
{instance_name, {std::move(plugin_name), std::move(config)}});
|
503
499
|
}
|
504
500
|
}
|
505
501
|
return GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(
|
@@ -566,17 +562,8 @@ std::string XdsBootstrap::ToString() const {
|
|
566
562
|
parts.push_back(" },\n");
|
567
563
|
}
|
568
564
|
parts.push_back("}");
|
569
|
-
parts.push_back("certificate_providers=
|
570
|
-
|
571
|
-
parts.push_back(
|
572
|
-
absl::StrFormat(" %s={\n"
|
573
|
-
" plugin_name=%s\n"
|
574
|
-
" config=%s\n"
|
575
|
-
" },\n",
|
576
|
-
entry.first, entry.second.plugin_name,
|
577
|
-
entry.second.config->ToString()));
|
578
|
-
}
|
579
|
-
parts.push_back("}");
|
565
|
+
parts.push_back("certificate_providers=");
|
566
|
+
parts.push_back(certificate_provider_plugin_map_->ToString());
|
580
567
|
return absl::StrJoin(parts, "");
|
581
568
|
}
|
582
569
|
|
@@ -26,9 +26,9 @@
|
|
26
26
|
#include <string>
|
27
27
|
#include <vector>
|
28
28
|
|
29
|
+
#include "absl/status/status.h"
|
29
30
|
#include "absl/strings/string_view.h"
|
30
31
|
|
31
|
-
#include "src/core/ext/xds/certificate_provider_store.h"
|
32
32
|
#include "src/core/lib/iomgr/error.h"
|
33
33
|
#include "src/core/lib/json/json.h"
|
34
34
|
|
@@ -38,6 +38,19 @@ bool XdsFederationEnabled();
|
|
38
38
|
|
39
39
|
class XdsClient;
|
40
40
|
|
41
|
+
class XdsCertificateProviderPluginMapInterface {
|
42
|
+
public:
|
43
|
+
virtual ~XdsCertificateProviderPluginMapInterface() = default;
|
44
|
+
|
45
|
+
virtual absl::Status AddPlugin(const std::string& instance_name,
|
46
|
+
const std::string& plugin_name,
|
47
|
+
const Json& config) = 0;
|
48
|
+
|
49
|
+
virtual bool HasPlugin(const std::string& instance_name) const = 0;
|
50
|
+
|
51
|
+
virtual std::string ToString() const = 0;
|
52
|
+
};
|
53
|
+
|
41
54
|
class XdsBootstrap {
|
42
55
|
public:
|
43
56
|
struct Node {
|
@@ -88,11 +101,17 @@ class XdsBootstrap {
|
|
88
101
|
// Creates bootstrap object from json_string.
|
89
102
|
// If *error is not GRPC_ERROR_NONE after returning, then there was an
|
90
103
|
// error parsing the contents.
|
91
|
-
static std::unique_ptr<XdsBootstrap> Create(
|
92
|
-
|
104
|
+
static std::unique_ptr<XdsBootstrap> Create(
|
105
|
+
absl::string_view json_string,
|
106
|
+
std::unique_ptr<XdsCertificateProviderPluginMapInterface>
|
107
|
+
certificate_provider_plugin_map,
|
108
|
+
grpc_error_handle* error);
|
93
109
|
|
94
110
|
// Do not instantiate directly -- use Create() above instead.
|
95
|
-
XdsBootstrap(Json json,
|
111
|
+
XdsBootstrap(Json json,
|
112
|
+
std::unique_ptr<XdsCertificateProviderPluginMapInterface>
|
113
|
+
certificate_provider_plugin_map,
|
114
|
+
grpc_error_handle* error);
|
96
115
|
|
97
116
|
std::string ToString() const;
|
98
117
|
|
@@ -110,9 +129,9 @@ class XdsBootstrap {
|
|
110
129
|
return authorities_;
|
111
130
|
}
|
112
131
|
const Authority* LookupAuthority(const std::string& name) const;
|
113
|
-
const
|
114
|
-
|
115
|
-
return
|
132
|
+
const XdsCertificateProviderPluginMapInterface*
|
133
|
+
certificate_provider_plugin_map() const {
|
134
|
+
return certificate_provider_plugin_map_.get();
|
116
135
|
}
|
117
136
|
// A util method to check that an xds server exists in this bootstrap file.
|
118
137
|
bool XdsServerExists(const XdsServer& server) const;
|
@@ -133,7 +152,8 @@ class XdsBootstrap {
|
|
133
152
|
std::string client_default_listener_resource_name_template_;
|
134
153
|
std::string server_listener_resource_name_template_;
|
135
154
|
std::map<std::string, Authority> authorities_;
|
136
|
-
|
155
|
+
std::unique_ptr<XdsCertificateProviderPluginMapInterface>
|
156
|
+
certificate_provider_plugin_map_;
|
137
157
|
};
|
138
158
|
|
139
159
|
} // namespace grpc_core
|
@@ -50,6 +50,15 @@ class XdsCertificateProvider : public grpc_tls_certificate_provider {
|
|
50
50
|
XdsCertificateProvider();
|
51
51
|
~XdsCertificateProvider() override;
|
52
52
|
|
53
|
+
static absl::string_view ChannelArgName() {
|
54
|
+
return GRPC_ARG_XDS_CERTIFICATE_PROVIDER;
|
55
|
+
}
|
56
|
+
|
57
|
+
static int ChannelArgsCompare(const XdsCertificateProvider* a,
|
58
|
+
const XdsCertificateProvider* b) {
|
59
|
+
return QsortCompare(a, b);
|
60
|
+
}
|
61
|
+
|
53
62
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor() const override {
|
54
63
|
return distributor_;
|
55
64
|
}
|