grpc 1.44.0.pre2 → 1.46.3
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 +311 -191
- data/include/grpc/event_engine/event_engine.h +2 -2
- data/include/grpc/grpc.h +40 -14
- data/include/grpc/grpc_posix.h +20 -19
- data/include/grpc/grpc_security.h +26 -50
- data/include/grpc/impl/codegen/grpc_types.h +18 -21
- data/include/grpc/impl/codegen/port_platform.h +2 -2
- data/include/grpc/impl/codegen/slice.h +4 -1
- data/include/grpc/slice.h +0 -11
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +309 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +122 -0
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.cc +1 -1
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.h +5 -5
- data/src/core/ext/filters/client_channel/backend_metric.cc +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
- data/src/core/ext/filters/client_channel/client_channel.cc +242 -153
- data/src/core/ext/filters/client_channel/client_channel.h +32 -29
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +5 -11
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +124 -582
- data/src/core/ext/filters/client_channel/health/health_check_client.h +24 -160
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +9 -12
- data/src/core/ext/filters/client_channel/http_proxy.cc +88 -110
- data/src/core/ext/filters/client_channel/http_proxy.h +17 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +68 -47
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +7 -3
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +193 -148
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +120 -92
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +88 -59
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +60 -52
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +51 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +16 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +245 -293
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +7 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +126 -278
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +18 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +62 -234
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -7
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +82 -57
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +201 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +106 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -34
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +135 -89
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +236 -127
- data/src/core/ext/filters/client_channel/retry_service_config.cc +15 -17
- data/src/core/ext/filters/client_channel/retry_service_config.h +17 -11
- data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
- data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +7 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +38 -41
- data/src/core/ext/filters/client_channel/subchannel.h +5 -4
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +544 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +214 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +133 -367
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +9 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +79 -455
- data/src/core/ext/filters/http/client/http_client_filter.h +21 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +31 -79
- data/src/core/ext/filters/http/client_authority_filter.h +24 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +20 -18
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +10 -2
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -116
- data/src/core/ext/filters/message_size/message_size_filter.cc +26 -34
- data/src/core/ext/filters/message_size/message_size_filter.h +9 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +13 -8
- data/src/core/ext/filters/rbac/rbac_filter.h +2 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +6 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +6 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +2 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +2 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +73 -200
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +235 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +153 -10
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -59
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +15 -51
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +10 -8
- data/src/core/ext/transport/chttp2/transport/parsing.cc +11 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +34 -20
- data/src/core/ext/transport/inproc/inproc_transport.cc +16 -12
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +482 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +553 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +182 -176
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1248 -685
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +124 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +102 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +97 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +605 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +103 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +49 -23
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +98 -96
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +669 -386
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +185 -173
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1269 -664
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +34 -26
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +200 -91
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +252 -238
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1670 -827
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +42 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +49 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +272 -99
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1381 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +54 -50
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +354 -190
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +45 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +157 -154
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1068 -582
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +87 -42
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +525 -167
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +38 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +11 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +41 -101
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +108 -104
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +768 -410
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +115 -84
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +736 -349
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +57 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +162 -108
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +992 -397
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +28 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +83 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +75 -34
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +93 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +46 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +194 -109
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +51 -48
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +349 -190
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +49 -47
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +357 -188
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +34 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +72 -61
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +504 -260
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +77 -69
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +560 -301
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +19 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +104 -49
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +12 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +66 -41
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +58 -55
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +413 -235
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +62 -60
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +406 -237
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +82 -76
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +562 -294
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +37 -31
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +271 -142
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +503 -475
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3642 -1901
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +148 -72
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +222 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1052 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +103 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +77 -46
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +213 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +218 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +34 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +29 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +188 -113
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +36 -34
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +260 -132
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +17 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +86 -49
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +86 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +229 -198
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1553 -734
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +87 -58
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +554 -235
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +26 -24
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +156 -87
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +98 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +622 -263
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +160 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +67 -65
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +474 -256
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +107 -62
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +51 -49
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +347 -186
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +20 -18
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -82
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +214 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +16 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +99 -57
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +50 -31
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +48 -27
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +38 -24
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +117 -69
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +123 -65
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +85 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +150 -83
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +32 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +230 -146
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +36 -34
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +235 -131
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +201 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +139 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +62 -36
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +98 -52
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +40 -19
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +127 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +8 -6
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +22 -6
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +109 -103
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +720 -382
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +120 -112
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +795 -402
- data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
- data/src/core/ext/upb-generated/google/api/http.upb.h +216 -115
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +111 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +291 -237
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2076 -1030
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +36 -20
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -16
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +31 -29
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +177 -93
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +36 -20
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +240 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +52 -30
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +319 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +21 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +103 -48
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +102 -96
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +685 -359
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +16 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -41
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +56 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +57 -55
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +383 -219
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +115 -63
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +36 -34
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +189 -78
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +14 -12
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +53 -22
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +7 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +15 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +14 -12
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -24
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +13 -11
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +49 -23
- data/src/core/ext/upb-generated/validate/validate.upb.c +339 -312
- data/src/core/ext/upb-generated/validate/validate.upb.h +2726 -1180
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +278 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +108 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +34 -32
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +171 -80
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +99 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +8 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +30 -19
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +18 -16
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +98 -55
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +53 -30
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +103 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +55 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +130 -70
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +58 -30
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +23 -21
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +101 -46
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +878 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +218 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +10 -8
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +42 -24
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +248 -240
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +58 -51
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +385 -371
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +23 -16
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +15 -13
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +85 -80
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +138 -101
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +26 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +22 -34
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +4 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +177 -166
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +30 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +250 -221
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +13 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +52 -45
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +153 -147
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +23 -21
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +36 -27
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +826 -803
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +18 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +197 -172
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +63 -58
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +15 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +169 -140
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +19 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +217 -199
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +20 -17
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +14 -12
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +16 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +10 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +11 -8
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +11 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +40 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
- data/src/core/ext/xds/certificate_provider_store.cc +8 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/upb_utils.h +8 -6
- data/src/core/ext/xds/xds_api.cc +72 -35
- data/src/core/ext/xds/xds_api.h +4 -4
- data/src/core/ext/xds/xds_bootstrap.cc +37 -5
- data/src/core/ext/xds/xds_bootstrap.h +13 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +2 -0
- data/src/core/ext/xds/xds_certificate_provider.h +8 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -17
- data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
- data/src/core/ext/xds/xds_client.cc +220 -193
- data/src/core/ext/xds/xds_client.h +35 -19
- data/src/core/ext/xds/xds_client_stats.cc +15 -15
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_cluster.cc +18 -16
- data/src/core/ext/xds/xds_cluster.h +3 -6
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +10 -10
- data/src/core/ext/xds/xds_common_types.h +8 -23
- data/src/core/ext/xds/xds_endpoint.cc +14 -7
- data/src/core/ext/xds/xds_endpoint.h +1 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -7
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +6 -5
- data/src/core/ext/xds/xds_http_filters.h +4 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -5
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_listener.cc +15 -12
- data/src/core/ext/xds/xds_listener.h +1 -1
- data/src/core/ext/xds/xds_resource_type.h +1 -1
- data/src/core/ext/xds/xds_route_config.cc +175 -46
- data/src/core/ext/xds/xds_route_config.h +14 -11
- data/src/core/ext/xds/xds_routing.cc +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +20 -24
- data/src/core/lib/avl/avl.h +68 -5
- data/src/core/lib/backoff/backoff.cc +7 -10
- data/src/core/lib/backoff/backoff.h +8 -8
- data/src/core/lib/channel/call_finalization.h +86 -0
- data/src/core/lib/channel/call_tracer.h +4 -1
- data/src/core/lib/channel/channel_args.cc +161 -22
- data/src/core/lib/channel/channel_args.h +210 -7
- data/src/core/lib/channel/channel_args_preconditioning.cc +3 -8
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
- data/src/core/lib/channel/channel_stack.cc +2 -3
- data/src/core/lib/channel/channel_stack.h +38 -5
- data/src/core/lib/channel/channel_stack_builder.cc +23 -266
- data/src/core/lib/channel/channel_stack_builder.h +118 -146
- data/src/core/lib/channel/channel_stack_builder_impl.cc +102 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
- data/src/core/lib/channel/channel_trace.cc +3 -6
- data/src/core/lib/channel/connected_channel.cc +9 -4
- data/src/core/lib/channel/connected_channel.h +2 -1
- data/src/core/lib/channel/context.h +11 -0
- data/src/core/lib/channel/handshaker.cc +1 -1
- data/src/core/lib/channel/handshaker.h +1 -1
- data/src/core/lib/channel/promise_based_filter.cc +1002 -0
- data/src/core/lib/channel/promise_based_filter.h +437 -0
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/compression_internal.cc +2 -8
- data/src/core/lib/config/core_configuration.cc +8 -2
- data/src/core/lib/config/core_configuration.h +39 -0
- data/src/core/lib/debug/stats_data.cc +2 -6
- data/src/core/lib/debug/stats_data.h +18 -21
- data/src/core/{ext/filters/max_age/max_age_filter.h → lib/event_engine/default_event_engine_factory.cc} +11 -10
- data/src/core/lib/event_engine/event_engine.cc +23 -8
- data/src/core/lib/event_engine/event_engine_factory.h +3 -0
- data/src/core/lib/event_engine/memory_allocator.cc +9 -13
- data/src/core/lib/event_engine/{event_engine_factory.cc → resolved_address.cc} +10 -20
- data/src/core/lib/gpr/sync_posix.cc +1 -0
- data/src/core/lib/gpr/time.cc +2 -1
- data/src/core/lib/gpr/tls.h +1 -0
- data/src/core/lib/gpr/useful.h +14 -0
- data/src/core/lib/gprpp/bitset.h +12 -0
- data/src/core/lib/gprpp/capture.h +76 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +4 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +2 -0
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/status_helper.cc +30 -14
- data/src/core/lib/gprpp/status_helper.h +4 -4
- data/src/core/lib/gprpp/time.cc +198 -0
- data/src/core/lib/gprpp/time.h +292 -0
- data/src/core/lib/http/format_request.cc +28 -25
- data/src/core/lib/http/format_request.h +7 -6
- data/src/core/lib/http/httpcli.cc +306 -229
- data/src/core/lib/http/httpcli.h +182 -77
- data/src/core/lib/http/httpcli_security_connector.cc +64 -75
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.cc +80 -9
- data/src/core/lib/http/parser.h +15 -2
- data/src/core/lib/iomgr/buffer_list.h +5 -5
- data/src/core/lib/iomgr/error.cc +13 -12
- data/src/core/lib/iomgr/error.h +0 -5
- data/src/core/lib/iomgr/ev_apple.cc +6 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
- data/src/core/lib/iomgr/ev_posix.cc +9 -10
- data/src/core/lib/iomgr/ev_posix.h +1 -1
- data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
- data/src/core/lib/iomgr/event_engine/resolver.cc +1 -1
- data/src/core/lib/iomgr/event_engine/tcp.cc +4 -3
- data/src/core/lib/iomgr/event_engine/timer.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.cc +3 -88
- data/src/core/lib/iomgr/exec_ctx.h +7 -23
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +9 -9
- data/src/core/lib/iomgr/iocp_windows.h +1 -1
- data/src/core/lib/iomgr/polling_entity.h +6 -0
- data/src/core/lib/iomgr/pollset.cc +1 -1
- data/src/core/lib/iomgr/pollset.h +4 -4
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +4 -9
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
- data/src/core/lib/iomgr/tcp_client.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.h +3 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +95 -36
- data/src/core/lib/iomgr/tcp_server_posix.cc +26 -17
- data/src/core/lib/iomgr/tcp_windows.cc +17 -10
- data/src/core/lib/iomgr/timer.cc +2 -2
- data/src/core/lib/iomgr/timer.h +11 -6
- data/src/core/lib/iomgr/timer_generic.cc +96 -77
- data/src/core/lib/iomgr/timer_manager.cc +15 -14
- data/src/core/lib/iomgr/work_serializer.cc +15 -10
- data/src/core/lib/json/json_util.cc +4 -4
- data/src/core/lib/json/json_util.h +5 -5
- data/src/core/lib/promise/activity.cc +14 -8
- data/src/core/lib/promise/activity.h +143 -131
- data/src/core/lib/promise/arena_promise.h +188 -0
- data/src/core/lib/promise/call_push_pull.h +144 -0
- data/src/core/lib/promise/detail/basic_seq.h +92 -3
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/detail/status.h +2 -1
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +104 -0
- data/src/core/lib/promise/loop.h +34 -8
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/seq.h +19 -1
- data/src/core/lib/promise/sleep.cc +74 -0
- data/src/core/lib/promise/sleep.h +66 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/lib/resolver/resolver_factory.h +22 -26
- data/src/core/lib/resolver/resolver_registry.cc +98 -137
- data/src/core/lib/resolver/resolver_registry.h +59 -33
- data/src/core/lib/resource_quota/api.cc +5 -30
- data/src/core/lib/resource_quota/api.h +1 -1
- data/src/core/lib/resource_quota/memory_quota.cc +118 -94
- data/src/core/lib/resource_quota/memory_quota.h +100 -64
- data/src/core/lib/resource_quota/resource_quota.h +8 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +1 -11
- data/src/core/lib/security/authorization/evaluate_args.h +0 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +106 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +50 -0
- data/src/core/lib/security/authorization/matchers.cc +5 -5
- data/src/core/lib/security/authorization/matchers.h +2 -2
- data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
- data/src/core/lib/security/authorization/rbac_policy.h +3 -2
- data/src/core/lib/security/context/security_context.h +8 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +10 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +24 -83
- data/src/core/lib/security/credentials/composite/composite_credentials.h +23 -11
- data/src/core/lib/security/credentials/credentials.cc +2 -3
- data/src/core/lib/security/credentials/credentials.h +70 -66
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +46 -27
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +49 -29
- data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -12
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +23 -28
- data/src/core/lib/security/credentials/fake/fake_credentials.h +16 -16
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +19 -9
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +15 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.h +14 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +25 -26
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +23 -23
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +13 -9
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -30
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.cc +6 -6
- data/src/core/lib/security/credentials/local/local_credentials.h +10 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +128 -128
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +57 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +96 -151
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +56 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +6 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +14 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +49 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +42 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +19 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +66 -86
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +9 -6
- data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +48 -50
- data/src/core/lib/security/credentials/xds/xds_credentials.h +36 -5
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +8 -14
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +4 -12
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -16
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +4 -9
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/security_connector.cc +3 -11
- data/src/core/lib/security/security_connector/security_connector.h +20 -20
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +10 -13
- data/src/core/lib/security/security_connector/ssl_utils.cc +15 -7
- data/src/core/lib/security/security_connector/ssl_utils.h +8 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -16
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +6 -6
- data/src/core/lib/security/transport/auth_filters.h +31 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +90 -373
- data/src/core/lib/security/transport/secure_endpoint.cc +198 -129
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_handshaker.cc +20 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +1 -0
- data/src/core/lib/service_config/service_config.h +6 -51
- data/src/core/lib/service_config/{service_config.cc → service_config_impl.cc} +19 -16
- data/src/core/lib/service_config/service_config_impl.h +125 -0
- data/src/core/lib/service_config/service_config_parser.cc +30 -26
- data/src/core/lib/service_config/service_config_parser.h +36 -27
- data/src/core/lib/slice/slice.cc +76 -181
- data/src/core/lib/slice/slice.h +28 -15
- data/src/core/lib/slice/slice_internal.h +12 -30
- data/src/core/lib/slice/slice_refcount.cc +18 -0
- data/src/core/lib/slice/slice_refcount.h +2 -72
- data/src/core/lib/slice/slice_refcount_base.h +16 -120
- data/src/core/lib/surface/builtins.cc +6 -6
- data/src/core/lib/surface/call.cc +1026 -899
- data/src/core/lib/surface/call.h +1 -15
- data/src/core/lib/surface/channel.cc +28 -32
- data/src/core/lib/surface/channel.h +6 -7
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +3 -7
- data/src/core/lib/surface/completion_queue.cc +10 -9
- data/src/core/lib/surface/init.cc +78 -7
- data/src/core/lib/surface/init.h +0 -2
- data/src/core/lib/surface/lame_client.cc +2 -1
- data/src/core/lib/surface/server.cc +14 -36
- data/src/core/lib/surface/server.h +4 -5
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +9 -10
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/byte_stream.cc +2 -0
- data/src/core/lib/transport/error_utils.cc +5 -3
- data/src/core/lib/transport/error_utils.h +2 -15
- data/src/core/lib/transport/metadata_batch.h +286 -104
- data/src/core/lib/transport/parsed_metadata.h +33 -17
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +32 -29
- data/src/core/lib/transport/timeout_encoding.h +3 -3
- data/src/core/lib/transport/transport.cc +3 -1
- data/src/core/lib/transport/transport.h +102 -2
- data/src/core/lib/transport/transport_impl.h +14 -0
- data/src/core/lib/transport/transport_op_string.cc +5 -14
- data/src/core/lib/uri/uri_parser.cc +4 -0
- data/src/core/lib/uri/uri_parser.h +1 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +21 -92
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +26 -21
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +21 -13
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
- data/src/core/tsi/local_transport_security.cc +3 -11
- data/src/core/tsi/local_transport_security.h +1 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl_transport_security.cc +127 -39
- data/src/core/tsi/ssl_transport_security.h +28 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +5 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -24
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -36
- data/src/ruby/ext/grpc/rb_server.c +7 -4
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
- data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
- data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
- data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
- data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
- data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
- data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
- data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
- data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
- data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
- data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
- data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
- data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
- data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
- data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
- data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
- data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
- data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
- data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/decode.c +542 -319
- data/third_party/upb/upb/decode.h +43 -17
- data/third_party/upb/upb/decode_fast.c +303 -301
- data/third_party/upb/upb/decode_fast.h +18 -18
- data/third_party/upb/upb/decode_internal.h +73 -56
- data/third_party/upb/upb/def.c +1926 -1078
- data/third_party/upb/upb/def.h +329 -288
- data/third_party/upb/upb/def.hpp +129 -172
- data/third_party/upb/upb/encode.c +208 -175
- data/third_party/upb/upb/encode.h +15 -17
- data/third_party/upb/upb/json_encode.c +776 -0
- data/third_party/upb/upb/json_encode.h +62 -0
- data/third_party/upb/upb/msg.c +142 -124
- data/third_party/upb/upb/msg.h +39 -33
- data/third_party/upb/upb/msg_internal.h +342 -280
- data/third_party/upb/upb/port_def.inc +8 -0
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +239 -199
- data/third_party/upb/upb/reflection.h +87 -67
- data/third_party/upb/upb/reflection.hpp +6 -6
- data/third_party/upb/upb/table.c +231 -147
- data/third_party/upb/upb/table_internal.h +129 -95
- data/third_party/upb/upb/text_encode.c +113 -90
- data/third_party/upb/upb/text_encode.h +10 -10
- data/third_party/upb/upb/upb.c +111 -72
- data/third_party/upb/upb/upb.h +157 -151
- data/third_party/upb/upb/upb.hpp +31 -28
- data/third_party/upb/upb/upb_internal.h +21 -11
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +337 -185
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -264
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -560
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -122
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -36
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -67
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -69
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +0 -58
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +0 -55
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +0 -75
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +0 -55
- data/src/core/ext/xds/xds_channel_creds.cc +0 -108
- data/src/core/ext/xds/xds_channel_creds.h +0 -50
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1654
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -82
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/pollset_custom.cc +0 -105
- data/src/core/lib/iomgr/pollset_custom.h +0 -37
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -191
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -126
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
- data/src/core/lib/iomgr/tcp_custom.cc +0 -350
- data/src/core/lib/iomgr/tcp_custom.h +0 -85
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
- data/src/core/lib/iomgr/timer_custom.cc +0 -96
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -173
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
- data/src/core/lib/slice/slice_intern.cc +0 -269
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -54,6 +54,7 @@
|
|
54
54
|
#include "src/core/ext/filters/deadline/deadline_filter.h"
|
55
55
|
#include "src/core/lib/backoff/backoff.h"
|
56
56
|
#include "src/core/lib/channel/channel_args.h"
|
57
|
+
#include "src/core/lib/channel/channel_stack.h"
|
57
58
|
#include "src/core/lib/channel/connected_channel.h"
|
58
59
|
#include "src/core/lib/channel/status_util.h"
|
59
60
|
#include "src/core/lib/gpr/string.h"
|
@@ -63,8 +64,8 @@
|
|
63
64
|
#include "src/core/lib/iomgr/work_serializer.h"
|
64
65
|
#include "src/core/lib/profiling/timers.h"
|
65
66
|
#include "src/core/lib/resolver/resolver_registry.h"
|
66
|
-
#include "src/core/lib/service_config/service_config.h"
|
67
67
|
#include "src/core/lib/service_config/service_config_call_data.h"
|
68
|
+
#include "src/core/lib/service_config/service_config_impl.h"
|
68
69
|
#include "src/core/lib/slice/slice_internal.h"
|
69
70
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
70
71
|
#include "src/core/lib/surface/channel.h"
|
@@ -85,8 +86,9 @@ using internal::ClientChannelGlobalParsedConfig;
|
|
85
86
|
using internal::ClientChannelMethodParsedConfig;
|
86
87
|
using internal::ClientChannelServiceConfigParser;
|
87
88
|
|
89
|
+
TraceFlag grpc_client_channel_trace(false, "client_channel");
|
88
90
|
TraceFlag grpc_client_channel_call_trace(false, "client_channel_call");
|
89
|
-
TraceFlag
|
91
|
+
TraceFlag grpc_client_channel_lb_call_trace(false, "client_channel_lb_call");
|
90
92
|
|
91
93
|
//
|
92
94
|
// ClientChannel::CallData definition
|
@@ -175,8 +177,6 @@ class ClientChannel::CallData {
|
|
175
177
|
|
176
178
|
static void RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
177
179
|
void* arg, grpc_error_handle error);
|
178
|
-
void InjectRecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
179
|
-
grpc_transport_stream_op_batch* batch);
|
180
180
|
|
181
181
|
void CreateDynamicCall(grpc_call_element* elem);
|
182
182
|
|
@@ -190,7 +190,7 @@ class ClientChannel::CallData {
|
|
190
190
|
|
191
191
|
grpc_slice path_; // Request path.
|
192
192
|
gpr_cycle_counter call_start_time_;
|
193
|
-
|
193
|
+
Timestamp deadline_;
|
194
194
|
Arena* arena_;
|
195
195
|
grpc_call_stack* owning_call_;
|
196
196
|
CallCombiner* call_combiner_;
|
@@ -233,6 +233,7 @@ class ClientChannel::CallData {
|
|
233
233
|
|
234
234
|
const grpc_channel_filter ClientChannel::kFilterVtable = {
|
235
235
|
ClientChannel::CallData::StartTransportStreamOpBatch,
|
236
|
+
nullptr,
|
236
237
|
ClientChannel::StartTransportOp,
|
237
238
|
sizeof(ClientChannel::CallData),
|
238
239
|
ClientChannel::CallData::Init,
|
@@ -353,7 +354,7 @@ class DynamicTerminationFilter::CallData {
|
|
353
354
|
args, pollent, nullptr,
|
354
355
|
service_config_call_data->call_dispatch_controller(),
|
355
356
|
/*is_transparent_retry=*/false);
|
356
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
357
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
357
358
|
gpr_log(GPR_INFO,
|
358
359
|
"chand=%p dynamic_termination_calld=%p: create lb_call=%p", chand,
|
359
360
|
client_channel, calld->lb_call_.get());
|
@@ -372,7 +373,7 @@ class DynamicTerminationFilter::CallData {
|
|
372
373
|
~CallData() { grpc_slice_unref_internal(path_); }
|
373
374
|
|
374
375
|
grpc_slice path_; // Request path.
|
375
|
-
|
376
|
+
Timestamp deadline_;
|
376
377
|
Arena* arena_;
|
377
378
|
grpc_call_stack* owning_call_;
|
378
379
|
CallCombiner* call_combiner_;
|
@@ -383,6 +384,7 @@ class DynamicTerminationFilter::CallData {
|
|
383
384
|
|
384
385
|
const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
|
385
386
|
DynamicTerminationFilter::CallData::StartTransportStreamOpBatch,
|
387
|
+
nullptr,
|
386
388
|
DynamicTerminationFilter::StartTransportOp,
|
387
389
|
sizeof(DynamicTerminationFilter::CallData),
|
388
390
|
DynamicTerminationFilter::CallData::Init,
|
@@ -408,14 +410,14 @@ class ClientChannel::ResolverResultHandler : public Resolver::ResultHandler {
|
|
408
410
|
}
|
409
411
|
|
410
412
|
~ResolverResultHandler() override {
|
411
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
413
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
412
414
|
gpr_log(GPR_INFO, "chand=%p: resolver shutdown complete", chand_);
|
413
415
|
}
|
414
416
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ResolverResultHandler");
|
415
417
|
}
|
416
418
|
|
417
419
|
void ReportResult(Resolver::Result result) override
|
418
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
420
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
419
421
|
chand_->OnResolverResultChangedLocked(std::move(result));
|
420
422
|
}
|
421
423
|
|
@@ -439,14 +441,13 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
439
441
|
public:
|
440
442
|
SubchannelWrapper(ClientChannel* chand, RefCountedPtr<Subchannel> subchannel,
|
441
443
|
absl::optional<std::string> health_check_service_name)
|
442
|
-
: SubchannelInterface(
|
443
|
-
|
444
|
-
|
445
|
-
: nullptr),
|
444
|
+
: SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)
|
445
|
+
? "SubchannelWrapper"
|
446
|
+
: nullptr),
|
446
447
|
chand_(chand),
|
447
448
|
subchannel_(std::move(subchannel)),
|
448
449
|
health_check_service_name_(std::move(health_check_service_name)) {
|
449
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
450
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
450
451
|
gpr_log(GPR_INFO,
|
451
452
|
"chand=%p: creating subchannel wrapper %p for subchannel %p",
|
452
453
|
chand, this, subchannel_.get());
|
@@ -468,7 +469,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
468
469
|
}
|
469
470
|
|
470
471
|
~SubchannelWrapper() override {
|
471
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
472
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
472
473
|
gpr_log(GPR_INFO,
|
473
474
|
"chand=%p: destroying subchannel wrapper %p for subchannel %p",
|
474
475
|
chand_, this, subchannel_.get());
|
@@ -497,7 +498,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
497
498
|
void WatchConnectivityState(
|
498
499
|
grpc_connectivity_state initial_state,
|
499
500
|
std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override
|
500
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
501
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
501
502
|
auto& watcher_wrapper = watcher_map_[watcher.get()];
|
502
503
|
GPR_ASSERT(watcher_wrapper == nullptr);
|
503
504
|
watcher_wrapper = new WatcherWrapper(std::move(watcher),
|
@@ -510,7 +511,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
510
511
|
}
|
511
512
|
|
512
513
|
void CancelConnectivityStateWatch(ConnectivityStateWatcherInterface* watcher)
|
513
|
-
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
514
|
+
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
514
515
|
auto it = watcher_map_.find(watcher);
|
515
516
|
GPR_ASSERT(it != watcher_map_.end());
|
516
517
|
subchannel_->CancelConnectivityStateWatch(health_check_service_name_,
|
@@ -563,15 +564,15 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
563
564
|
~WatcherWrapper() override {
|
564
565
|
auto* parent = parent_.release(); // ref owned by lambda
|
565
566
|
parent->chand_->work_serializer_->Run(
|
566
|
-
[parent]()
|
567
|
-
|
568
|
-
|
569
|
-
|
567
|
+
[parent]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
568
|
+
*parent_->chand_->work_serializer_) {
|
569
|
+
parent->Unref(DEBUG_LOCATION, "WatcherWrapper");
|
570
|
+
},
|
570
571
|
DEBUG_LOCATION);
|
571
572
|
}
|
572
573
|
|
573
574
|
void OnConnectivityStateChange() override {
|
574
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
575
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
575
576
|
gpr_log(GPR_INFO,
|
576
577
|
"chand=%p: connectivity change for subchannel wrapper %p "
|
577
578
|
"subchannel %p; hopping into work_serializer",
|
@@ -579,11 +580,11 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
579
580
|
}
|
580
581
|
Ref().release(); // ref owned by lambda
|
581
582
|
parent_->chand_->work_serializer_->Run(
|
582
|
-
[this]()
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
583
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
584
|
+
*parent_->chand_->work_serializer_) {
|
585
|
+
ApplyUpdateInControlPlaneWorkSerializer();
|
586
|
+
Unref();
|
587
|
+
},
|
587
588
|
DEBUG_LOCATION);
|
588
589
|
}
|
589
590
|
|
@@ -605,8 +606,8 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
605
606
|
|
606
607
|
private:
|
607
608
|
void ApplyUpdateInControlPlaneWorkSerializer()
|
608
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(parent_->chand_->work_serializer_) {
|
609
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
609
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*parent_->chand_->work_serializer_) {
|
610
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
610
611
|
gpr_log(GPR_INFO,
|
611
612
|
"chand=%p: processing connectivity change in work serializer "
|
612
613
|
"for subchannel wrapper %p subchannel %p "
|
@@ -623,7 +624,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
623
624
|
&new_keepalive_time)) {
|
624
625
|
if (new_keepalive_time > parent_->chand_->keepalive_time_) {
|
625
626
|
parent_->chand_->keepalive_time_ = new_keepalive_time;
|
626
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
627
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
627
628
|
gpr_log(GPR_INFO, "chand=%p: throttling keepalive time to %d",
|
628
629
|
parent_->chand_, parent_->chand_->keepalive_time_);
|
629
630
|
}
|
@@ -665,7 +666,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
665
666
|
// CancelConnectivityStateWatch() with its watcher, we know the
|
666
667
|
// corresponding WrapperWatcher to cancel on the underlying subchannel.
|
667
668
|
std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_
|
668
|
-
ABSL_GUARDED_BY(
|
669
|
+
ABSL_GUARDED_BY(*chand_->work_serializer_);
|
669
670
|
};
|
670
671
|
|
671
672
|
//
|
@@ -695,7 +696,7 @@ ClientChannel::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
|
|
695
696
|
}
|
696
697
|
// Pass the ref from creating the object to Start().
|
697
698
|
chand_->work_serializer_->Run(
|
698
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
699
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
699
700
|
// The ref is passed to AddWatcherLocked().
|
700
701
|
AddWatcherLocked();
|
701
702
|
},
|
@@ -745,7 +746,7 @@ void ClientChannel::ExternalConnectivityWatcher::Notify(
|
|
745
746
|
// automatically remove all watchers in that case.
|
746
747
|
if (state != GRPC_CHANNEL_SHUTDOWN) {
|
747
748
|
chand_->work_serializer_->Run(
|
748
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
749
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
749
750
|
RemoveWatcherLocked();
|
750
751
|
},
|
751
752
|
DEBUG_LOCATION);
|
@@ -761,7 +762,7 @@ void ClientChannel::ExternalConnectivityWatcher::Cancel() {
|
|
761
762
|
ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_CANCELLED);
|
762
763
|
// Hop back into the work_serializer to clean up.
|
763
764
|
chand_->work_serializer_->Run(
|
764
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
765
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
765
766
|
RemoveWatcherLocked();
|
766
767
|
},
|
767
768
|
DEBUG_LOCATION);
|
@@ -792,7 +793,7 @@ class ClientChannel::ConnectivityWatcherAdder {
|
|
792
793
|
watcher_(std::move(watcher)) {
|
793
794
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
794
795
|
chand_->work_serializer_->Run(
|
795
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
796
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
796
797
|
AddWatcherLocked();
|
797
798
|
},
|
798
799
|
DEBUG_LOCATION);
|
@@ -800,7 +801,7 @@ class ClientChannel::ConnectivityWatcherAdder {
|
|
800
801
|
|
801
802
|
private:
|
802
803
|
void AddWatcherLocked()
|
803
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
804
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
804
805
|
chand_->state_tracker_.AddWatcher(initial_state_, std::move(watcher_));
|
805
806
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
806
807
|
delete this;
|
@@ -822,7 +823,7 @@ class ClientChannel::ConnectivityWatcherRemover {
|
|
822
823
|
: chand_(chand), watcher_(watcher) {
|
823
824
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherRemover");
|
824
825
|
chand_->work_serializer_->Run(
|
825
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
826
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
826
827
|
RemoveWatcherLocked();
|
827
828
|
},
|
828
829
|
DEBUG_LOCATION);
|
@@ -830,7 +831,7 @@ class ClientChannel::ConnectivityWatcherRemover {
|
|
830
831
|
|
831
832
|
private:
|
832
833
|
void RemoveWatcherLocked()
|
833
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
834
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
834
835
|
chand_->state_tracker_.RemoveWatcher(watcher_);
|
835
836
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
|
836
837
|
"ConnectivityWatcherRemover");
|
@@ -859,7 +860,7 @@ class ClientChannel::ClientChannelControlHelper
|
|
859
860
|
|
860
861
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
861
862
|
ServerAddress address, const grpc_channel_args& args) override
|
862
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
863
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
863
864
|
if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
|
864
865
|
// Determine health check service name.
|
865
866
|
absl::optional<std::string> health_check_service_name;
|
@@ -930,9 +931,9 @@ class ClientChannel::ClientChannelControlHelper
|
|
930
931
|
void UpdateState(
|
931
932
|
grpc_connectivity_state state, const absl::Status& status,
|
932
933
|
std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) override
|
933
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
934
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
934
935
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
935
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
936
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
936
937
|
const char* extra = chand_->disconnect_error_ == GRPC_ERROR_NONE
|
937
938
|
? ""
|
938
939
|
: " (ignoring -- channel shutting down)";
|
@@ -948,9 +949,9 @@ class ClientChannel::ClientChannelControlHelper
|
|
948
949
|
}
|
949
950
|
|
950
951
|
void RequestReresolution() override
|
951
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
952
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
952
953
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
953
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
954
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
954
955
|
gpr_log(GPR_INFO, "chand=%p: started name re-resolving", chand_);
|
955
956
|
}
|
956
957
|
chand_->resolver_->RequestReresolutionLocked();
|
@@ -961,7 +962,7 @@ class ClientChannel::ClientChannelControlHelper
|
|
961
962
|
}
|
962
963
|
|
963
964
|
void AddTraceEvent(TraceSeverity severity, absl::string_view message) override
|
964
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
965
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
965
966
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
966
967
|
if (chand_->channelz_node_ != nullptr) {
|
967
968
|
chand_->channelz_node_->AddTraceEvent(
|
@@ -1034,10 +1035,12 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1034
1035
|
ClientChannelFactory::GetFromChannelArgs(args->channel_args)),
|
1035
1036
|
channelz_node_(GetChannelzNode(args->channel_args)),
|
1036
1037
|
interested_parties_(grpc_pollset_set_create()),
|
1038
|
+
service_config_parser_index_(
|
1039
|
+
internal::ClientChannelServiceConfigParser::ParserIndex()),
|
1037
1040
|
work_serializer_(std::make_shared<WorkSerializer>()),
|
1038
1041
|
state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
|
1039
1042
|
subchannel_pool_(GetSubchannelPool(args->channel_args)) {
|
1040
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1043
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1041
1044
|
gpr_log(GPR_INFO, "chand=%p: creating client_channel for channel stack %p",
|
1042
1045
|
this, owning_stack_);
|
1043
1046
|
}
|
@@ -1056,7 +1059,7 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1056
1059
|
if (service_config_json == nullptr) service_config_json = "{}";
|
1057
1060
|
*error = GRPC_ERROR_NONE;
|
1058
1061
|
default_service_config_ =
|
1059
|
-
|
1062
|
+
ServiceConfigImpl::Create(args->channel_args, service_config_json, error);
|
1060
1063
|
if (*error != GRPC_ERROR_NONE) {
|
1061
1064
|
default_service_config_.reset();
|
1062
1065
|
return;
|
@@ -1081,7 +1084,8 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1081
1084
|
}
|
1082
1085
|
// Make sure the URI to resolve is valid, so that we know that
|
1083
1086
|
// resolver creation will succeed later.
|
1084
|
-
if (!
|
1087
|
+
if (!CoreConfiguration::Get().resolver_registry().IsValidTarget(
|
1088
|
+
uri_to_resolve_)) {
|
1085
1089
|
*error = GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
1086
1090
|
absl::StrCat("the target uri is not valid: ", uri_to_resolve_));
|
1087
1091
|
return;
|
@@ -1100,7 +1104,9 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1100
1104
|
const char* default_authority =
|
1101
1105
|
grpc_channel_args_find_string(channel_args_, GRPC_ARG_DEFAULT_AUTHORITY);
|
1102
1106
|
if (default_authority == nullptr) {
|
1103
|
-
default_authority_ =
|
1107
|
+
default_authority_ =
|
1108
|
+
CoreConfiguration::Get().resolver_registry().GetDefaultAuthority(
|
1109
|
+
server_uri);
|
1104
1110
|
} else {
|
1105
1111
|
default_authority_ = default_authority;
|
1106
1112
|
}
|
@@ -1109,7 +1115,7 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1109
1115
|
}
|
1110
1116
|
|
1111
1117
|
ClientChannel::~ClientChannel() {
|
1112
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1118
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1113
1119
|
gpr_log(GPR_INFO, "chand=%p: destroying channel", this);
|
1114
1120
|
}
|
1115
1121
|
DestroyResolverAndLbPolicyLocked();
|
@@ -1148,6 +1154,24 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1148
1154
|
} else {
|
1149
1155
|
policy_name = grpc_channel_args_find_string(resolver_result.args,
|
1150
1156
|
GRPC_ARG_LB_POLICY_NAME);
|
1157
|
+
bool requires_config = false;
|
1158
|
+
if (policy_name != nullptr &&
|
1159
|
+
(!LoadBalancingPolicyRegistry::LoadBalancingPolicyExists(
|
1160
|
+
policy_name, &requires_config) ||
|
1161
|
+
requires_config)) {
|
1162
|
+
if (requires_config) {
|
1163
|
+
gpr_log(GPR_ERROR,
|
1164
|
+
"LB policy: %s passed through channel_args must not "
|
1165
|
+
"require a config. Using pick_first instead.",
|
1166
|
+
policy_name);
|
1167
|
+
} else {
|
1168
|
+
gpr_log(GPR_ERROR,
|
1169
|
+
"LB policy: %s passed through channel_args does not exist. "
|
1170
|
+
"Using pick_first instead.",
|
1171
|
+
policy_name);
|
1172
|
+
}
|
1173
|
+
policy_name = "pick_first";
|
1174
|
+
}
|
1151
1175
|
}
|
1152
1176
|
// Use pick_first if nothing was specified and we didn't select grpclb
|
1153
1177
|
// above.
|
@@ -1165,12 +1189,9 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1165
1189
|
// already verified that the policy does not require a config.
|
1166
1190
|
// - One of the hard-coded values here, all of which are known to not
|
1167
1191
|
// require a config.
|
1168
|
-
// - A channel arg, in which case the
|
1169
|
-
//
|
1170
|
-
//
|
1171
|
-
// the last case, this is probably fine for now.
|
1172
|
-
// TODO(roth): If the last case becomes a problem, add better error
|
1173
|
-
// handling here.
|
1192
|
+
// - A channel arg, in which case we check that the specified policy exists
|
1193
|
+
// and accepts an empty config. If not, we revert to using pick_first
|
1194
|
+
// lb_policy
|
1174
1195
|
GPR_ASSERT(lb_policy_config != nullptr);
|
1175
1196
|
GPR_ASSERT(parse_error == GRPC_ERROR_NONE);
|
1176
1197
|
return lb_policy_config;
|
@@ -1181,7 +1202,7 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1181
1202
|
void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
1182
1203
|
// Handle race conditions.
|
1183
1204
|
if (resolver_ == nullptr) return;
|
1184
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1205
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1185
1206
|
gpr_log(GPR_INFO, "chand=%p: got resolver result", this);
|
1186
1207
|
}
|
1187
1208
|
// We only want to trace the address resolution in the follow cases:
|
@@ -1214,14 +1235,14 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1214
1235
|
RefCountedPtr<ServiceConfig> service_config;
|
1215
1236
|
RefCountedPtr<ConfigSelector> config_selector;
|
1216
1237
|
if (!result.service_config.ok()) {
|
1217
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1238
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1218
1239
|
gpr_log(GPR_INFO, "chand=%p: resolver returned service config error: %s",
|
1219
1240
|
this, result.service_config.status().ToString().c_str());
|
1220
1241
|
}
|
1221
1242
|
// If the service config was invalid, then fallback to the
|
1222
1243
|
// previously returned service config.
|
1223
1244
|
if (saved_service_config_ != nullptr) {
|
1224
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1245
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1225
1246
|
gpr_log(GPR_INFO,
|
1226
1247
|
"chand=%p: resolver returned invalid service config. "
|
1227
1248
|
"Continuing to use previous service config.",
|
@@ -1238,7 +1259,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1238
1259
|
}
|
1239
1260
|
} else if (*result.service_config == nullptr) {
|
1240
1261
|
// Resolver did not return any service config.
|
1241
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1262
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1242
1263
|
gpr_log(GPR_INFO,
|
1243
1264
|
"chand=%p: resolver returned no service config. Using default "
|
1244
1265
|
"service config for channel.",
|
@@ -1258,7 +1279,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1258
1279
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config =
|
1259
1280
|
static_cast<const internal::ClientChannelGlobalParsedConfig*>(
|
1260
1281
|
service_config->GetGlobalParsedConfig(
|
1261
|
-
|
1282
|
+
service_config_parser_index_));
|
1262
1283
|
// Choose LB policy config.
|
1263
1284
|
RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config =
|
1264
1285
|
ChooseLbPolicy(result, parsed_service_config);
|
@@ -1275,7 +1296,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1275
1296
|
UpdateServiceConfigInControlPlaneLocked(std::move(service_config),
|
1276
1297
|
std::move(config_selector),
|
1277
1298
|
lb_policy_config->name());
|
1278
|
-
} else if (GRPC_TRACE_FLAG_ENABLED(
|
1299
|
+
} else if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1279
1300
|
gpr_log(GPR_INFO, "chand=%p: service config not changed", this);
|
1280
1301
|
}
|
1281
1302
|
// Create or update LB policy, as needed.
|
@@ -1306,7 +1327,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1306
1327
|
|
1307
1328
|
void ClientChannel::OnResolverErrorLocked(absl::Status status) {
|
1308
1329
|
if (resolver_ == nullptr) return;
|
1309
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1330
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1310
1331
|
gpr_log(GPR_INFO, "chand=%p: resolver transient failure: %s", this,
|
1311
1332
|
status.ToString().c_str());
|
1312
1333
|
}
|
@@ -1365,7 +1386,7 @@ void ClientChannel::CreateOrUpdateLbPolicyLocked(
|
|
1365
1386
|
lb_policy_ = CreateLbPolicyLocked(*update_args.args);
|
1366
1387
|
}
|
1367
1388
|
// Update the policy.
|
1368
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1389
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1369
1390
|
gpr_log(GPR_INFO, "chand=%p: Updating child policy %p", this,
|
1370
1391
|
lb_policy_.get());
|
1371
1392
|
}
|
@@ -1382,8 +1403,8 @@ OrphanablePtr<LoadBalancingPolicy> ClientChannel::CreateLbPolicyLocked(
|
|
1382
1403
|
lb_policy_args.args = &args;
|
1383
1404
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
1384
1405
|
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
1385
|
-
&
|
1386
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1406
|
+
&grpc_client_channel_trace);
|
1407
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1387
1408
|
gpr_log(GPR_INFO, "chand=%p: created new LB policy %p", this,
|
1388
1409
|
lb_policy.get());
|
1389
1410
|
}
|
@@ -1418,26 +1439,24 @@ void ClientChannel::RemoveResolverQueuedCall(ResolverQueuedCall* to_remove,
|
|
1418
1439
|
|
1419
1440
|
void ClientChannel::UpdateServiceConfigInControlPlaneLocked(
|
1420
1441
|
RefCountedPtr<ServiceConfig> service_config,
|
1421
|
-
RefCountedPtr<ConfigSelector> config_selector,
|
1422
|
-
|
1423
|
-
|
1424
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1442
|
+
RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name) {
|
1443
|
+
std::string service_config_json(service_config->json_string());
|
1444
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1425
1445
|
gpr_log(GPR_INFO,
|
1426
1446
|
"chand=%p: resolver returned updated service config: \"%s\"", this,
|
1427
|
-
service_config_json.
|
1447
|
+
service_config_json.c_str());
|
1428
1448
|
}
|
1429
1449
|
// Save service config.
|
1430
1450
|
saved_service_config_ = std::move(service_config);
|
1431
1451
|
// Swap out the data used by GetChannelInfo().
|
1432
|
-
UniquePtr<char> lb_policy_name_owned(gpr_strdup(lb_policy_name));
|
1433
1452
|
{
|
1434
1453
|
MutexLock lock(&info_mu_);
|
1435
|
-
info_lb_policy_name_ = std::move(
|
1454
|
+
info_lb_policy_name_ = std::move(lb_policy_name);
|
1436
1455
|
info_service_config_json_ = std::move(service_config_json);
|
1437
1456
|
}
|
1438
1457
|
// Save config selector.
|
1439
1458
|
saved_config_selector_ = std::move(config_selector);
|
1440
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1459
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1441
1460
|
gpr_log(GPR_INFO, "chand=%p: using ConfigSelector %p", this,
|
1442
1461
|
saved_config_selector_.get());
|
1443
1462
|
}
|
@@ -1448,7 +1467,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1448
1467
|
RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
|
1449
1468
|
// Grab ref to config selector. Use default if resolver didn't supply one.
|
1450
1469
|
RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
|
1451
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1470
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1452
1471
|
gpr_log(GPR_INFO, "chand=%p: switching to ConfigSelector %p", this,
|
1453
1472
|
saved_config_selector_.get());
|
1454
1473
|
}
|
@@ -1519,10 +1538,10 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1519
1538
|
}
|
1520
1539
|
|
1521
1540
|
void ClientChannel::CreateResolverLocked() {
|
1522
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1541
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1523
1542
|
gpr_log(GPR_INFO, "chand=%p: starting name resolution", this);
|
1524
1543
|
}
|
1525
|
-
resolver_ =
|
1544
|
+
resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
|
1526
1545
|
uri_to_resolve_.c_str(), channel_args_, interested_parties_,
|
1527
1546
|
work_serializer_, absl::make_unique<ResolverResultHandler>(this));
|
1528
1547
|
// Since the validity of the args was checked when the channel was created,
|
@@ -1532,20 +1551,20 @@ void ClientChannel::CreateResolverLocked() {
|
|
1532
1551
|
GRPC_CHANNEL_CONNECTING, absl::Status(), "started resolving",
|
1533
1552
|
absl::make_unique<LoadBalancingPolicy::QueuePicker>(nullptr));
|
1534
1553
|
resolver_->StartLocked();
|
1535
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1554
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1536
1555
|
gpr_log(GPR_INFO, "chand=%p: created resolver=%p", this, resolver_.get());
|
1537
1556
|
}
|
1538
1557
|
}
|
1539
1558
|
|
1540
1559
|
void ClientChannel::DestroyResolverAndLbPolicyLocked() {
|
1541
1560
|
if (resolver_ != nullptr) {
|
1542
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1561
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1543
1562
|
gpr_log(GPR_INFO, "chand=%p: shutting down resolver=%p", this,
|
1544
1563
|
resolver_.get());
|
1545
1564
|
}
|
1546
1565
|
resolver_.reset();
|
1547
1566
|
if (lb_policy_ != nullptr) {
|
1548
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1567
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1549
1568
|
gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
|
1550
1569
|
lb_policy_.get());
|
1551
1570
|
}
|
@@ -1661,7 +1680,7 @@ grpc_error_handle ClientChannel::DoPingLocked(grpc_transport_op* op) {
|
|
1661
1680
|
&result,
|
1662
1681
|
// Complete pick.
|
1663
1682
|
[op](LoadBalancingPolicy::PickResult::Complete* complete_pick)
|
1664
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
1683
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*ClientChannel::work_serializer_) {
|
1665
1684
|
SubchannelWrapper* subchannel = static_cast<SubchannelWrapper*>(
|
1666
1685
|
complete_pick->subchannel.get());
|
1667
1686
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel =
|
@@ -1713,7 +1732,7 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1713
1732
|
}
|
1714
1733
|
// Disconnect or enter IDLE.
|
1715
1734
|
if (op->disconnect_with_error != GRPC_ERROR_NONE) {
|
1716
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1735
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1717
1736
|
gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s", this,
|
1718
1737
|
grpc_error_std_string(op->disconnect_with_error).c_str());
|
1719
1738
|
}
|
@@ -1753,7 +1772,7 @@ void ClientChannel::StartTransportOp(grpc_channel_element* elem,
|
|
1753
1772
|
// Pop into control plane work_serializer for remaining ops.
|
1754
1773
|
GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "start_transport_op");
|
1755
1774
|
chand->work_serializer_->Run(
|
1756
|
-
[chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand->work_serializer_) {
|
1775
|
+
[chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
|
1757
1776
|
chand->StartTransportOpLocked(op);
|
1758
1777
|
},
|
1759
1778
|
DEBUG_LOCATION);
|
@@ -1764,11 +1783,11 @@ void ClientChannel::GetChannelInfo(grpc_channel_element* elem,
|
|
1764
1783
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
1765
1784
|
MutexLock lock(&chand->info_mu_);
|
1766
1785
|
if (info->lb_policy_name != nullptr) {
|
1767
|
-
*info->lb_policy_name = gpr_strdup(chand->info_lb_policy_name_.
|
1786
|
+
*info->lb_policy_name = gpr_strdup(chand->info_lb_policy_name_.c_str());
|
1768
1787
|
}
|
1769
1788
|
if (info->service_config_json != nullptr) {
|
1770
1789
|
*info->service_config_json =
|
1771
|
-
gpr_strdup(chand->info_service_config_json_.
|
1790
|
+
gpr_strdup(chand->info_service_config_json_.c_str());
|
1772
1791
|
}
|
1773
1792
|
}
|
1774
1793
|
|
@@ -1815,7 +1834,7 @@ grpc_connectivity_state ClientChannel::CheckConnectivityState(
|
|
1815
1834
|
if (out == GRPC_CHANNEL_IDLE && try_to_connect) {
|
1816
1835
|
GRPC_CHANNEL_STACK_REF(owning_stack_, "TryToConnect");
|
1817
1836
|
work_serializer_->Run([this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
1818
|
-
work_serializer_) { TryToConnectLocked(); },
|
1837
|
+
*work_serializer_) { TryToConnectLocked(); },
|
1819
1838
|
DEBUG_LOCATION);
|
1820
1839
|
}
|
1821
1840
|
return out;
|
@@ -1842,7 +1861,7 @@ ClientChannel::CallData::CallData(grpc_call_element* elem,
|
|
1842
1861
|
: deadline_state_(elem, args,
|
1843
1862
|
GPR_LIKELY(chand.deadline_checking_enabled_)
|
1844
1863
|
? args.deadline
|
1845
|
-
:
|
1864
|
+
: Timestamp::InfFuture()),
|
1846
1865
|
path_(grpc_slice_ref_internal(args.path)),
|
1847
1866
|
call_start_time_(args.start_time),
|
1848
1867
|
deadline_(args.deadline),
|
@@ -1891,6 +1910,11 @@ void ClientChannel::CallData::StartTransportStreamOpBatch(
|
|
1891
1910
|
GPR_TIMER_SCOPE("cc_start_transport_stream_op_batch", 0);
|
1892
1911
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1893
1912
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
1913
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace) &&
|
1914
|
+
!GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
|
1915
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from above: %s", chand,
|
1916
|
+
calld, grpc_transport_stream_op_batch_string(batch).c_str());
|
1917
|
+
}
|
1894
1918
|
if (GPR_LIKELY(chand->deadline_checking_enabled_)) {
|
1895
1919
|
grpc_deadline_state_client_start_transport_stream_op_batch(elem, batch);
|
1896
1920
|
}
|
@@ -1898,8 +1922,13 @@ void ClientChannel::CallData::StartTransportStreamOpBatch(
|
|
1898
1922
|
// in case we wind up failing the call before we get down to the retry
|
1899
1923
|
// or LB call layer.
|
1900
1924
|
if (batch->recv_trailing_metadata) {
|
1901
|
-
calld->
|
1902
|
-
batch
|
1925
|
+
calld->original_recv_trailing_metadata_ready_ =
|
1926
|
+
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
|
1927
|
+
GRPC_CLOSURE_INIT(&calld->recv_trailing_metadata_ready_,
|
1928
|
+
RecvTrailingMetadataReadyForConfigSelectorCommitCallback,
|
1929
|
+
elem, nullptr);
|
1930
|
+
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
|
1931
|
+
&calld->recv_trailing_metadata_ready_;
|
1903
1932
|
}
|
1904
1933
|
// If we already have a dynamic call, pass the batch down to it.
|
1905
1934
|
// Note that once we have done so, we do not need to acquire the channel's
|
@@ -2124,7 +2153,7 @@ class ClientChannel::CallData::ResolverQueuedCallCanceller {
|
|
2124
2153
|
auto* calld = static_cast<CallData*>(self->elem_->call_data);
|
2125
2154
|
{
|
2126
2155
|
MutexLock lock(&chand->resolution_mu_);
|
2127
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2156
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2128
2157
|
gpr_log(GPR_INFO,
|
2129
2158
|
"chand=%p calld=%p: cancelling resolver queued pick: "
|
2130
2159
|
"error=%s self=%p calld->resolver_pick_canceller=%p",
|
@@ -2151,7 +2180,7 @@ void ClientChannel::CallData::MaybeRemoveCallFromResolverQueuedCallsLocked(
|
|
2151
2180
|
grpc_call_element* elem) {
|
2152
2181
|
if (!queued_pending_resolver_result_) return;
|
2153
2182
|
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2154
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2183
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2155
2184
|
gpr_log(GPR_INFO,
|
2156
2185
|
"chand=%p calld=%p: removing from resolver queued picks list",
|
2157
2186
|
chand, this);
|
@@ -2166,7 +2195,7 @@ void ClientChannel::CallData::MaybeAddCallToResolverQueuedCallsLocked(
|
|
2166
2195
|
grpc_call_element* elem) {
|
2167
2196
|
if (queued_pending_resolver_result_) return;
|
2168
2197
|
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2169
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2198
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2170
2199
|
gpr_log(GPR_INFO, "chand=%p calld=%p: adding to resolver queued picks list",
|
2171
2200
|
chand, this);
|
2172
2201
|
}
|
@@ -2180,7 +2209,7 @@ void ClientChannel::CallData::MaybeAddCallToResolverQueuedCallsLocked(
|
|
2180
2209
|
grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
2181
2210
|
grpc_call_element* elem, grpc_metadata_batch* initial_metadata) {
|
2182
2211
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2183
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2212
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2184
2213
|
gpr_log(GPR_INFO, "chand=%p calld=%p: applying service config to call",
|
2185
2214
|
chand, this);
|
2186
2215
|
}
|
@@ -2203,13 +2232,14 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
2203
2232
|
// Apply our own method params to the call.
|
2204
2233
|
auto* method_params = static_cast<ClientChannelMethodParsedConfig*>(
|
2205
2234
|
service_config_call_data->GetMethodParsedConfig(
|
2206
|
-
|
2235
|
+
chand->service_config_parser_index_));
|
2207
2236
|
if (method_params != nullptr) {
|
2208
2237
|
// If the deadline from the service config is shorter than the one
|
2209
2238
|
// from the client API, reset the deadline timer.
|
2210
|
-
if (chand->deadline_checking_enabled_ &&
|
2211
|
-
|
2212
|
-
|
2239
|
+
if (chand->deadline_checking_enabled_ &&
|
2240
|
+
method_params->timeout() != Duration::Zero()) {
|
2241
|
+
const Timestamp per_method_deadline =
|
2242
|
+
Timestamp::FromCycleCounterRoundUp(call_start_time_) +
|
2213
2243
|
method_params->timeout();
|
2214
2244
|
if (per_method_deadline < deadline_) {
|
2215
2245
|
deadline_ = per_method_deadline;
|
@@ -2240,30 +2270,27 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
2240
2270
|
void ClientChannel::CallData::
|
2241
2271
|
RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
2242
2272
|
void* arg, grpc_error_handle error) {
|
2243
|
-
auto*
|
2273
|
+
auto* elem = static_cast<grpc_call_element*>(arg);
|
2274
|
+
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2275
|
+
auto* calld = static_cast<CallData*>(elem->call_data);
|
2244
2276
|
auto* service_config_call_data =
|
2245
2277
|
static_cast<ClientChannelServiceConfigCallData*>(
|
2246
|
-
|
2278
|
+
calld->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
|
2279
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2280
|
+
gpr_log(GPR_INFO,
|
2281
|
+
"chand=%p calld=%p: got recv_trailing_metadata_ready: error=%s "
|
2282
|
+
"service_config_call_data=%p",
|
2283
|
+
chand, calld, grpc_error_std_string(error).c_str(),
|
2284
|
+
service_config_call_data);
|
2285
|
+
}
|
2247
2286
|
if (service_config_call_data != nullptr) {
|
2248
2287
|
service_config_call_data->call_dispatch_controller()->Commit();
|
2249
2288
|
}
|
2250
2289
|
// Chain to original callback.
|
2251
|
-
Closure::Run(DEBUG_LOCATION,
|
2290
|
+
Closure::Run(DEBUG_LOCATION, calld->original_recv_trailing_metadata_ready_,
|
2252
2291
|
GRPC_ERROR_REF(error));
|
2253
2292
|
}
|
2254
2293
|
|
2255
|
-
void ClientChannel::CallData::
|
2256
|
-
InjectRecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
2257
|
-
grpc_transport_stream_op_batch* batch) {
|
2258
|
-
original_recv_trailing_metadata_ready_ =
|
2259
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
|
2260
|
-
GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_,
|
2261
|
-
RecvTrailingMetadataReadyForConfigSelectorCommitCallback,
|
2262
|
-
this, nullptr);
|
2263
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
|
2264
|
-
&recv_trailing_metadata_ready_;
|
2265
|
-
}
|
2266
|
-
|
2267
2294
|
void ClientChannel::CallData::AsyncResolutionDone(grpc_call_element* elem,
|
2268
2295
|
grpc_error_handle error) {
|
2269
2296
|
// TODO(roth): Does this callback need to hold a ref to the call stack?
|
@@ -2277,7 +2304,7 @@ void ClientChannel::CallData::ResolutionDone(void* arg,
|
|
2277
2304
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2278
2305
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
2279
2306
|
if (error != GRPC_ERROR_NONE) {
|
2280
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2307
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2281
2308
|
gpr_log(GPR_INFO,
|
2282
2309
|
"chand=%p calld=%p: error applying config to call: error=%s",
|
2283
2310
|
chand, calld, grpc_error_std_string(error).c_str());
|
@@ -2309,6 +2336,9 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2309
2336
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2310
2337
|
// If we're still in IDLE, we need to start resolving.
|
2311
2338
|
if (GPR_UNLIKELY(chand->CheckConnectivityState(false) == GRPC_CHANNEL_IDLE)) {
|
2339
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2340
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: triggering exit idle", chand, this);
|
2341
|
+
}
|
2312
2342
|
// Bounce into the control plane work serializer to start resolving,
|
2313
2343
|
// in case we are still in IDLE state. Since we are holding on to the
|
2314
2344
|
// resolution mutex here, we offload it on the ExecCtx so that we don't
|
@@ -2321,7 +2351,7 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2321
2351
|
auto* chand = static_cast<ClientChannel*>(arg);
|
2322
2352
|
chand->work_serializer_->Run(
|
2323
2353
|
[chand]()
|
2324
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand->work_serializer_) {
|
2354
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
|
2325
2355
|
chand->CheckConnectivityState(/*try_to_connect=*/true);
|
2326
2356
|
GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_,
|
2327
2357
|
"CheckResolutionLocked");
|
@@ -2346,6 +2376,10 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2346
2376
|
absl::Status resolver_error = chand->resolver_transient_failure_error_;
|
2347
2377
|
if (!resolver_error.ok() && (send_initial_metadata_flags &
|
2348
2378
|
GRPC_INITIAL_METADATA_WAIT_FOR_READY) == 0) {
|
2379
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2380
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: resolution failed, failing call",
|
2381
|
+
chand, this);
|
2382
|
+
}
|
2349
2383
|
MaybeRemoveCallFromResolverQueuedCallsLocked(elem);
|
2350
2384
|
*error = absl_status_to_grpc_error(resolver_error);
|
2351
2385
|
return true;
|
@@ -2353,6 +2387,10 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2353
2387
|
// Either the resolver has not yet returned a result, or it has
|
2354
2388
|
// returned transient failure but the call is wait_for_ready. In
|
2355
2389
|
// either case, queue the call.
|
2390
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2391
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: queuing to wait for resolution",
|
2392
|
+
chand, this);
|
2393
|
+
}
|
2356
2394
|
MaybeAddCallToResolverQueuedCallsLocked(elem);
|
2357
2395
|
return false;
|
2358
2396
|
}
|
@@ -2377,7 +2415,7 @@ void ClientChannel::CallData::CreateDynamicCall(grpc_call_element* elem) {
|
|
2377
2415
|
call_combiner_};
|
2378
2416
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
2379
2417
|
DynamicFilters* channel_stack = args.channel_stack.get();
|
2380
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2418
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2381
2419
|
gpr_log(
|
2382
2420
|
GPR_INFO,
|
2383
2421
|
"chand=%p calld=%p: creating dynamic call stack on channel_stack=%p",
|
@@ -2385,7 +2423,7 @@ void ClientChannel::CallData::CreateDynamicCall(grpc_call_element* elem) {
|
|
2385
2423
|
}
|
2386
2424
|
dynamic_call_ = channel_stack->CreateCall(std::move(args), &error);
|
2387
2425
|
if (error != GRPC_ERROR_NONE) {
|
2388
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2426
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2389
2427
|
gpr_log(GPR_INFO,
|
2390
2428
|
"chand=%p calld=%p: failed to create dynamic call: error=%s",
|
2391
2429
|
chand, this, grpc_error_std_string(error).c_str());
|
@@ -2406,6 +2444,7 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2406
2444
|
explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {}
|
2407
2445
|
|
2408
2446
|
void Add(absl::string_view key, absl::string_view value) override {
|
2447
|
+
if (batch_ == nullptr) return;
|
2409
2448
|
// Gross, egregious hack to support legacy grpclb behavior.
|
2410
2449
|
// TODO(ctiller): Use a promise context for this once that plumbing is done.
|
2411
2450
|
if (key == GrpcLbClientStatsMetadata::key()) {
|
@@ -2426,6 +2465,7 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2426
2465
|
|
2427
2466
|
std::vector<std::pair<std::string, std::string>> TestOnlyCopyToVector()
|
2428
2467
|
override {
|
2468
|
+
if (batch_ == nullptr) return {};
|
2429
2469
|
Encoder encoder;
|
2430
2470
|
batch_->Encode(&encoder);
|
2431
2471
|
return encoder.Take();
|
@@ -2433,6 +2473,7 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2433
2473
|
|
2434
2474
|
absl::optional<absl::string_view> Lookup(absl::string_view key,
|
2435
2475
|
std::string* buffer) const override {
|
2476
|
+
if (batch_ == nullptr) return absl::nullopt;
|
2436
2477
|
return batch_->GetStringValue(key, buffer);
|
2437
2478
|
}
|
2438
2479
|
|
@@ -2451,7 +2492,8 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2451
2492
|
std::string(value_slice.as_string_view()));
|
2452
2493
|
}
|
2453
2494
|
|
2454
|
-
void Encode(GrpcTimeoutMetadata,
|
2495
|
+
void Encode(GrpcTimeoutMetadata,
|
2496
|
+
const typename GrpcTimeoutMetadata::ValueType&) {}
|
2455
2497
|
void Encode(HttpPathMetadata, const Slice&) {}
|
2456
2498
|
void Encode(HttpMethodMetadata,
|
2457
2499
|
const typename HttpMethodMetadata::ValueType&) {}
|
@@ -2502,7 +2544,8 @@ class ClientChannel::LoadBalancedCall::BackendMetricAccessor
|
|
2502
2544
|
: lb_call_(lb_call) {}
|
2503
2545
|
|
2504
2546
|
const BackendMetricData* GetBackendMetricData() override {
|
2505
|
-
if (lb_call_->backend_metric_data_ == nullptr
|
2547
|
+
if (lb_call_->backend_metric_data_ == nullptr &&
|
2548
|
+
lb_call_->recv_trailing_metadata_ != nullptr) {
|
2506
2549
|
if (const auto* md = lb_call_->recv_trailing_metadata_->get_pointer(
|
2507
2550
|
XEndpointLoadMetricsBinMetadata())) {
|
2508
2551
|
lb_call_->backend_metric_data_ =
|
@@ -2538,7 +2581,7 @@ ClientChannel::LoadBalancedCall::LoadBalancedCall(
|
|
2538
2581
|
ConfigSelector::CallDispatchController* call_dispatch_controller,
|
2539
2582
|
bool is_transparent_retry)
|
2540
2583
|
: InternallyRefCounted(
|
2541
|
-
GRPC_TRACE_FLAG_ENABLED(
|
2584
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)
|
2542
2585
|
? "LoadBalancedCall"
|
2543
2586
|
: nullptr),
|
2544
2587
|
chand_(chand),
|
@@ -2552,7 +2595,11 @@ ClientChannel::LoadBalancedCall::LoadBalancedCall(
|
|
2552
2595
|
on_call_destruction_complete_(on_call_destruction_complete),
|
2553
2596
|
call_dispatch_controller_(call_dispatch_controller),
|
2554
2597
|
call_attempt_tracer_(
|
2555
|
-
GetCallAttemptTracer(args.context, is_transparent_retry)) {
|
2598
|
+
GetCallAttemptTracer(args.context, is_transparent_retry)) {
|
2599
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2600
|
+
gpr_log(GPR_INFO, "chand=%p lb_call=%p: created", chand_, this);
|
2601
|
+
}
|
2602
|
+
}
|
2556
2603
|
|
2557
2604
|
ClientChannel::LoadBalancedCall::~LoadBalancedCall() {
|
2558
2605
|
GRPC_ERROR_UNREF(cancel_error_);
|
@@ -2572,6 +2619,12 @@ ClientChannel::LoadBalancedCall::~LoadBalancedCall() {
|
|
2572
2619
|
}
|
2573
2620
|
|
2574
2621
|
void ClientChannel::LoadBalancedCall::Orphan() {
|
2622
|
+
// If the recv_trailing_metadata op was never started, then notify
|
2623
|
+
// about call completion here, as best we can. We assume status
|
2624
|
+
// CANCELLED in this case.
|
2625
|
+
if (recv_trailing_metadata_ == nullptr) {
|
2626
|
+
RecordCallCompletion(absl::CancelledError("call cancelled"));
|
2627
|
+
}
|
2575
2628
|
// Compute latency and report it to the tracer.
|
2576
2629
|
if (call_attempt_tracer_ != nullptr) {
|
2577
2630
|
gpr_timespec latency =
|
@@ -2598,7 +2651,7 @@ size_t ClientChannel::LoadBalancedCall::GetBatchIndex(
|
|
2598
2651
|
void ClientChannel::LoadBalancedCall::PendingBatchesAdd(
|
2599
2652
|
grpc_transport_stream_op_batch* batch) {
|
2600
2653
|
const size_t idx = GetBatchIndex(batch);
|
2601
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2654
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2602
2655
|
gpr_log(GPR_INFO,
|
2603
2656
|
"chand=%p lb_call=%p: adding pending batch at index %" PRIuPTR,
|
2604
2657
|
chand_, this, idx);
|
@@ -2625,7 +2678,7 @@ void ClientChannel::LoadBalancedCall::PendingBatchesFail(
|
|
2625
2678
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
2626
2679
|
GRPC_ERROR_UNREF(failure_error_);
|
2627
2680
|
failure_error_ = error;
|
2628
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2681
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2629
2682
|
size_t num_batches = 0;
|
2630
2683
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
2631
2684
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
@@ -2667,7 +2720,7 @@ void ClientChannel::LoadBalancedCall::ResumePendingBatchInCallCombiner(
|
|
2667
2720
|
|
2668
2721
|
// This is called via the call combiner, so access to calld is synchronized.
|
2669
2722
|
void ClientChannel::LoadBalancedCall::PendingBatchesResume() {
|
2670
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2723
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2671
2724
|
size_t num_batches = 0;
|
2672
2725
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
2673
2726
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
@@ -2696,6 +2749,14 @@ void ClientChannel::LoadBalancedCall::PendingBatchesResume() {
|
|
2696
2749
|
|
2697
2750
|
void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
2698
2751
|
grpc_transport_stream_op_batch* batch) {
|
2752
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace) ||
|
2753
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
|
2754
|
+
gpr_log(GPR_INFO,
|
2755
|
+
"chand=%p lb_call=%p: batch started from above: %s, "
|
2756
|
+
"call_attempt_tracer_=%p",
|
2757
|
+
chand_, this, grpc_transport_stream_op_batch_string(batch).c_str(),
|
2758
|
+
call_attempt_tracer_);
|
2759
|
+
}
|
2699
2760
|
// Handle call tracing.
|
2700
2761
|
if (call_attempt_tracer_ != nullptr) {
|
2701
2762
|
// Record send ops in tracer.
|
@@ -2759,7 +2820,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2759
2820
|
// the channel's data plane mutex, which is more efficient (especially for
|
2760
2821
|
// streaming calls).
|
2761
2822
|
if (subchannel_call_ != nullptr) {
|
2762
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2823
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2763
2824
|
gpr_log(GPR_INFO,
|
2764
2825
|
"chand=%p lb_call=%p: starting batch on subchannel_call=%p",
|
2765
2826
|
chand_, this, subchannel_call_.get());
|
@@ -2771,7 +2832,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2771
2832
|
//
|
2772
2833
|
// If we've previously been cancelled, immediately fail any new batches.
|
2773
2834
|
if (GPR_UNLIKELY(cancel_error_ != GRPC_ERROR_NONE)) {
|
2774
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2835
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2775
2836
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: failing batch with error: %s",
|
2776
2837
|
chand_, this, grpc_error_std_string(cancel_error_).c_str());
|
2777
2838
|
}
|
@@ -2789,7 +2850,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2789
2850
|
// error to the caller when the first batch does get passed down.
|
2790
2851
|
GRPC_ERROR_UNREF(cancel_error_);
|
2791
2852
|
cancel_error_ = GRPC_ERROR_REF(batch->payload->cancel_stream.cancel_error);
|
2792
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2853
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2793
2854
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: recording cancel_error=%s",
|
2794
2855
|
chand_, this, grpc_error_std_string(cancel_error_).c_str());
|
2795
2856
|
}
|
@@ -2805,7 +2866,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2805
2866
|
// For batches containing a send_initial_metadata op, acquire the
|
2806
2867
|
// channel's data plane mutex to pick a subchannel.
|
2807
2868
|
if (GPR_LIKELY(batch->send_initial_metadata)) {
|
2808
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2869
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2809
2870
|
gpr_log(GPR_INFO,
|
2810
2871
|
"chand=%p lb_call=%p: grabbing data plane mutex to perform pick",
|
2811
2872
|
chand_, this);
|
@@ -2813,7 +2874,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2813
2874
|
PickSubchannel(this, GRPC_ERROR_NONE);
|
2814
2875
|
} else {
|
2815
2876
|
// For all other batches, release the call combiner.
|
2816
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2877
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2817
2878
|
gpr_log(GPR_INFO,
|
2818
2879
|
"chand=%p lb_call=%p: saved batch, yielding call combiner",
|
2819
2880
|
chand_, this);
|
@@ -2826,6 +2887,12 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2826
2887
|
void ClientChannel::LoadBalancedCall::SendInitialMetadataOnComplete(
|
2827
2888
|
void* arg, grpc_error_handle error) {
|
2828
2889
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2890
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2891
|
+
gpr_log(GPR_INFO,
|
2892
|
+
"chand=%p lb_call=%p: got on_complete for send_initial_metadata: "
|
2893
|
+
"error=%s",
|
2894
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2895
|
+
}
|
2829
2896
|
self->call_attempt_tracer_->RecordOnDoneSendInitialMetadata(
|
2830
2897
|
self->peer_string_);
|
2831
2898
|
Closure::Run(DEBUG_LOCATION,
|
@@ -2836,6 +2903,11 @@ void ClientChannel::LoadBalancedCall::SendInitialMetadataOnComplete(
|
|
2836
2903
|
void ClientChannel::LoadBalancedCall::RecvInitialMetadataReady(
|
2837
2904
|
void* arg, grpc_error_handle error) {
|
2838
2905
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2906
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2907
|
+
gpr_log(GPR_INFO,
|
2908
|
+
"chand=%p lb_call=%p: got recv_initial_metadata_ready: error=%s",
|
2909
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2910
|
+
}
|
2839
2911
|
if (error == GRPC_ERROR_NONE) {
|
2840
2912
|
// recv_initial_metadata_flags is not populated for clients
|
2841
2913
|
self->call_attempt_tracer_->RecordReceivedInitialMetadata(
|
@@ -2848,6 +2920,10 @@ void ClientChannel::LoadBalancedCall::RecvInitialMetadataReady(
|
|
2848
2920
|
void ClientChannel::LoadBalancedCall::RecvMessageReady(
|
2849
2921
|
void* arg, grpc_error_handle error) {
|
2850
2922
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2923
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2924
|
+
gpr_log(GPR_INFO, "chand=%p lb_call=%p: got recv_message_ready: error=%s",
|
2925
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2926
|
+
}
|
2851
2927
|
if (*self->recv_message_ != nullptr) {
|
2852
2928
|
self->call_attempt_tracer_->RecordReceivedMessage(**self->recv_message_);
|
2853
2929
|
}
|
@@ -2858,6 +2934,15 @@ void ClientChannel::LoadBalancedCall::RecvMessageReady(
|
|
2858
2934
|
void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
2859
2935
|
void* arg, grpc_error_handle error) {
|
2860
2936
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2937
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2938
|
+
gpr_log(GPR_INFO,
|
2939
|
+
"chand=%p lb_call=%p: got recv_trailing_metadata_ready: error=%s "
|
2940
|
+
"call_attempt_tracer_=%p lb_subchannel_call_tracker_=%p "
|
2941
|
+
"failure_error_=%s",
|
2942
|
+
self->chand_, self, grpc_error_std_string(error).c_str(),
|
2943
|
+
self->call_attempt_tracer_, self->lb_subchannel_call_tracker_.get(),
|
2944
|
+
grpc_error_std_string(self->failure_error_).c_str());
|
2945
|
+
}
|
2861
2946
|
// Check if we have a tracer or an LB callback to invoke.
|
2862
2947
|
if (self->call_attempt_tracer_ != nullptr ||
|
2863
2948
|
self->lb_subchannel_call_tracker_ != nullptr) {
|
@@ -2883,22 +2968,7 @@ void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
|
2883
2968
|
status = absl::Status(static_cast<absl::StatusCode>(code), message);
|
2884
2969
|
}
|
2885
2970
|
}
|
2886
|
-
|
2887
|
-
if (self->call_attempt_tracer_ != nullptr) {
|
2888
|
-
self->call_attempt_tracer_->RecordReceivedTrailingMetadata(
|
2889
|
-
status, self->recv_trailing_metadata_,
|
2890
|
-
*self->transport_stream_stats_);
|
2891
|
-
}
|
2892
|
-
// If the LB policy requested a callback for trailing metadata, invoke
|
2893
|
-
// the callback.
|
2894
|
-
if (self->lb_subchannel_call_tracker_ != nullptr) {
|
2895
|
-
Metadata trailing_metadata(self->recv_trailing_metadata_);
|
2896
|
-
BackendMetricAccessor backend_metric_accessor(self);
|
2897
|
-
LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
|
2898
|
-
status, &trailing_metadata, &backend_metric_accessor};
|
2899
|
-
self->lb_subchannel_call_tracker_->Finish(args);
|
2900
|
-
self->lb_subchannel_call_tracker_.reset();
|
2901
|
-
}
|
2971
|
+
self->RecordCallCompletion(status);
|
2902
2972
|
}
|
2903
2973
|
// Chain to original callback.
|
2904
2974
|
if (self->failure_error_ != GRPC_ERROR_NONE) {
|
@@ -2911,6 +2981,25 @@ void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
|
2911
2981
|
error);
|
2912
2982
|
}
|
2913
2983
|
|
2984
|
+
void ClientChannel::LoadBalancedCall::RecordCallCompletion(
|
2985
|
+
absl::Status status) {
|
2986
|
+
// If we have a tracer, notify it.
|
2987
|
+
if (call_attempt_tracer_ != nullptr) {
|
2988
|
+
call_attempt_tracer_->RecordReceivedTrailingMetadata(
|
2989
|
+
status, recv_trailing_metadata_, transport_stream_stats_);
|
2990
|
+
}
|
2991
|
+
// If the LB policy requested a callback for trailing metadata, invoke
|
2992
|
+
// the callback.
|
2993
|
+
if (lb_subchannel_call_tracker_ != nullptr) {
|
2994
|
+
Metadata trailing_metadata(recv_trailing_metadata_);
|
2995
|
+
BackendMetricAccessor backend_metric_accessor(this);
|
2996
|
+
LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
|
2997
|
+
status, &trailing_metadata, &backend_metric_accessor};
|
2998
|
+
lb_subchannel_call_tracker_->Finish(args);
|
2999
|
+
lb_subchannel_call_tracker_.reset();
|
3000
|
+
}
|
3001
|
+
}
|
3002
|
+
|
2914
3003
|
void ClientChannel::LoadBalancedCall::CreateSubchannelCall() {
|
2915
3004
|
SubchannelCall::Args call_args = {
|
2916
3005
|
std::move(connected_subchannel_), pollent_, path_.Ref(), /*start_time=*/0,
|
@@ -2920,7 +3009,7 @@ void ClientChannel::LoadBalancedCall::CreateSubchannelCall() {
|
|
2920
3009
|
call_context_, call_combiner_};
|
2921
3010
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
2922
3011
|
subchannel_call_ = SubchannelCall::Create(std::move(call_args), &error);
|
2923
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3012
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2924
3013
|
gpr_log(GPR_INFO,
|
2925
3014
|
"chand=%p lb_call=%p: create subchannel_call=%p: error=%s", chand_,
|
2926
3015
|
this, subchannel_call_.get(), grpc_error_std_string(error).c_str());
|
@@ -2959,7 +3048,7 @@ class ClientChannel::LoadBalancedCall::LbQueuedCallCanceller {
|
|
2959
3048
|
auto* chand = lb_call->chand_;
|
2960
3049
|
{
|
2961
3050
|
MutexLock lock(&chand->data_plane_mu_);
|
2962
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3051
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2963
3052
|
gpr_log(GPR_INFO,
|
2964
3053
|
"chand=%p lb_call=%p: cancelling queued pick: "
|
2965
3054
|
"error=%s self=%p calld->pick_canceller=%p",
|
@@ -2985,7 +3074,7 @@ class ClientChannel::LoadBalancedCall::LbQueuedCallCanceller {
|
|
2985
3074
|
|
2986
3075
|
void ClientChannel::LoadBalancedCall::MaybeRemoveCallFromLbQueuedCallsLocked() {
|
2987
3076
|
if (!queued_pending_lb_pick_) return;
|
2988
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3077
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2989
3078
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: removing from queued picks list",
|
2990
3079
|
chand_, this);
|
2991
3080
|
}
|
@@ -2997,7 +3086,7 @@ void ClientChannel::LoadBalancedCall::MaybeRemoveCallFromLbQueuedCallsLocked() {
|
|
2997
3086
|
|
2998
3087
|
void ClientChannel::LoadBalancedCall::MaybeAddCallToLbQueuedCallsLocked() {
|
2999
3088
|
if (queued_pending_lb_pick_) return;
|
3000
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3089
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3001
3090
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: adding to queued picks list",
|
3002
3091
|
chand_, this);
|
3003
3092
|
}
|
@@ -3018,7 +3107,7 @@ void ClientChannel::LoadBalancedCall::PickDone(void* arg,
|
|
3018
3107
|
grpc_error_handle error) {
|
3019
3108
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
3020
3109
|
if (error != GRPC_ERROR_NONE) {
|
3021
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3110
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3022
3111
|
gpr_log(GPR_INFO,
|
3023
3112
|
"chand=%p lb_call=%p: failed to pick subchannel: error=%s",
|
3024
3113
|
self->chand_, self, grpc_error_std_string(error).c_str());
|
@@ -3068,7 +3157,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3068
3157
|
// CompletePick
|
3069
3158
|
[this](LoadBalancingPolicy::PickResult::Complete* complete_pick)
|
3070
3159
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3071
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3160
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3072
3161
|
gpr_log(GPR_INFO,
|
3073
3162
|
"chand=%p lb_call=%p: LB pick succeeded: subchannel=%p",
|
3074
3163
|
chand_, this, complete_pick->subchannel.get());
|
@@ -3084,7 +3173,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3084
3173
|
// yet seen that change and given us a new picker), then just
|
3085
3174
|
// queue the pick. We'll try again as soon as we get a new picker.
|
3086
3175
|
if (connected_subchannel_ == nullptr) {
|
3087
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3176
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3088
3177
|
gpr_log(GPR_INFO,
|
3089
3178
|
"chand=%p lb_call=%p: subchannel returned by LB picker "
|
3090
3179
|
"has no connected subchannel; queueing pick",
|
@@ -3104,7 +3193,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3104
3193
|
// QueuePick
|
3105
3194
|
[this](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/)
|
3106
3195
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3107
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3196
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3108
3197
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick queued", chand_,
|
3109
3198
|
this);
|
3110
3199
|
}
|
@@ -3115,7 +3204,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3115
3204
|
[this, send_initial_metadata_flags,
|
3116
3205
|
&error](LoadBalancingPolicy::PickResult::Fail* fail_pick)
|
3117
3206
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3118
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3207
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3119
3208
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick failed: %s",
|
3120
3209
|
chand_, this, fail_pick->status.ToString().c_str());
|
3121
3210
|
}
|
@@ -3139,7 +3228,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3139
3228
|
// DropPick
|
3140
3229
|
[this, &error](LoadBalancingPolicy::PickResult::Drop* drop_pick)
|
3141
3230
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3142
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3231
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3143
3232
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick dropped: %s",
|
3144
3233
|
chand_, this, drop_pick->status.ToString().c_str());
|
3145
3234
|
}
|