grpc 1.43.1 → 1.48.0
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 +488 -338
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +64 -20
- data/include/grpc/event_engine/memory_allocator.h +0 -15
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +118 -0
- data/include/grpc/grpc.h +43 -17
- data/include/grpc/grpc_posix.h +20 -19
- data/include/grpc/grpc_security.h +47 -50
- data/include/grpc/impl/codegen/compression_types.h +2 -3
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +26 -22
- data/include/grpc/impl/codegen/port_platform.h +107 -40
- data/include/grpc/impl/codegen/slice.h +5 -2
- data/include/grpc/slice.h +0 -11
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +309 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +141 -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 +7 -5
- data/src/core/ext/filters/client_channel/backend_metric.cc +20 -15
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +20 -14
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +48 -26
- data/src/core/ext/filters/client_channel/client_channel.cc +413 -301
- data/src/core/ext/filters/client_channel/client_channel.h +83 -45
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -23
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +12 -10
- data/src/core/ext/filters/client_channel/connector.h +10 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +20 -8
- data/src/core/ext/filters/client_channel/dynamic_filters.h +14 -4
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +4 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +6 -15
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +140 -583
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +98 -112
- data/src/core/ext/filters/client_channel/http_proxy.h +20 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +10 -5
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +15 -12
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +227 -137
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +25 -16
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +407 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1036 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +196 -176
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +364 -224
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +381 -233
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +253 -175
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +261 -234
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +133 -120
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +155 -105
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +172 -84
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +7 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +99 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +55 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +355 -394
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +37 -34
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +11 -6
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +36 -22
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +383 -318
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +30 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +29 -23
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +29 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +172 -240
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +38 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +3 -2
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +123 -254
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +37 -37
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +144 -77
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +213 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +113 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +56 -50
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +368 -167
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +19 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +22 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +322 -201
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +27 -30
- data/src/core/ext/filters/client_channel/retry_service_config.h +28 -13
- data/src/core/ext/filters/client_channel/retry_throttle.cc +10 -31
- data/src/core/ext/filters/client_channel/retry_throttle.h +18 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +30 -11
- data/src/core/ext/filters/client_channel/subchannel.cc +227 -235
- data/src/core/ext/filters/client_channel/subchannel.h +84 -40
- data/src/core/ext/filters/client_channel/subchannel_interface.h +51 -41
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +473 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +222 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +31 -21
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +173 -402
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +31 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +18 -17
- data/src/core/ext/filters/fault_injection/service_config_parser.h +27 -7
- data/src/core/ext/filters/http/client/http_client_filter.cc +108 -535
- data/src/core/ext/filters/http/client/http_client_filter.h +35 -5
- data/src/core/ext/filters/http/client_authority_filter.cc +44 -112
- data/src/core/ext/filters/http/client_authority_filter.h +28 -6
- data/src/core/ext/filters/http/http_filters_plugin.cc +33 -24
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +101 -320
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +59 -133
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +100 -458
- data/src/core/ext/filters/http/server/http_server_filter.h +37 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +66 -70
- data/src/core/ext/filters/message_size/message_size_filter.h +25 -5
- data/src/core/ext/filters/rbac/rbac_filter.cc +174 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +84 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +617 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +87 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +3 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +14 -4
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +97 -199
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +278 -77
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +288 -56
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +512 -710
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -3
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +147 -263
- data/src/core/ext/transport/chttp2/transport/flow_control.h +180 -289
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +59 -212
- data/src/core/ext/transport/chttp2/transport/frame_data.h +13 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +9 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +12 -42
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +10 -12
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +349 -290
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +85 -162
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +5 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +61 -91
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +41 -46
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +41 -153
- data/src/core/ext/transport/chttp2/transport/parsing.cc +87 -51
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +135 -157
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +117 -158
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -4
- 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 +64 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +183 -0
- 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/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- 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/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
- 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 +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- 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 +59 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- 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 +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- 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_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +12 -0
- data/src/core/ext/xds/certificate_provider_store.h +18 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +13 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +10 -2
- data/src/core/ext/xds/upb_utils.h +66 -0
- data/src/core/ext/xds/xds_api.cc +376 -3718
- data/src/core/ext/xds/xds_api.h +71 -619
- data/src/core/ext/xds/xds_bootstrap.cc +250 -141
- data/src/core/ext/xds/xds_bootstrap.h +39 -23
- data/src/core/ext/xds/xds_certificate_provider.cc +17 -3
- data/src/core/ext/xds/xds_certificate_provider.h +25 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +24 -18
- data/src/core/ext/xds/xds_channel_stack_modifier.h +9 -4
- data/src/core/ext/xds/xds_client.cc +850 -1160
- data/src/core/ext/xds/xds_client.h +129 -156
- data/src/core/ext/xds/xds_client_stats.cc +18 -19
- data/src/core/ext/xds/xds_client_stats.h +9 -7
- data/src/core/ext/xds/xds_cluster.cc +554 -0
- data/src/core/ext/xds/xds_cluster.h +119 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +151 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +72 -0
- data/src/core/ext/xds/xds_common_types.cc +402 -0
- data/src/core/ext/xds/xds_common_types.h +103 -0
- data/src/core/ext/xds/xds_endpoint.cc +381 -0
- data/src/core/ext/xds/xds_endpoint.h +143 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +17 -15
- data/src/core/ext/xds/xds_http_fault_filter.h +6 -4
- data/src/core/ext/xds/xds_http_filters.cc +18 -5
- data/src/core/ext/xds/xds_http_filters.h +7 -7
- data/src/core/ext/xds/xds_http_rbac_filter.cc +579 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +61 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +1067 -0
- data/src/core/ext/xds/xds_listener.h +229 -0
- data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → xds/xds_resource_type.cc} +12 -9
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +91 -0
- data/src/core/ext/xds/xds_route_config.cc +1150 -0
- data/src/core/ext/xds/xds_route_config.h +227 -0
- data/src/core/ext/xds/xds_routing.cc +28 -9
- data/src/core/ext/xds/xds_routing.h +15 -7
- data/src/core/ext/xds/xds_server_config_fetcher.cc +234 -129
- data/src/core/lib/address_utils/parse_address.cc +25 -8
- data/src/core/lib/address_utils/parse_address.h +8 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +82 -51
- data/src/core/lib/address_utils/sockaddr_utils.h +9 -19
- data/src/core/lib/avl/avl.h +71 -6
- data/src/core/lib/backoff/backoff.cc +9 -38
- data/src/core/lib/backoff/backoff.h +12 -12
- data/src/core/lib/channel/call_finalization.h +90 -0
- data/src/core/lib/channel/call_tracer.h +15 -6
- data/src/core/lib/channel/channel_args.cc +202 -45
- data/src/core/lib/channel/channel_args.h +243 -9
- data/src/core/lib/channel/channel_args_preconditioning.cc +6 -10
- data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +55 -10
- data/src/core/lib/channel/channel_stack.h +83 -14
- data/src/core/lib/channel/channel_stack_builder.cc +19 -276
- data/src/core/lib/channel/channel_stack_builder.h +104 -150
- data/src/core/lib/channel/channel_stack_builder_impl.cc +97 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +46 -0
- data/src/core/lib/channel/channel_trace.cc +11 -19
- data/src/core/lib/channel/channel_trace.h +6 -3
- data/src/core/lib/channel/channelz.cc +11 -14
- data/src/core/lib/channel/channelz.h +15 -7
- data/src/core/lib/channel/channelz_registry.cc +11 -19
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +26 -30
- data/src/core/lib/channel/connected_channel.h +4 -1
- data/src/core/lib/channel/context.h +11 -0
- data/src/core/lib/channel/promise_based_filter.cc +1263 -0
- data/src/core/lib/channel/promise_based_filter.h +572 -0
- data/src/core/lib/channel/status_util.cc +2 -0
- data/src/core/lib/channel/status_util.h +0 -3
- data/src/core/lib/compression/compression.cc +26 -113
- data/src/core/lib/compression/compression_internal.cc +170 -204
- data/src/core/lib/compression/compression_internal.h +68 -72
- data/src/core/lib/compression/message_compress.cc +14 -12
- data/src/core/lib/compression/message_compress.h +4 -5
- data/src/core/lib/config/core_configuration.cc +11 -2
- data/src/core/lib/config/core_configuration.h +41 -1
- data/src/core/lib/debug/stats.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +4 -7
- data/src/core/lib/debug/stats_data.h +18 -25
- data/src/core/lib/debug/trace.h +13 -12
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
- data/src/core/lib/{iomgr/event_engine/resolved_address_internal.h → event_engine/default_event_engine_factory.cc} +10 -12
- data/src/core/lib/event_engine/event_engine.cc +40 -10
- data/src/core/lib/event_engine/event_engine_factory.h +8 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.cc +159 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.h +122 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/memory_allocator.cc +20 -16
- data/src/core/lib/{iomgr/event_engine → event_engine}/promise.h +27 -9
- data/src/core/lib/{iomgr/event_engine/resolved_address_internal.cc → event_engine/resolved_address.cc} +13 -13
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/{ext/filters/max_age/max_age_filter.h → lib/event_engine/trace.cc} +3 -11
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
- data/src/core/lib/gpr/log.cc +5 -0
- data/src/core/lib/gpr/sync_posix.cc +1 -0
- data/src/core/lib/gpr/time.cc +2 -1
- data/src/core/lib/gpr/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gpr/tls.h +4 -5
- data/src/core/lib/gpr/useful.h +18 -0
- data/src/core/lib/gprpp/bitset.h +24 -1
- data/src/core/lib/gprpp/chunked_vector.h +49 -3
- data/src/core/lib/gprpp/construct_destruct.h +1 -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/dual_ref_counted.h +1 -4
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +3 -6
- data/src/core/lib/gprpp/global_config.h +2 -4
- data/src/core/lib/gprpp/global_config_env.cc +3 -2
- data/src/core/lib/gprpp/global_config_env.h +3 -1
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +0 -68
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +74 -48
- data/src/core/lib/gprpp/status_helper.h +10 -19
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +21 -0
- data/src/core/lib/gprpp/thd.h +2 -5
- data/src/core/lib/gprpp/thd_posix.cc +4 -2
- data/src/core/lib/gprpp/thd_windows.cc +2 -0
- data/src/core/lib/gprpp/time.cc +214 -0
- data/src/core/lib/gprpp/time.h +301 -0
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +62 -29
- data/src/core/lib/http/format_request.h +10 -7
- data/src/core/lib/http/httpcli.cc +325 -244
- data/src/core/lib/http/httpcli.h +232 -91
- data/src/core/lib/http/httpcli_security_connector.cc +79 -79
- data/src/core/lib/http/httpcli_ssl_credentials.h +39 -0
- data/src/core/lib/http/parser.cc +85 -15
- data/src/core/lib/http/parser.h +18 -2
- data/src/core/lib/iomgr/buffer_list.h +5 -5
- data/src/core/lib/iomgr/call_combiner.cc +17 -6
- data/src/core/lib/iomgr/closure.h +29 -9
- data/src/core/lib/iomgr/combiner.cc +25 -3
- data/src/core/lib/iomgr/endpoint.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +7 -5
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +24 -19
- data/src/core/lib/iomgr/error.h +9 -7
- data/src/core/lib/iomgr/ev_apple.cc +6 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +65 -25
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +84 -59
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +58 -100
- data/src/core/lib/iomgr/ev_posix.h +6 -4
- data/src/core/lib/iomgr/exec_ctx.cc +25 -97
- data/src/core/lib/iomgr/exec_ctx.h +8 -25
- data/src/core/lib/iomgr/executor.cc +10 -1
- data/src/core/lib/iomgr/fork_posix.cc +1 -0
- data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- 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/iomgr.cc +7 -1
- data/src/core/lib/iomgr/{event_engine/pollset.h → iomgr_fwd.h} +9 -9
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +3 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
- data/src/core/lib/iomgr/load_file.cc +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_set.h +1 -2
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +26 -12
- data/src/core/lib/iomgr/resolve_address.cc +12 -23
- data/src/core/lib/iomgr/resolve_address.h +56 -46
- data/src/core/lib/iomgr/resolve_address_impl.h +58 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +76 -66
- data/src/core/lib/iomgr/resolve_address_posix.h +50 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +87 -75
- data/src/core/lib/iomgr/resolve_address_windows.h +50 -0
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/resolved_address.h} +21 -10
- data/src/core/lib/iomgr/sockaddr.h +2 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -19
- data/src/core/lib/iomgr/tcp_client.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -12
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +24 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +157 -32
- data/src/core/lib/iomgr/tcp_client_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_client_windows.cc +27 -16
- data/src/core/lib/iomgr/tcp_posix.cc +167 -64
- data/src/core/lib/iomgr/tcp_server_posix.cc +57 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +42 -38
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +10 -6
- data/src/core/lib/iomgr/tcp_server_windows.cc +20 -12
- data/src/core/lib/iomgr/tcp_windows.cc +29 -19
- 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/unix_sockets_posix.cc +22 -34
- data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.cc +15 -10
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- data/src/core/lib/json/json.h +1 -2
- data/src/core/lib/json/json_reader.cc +9 -1
- data/src/core/lib/json/json_util.cc +11 -4
- data/src/core/lib/json/json_util.h +15 -6
- data/src/core/lib/json/json_writer.cc +6 -1
- data/src/core/lib/matchers/matchers.cc +7 -4
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +15 -10
- data/src/core/lib/promise/activity.h +192 -157
- data/src/core/lib/promise/arena_promise.h +198 -0
- data/src/core/lib/promise/call_push_pull.h +148 -0
- data/src/core/lib/promise/context.h +1 -1
- data/src/core/lib/promise/detail/basic_seq.h +94 -5
- data/src/core/lib/promise/detail/promise_factory.h +1 -2
- data/src/core/lib/promise/detail/status.h +6 -0
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +103 -0
- data/src/core/lib/promise/loop.h +36 -8
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/promise.h +96 -0
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +19 -3
- data/src/core/lib/promise/sleep.cc +81 -0
- data/src/core/lib/promise/sleep.h +76 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +22 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +46 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +36 -33
- data/src/core/lib/resolver/resolver_registry.cc +149 -0
- data/src/core/lib/resolver/resolver_registry.h +124 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +18 -4
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +17 -10
- data/src/core/lib/resource_quota/api.cc +19 -31
- data/src/core/lib/resource_quota/api.h +5 -3
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -19
- data/src/core/lib/{gprpp → resource_quota}/arena.h +25 -15
- data/src/core/lib/resource_quota/memory_quota.cc +170 -146
- data/src/core/lib/resource_quota/memory_quota.h +131 -90
- data/src/core/lib/resource_quota/resource_quota.h +16 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +4 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +14 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +34 -23
- data/src/core/lib/security/authorization/evaluate_args.h +7 -4
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +66 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +69 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +121 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +61 -0
- data/src/core/lib/security/authorization/matchers.cc +235 -0
- data/src/core/lib/security/authorization/matchers.h +218 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +447 -0
- data/src/core/lib/security/authorization/rbac_policy.h +178 -0
- data/src/core/lib/security/context/security_context.cc +9 -4
- data/src/core/lib/security/context/security_context.h +23 -4
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +16 -7
- data/src/core/lib/security/credentials/alts/alts_credentials.h +16 -1
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +97 -0
- data/src/core/lib/security/credentials/call_creds_util.h +43 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +103 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +80 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +31 -86
- data/src/core/lib/security/credentials/composite/composite_credentials.h +41 -13
- data/src/core/lib/security/credentials/credentials.cc +6 -11
- data/src/core/lib/security/credentials/credentials.h +90 -87
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +154 -39
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +19 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +78 -42
- data/src/core/lib/security/credentials/external/external_account_credentials.h +16 -9
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -5
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +55 -17
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +40 -32
- data/src/core/lib/security/credentials/fake/fake_credentials.h +35 -22
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +69 -35
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +20 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +32 -30
- data/src/core/lib/security/credentials/iam/iam_credentials.h +25 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +35 -26
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +62 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +9 -8
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +44 -49
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +30 -12
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +81 -43
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -3
- data/src/core/lib/security/credentials/local/local_credentials.cc +16 -9
- data/src/core/lib/security/credentials/local/local_credentials.h +17 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +175 -171
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +81 -34
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +104 -156
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +80 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +18 -14
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +39 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +56 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +43 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +72 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +29 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +67 -80
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +26 -8
- data/src/core/lib/security/credentials/tls/tls_credentials.h +11 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +65 -51
- data/src/core/lib/security/credentials/xds/xds_credentials.h +51 -6
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +30 -16
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +7 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +22 -14
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -4
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +15 -16
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +21 -11
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +32 -21
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +22 -32
- data/src/core/lib/security/security_connector/security_connector.h +44 -28
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +29 -20
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +41 -33
- data/src/core/lib/security/security_connector/ssl_utils.h +23 -24
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +46 -28
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +29 -9
- data/src/core/lib/security/transport/auth_filters.h +45 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +112 -368
- data/src/core/lib/security/transport/secure_endpoint.cc +267 -137
- data/src/core/lib/security/transport/secure_endpoint.h +5 -4
- data/src/core/lib/security/transport/security_handshaker.cc +69 -26
- data/src/core/lib/security/transport/security_handshaker.h +5 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +70 -41
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config.h +78 -0
- data/src/core/{ext → lib}/service_config/service_config_call_data.h +11 -7
- data/src/core/{ext/service_config/service_config.cc → lib/service_config/service_config_impl.cc} +33 -23
- data/src/core/{ext/service_config/service_config.h → lib/service_config/service_config_impl.h} +24 -21
- data/src/core/{ext → lib}/service_config/service_config_parser.cc +39 -29
- data/src/core/{ext → lib}/service_config/service_config_parser.h +45 -29
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +4 -1
- data/src/core/lib/slice/percent_encoding.h +0 -6
- data/src/core/lib/slice/slice.cc +78 -180
- data/src/core/lib/slice/slice.h +77 -29
- data/src/core/lib/slice/slice_api.cc +1 -1
- data/src/core/lib/slice/slice_buffer.cc +79 -23
- data/src/core/lib/slice/slice_buffer.h +137 -0
- data/src/core/lib/{iomgr/is_epollexclusive_available.h → slice/slice_buffer_api.cc} +11 -12
- data/src/core/lib/slice/slice_internal.h +16 -34
- data/src/core/lib/slice/slice_refcount.cc +18 -0
- data/src/core/lib/slice/slice_refcount.h +6 -86
- data/src/core/lib/slice/slice_refcount_base.h +18 -139
- data/src/core/lib/slice/slice_string_helpers.cc +0 -16
- data/src/core/lib/slice/slice_string_helpers.h +1 -8
- data/src/core/lib/surface/builtins.cc +11 -6
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +1113 -1275
- data/src/core/lib/surface/call.h +26 -22
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +7 -1
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +220 -289
- data/src/core/lib/surface/channel.h +100 -62
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +4 -6
- data/src/core/lib/surface/channel_ping.cc +8 -2
- data/src/core/lib/surface/channel_stack_type.cc +0 -2
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +39 -29
- data/src/core/lib/surface/completion_queue.h +7 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -0
- data/src/core/lib/surface/completion_queue_factory.h +1 -3
- data/src/core/lib/surface/event_string.cc +1 -7
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +66 -26
- data/src/core/lib/surface/init.h +0 -10
- data/src/core/lib/surface/lame_client.cc +63 -109
- data/src/core/lib/surface/lame_client.h +41 -3
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +106 -126
- data/src/core/lib/surface/server.h +48 -16
- data/src/core/lib/surface/validate_metadata.cc +3 -6
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +12 -11
- data/src/core/lib/transport/bdp_estimator.h +4 -5
- data/src/core/lib/transport/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +21 -11
- data/src/core/lib/transport/error_utils.h +7 -2
- data/src/core/lib/{channel → transport}/handshaker.cc +13 -8
- data/src/core/lib/{channel → transport}/handshaker.h +14 -7
- data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
- data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
- data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +37 -26
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +260 -72
- data/src/core/lib/transport/metadata_batch.h +932 -799
- data/src/core/lib/transport/parsed_metadata.cc +4 -0
- data/src/core/lib/transport/parsed_metadata.h +124 -98
- data/src/core/lib/transport/status_conversion.cc +4 -2
- data/src/core/lib/transport/status_conversion.h +3 -3
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +203 -70
- data/src/core/lib/transport/timeout_encoding.h +44 -10
- data/src/core/lib/transport/transport.cc +21 -21
- data/src/core/lib/transport/transport.h +151 -19
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +25 -0
- data/src/core/lib/transport/transport_op_string.cc +21 -64
- data/src/core/lib/uri/uri_parser.cc +238 -56
- data/src/core/lib/uri/uri_parser.h +37 -25
- data/src/core/plugin_registry/grpc_plugin_registry.cc +32 -91
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +27 -22
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +22 -14
- 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/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- 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/session_cache/ssl_session.h +3 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +180 -52
- data/src/core/tsi/ssl_transport_security.h +46 -8
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +59 -21
- data/src/ruby/ext/grpc/rb_channel.c +5 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +20 -24
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +31 -37
- data/src/ruby/ext/grpc/rb_server.c +7 -4
- data/src/ruby/lib/grpc/errors.rb +1 -1
- 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/src/proto/grpc/testing/test_pb.rb +2 -1
- 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/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +50 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +510 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +95 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +269 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +161 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +225 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +264 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +149 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +96 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +256 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +261 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +111 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +272 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -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_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/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -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_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_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_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- 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_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_init.c → src/lib/ares_init.c} +79 -40
- 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/src/lib/ares_nameser.h +482 -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_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_strsplit.c → src/lib/ares_strsplit.c} +4 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -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/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/xxhash/xxhash.h +607 -352
- 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 +502 -247
- 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_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -194
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -88
- 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 -37
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
- 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/lib/compression/algorithm_metadata.h +0 -62
- data/src/core/lib/compression/compression_args.cc +0 -140
- data/src/core/lib/compression/compression_args.h +0 -58
- data/src/core/lib/compression/stream_compression.cc +0 -81
- data/src/core/lib/compression/stream_compression.h +0 -117
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -91
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/event_engine/event_engine_factory.cc +0 -49
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- 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/event_engine/closure.cc +0 -77
- data/src/core/lib/iomgr/event_engine/closure.h +0 -42
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -84
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -88
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -115
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -295
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -63
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
- 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/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 -169
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -44
- 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/security/credentials/credentials_metadata.cc +0 -61
- data/src/core/lib/slice/slice_intern.cc +0 -367
- data/src/core/lib/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/slice/static_slice.cc +0 -377
- data/src/core/lib/slice/static_slice.h +0 -300
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/src/core/lib/transport/byte_stream.cc +0 -162
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/src/core/lib/transport/metadata.cc +0 -714
- data/src/core/lib/transport/metadata.h +0 -449
- data/src/core/lib/transport/static_metadata.cc +0 -1032
- data/src/core/lib/transport/static_metadata.h +0 -322
- data/src/core/lib/transport/status_metadata.cc +0 -63
- data/src/core/lib/transport/status_metadata.h +0 -48
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
- 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
- /data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- /data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- /data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- /data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- /data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- /data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- /data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- /data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- /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_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- /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/{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/{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_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.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/{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/{config-win32.h → src/lib/config-win32.h} +0 -0
- /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
@@ -20,60 +20,73 @@
|
|
20
20
|
|
21
21
|
#include <inttypes.h>
|
22
22
|
#include <limits.h>
|
23
|
-
#include <stdbool.h>
|
24
|
-
#include <stdio.h>
|
25
23
|
#include <string.h>
|
26
24
|
|
25
|
+
#include <algorithm>
|
26
|
+
#include <functional>
|
27
|
+
#include <new>
|
27
28
|
#include <set>
|
29
|
+
#include <vector>
|
28
30
|
|
29
31
|
#include "absl/container/inlined_vector.h"
|
32
|
+
#include "absl/memory/memory.h"
|
33
|
+
#include "absl/status/status.h"
|
34
|
+
#include "absl/status/statusor.h"
|
35
|
+
#include "absl/strings/cord.h"
|
30
36
|
#include "absl/strings/numbers.h"
|
31
37
|
#include "absl/strings/str_cat.h"
|
32
38
|
#include "absl/strings/str_join.h"
|
33
39
|
#include "absl/strings/string_view.h"
|
34
40
|
#include "absl/types/optional.h"
|
41
|
+
#include "absl/types/variant.h"
|
35
42
|
|
43
|
+
#include <grpc/impl/codegen/gpr_types.h>
|
44
|
+
#include <grpc/slice.h>
|
45
|
+
#include <grpc/status.h>
|
36
46
|
#include <grpc/support/alloc.h>
|
37
47
|
#include <grpc/support/log.h>
|
38
48
|
#include <grpc/support/string_util.h>
|
39
|
-
#include <grpc/support/sync.h>
|
40
49
|
|
41
50
|
#include "src/core/ext/filters/client_channel/backend_metric.h"
|
42
51
|
#include "src/core/ext/filters/client_channel/backup_poller.h"
|
52
|
+
#include "src/core/ext/filters/client_channel/client_channel_channelz.h"
|
43
53
|
#include "src/core/ext/filters/client_channel/config_selector.h"
|
44
54
|
#include "src/core/ext/filters/client_channel/dynamic_filters.h"
|
45
55
|
#include "src/core/ext/filters/client_channel/global_subchannel_pool.h"
|
46
|
-
#include "src/core/ext/filters/client_channel/http_connect_handshaker.h"
|
47
56
|
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
48
57
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
49
58
|
#include "src/core/ext/filters/client_channel/local_subchannel_pool.h"
|
50
59
|
#include "src/core/ext/filters/client_channel/proxy_mapper_registry.h"
|
51
|
-
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
52
60
|
#include "src/core/ext/filters/client_channel/resolver_result_parsing.h"
|
53
61
|
#include "src/core/ext/filters/client_channel/retry_filter.h"
|
54
62
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
63
|
+
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
64
|
+
#include "src/core/ext/filters/client_channel/subchannel_interface_internal.h"
|
55
65
|
#include "src/core/ext/filters/deadline/deadline_filter.h"
|
56
|
-
#include "src/core/ext/service_config/service_config.h"
|
57
|
-
#include "src/core/ext/service_config/service_config_call_data.h"
|
58
|
-
#include "src/core/lib/backoff/backoff.h"
|
59
66
|
#include "src/core/lib/channel/channel_args.h"
|
60
|
-
#include "src/core/lib/channel/
|
61
|
-
#include "src/core/lib/channel/
|
62
|
-
#include "src/core/lib/
|
67
|
+
#include "src/core/lib/channel/channel_stack.h"
|
68
|
+
#include "src/core/lib/channel/channel_trace.h"
|
69
|
+
#include "src/core/lib/config/core_configuration.h"
|
70
|
+
#include "src/core/lib/debug/trace.h"
|
71
|
+
#include "src/core/lib/gpr/useful.h"
|
72
|
+
#include "src/core/lib/gprpp/debug_location.h"
|
63
73
|
#include "src/core/lib/gprpp/sync.h"
|
64
|
-
#include "src/core/lib/iomgr/
|
74
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
65
75
|
#include "src/core/lib/iomgr/polling_entity.h"
|
76
|
+
#include "src/core/lib/iomgr/pollset_set.h"
|
66
77
|
#include "src/core/lib/iomgr/work_serializer.h"
|
78
|
+
#include "src/core/lib/json/json.h"
|
67
79
|
#include "src/core/lib/profiling/timers.h"
|
80
|
+
#include "src/core/lib/resolver/resolver_registry.h"
|
81
|
+
#include "src/core/lib/resolver/server_address.h"
|
82
|
+
#include "src/core/lib/service_config/service_config_call_data.h"
|
83
|
+
#include "src/core/lib/service_config/service_config_impl.h"
|
68
84
|
#include "src/core/lib/slice/slice_internal.h"
|
69
|
-
#include "src/core/lib/slice/
|
85
|
+
#include "src/core/lib/slice/slice_refcount.h"
|
70
86
|
#include "src/core/lib/surface/channel.h"
|
71
87
|
#include "src/core/lib/transport/connectivity_state.h"
|
72
88
|
#include "src/core/lib/transport/error_utils.h"
|
73
|
-
#include "src/core/lib/transport/metadata.h"
|
74
89
|
#include "src/core/lib/transport/metadata_batch.h"
|
75
|
-
#include "src/core/lib/transport/static_metadata.h"
|
76
|
-
#include "src/core/lib/transport/status_metadata.h"
|
77
90
|
|
78
91
|
//
|
79
92
|
// Client channel filter
|
@@ -84,12 +97,11 @@
|
|
84
97
|
|
85
98
|
namespace grpc_core {
|
86
99
|
|
87
|
-
using internal::ClientChannelGlobalParsedConfig;
|
88
100
|
using internal::ClientChannelMethodParsedConfig;
|
89
|
-
using internal::ClientChannelServiceConfigParser;
|
90
101
|
|
102
|
+
TraceFlag grpc_client_channel_trace(false, "client_channel");
|
91
103
|
TraceFlag grpc_client_channel_call_trace(false, "client_channel_call");
|
92
|
-
TraceFlag
|
104
|
+
TraceFlag grpc_client_channel_lb_call_trace(false, "client_channel_lb_call");
|
93
105
|
|
94
106
|
//
|
95
107
|
// ClientChannel::CallData definition
|
@@ -178,8 +190,6 @@ class ClientChannel::CallData {
|
|
178
190
|
|
179
191
|
static void RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
180
192
|
void* arg, grpc_error_handle error);
|
181
|
-
void InjectRecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
182
|
-
grpc_transport_stream_op_batch* batch);
|
183
193
|
|
184
194
|
void CreateDynamicCall(grpc_call_element* elem);
|
185
195
|
|
@@ -193,7 +203,7 @@ class ClientChannel::CallData {
|
|
193
203
|
|
194
204
|
grpc_slice path_; // Request path.
|
195
205
|
gpr_cycle_counter call_start_time_;
|
196
|
-
|
206
|
+
Timestamp deadline_;
|
197
207
|
Arena* arena_;
|
198
208
|
grpc_call_stack* owning_call_;
|
199
209
|
CallCombiner* call_combiner_;
|
@@ -236,6 +246,7 @@ class ClientChannel::CallData {
|
|
236
246
|
|
237
247
|
const grpc_channel_filter ClientChannel::kFilterVtable = {
|
238
248
|
ClientChannel::CallData::StartTransportStreamOpBatch,
|
249
|
+
nullptr,
|
239
250
|
ClientChannel::StartTransportOp,
|
240
251
|
sizeof(ClientChannel::CallData),
|
241
252
|
ClientChannel::CallData::Init,
|
@@ -243,6 +254,7 @@ const grpc_channel_filter ClientChannel::kFilterVtable = {
|
|
243
254
|
ClientChannel::CallData::Destroy,
|
244
255
|
sizeof(ClientChannel),
|
245
256
|
ClientChannel::Init,
|
257
|
+
grpc_channel_stack_no_post_init,
|
246
258
|
ClientChannel::Destroy,
|
247
259
|
ClientChannel::GetChannelInfo,
|
248
260
|
"client-channel",
|
@@ -356,7 +368,7 @@ class DynamicTerminationFilter::CallData {
|
|
356
368
|
args, pollent, nullptr,
|
357
369
|
service_config_call_data->call_dispatch_controller(),
|
358
370
|
/*is_transparent_retry=*/false);
|
359
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
371
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
360
372
|
gpr_log(GPR_INFO,
|
361
373
|
"chand=%p dynamic_termination_calld=%p: create lb_call=%p", chand,
|
362
374
|
client_channel, calld->lb_call_.get());
|
@@ -375,7 +387,7 @@ class DynamicTerminationFilter::CallData {
|
|
375
387
|
~CallData() { grpc_slice_unref_internal(path_); }
|
376
388
|
|
377
389
|
grpc_slice path_; // Request path.
|
378
|
-
|
390
|
+
Timestamp deadline_;
|
379
391
|
Arena* arena_;
|
380
392
|
grpc_call_stack* owning_call_;
|
381
393
|
CallCombiner* call_combiner_;
|
@@ -386,6 +398,7 @@ class DynamicTerminationFilter::CallData {
|
|
386
398
|
|
387
399
|
const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
|
388
400
|
DynamicTerminationFilter::CallData::StartTransportStreamOpBatch,
|
401
|
+
nullptr,
|
389
402
|
DynamicTerminationFilter::StartTransportOp,
|
390
403
|
sizeof(DynamicTerminationFilter::CallData),
|
391
404
|
DynamicTerminationFilter::CallData::Init,
|
@@ -393,6 +406,7 @@ const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
|
|
393
406
|
DynamicTerminationFilter::CallData::Destroy,
|
394
407
|
sizeof(DynamicTerminationFilter),
|
395
408
|
DynamicTerminationFilter::Init,
|
409
|
+
grpc_channel_stack_no_post_init,
|
396
410
|
DynamicTerminationFilter::Destroy,
|
397
411
|
DynamicTerminationFilter::GetChannelInfo,
|
398
412
|
"dynamic_filter_termination",
|
@@ -411,22 +425,17 @@ class ClientChannel::ResolverResultHandler : public Resolver::ResultHandler {
|
|
411
425
|
}
|
412
426
|
|
413
427
|
~ResolverResultHandler() override {
|
414
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
428
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
415
429
|
gpr_log(GPR_INFO, "chand=%p: resolver shutdown complete", chand_);
|
416
430
|
}
|
417
431
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ResolverResultHandler");
|
418
432
|
}
|
419
433
|
|
420
|
-
void
|
421
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
434
|
+
void ReportResult(Resolver::Result result) override
|
435
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
422
436
|
chand_->OnResolverResultChangedLocked(std::move(result));
|
423
437
|
}
|
424
438
|
|
425
|
-
void ReturnError(grpc_error_handle error) override
|
426
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
427
|
-
chand_->OnResolverErrorLocked(error);
|
428
|
-
}
|
429
|
-
|
430
439
|
private:
|
431
440
|
ClientChannel* chand_;
|
432
441
|
};
|
@@ -447,14 +456,13 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
447
456
|
public:
|
448
457
|
SubchannelWrapper(ClientChannel* chand, RefCountedPtr<Subchannel> subchannel,
|
449
458
|
absl::optional<std::string> health_check_service_name)
|
450
|
-
: SubchannelInterface(
|
451
|
-
|
452
|
-
|
453
|
-
: nullptr),
|
459
|
+
: SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)
|
460
|
+
? "SubchannelWrapper"
|
461
|
+
: nullptr),
|
454
462
|
chand_(chand),
|
455
463
|
subchannel_(std::move(subchannel)),
|
456
464
|
health_check_service_name_(std::move(health_check_service_name)) {
|
457
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
465
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
458
466
|
gpr_log(GPR_INFO,
|
459
467
|
"chand=%p: creating subchannel wrapper %p for subchannel %p",
|
460
468
|
chand, this, subchannel_.get());
|
@@ -476,7 +484,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
476
484
|
}
|
477
485
|
|
478
486
|
~SubchannelWrapper() override {
|
479
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
487
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
480
488
|
gpr_log(GPR_INFO,
|
481
489
|
"chand=%p: destroying subchannel wrapper %p for subchannel %p",
|
482
490
|
chand_, this, subchannel_.get());
|
@@ -498,27 +506,21 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
498
506
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "SubchannelWrapper");
|
499
507
|
}
|
500
508
|
|
501
|
-
grpc_connectivity_state CheckConnectivityState() override {
|
502
|
-
return subchannel_->CheckConnectivityState(health_check_service_name_);
|
503
|
-
}
|
504
|
-
|
505
509
|
void WatchConnectivityState(
|
506
|
-
grpc_connectivity_state initial_state,
|
507
510
|
std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override
|
508
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
511
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
509
512
|
auto& watcher_wrapper = watcher_map_[watcher.get()];
|
510
513
|
GPR_ASSERT(watcher_wrapper == nullptr);
|
511
514
|
watcher_wrapper = new WatcherWrapper(std::move(watcher),
|
512
|
-
Ref(DEBUG_LOCATION, "WatcherWrapper")
|
513
|
-
initial_state);
|
515
|
+
Ref(DEBUG_LOCATION, "WatcherWrapper"));
|
514
516
|
subchannel_->WatchConnectivityState(
|
515
|
-
|
517
|
+
health_check_service_name_,
|
516
518
|
RefCountedPtr<Subchannel::ConnectivityStateWatcherInterface>(
|
517
519
|
watcher_wrapper));
|
518
520
|
}
|
519
521
|
|
520
522
|
void CancelConnectivityStateWatch(ConnectivityStateWatcherInterface* watcher)
|
521
|
-
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
523
|
+
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
522
524
|
auto it = watcher_map_.find(watcher);
|
523
525
|
GPR_ASSERT(it != watcher_map_.end());
|
524
526
|
subchannel_->CancelConnectivityStateWatch(health_check_service_name_,
|
@@ -530,10 +532,19 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
530
532
|
return subchannel_->connected_subchannel();
|
531
533
|
}
|
532
534
|
|
533
|
-
void
|
535
|
+
void RequestConnection() override { subchannel_->RequestConnection(); }
|
534
536
|
|
535
537
|
void ResetBackoff() override { subchannel_->ResetBackoff(); }
|
536
538
|
|
539
|
+
void AddDataWatcher(std::unique_ptr<DataWatcherInterface> watcher) override
|
540
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
541
|
+
std::unique_ptr<InternalSubchannelDataWatcherInterface> internal_watcher(
|
542
|
+
static_cast<InternalSubchannelDataWatcherInterface*>(
|
543
|
+
watcher.release()));
|
544
|
+
internal_watcher->SetSubchannel(subchannel_.get());
|
545
|
+
data_watchers_.push_back(std::move(internal_watcher));
|
546
|
+
}
|
547
|
+
|
537
548
|
const grpc_channel_args* channel_args() override {
|
538
549
|
return subchannel_->channel_args();
|
539
550
|
}
|
@@ -562,24 +573,21 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
562
573
|
WatcherWrapper(
|
563
574
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
|
564
575
|
watcher,
|
565
|
-
RefCountedPtr<SubchannelWrapper> parent
|
566
|
-
|
567
|
-
: watcher_(std::move(watcher)),
|
568
|
-
parent_(std::move(parent)),
|
569
|
-
last_seen_state_(initial_state) {}
|
576
|
+
RefCountedPtr<SubchannelWrapper> parent)
|
577
|
+
: watcher_(std::move(watcher)), parent_(std::move(parent)) {}
|
570
578
|
|
571
579
|
~WatcherWrapper() override {
|
572
580
|
auto* parent = parent_.release(); // ref owned by lambda
|
573
581
|
parent->chand_->work_serializer_->Run(
|
574
|
-
[parent]()
|
575
|
-
|
576
|
-
|
577
|
-
|
582
|
+
[parent]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
583
|
+
*parent_->chand_->work_serializer_) {
|
584
|
+
parent->Unref(DEBUG_LOCATION, "WatcherWrapper");
|
585
|
+
},
|
578
586
|
DEBUG_LOCATION);
|
579
587
|
}
|
580
588
|
|
581
589
|
void OnConnectivityStateChange() override {
|
582
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
590
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
583
591
|
gpr_log(GPR_INFO,
|
584
592
|
"chand=%p: connectivity change for subchannel wrapper %p "
|
585
593
|
"subchannel %p; hopping into work_serializer",
|
@@ -587,11 +595,11 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
587
595
|
}
|
588
596
|
Ref().release(); // ref owned by lambda
|
589
597
|
parent_->chand_->work_serializer_->Run(
|
590
|
-
[this]()
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
598
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
599
|
+
*parent_->chand_->work_serializer_) {
|
600
|
+
ApplyUpdateInControlPlaneWorkSerializer();
|
601
|
+
Unref();
|
602
|
+
},
|
595
603
|
DEBUG_LOCATION);
|
596
604
|
}
|
597
605
|
|
@@ -603,18 +611,15 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
603
611
|
}
|
604
612
|
|
605
613
|
WatcherWrapper* MakeReplacement() {
|
606
|
-
auto* replacement =
|
607
|
-
new WatcherWrapper(std::move(watcher_), parent_, last_seen_state_);
|
614
|
+
auto* replacement = new WatcherWrapper(std::move(watcher_), parent_);
|
608
615
|
replacement_ = replacement;
|
609
616
|
return replacement;
|
610
617
|
}
|
611
618
|
|
612
|
-
grpc_connectivity_state last_seen_state() const { return last_seen_state_; }
|
613
|
-
|
614
619
|
private:
|
615
620
|
void ApplyUpdateInControlPlaneWorkSerializer()
|
616
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(parent_->chand_->work_serializer_) {
|
617
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
621
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*parent_->chand_->work_serializer_) {
|
622
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
618
623
|
gpr_log(GPR_INFO,
|
619
624
|
"chand=%p: processing connectivity change in work serializer "
|
620
625
|
"for subchannel wrapper %p subchannel %p "
|
@@ -631,7 +636,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
631
636
|
&new_keepalive_time)) {
|
632
637
|
if (new_keepalive_time > parent_->chand_->keepalive_time_) {
|
633
638
|
parent_->chand_->keepalive_time_ = new_keepalive_time;
|
634
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
639
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
635
640
|
gpr_log(GPR_INFO, "chand=%p: throttling keepalive time to %d",
|
636
641
|
parent_->chand_, parent_->chand_->keepalive_time_);
|
637
642
|
}
|
@@ -652,15 +657,21 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
652
657
|
// Ignore update if the parent WatcherWrapper has been replaced
|
653
658
|
// since this callback was scheduled.
|
654
659
|
if (watcher_ != nullptr) {
|
655
|
-
|
656
|
-
|
660
|
+
// Propagate status only in state TF.
|
661
|
+
// We specifically want to avoid propagating the status for
|
662
|
+
// state IDLE that the real subchannel gave us only for the
|
663
|
+
// purpose of keepalive propagation.
|
664
|
+
if (state_change.state != GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
665
|
+
state_change.status = absl::OkStatus();
|
666
|
+
}
|
667
|
+
watcher_->OnConnectivityStateChange(state_change.state,
|
668
|
+
state_change.status);
|
657
669
|
}
|
658
670
|
}
|
659
671
|
|
660
672
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
|
661
673
|
watcher_;
|
662
674
|
RefCountedPtr<SubchannelWrapper> parent_;
|
663
|
-
grpc_connectivity_state last_seen_state_;
|
664
675
|
WatcherWrapper* replacement_ = nullptr;
|
665
676
|
};
|
666
677
|
|
@@ -673,7 +684,9 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
673
684
|
// CancelConnectivityStateWatch() with its watcher, we know the
|
674
685
|
// corresponding WrapperWatcher to cancel on the underlying subchannel.
|
675
686
|
std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_
|
676
|
-
ABSL_GUARDED_BY(
|
687
|
+
ABSL_GUARDED_BY(*chand_->work_serializer_);
|
688
|
+
std::vector<std::unique_ptr<InternalSubchannelDataWatcherInterface>>
|
689
|
+
data_watchers_ ABSL_GUARDED_BY(*chand_->work_serializer_);
|
677
690
|
};
|
678
691
|
|
679
692
|
//
|
@@ -703,7 +716,7 @@ ClientChannel::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
|
|
703
716
|
}
|
704
717
|
// Pass the ref from creating the object to Start().
|
705
718
|
chand_->work_serializer_->Run(
|
706
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
719
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
707
720
|
// The ref is passed to AddWatcherLocked().
|
708
721
|
AddWatcherLocked();
|
709
722
|
},
|
@@ -753,7 +766,7 @@ void ClientChannel::ExternalConnectivityWatcher::Notify(
|
|
753
766
|
// automatically remove all watchers in that case.
|
754
767
|
if (state != GRPC_CHANNEL_SHUTDOWN) {
|
755
768
|
chand_->work_serializer_->Run(
|
756
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
769
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
757
770
|
RemoveWatcherLocked();
|
758
771
|
},
|
759
772
|
DEBUG_LOCATION);
|
@@ -769,7 +782,7 @@ void ClientChannel::ExternalConnectivityWatcher::Cancel() {
|
|
769
782
|
ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_CANCELLED);
|
770
783
|
// Hop back into the work_serializer to clean up.
|
771
784
|
chand_->work_serializer_->Run(
|
772
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
785
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
773
786
|
RemoveWatcherLocked();
|
774
787
|
},
|
775
788
|
DEBUG_LOCATION);
|
@@ -800,7 +813,7 @@ class ClientChannel::ConnectivityWatcherAdder {
|
|
800
813
|
watcher_(std::move(watcher)) {
|
801
814
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
802
815
|
chand_->work_serializer_->Run(
|
803
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
816
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
804
817
|
AddWatcherLocked();
|
805
818
|
},
|
806
819
|
DEBUG_LOCATION);
|
@@ -808,7 +821,7 @@ class ClientChannel::ConnectivityWatcherAdder {
|
|
808
821
|
|
809
822
|
private:
|
810
823
|
void AddWatcherLocked()
|
811
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
824
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
812
825
|
chand_->state_tracker_.AddWatcher(initial_state_, std::move(watcher_));
|
813
826
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ConnectivityWatcherAdder");
|
814
827
|
delete this;
|
@@ -830,7 +843,7 @@ class ClientChannel::ConnectivityWatcherRemover {
|
|
830
843
|
: chand_(chand), watcher_(watcher) {
|
831
844
|
GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherRemover");
|
832
845
|
chand_->work_serializer_->Run(
|
833
|
-
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
846
|
+
[this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
834
847
|
RemoveWatcherLocked();
|
835
848
|
},
|
836
849
|
DEBUG_LOCATION);
|
@@ -838,7 +851,7 @@ class ClientChannel::ConnectivityWatcherRemover {
|
|
838
851
|
|
839
852
|
private:
|
840
853
|
void RemoveWatcherLocked()
|
841
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
854
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
842
855
|
chand_->state_tracker_.RemoveWatcher(watcher_);
|
843
856
|
GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
|
844
857
|
"ConnectivityWatcherRemover");
|
@@ -867,7 +880,7 @@ class ClientChannel::ClientChannelControlHelper
|
|
867
880
|
|
868
881
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
869
882
|
ServerAddress address, const grpc_channel_args& args) override
|
870
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
883
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
871
884
|
if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
|
872
885
|
// Determine health check service name.
|
873
886
|
absl::optional<std::string> health_check_service_name;
|
@@ -938,10 +951,10 @@ class ClientChannel::ClientChannelControlHelper
|
|
938
951
|
void UpdateState(
|
939
952
|
grpc_connectivity_state state, const absl::Status& status,
|
940
953
|
std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) override
|
941
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
954
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
942
955
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
943
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
944
|
-
const char* extra = chand_->disconnect_error_
|
956
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
957
|
+
const char* extra = GRPC_ERROR_IS_NONE(chand_->disconnect_error_)
|
945
958
|
? ""
|
946
959
|
: " (ignoring -- channel shutting down)";
|
947
960
|
gpr_log(GPR_INFO, "chand=%p: update: state=%s status=(%s) picker=%p%s",
|
@@ -949,16 +962,16 @@ class ClientChannel::ClientChannelControlHelper
|
|
949
962
|
picker.get(), extra);
|
950
963
|
}
|
951
964
|
// Do update only if not shutting down.
|
952
|
-
if (chand_->disconnect_error_
|
965
|
+
if (GRPC_ERROR_IS_NONE(chand_->disconnect_error_)) {
|
953
966
|
chand_->UpdateStateAndPickerLocked(state, status, "helper",
|
954
967
|
std::move(picker));
|
955
968
|
}
|
956
969
|
}
|
957
970
|
|
958
971
|
void RequestReresolution() override
|
959
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
972
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
960
973
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
961
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
974
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
962
975
|
gpr_log(GPR_INFO, "chand=%p: started name re-resolving", chand_);
|
963
976
|
}
|
964
977
|
chand_->resolver_->RequestReresolutionLocked();
|
@@ -969,7 +982,7 @@ class ClientChannel::ClientChannelControlHelper
|
|
969
982
|
}
|
970
983
|
|
971
984
|
void AddTraceEvent(TraceSeverity severity, absl::string_view message) override
|
972
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand_->work_serializer_) {
|
985
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
973
986
|
if (chand_->resolver_ == nullptr) return; // Shutting down.
|
974
987
|
if (chand_->channelz_node_ != nullptr) {
|
975
988
|
chand_->channelz_node_->AddTraceEvent(
|
@@ -993,9 +1006,9 @@ class ClientChannel::ClientChannelControlHelper
|
|
993
1006
|
// ClientChannel implementation
|
994
1007
|
//
|
995
1008
|
|
996
|
-
ClientChannel* ClientChannel::GetFromChannel(
|
1009
|
+
ClientChannel* ClientChannel::GetFromChannel(Channel* channel) {
|
997
1010
|
grpc_channel_element* elem =
|
998
|
-
grpc_channel_stack_last_element(
|
1011
|
+
grpc_channel_stack_last_element(channel->channel_stack());
|
999
1012
|
if (elem->filter != &kFilterVtable) return nullptr;
|
1000
1013
|
return static_cast<ClientChannel*>(elem->channel_data);
|
1001
1014
|
}
|
@@ -1042,10 +1055,12 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1042
1055
|
ClientChannelFactory::GetFromChannelArgs(args->channel_args)),
|
1043
1056
|
channelz_node_(GetChannelzNode(args->channel_args)),
|
1044
1057
|
interested_parties_(grpc_pollset_set_create()),
|
1058
|
+
service_config_parser_index_(
|
1059
|
+
internal::ClientChannelServiceConfigParser::ParserIndex()),
|
1045
1060
|
work_serializer_(std::make_shared<WorkSerializer>()),
|
1046
1061
|
state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
|
1047
1062
|
subchannel_pool_(GetSubchannelPool(args->channel_args)) {
|
1048
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1063
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1049
1064
|
gpr_log(GPR_INFO, "chand=%p: creating client_channel for channel stack %p",
|
1050
1065
|
this, owning_stack_);
|
1051
1066
|
}
|
@@ -1064,8 +1079,8 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1064
1079
|
if (service_config_json == nullptr) service_config_json = "{}";
|
1065
1080
|
*error = GRPC_ERROR_NONE;
|
1066
1081
|
default_service_config_ =
|
1067
|
-
|
1068
|
-
if (*error
|
1082
|
+
ServiceConfigImpl::Create(args->channel_args, service_config_json, error);
|
1083
|
+
if (!GRPC_ERROR_IS_NONE(*error)) {
|
1069
1084
|
default_service_config_.reset();
|
1070
1085
|
return;
|
1071
1086
|
}
|
@@ -1089,7 +1104,8 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1089
1104
|
}
|
1090
1105
|
// Make sure the URI to resolve is valid, so that we know that
|
1091
1106
|
// resolver creation will succeed later.
|
1092
|
-
if (!
|
1107
|
+
if (!CoreConfiguration::Get().resolver_registry().IsValidTarget(
|
1108
|
+
uri_to_resolve_)) {
|
1093
1109
|
*error = GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
1094
1110
|
absl::StrCat("the target uri is not valid: ", uri_to_resolve_));
|
1095
1111
|
return;
|
@@ -1108,7 +1124,9 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1108
1124
|
const char* default_authority =
|
1109
1125
|
grpc_channel_args_find_string(channel_args_, GRPC_ARG_DEFAULT_AUTHORITY);
|
1110
1126
|
if (default_authority == nullptr) {
|
1111
|
-
default_authority_ =
|
1127
|
+
default_authority_ =
|
1128
|
+
CoreConfiguration::Get().resolver_registry().GetDefaultAuthority(
|
1129
|
+
server_uri);
|
1112
1130
|
} else {
|
1113
1131
|
default_authority_ = default_authority;
|
1114
1132
|
}
|
@@ -1117,12 +1135,11 @@ ClientChannel::ClientChannel(grpc_channel_element_args* args,
|
|
1117
1135
|
}
|
1118
1136
|
|
1119
1137
|
ClientChannel::~ClientChannel() {
|
1120
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1138
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1121
1139
|
gpr_log(GPR_INFO, "chand=%p: destroying channel", this);
|
1122
1140
|
}
|
1123
1141
|
DestroyResolverAndLbPolicyLocked();
|
1124
1142
|
grpc_channel_args_destroy(channel_args_);
|
1125
|
-
GRPC_ERROR_UNREF(resolver_transient_failure_error_);
|
1126
1143
|
// Stop backup polling.
|
1127
1144
|
grpc_client_channel_stop_backup_polling(interested_parties_);
|
1128
1145
|
grpc_pollset_set_destroy(interested_parties_);
|
@@ -1157,6 +1174,24 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1157
1174
|
} else {
|
1158
1175
|
policy_name = grpc_channel_args_find_string(resolver_result.args,
|
1159
1176
|
GRPC_ARG_LB_POLICY_NAME);
|
1177
|
+
bool requires_config = false;
|
1178
|
+
if (policy_name != nullptr &&
|
1179
|
+
(!LoadBalancingPolicyRegistry::LoadBalancingPolicyExists(
|
1180
|
+
policy_name, &requires_config) ||
|
1181
|
+
requires_config)) {
|
1182
|
+
if (requires_config) {
|
1183
|
+
gpr_log(GPR_ERROR,
|
1184
|
+
"LB policy: %s passed through channel_args must not "
|
1185
|
+
"require a config. Using pick_first instead.",
|
1186
|
+
policy_name);
|
1187
|
+
} else {
|
1188
|
+
gpr_log(GPR_ERROR,
|
1189
|
+
"LB policy: %s passed through channel_args does not exist. "
|
1190
|
+
"Using pick_first instead.",
|
1191
|
+
policy_name);
|
1192
|
+
}
|
1193
|
+
policy_name = "pick_first";
|
1194
|
+
}
|
1160
1195
|
}
|
1161
1196
|
// Use pick_first if nothing was specified and we didn't select grpclb
|
1162
1197
|
// above.
|
@@ -1174,14 +1209,11 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1174
1209
|
// already verified that the policy does not require a config.
|
1175
1210
|
// - One of the hard-coded values here, all of which are known to not
|
1176
1211
|
// require a config.
|
1177
|
-
// - A channel arg, in which case the
|
1178
|
-
//
|
1179
|
-
//
|
1180
|
-
// the last case, this is probably fine for now.
|
1181
|
-
// TODO(roth): If the last case becomes a problem, add better error
|
1182
|
-
// handling here.
|
1212
|
+
// - A channel arg, in which case we check that the specified policy exists
|
1213
|
+
// and accepts an empty config. If not, we revert to using pick_first
|
1214
|
+
// lb_policy
|
1183
1215
|
GPR_ASSERT(lb_policy_config != nullptr);
|
1184
|
-
GPR_ASSERT(parse_error
|
1216
|
+
GPR_ASSERT(GRPC_ERROR_IS_NONE(parse_error));
|
1185
1217
|
return lb_policy_config;
|
1186
1218
|
}
|
1187
1219
|
|
@@ -1190,7 +1222,7 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1190
1222
|
void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
1191
1223
|
// Handle race conditions.
|
1192
1224
|
if (resolver_ == nullptr) return;
|
1193
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1225
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1194
1226
|
gpr_log(GPR_INFO, "chand=%p: got resolver result", this);
|
1195
1227
|
}
|
1196
1228
|
// We only want to trace the address resolution in the follow cases:
|
@@ -1202,32 +1234,35 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1202
1234
|
// (d) Address resolution that causes a new LB policy to be created.
|
1203
1235
|
//
|
1204
1236
|
// We track a list of strings to eventually be concatenated and traced.
|
1205
|
-
|
1206
|
-
|
1237
|
+
std::vector<const char*> trace_strings;
|
1238
|
+
const bool resolution_contains_addresses =
|
1239
|
+
result.addresses.ok() && !result.addresses->empty();
|
1240
|
+
if (!resolution_contains_addresses &&
|
1241
|
+
previous_resolution_contained_addresses_) {
|
1207
1242
|
trace_strings.push_back("Address list became empty");
|
1208
|
-
} else if (
|
1243
|
+
} else if (resolution_contains_addresses &&
|
1209
1244
|
!previous_resolution_contained_addresses_) {
|
1210
1245
|
trace_strings.push_back("Address list became non-empty");
|
1211
1246
|
}
|
1212
|
-
previous_resolution_contained_addresses_ =
|
1247
|
+
previous_resolution_contained_addresses_ = resolution_contains_addresses;
|
1213
1248
|
std::string service_config_error_string_storage;
|
1214
|
-
if (result.
|
1249
|
+
if (!result.service_config.ok()) {
|
1215
1250
|
service_config_error_string_storage =
|
1216
|
-
|
1251
|
+
result.service_config.status().ToString();
|
1217
1252
|
trace_strings.push_back(service_config_error_string_storage.c_str());
|
1218
1253
|
}
|
1219
1254
|
// Choose the service config.
|
1220
1255
|
RefCountedPtr<ServiceConfig> service_config;
|
1221
1256
|
RefCountedPtr<ConfigSelector> config_selector;
|
1222
|
-
if (result.
|
1223
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1257
|
+
if (!result.service_config.ok()) {
|
1258
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1224
1259
|
gpr_log(GPR_INFO, "chand=%p: resolver returned service config error: %s",
|
1225
|
-
this,
|
1260
|
+
this, result.service_config.status().ToString().c_str());
|
1226
1261
|
}
|
1227
1262
|
// If the service config was invalid, then fallback to the
|
1228
1263
|
// previously returned service config.
|
1229
1264
|
if (saved_service_config_ != nullptr) {
|
1230
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1265
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1231
1266
|
gpr_log(GPR_INFO,
|
1232
1267
|
"chand=%p: resolver returned invalid service config. "
|
1233
1268
|
"Continuing to use previous service config.",
|
@@ -1236,15 +1271,15 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1236
1271
|
service_config = saved_service_config_;
|
1237
1272
|
config_selector = saved_config_selector_;
|
1238
1273
|
} else {
|
1239
|
-
// We received
|
1274
|
+
// We received a service config error and we don't have a
|
1240
1275
|
// previous service config to fall back to. Put the channel into
|
1241
1276
|
// TRANSIENT_FAILURE.
|
1242
|
-
OnResolverErrorLocked(
|
1277
|
+
OnResolverErrorLocked(result.service_config.status());
|
1243
1278
|
trace_strings.push_back("no valid service config");
|
1244
1279
|
}
|
1245
|
-
} else if (result.service_config == nullptr) {
|
1280
|
+
} else if (*result.service_config == nullptr) {
|
1246
1281
|
// Resolver did not return any service config.
|
1247
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1282
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1248
1283
|
gpr_log(GPR_INFO,
|
1249
1284
|
"chand=%p: resolver returned no service config. Using default "
|
1250
1285
|
"service config for channel.",
|
@@ -1253,15 +1288,18 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1253
1288
|
service_config = default_service_config_;
|
1254
1289
|
} else {
|
1255
1290
|
// Use ServiceConfig and ConfigSelector returned by resolver.
|
1256
|
-
service_config = result.service_config;
|
1291
|
+
service_config = std::move(*result.service_config);
|
1257
1292
|
config_selector = ConfigSelector::GetFromChannelArgs(*result.args);
|
1258
1293
|
}
|
1294
|
+
// Note: The only case in which service_config is null here is if the resolver
|
1295
|
+
// returned a service config error and we don't have a previous service
|
1296
|
+
// config to fall back to.
|
1259
1297
|
if (service_config != nullptr) {
|
1260
1298
|
// Extract global config for client channel.
|
1261
1299
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config =
|
1262
1300
|
static_cast<const internal::ClientChannelGlobalParsedConfig*>(
|
1263
1301
|
service_config->GetGlobalParsedConfig(
|
1264
|
-
|
1302
|
+
service_config_parser_index_));
|
1265
1303
|
// Choose LB policy config.
|
1266
1304
|
RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config =
|
1267
1305
|
ChooseLbPolicy(result, parsed_service_config);
|
@@ -1278,7 +1316,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1278
1316
|
UpdateServiceConfigInControlPlaneLocked(std::move(service_config),
|
1279
1317
|
std::move(config_selector),
|
1280
1318
|
lb_policy_config->name());
|
1281
|
-
} else if (GRPC_TRACE_FLAG_ENABLED(
|
1319
|
+
} else if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1282
1320
|
gpr_log(GPR_INFO, "chand=%p: service config not changed", this);
|
1283
1321
|
}
|
1284
1322
|
// Create or update LB policy, as needed.
|
@@ -1307,28 +1345,21 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
|
|
1307
1345
|
}
|
1308
1346
|
}
|
1309
1347
|
|
1310
|
-
void ClientChannel::OnResolverErrorLocked(
|
1311
|
-
if (resolver_ == nullptr)
|
1312
|
-
|
1313
|
-
return;
|
1314
|
-
}
|
1315
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1348
|
+
void ClientChannel::OnResolverErrorLocked(absl::Status status) {
|
1349
|
+
if (resolver_ == nullptr) return;
|
1350
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1316
1351
|
gpr_log(GPR_INFO, "chand=%p: resolver transient failure: %s", this,
|
1317
|
-
|
1352
|
+
status.ToString().c_str());
|
1318
1353
|
}
|
1319
1354
|
// If we already have an LB policy from a previous resolution
|
1320
1355
|
// result, then we continue to let it set the connectivity state.
|
1321
1356
|
// Otherwise, we go into TRANSIENT_FAILURE.
|
1322
1357
|
if (lb_policy_ == nullptr) {
|
1323
|
-
grpc_error_handle
|
1324
|
-
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
1325
|
-
"Resolver transient failure", &error, 1);
|
1326
|
-
absl::Status status = grpc_error_to_absl_status(state_error);
|
1358
|
+
grpc_error_handle error = absl_status_to_grpc_error(status);
|
1327
1359
|
{
|
1328
1360
|
MutexLock lock(&resolution_mu_);
|
1329
1361
|
// Update resolver transient failure.
|
1330
|
-
|
1331
|
-
resolver_transient_failure_error_ = state_error;
|
1362
|
+
resolver_transient_failure_error_ = status;
|
1332
1363
|
// Process calls that were queued waiting for the resolver result.
|
1333
1364
|
for (ResolverQueuedCall* call = resolver_queued_calls_; call != nullptr;
|
1334
1365
|
call = call->next) {
|
@@ -1340,12 +1371,12 @@ void ClientChannel::OnResolverErrorLocked(grpc_error_handle error) {
|
|
1340
1371
|
}
|
1341
1372
|
}
|
1342
1373
|
}
|
1374
|
+
GRPC_ERROR_UNREF(error);
|
1343
1375
|
// Update connectivity state.
|
1344
1376
|
UpdateStateAndPickerLocked(
|
1345
1377
|
GRPC_CHANNEL_TRANSIENT_FAILURE, status, "resolver failure",
|
1346
1378
|
absl::make_unique<LoadBalancingPolicy::TransientFailurePicker>(status));
|
1347
1379
|
}
|
1348
|
-
GRPC_ERROR_UNREF(error);
|
1349
1380
|
}
|
1350
1381
|
|
1351
1382
|
void ClientChannel::CreateOrUpdateLbPolicyLocked(
|
@@ -1356,6 +1387,7 @@ void ClientChannel::CreateOrUpdateLbPolicyLocked(
|
|
1356
1387
|
LoadBalancingPolicy::UpdateArgs update_args;
|
1357
1388
|
update_args.addresses = std::move(result.addresses);
|
1358
1389
|
update_args.config = std::move(lb_policy_config);
|
1390
|
+
update_args.resolution_note = std::move(result.resolution_note);
|
1359
1391
|
// Add health check service name to channel args.
|
1360
1392
|
absl::InlinedVector<grpc_arg, 1> args_to_add;
|
1361
1393
|
if (health_check_service_name.has_value()) {
|
@@ -1374,7 +1406,7 @@ void ClientChannel::CreateOrUpdateLbPolicyLocked(
|
|
1374
1406
|
lb_policy_ = CreateLbPolicyLocked(*update_args.args);
|
1375
1407
|
}
|
1376
1408
|
// Update the policy.
|
1377
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1409
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1378
1410
|
gpr_log(GPR_INFO, "chand=%p: Updating child policy %p", this,
|
1379
1411
|
lb_policy_.get());
|
1380
1412
|
}
|
@@ -1391,8 +1423,8 @@ OrphanablePtr<LoadBalancingPolicy> ClientChannel::CreateLbPolicyLocked(
|
|
1391
1423
|
lb_policy_args.args = &args;
|
1392
1424
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
1393
1425
|
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
1394
|
-
&
|
1395
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1426
|
+
&grpc_client_channel_trace);
|
1427
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1396
1428
|
gpr_log(GPR_INFO, "chand=%p: created new LB policy %p", this,
|
1397
1429
|
lb_policy.get());
|
1398
1430
|
}
|
@@ -1427,26 +1459,24 @@ void ClientChannel::RemoveResolverQueuedCall(ResolverQueuedCall* to_remove,
|
|
1427
1459
|
|
1428
1460
|
void ClientChannel::UpdateServiceConfigInControlPlaneLocked(
|
1429
1461
|
RefCountedPtr<ServiceConfig> service_config,
|
1430
|
-
RefCountedPtr<ConfigSelector> config_selector,
|
1431
|
-
|
1432
|
-
|
1433
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1462
|
+
RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name) {
|
1463
|
+
std::string service_config_json(service_config->json_string());
|
1464
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1434
1465
|
gpr_log(GPR_INFO,
|
1435
1466
|
"chand=%p: resolver returned updated service config: \"%s\"", this,
|
1436
|
-
service_config_json.
|
1467
|
+
service_config_json.c_str());
|
1437
1468
|
}
|
1438
1469
|
// Save service config.
|
1439
1470
|
saved_service_config_ = std::move(service_config);
|
1440
1471
|
// Swap out the data used by GetChannelInfo().
|
1441
|
-
UniquePtr<char> lb_policy_name_owned(gpr_strdup(lb_policy_name));
|
1442
1472
|
{
|
1443
1473
|
MutexLock lock(&info_mu_);
|
1444
|
-
info_lb_policy_name_ = std::move(
|
1474
|
+
info_lb_policy_name_ = std::move(lb_policy_name);
|
1445
1475
|
info_service_config_json_ = std::move(service_config_json);
|
1446
1476
|
}
|
1447
1477
|
// Save config selector.
|
1448
1478
|
saved_config_selector_ = std::move(config_selector);
|
1449
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1479
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1450
1480
|
gpr_log(GPR_INFO, "chand=%p: using ConfigSelector %p", this,
|
1451
1481
|
saved_config_selector_.get());
|
1452
1482
|
}
|
@@ -1457,7 +1487,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1457
1487
|
RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
|
1458
1488
|
// Grab ref to config selector. Use default if resolver didn't supply one.
|
1459
1489
|
RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
|
1460
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1490
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1461
1491
|
gpr_log(GPR_INFO, "chand=%p: switching to ConfigSelector %p", this,
|
1462
1492
|
saved_config_selector_.get());
|
1463
1493
|
}
|
@@ -1477,6 +1507,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1477
1507
|
channel_args_, args_to_add.data(), args_to_add.size());
|
1478
1508
|
new_args = config_selector->ModifyChannelArgs(new_args);
|
1479
1509
|
bool enable_retries =
|
1510
|
+
!grpc_channel_args_want_minimal_stack(new_args) &&
|
1480
1511
|
grpc_channel_args_find_bool(new_args, GRPC_ARG_ENABLE_RETRIES, true);
|
1481
1512
|
// Construct dynamic filter stack.
|
1482
1513
|
std::vector<const grpc_channel_filter*> filters =
|
@@ -1496,8 +1527,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1496
1527
|
// after releasing the lock to keep the critical section small.
|
1497
1528
|
{
|
1498
1529
|
MutexLock lock(&resolution_mu_);
|
1499
|
-
|
1500
|
-
resolver_transient_failure_error_ = GRPC_ERROR_NONE;
|
1530
|
+
resolver_transient_failure_error_ = absl::OkStatus();
|
1501
1531
|
// Update service config.
|
1502
1532
|
received_service_config_data_ = true;
|
1503
1533
|
// Old values will be unreffed after lock is released.
|
@@ -1529,10 +1559,10 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1529
1559
|
}
|
1530
1560
|
|
1531
1561
|
void ClientChannel::CreateResolverLocked() {
|
1532
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1562
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1533
1563
|
gpr_log(GPR_INFO, "chand=%p: starting name resolution", this);
|
1534
1564
|
}
|
1535
|
-
resolver_ =
|
1565
|
+
resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
|
1536
1566
|
uri_to_resolve_.c_str(), channel_args_, interested_parties_,
|
1537
1567
|
work_serializer_, absl::make_unique<ResolverResultHandler>(this));
|
1538
1568
|
// Since the validity of the args was checked when the channel was created,
|
@@ -1542,20 +1572,20 @@ void ClientChannel::CreateResolverLocked() {
|
|
1542
1572
|
GRPC_CHANNEL_CONNECTING, absl::Status(), "started resolving",
|
1543
1573
|
absl::make_unique<LoadBalancingPolicy::QueuePicker>(nullptr));
|
1544
1574
|
resolver_->StartLocked();
|
1545
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1575
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1546
1576
|
gpr_log(GPR_INFO, "chand=%p: created resolver=%p", this, resolver_.get());
|
1547
1577
|
}
|
1548
1578
|
}
|
1549
1579
|
|
1550
1580
|
void ClientChannel::DestroyResolverAndLbPolicyLocked() {
|
1551
1581
|
if (resolver_ != nullptr) {
|
1552
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1582
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1553
1583
|
gpr_log(GPR_INFO, "chand=%p: shutting down resolver=%p", this,
|
1554
1584
|
resolver_.get());
|
1555
1585
|
}
|
1556
1586
|
resolver_.reset();
|
1557
1587
|
if (lb_policy_ != nullptr) {
|
1558
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1588
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1559
1589
|
gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
|
1560
1590
|
lb_policy_.get());
|
1561
1591
|
}
|
@@ -1671,7 +1701,7 @@ grpc_error_handle ClientChannel::DoPingLocked(grpc_transport_op* op) {
|
|
1671
1701
|
&result,
|
1672
1702
|
// Complete pick.
|
1673
1703
|
[op](LoadBalancingPolicy::PickResult::Complete* complete_pick)
|
1674
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
1704
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*ClientChannel::work_serializer_) {
|
1675
1705
|
SubchannelWrapper* subchannel = static_cast<SubchannelWrapper*>(
|
1676
1706
|
complete_pick->subchannel.get());
|
1677
1707
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel =
|
@@ -1706,7 +1736,7 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1706
1736
|
// Ping.
|
1707
1737
|
if (op->send_ping.on_initiate != nullptr || op->send_ping.on_ack != nullptr) {
|
1708
1738
|
grpc_error_handle error = DoPingLocked(op);
|
1709
|
-
if (error
|
1739
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
1710
1740
|
ExecCtx::Run(DEBUG_LOCATION, op->send_ping.on_initiate,
|
1711
1741
|
GRPC_ERROR_REF(error));
|
1712
1742
|
ExecCtx::Run(DEBUG_LOCATION, op->send_ping.on_ack, error);
|
@@ -1722,8 +1752,8 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1722
1752
|
}
|
1723
1753
|
}
|
1724
1754
|
// Disconnect or enter IDLE.
|
1725
|
-
if (op->disconnect_with_error
|
1726
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1755
|
+
if (!GRPC_ERROR_IS_NONE(op->disconnect_with_error)) {
|
1756
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1727
1757
|
gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s", this,
|
1728
1758
|
grpc_error_std_string(op->disconnect_with_error).c_str());
|
1729
1759
|
}
|
@@ -1732,7 +1762,7 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1732
1762
|
if (grpc_error_get_int(op->disconnect_with_error,
|
1733
1763
|
GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE, &value) &&
|
1734
1764
|
static_cast<grpc_connectivity_state>(value) == GRPC_CHANNEL_IDLE) {
|
1735
|
-
if (disconnect_error_
|
1765
|
+
if (GRPC_ERROR_IS_NONE(disconnect_error_)) {
|
1736
1766
|
// Enter IDLE state.
|
1737
1767
|
UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE, absl::Status(),
|
1738
1768
|
"channel entering IDLE", nullptr);
|
@@ -1740,7 +1770,7 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1740
1770
|
GRPC_ERROR_UNREF(op->disconnect_with_error);
|
1741
1771
|
} else {
|
1742
1772
|
// Disconnect.
|
1743
|
-
GPR_ASSERT(disconnect_error_
|
1773
|
+
GPR_ASSERT(GRPC_ERROR_IS_NONE(disconnect_error_));
|
1744
1774
|
disconnect_error_ = op->disconnect_with_error;
|
1745
1775
|
UpdateStateAndPickerLocked(
|
1746
1776
|
GRPC_CHANNEL_SHUTDOWN, absl::Status(), "shutdown from API",
|
@@ -1763,7 +1793,7 @@ void ClientChannel::StartTransportOp(grpc_channel_element* elem,
|
|
1763
1793
|
// Pop into control plane work_serializer for remaining ops.
|
1764
1794
|
GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "start_transport_op");
|
1765
1795
|
chand->work_serializer_->Run(
|
1766
|
-
[chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand->work_serializer_) {
|
1796
|
+
[chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
|
1767
1797
|
chand->StartTransportOpLocked(op);
|
1768
1798
|
},
|
1769
1799
|
DEBUG_LOCATION);
|
@@ -1774,11 +1804,11 @@ void ClientChannel::GetChannelInfo(grpc_channel_element* elem,
|
|
1774
1804
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
1775
1805
|
MutexLock lock(&chand->info_mu_);
|
1776
1806
|
if (info->lb_policy_name != nullptr) {
|
1777
|
-
*info->lb_policy_name = gpr_strdup(chand->info_lb_policy_name_.
|
1807
|
+
*info->lb_policy_name = gpr_strdup(chand->info_lb_policy_name_.c_str());
|
1778
1808
|
}
|
1779
1809
|
if (info->service_config_json != nullptr) {
|
1780
1810
|
*info->service_config_json =
|
1781
|
-
gpr_strdup(chand->info_service_config_json_.
|
1811
|
+
gpr_strdup(chand->info_service_config_json_.c_str());
|
1782
1812
|
}
|
1783
1813
|
}
|
1784
1814
|
|
@@ -1825,7 +1855,7 @@ grpc_connectivity_state ClientChannel::CheckConnectivityState(
|
|
1825
1855
|
if (out == GRPC_CHANNEL_IDLE && try_to_connect) {
|
1826
1856
|
GRPC_CHANNEL_STACK_REF(owning_stack_, "TryToConnect");
|
1827
1857
|
work_serializer_->Run([this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
1828
|
-
work_serializer_) { TryToConnectLocked(); },
|
1858
|
+
*work_serializer_) { TryToConnectLocked(); },
|
1829
1859
|
DEBUG_LOCATION);
|
1830
1860
|
}
|
1831
1861
|
return out;
|
@@ -1852,7 +1882,7 @@ ClientChannel::CallData::CallData(grpc_call_element* elem,
|
|
1852
1882
|
: deadline_state_(elem, args,
|
1853
1883
|
GPR_LIKELY(chand.deadline_checking_enabled_)
|
1854
1884
|
? args.deadline
|
1855
|
-
:
|
1885
|
+
: Timestamp::InfFuture()),
|
1856
1886
|
path_(grpc_slice_ref_internal(args.path)),
|
1857
1887
|
call_start_time_(args.start_time),
|
1858
1888
|
deadline_(args.deadline),
|
@@ -1901,6 +1931,11 @@ void ClientChannel::CallData::StartTransportStreamOpBatch(
|
|
1901
1931
|
GPR_TIMER_SCOPE("cc_start_transport_stream_op_batch", 0);
|
1902
1932
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1903
1933
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
1934
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace) &&
|
1935
|
+
!GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
|
1936
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from above: %s", chand,
|
1937
|
+
calld, grpc_transport_stream_op_batch_string(batch).c_str());
|
1938
|
+
}
|
1904
1939
|
if (GPR_LIKELY(chand->deadline_checking_enabled_)) {
|
1905
1940
|
grpc_deadline_state_client_start_transport_stream_op_batch(elem, batch);
|
1906
1941
|
}
|
@@ -1908,8 +1943,13 @@ void ClientChannel::CallData::StartTransportStreamOpBatch(
|
|
1908
1943
|
// in case we wind up failing the call before we get down to the retry
|
1909
1944
|
// or LB call layer.
|
1910
1945
|
if (batch->recv_trailing_metadata) {
|
1911
|
-
calld->
|
1912
|
-
batch
|
1946
|
+
calld->original_recv_trailing_metadata_ready_ =
|
1947
|
+
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
|
1948
|
+
GRPC_CLOSURE_INIT(&calld->recv_trailing_metadata_ready_,
|
1949
|
+
RecvTrailingMetadataReadyForConfigSelectorCommitCallback,
|
1950
|
+
elem, nullptr);
|
1951
|
+
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
|
1952
|
+
&calld->recv_trailing_metadata_ready_;
|
1913
1953
|
}
|
1914
1954
|
// If we already have a dynamic call, pass the batch down to it.
|
1915
1955
|
// Note that once we have done so, we do not need to acquire the channel's
|
@@ -1925,7 +1965,7 @@ void ClientChannel::CallData::StartTransportStreamOpBatch(
|
|
1925
1965
|
// We do not yet have a dynamic call.
|
1926
1966
|
//
|
1927
1967
|
// If we've previously been cancelled, immediately fail any new batches.
|
1928
|
-
if (GPR_UNLIKELY(calld->cancel_error_
|
1968
|
+
if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(calld->cancel_error_))) {
|
1929
1969
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
1930
1970
|
gpr_log(GPR_INFO, "chand=%p calld=%p: failing batch with error: %s",
|
1931
1971
|
chand, calld,
|
@@ -2037,7 +2077,7 @@ void ClientChannel::CallData::FailPendingBatchInCallCombiner(
|
|
2037
2077
|
void ClientChannel::CallData::PendingBatchesFail(
|
2038
2078
|
grpc_call_element* elem, grpc_error_handle error,
|
2039
2079
|
YieldCallCombinerPredicate yield_call_combiner_predicate) {
|
2040
|
-
GPR_ASSERT(error
|
2080
|
+
GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
2041
2081
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2042
2082
|
size_t num_batches = 0;
|
2043
2083
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
@@ -2134,14 +2174,15 @@ class ClientChannel::CallData::ResolverQueuedCallCanceller {
|
|
2134
2174
|
auto* calld = static_cast<CallData*>(self->elem_->call_data);
|
2135
2175
|
{
|
2136
2176
|
MutexLock lock(&chand->resolution_mu_);
|
2137
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2177
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2138
2178
|
gpr_log(GPR_INFO,
|
2139
2179
|
"chand=%p calld=%p: cancelling resolver queued pick: "
|
2140
2180
|
"error=%s self=%p calld->resolver_pick_canceller=%p",
|
2141
2181
|
chand, calld, grpc_error_std_string(error).c_str(), self,
|
2142
2182
|
calld->resolver_call_canceller_);
|
2143
2183
|
}
|
2144
|
-
if (calld->resolver_call_canceller_ == self &&
|
2184
|
+
if (calld->resolver_call_canceller_ == self &&
|
2185
|
+
!GRPC_ERROR_IS_NONE(error)) {
|
2145
2186
|
// Remove pick from list of queued picks.
|
2146
2187
|
calld->MaybeRemoveCallFromResolverQueuedCallsLocked(self->elem_);
|
2147
2188
|
// Fail pending batches on the call.
|
@@ -2161,7 +2202,7 @@ void ClientChannel::CallData::MaybeRemoveCallFromResolverQueuedCallsLocked(
|
|
2161
2202
|
grpc_call_element* elem) {
|
2162
2203
|
if (!queued_pending_resolver_result_) return;
|
2163
2204
|
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2164
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2205
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2165
2206
|
gpr_log(GPR_INFO,
|
2166
2207
|
"chand=%p calld=%p: removing from resolver queued picks list",
|
2167
2208
|
chand, this);
|
@@ -2176,7 +2217,7 @@ void ClientChannel::CallData::MaybeAddCallToResolverQueuedCallsLocked(
|
|
2176
2217
|
grpc_call_element* elem) {
|
2177
2218
|
if (queued_pending_resolver_result_) return;
|
2178
2219
|
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2179
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2220
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2180
2221
|
gpr_log(GPR_INFO, "chand=%p calld=%p: adding to resolver queued picks list",
|
2181
2222
|
chand, this);
|
2182
2223
|
}
|
@@ -2190,7 +2231,7 @@ void ClientChannel::CallData::MaybeAddCallToResolverQueuedCallsLocked(
|
|
2190
2231
|
grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
2191
2232
|
grpc_call_element* elem, grpc_metadata_batch* initial_metadata) {
|
2192
2233
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2193
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2234
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2194
2235
|
gpr_log(GPR_INFO, "chand=%p calld=%p: applying service config to call",
|
2195
2236
|
chand, this);
|
2196
2237
|
}
|
@@ -2199,7 +2240,7 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
2199
2240
|
// Use the ConfigSelector to determine the config for the call.
|
2200
2241
|
ConfigSelector::CallConfig call_config =
|
2201
2242
|
config_selector->GetCallConfig({&path_, initial_metadata, arena_});
|
2202
|
-
if (call_config.error
|
2243
|
+
if (!GRPC_ERROR_IS_NONE(call_config.error)) return call_config.error;
|
2203
2244
|
// Create a ClientChannelServiceConfigCallData for the call. This stores
|
2204
2245
|
// a ref to the ServiceConfig and caches the right set of parsed configs
|
2205
2246
|
// to use for the call. The ClientChannelServiceConfigCallData will store
|
@@ -2213,13 +2254,14 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
2213
2254
|
// Apply our own method params to the call.
|
2214
2255
|
auto* method_params = static_cast<ClientChannelMethodParsedConfig*>(
|
2215
2256
|
service_config_call_data->GetMethodParsedConfig(
|
2216
|
-
|
2257
|
+
chand->service_config_parser_index_));
|
2217
2258
|
if (method_params != nullptr) {
|
2218
2259
|
// If the deadline from the service config is shorter than the one
|
2219
2260
|
// from the client API, reset the deadline timer.
|
2220
|
-
if (chand->deadline_checking_enabled_ &&
|
2221
|
-
|
2222
|
-
|
2261
|
+
if (chand->deadline_checking_enabled_ &&
|
2262
|
+
method_params->timeout() != Duration::Zero()) {
|
2263
|
+
const Timestamp per_method_deadline =
|
2264
|
+
Timestamp::FromCycleCounterRoundUp(call_start_time_) +
|
2223
2265
|
method_params->timeout();
|
2224
2266
|
if (per_method_deadline < deadline_) {
|
2225
2267
|
deadline_ = per_method_deadline;
|
@@ -2250,30 +2292,27 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
2250
2292
|
void ClientChannel::CallData::
|
2251
2293
|
RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
2252
2294
|
void* arg, grpc_error_handle error) {
|
2253
|
-
auto*
|
2295
|
+
auto* elem = static_cast<grpc_call_element*>(arg);
|
2296
|
+
auto* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2297
|
+
auto* calld = static_cast<CallData*>(elem->call_data);
|
2254
2298
|
auto* service_config_call_data =
|
2255
2299
|
static_cast<ClientChannelServiceConfigCallData*>(
|
2256
|
-
|
2300
|
+
calld->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
|
2301
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2302
|
+
gpr_log(GPR_INFO,
|
2303
|
+
"chand=%p calld=%p: got recv_trailing_metadata_ready: error=%s "
|
2304
|
+
"service_config_call_data=%p",
|
2305
|
+
chand, calld, grpc_error_std_string(error).c_str(),
|
2306
|
+
service_config_call_data);
|
2307
|
+
}
|
2257
2308
|
if (service_config_call_data != nullptr) {
|
2258
2309
|
service_config_call_data->call_dispatch_controller()->Commit();
|
2259
2310
|
}
|
2260
2311
|
// Chain to original callback.
|
2261
|
-
Closure::Run(DEBUG_LOCATION,
|
2312
|
+
Closure::Run(DEBUG_LOCATION, calld->original_recv_trailing_metadata_ready_,
|
2262
2313
|
GRPC_ERROR_REF(error));
|
2263
2314
|
}
|
2264
2315
|
|
2265
|
-
void ClientChannel::CallData::
|
2266
|
-
InjectRecvTrailingMetadataReadyForConfigSelectorCommitCallback(
|
2267
|
-
grpc_transport_stream_op_batch* batch) {
|
2268
|
-
original_recv_trailing_metadata_ready_ =
|
2269
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
|
2270
|
-
GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_,
|
2271
|
-
RecvTrailingMetadataReadyForConfigSelectorCommitCallback,
|
2272
|
-
this, nullptr);
|
2273
|
-
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
|
2274
|
-
&recv_trailing_metadata_ready_;
|
2275
|
-
}
|
2276
|
-
|
2277
2316
|
void ClientChannel::CallData::AsyncResolutionDone(grpc_call_element* elem,
|
2278
2317
|
grpc_error_handle error) {
|
2279
2318
|
// TODO(roth): Does this callback need to hold a ref to the call stack?
|
@@ -2286,8 +2325,8 @@ void ClientChannel::CallData::ResolutionDone(void* arg,
|
|
2286
2325
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
2287
2326
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2288
2327
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
2289
|
-
if (error
|
2290
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2328
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
2329
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2291
2330
|
gpr_log(GPR_INFO,
|
2292
2331
|
"chand=%p calld=%p: error applying config to call: error=%s",
|
2293
2332
|
chand, calld, grpc_error_std_string(error).c_str());
|
@@ -2319,6 +2358,9 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2319
2358
|
ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
|
2320
2359
|
// If we're still in IDLE, we need to start resolving.
|
2321
2360
|
if (GPR_UNLIKELY(chand->CheckConnectivityState(false) == GRPC_CHANNEL_IDLE)) {
|
2361
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2362
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: triggering exit idle", chand, this);
|
2363
|
+
}
|
2322
2364
|
// Bounce into the control plane work serializer to start resolving,
|
2323
2365
|
// in case we are still in IDLE state. Since we are holding on to the
|
2324
2366
|
// resolution mutex here, we offload it on the ExecCtx so that we don't
|
@@ -2331,7 +2373,7 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2331
2373
|
auto* chand = static_cast<ClientChannel*>(arg);
|
2332
2374
|
chand->work_serializer_->Run(
|
2333
2375
|
[chand]()
|
2334
|
-
ABSL_EXCLUSIVE_LOCKS_REQUIRED(chand->work_serializer_) {
|
2376
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
|
2335
2377
|
chand->CheckConnectivityState(/*try_to_connect=*/true);
|
2336
2378
|
GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_,
|
2337
2379
|
"CheckResolutionLocked");
|
@@ -2353,17 +2395,24 @@ bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
|
|
2353
2395
|
if (GPR_UNLIKELY(!chand->received_service_config_data_)) {
|
2354
2396
|
// If the resolver returned transient failure before returning the
|
2355
2397
|
// first service config, fail any non-wait_for_ready calls.
|
2356
|
-
|
2357
|
-
if (resolver_error
|
2358
|
-
|
2359
|
-
|
2398
|
+
absl::Status resolver_error = chand->resolver_transient_failure_error_;
|
2399
|
+
if (!resolver_error.ok() && (send_initial_metadata_flags &
|
2400
|
+
GRPC_INITIAL_METADATA_WAIT_FOR_READY) == 0) {
|
2401
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2402
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: resolution failed, failing call",
|
2403
|
+
chand, this);
|
2404
|
+
}
|
2360
2405
|
MaybeRemoveCallFromResolverQueuedCallsLocked(elem);
|
2361
|
-
*error =
|
2406
|
+
*error = absl_status_to_grpc_error(resolver_error);
|
2362
2407
|
return true;
|
2363
2408
|
}
|
2364
2409
|
// Either the resolver has not yet returned a result, or it has
|
2365
2410
|
// returned transient failure but the call is wait_for_ready. In
|
2366
2411
|
// either case, queue the call.
|
2412
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2413
|
+
gpr_log(GPR_INFO, "chand=%p calld=%p: queuing to wait for resolution",
|
2414
|
+
chand, this);
|
2415
|
+
}
|
2367
2416
|
MaybeAddCallToResolverQueuedCallsLocked(elem);
|
2368
2417
|
return false;
|
2369
2418
|
}
|
@@ -2388,15 +2437,15 @@ void ClientChannel::CallData::CreateDynamicCall(grpc_call_element* elem) {
|
|
2388
2437
|
call_combiner_};
|
2389
2438
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
2390
2439
|
DynamicFilters* channel_stack = args.channel_stack.get();
|
2391
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2440
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2392
2441
|
gpr_log(
|
2393
2442
|
GPR_INFO,
|
2394
2443
|
"chand=%p calld=%p: creating dynamic call stack on channel_stack=%p",
|
2395
2444
|
chand, this, channel_stack);
|
2396
2445
|
}
|
2397
2446
|
dynamic_call_ = channel_stack->CreateCall(std::move(args), &error);
|
2398
|
-
if (error
|
2399
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2447
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
2448
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
|
2400
2449
|
gpr_log(GPR_INFO,
|
2401
2450
|
"chand=%p calld=%p: failed to create dynamic call: error=%s",
|
2402
2451
|
chand, this, grpc_error_std_string(error).c_str());
|
@@ -2414,20 +2463,31 @@ void ClientChannel::CallData::CreateDynamicCall(grpc_call_element* elem) {
|
|
2414
2463
|
class ClientChannel::LoadBalancedCall::Metadata
|
2415
2464
|
: public LoadBalancingPolicy::MetadataInterface {
|
2416
2465
|
public:
|
2417
|
-
Metadata(
|
2418
|
-
: lb_call_(lb_call), batch_(batch) {}
|
2466
|
+
explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {}
|
2419
2467
|
|
2420
2468
|
void Add(absl::string_view key, absl::string_view value) override {
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
|
2469
|
+
if (batch_ == nullptr) return;
|
2470
|
+
// Gross, egregious hack to support legacy grpclb behavior.
|
2471
|
+
// TODO(ctiller): Use a promise context for this once that plumbing is done.
|
2472
|
+
if (key == GrpcLbClientStatsMetadata::key()) {
|
2473
|
+
batch_->Set(
|
2474
|
+
GrpcLbClientStatsMetadata(),
|
2475
|
+
const_cast<GrpcLbClientStats*>(
|
2476
|
+
reinterpret_cast<const GrpcLbClientStats*>(value.data())));
|
2477
|
+
return;
|
2478
|
+
}
|
2479
|
+
batch_->Append(key, Slice::FromStaticString(value),
|
2480
|
+
[key](absl::string_view error, const Slice& value) {
|
2481
|
+
gpr_log(GPR_ERROR, "%s",
|
2482
|
+
absl::StrCat(error, " key:", key,
|
2483
|
+
" value:", value.as_string_view())
|
2484
|
+
.c_str());
|
2485
|
+
});
|
2427
2486
|
}
|
2428
2487
|
|
2429
2488
|
std::vector<std::pair<std::string, std::string>> TestOnlyCopyToVector()
|
2430
2489
|
override {
|
2490
|
+
if (batch_ == nullptr) return {};
|
2431
2491
|
Encoder encoder;
|
2432
2492
|
batch_->Encode(&encoder);
|
2433
2493
|
return encoder.Take();
|
@@ -2435,18 +2495,16 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2435
2495
|
|
2436
2496
|
absl::optional<absl::string_view> Lookup(absl::string_view key,
|
2437
2497
|
std::string* buffer) const override {
|
2438
|
-
|
2498
|
+
if (batch_ == nullptr) return absl::nullopt;
|
2499
|
+
return batch_->GetStringValue(key, buffer);
|
2439
2500
|
}
|
2440
2501
|
|
2441
2502
|
private:
|
2442
2503
|
class Encoder {
|
2443
2504
|
public:
|
2444
|
-
void Encode(
|
2445
|
-
|
2446
|
-
|
2447
|
-
out_.emplace_back(std::string(key),
|
2448
|
-
std::string(StringViewFromSlice(GRPC_MDVALUE(md))));
|
2449
|
-
}
|
2505
|
+
void Encode(const Slice& key, const Slice& value) {
|
2506
|
+
out_.emplace_back(std::string(key.as_string_view()),
|
2507
|
+
std::string(value.as_string_view()));
|
2450
2508
|
}
|
2451
2509
|
|
2452
2510
|
template <class Which>
|
@@ -2456,7 +2514,11 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2456
2514
|
std::string(value_slice.as_string_view()));
|
2457
2515
|
}
|
2458
2516
|
|
2459
|
-
void Encode(GrpcTimeoutMetadata,
|
2517
|
+
void Encode(GrpcTimeoutMetadata,
|
2518
|
+
const typename GrpcTimeoutMetadata::ValueType&) {}
|
2519
|
+
void Encode(HttpPathMetadata, const Slice&) {}
|
2520
|
+
void Encode(HttpMethodMetadata,
|
2521
|
+
const typename HttpMethodMetadata::ValueType&) {}
|
2460
2522
|
|
2461
2523
|
std::vector<std::pair<std::string, std::string>> Take() {
|
2462
2524
|
return std::move(out_);
|
@@ -2466,7 +2528,6 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2466
2528
|
std::vector<std::pair<std::string, std::string>> out_;
|
2467
2529
|
};
|
2468
2530
|
|
2469
|
-
LoadBalancedCall* lb_call_;
|
2470
2531
|
grpc_metadata_batch* batch_;
|
2471
2532
|
};
|
2472
2533
|
|
@@ -2474,25 +2535,16 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2474
2535
|
// ClientChannel::LoadBalancedCall::LbCallState
|
2475
2536
|
//
|
2476
2537
|
|
2477
|
-
|
2478
|
-
|
2479
|
-
|
2480
|
-
|
2481
|
-
|
2482
|
-
|
2483
|
-
|
2484
|
-
|
2485
|
-
|
2486
|
-
|
2487
|
-
auto& call_attributes = service_config_call_data->call_attributes();
|
2488
|
-
auto it = call_attributes.find(key);
|
2489
|
-
if (it == call_attributes.end()) return absl::string_view();
|
2490
|
-
return it->second;
|
2491
|
-
}
|
2492
|
-
|
2493
|
-
private:
|
2494
|
-
LoadBalancedCall* lb_call_;
|
2495
|
-
};
|
2538
|
+
absl::string_view
|
2539
|
+
ClientChannel::LoadBalancedCall::LbCallState::GetCallAttribute(
|
2540
|
+
UniqueTypeName type) {
|
2541
|
+
auto* service_config_call_data = static_cast<ServiceConfigCallData*>(
|
2542
|
+
lb_call_->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
|
2543
|
+
auto& call_attributes = service_config_call_data->call_attributes();
|
2544
|
+
auto it = call_attributes.find(type);
|
2545
|
+
if (it == call_attributes.end()) return absl::string_view();
|
2546
|
+
return it->second;
|
2547
|
+
}
|
2496
2548
|
|
2497
2549
|
//
|
2498
2550
|
// ClientChannel::LoadBalancedCall::BackendMetricAccessor
|
@@ -2505,17 +2557,35 @@ class ClientChannel::LoadBalancedCall::BackendMetricAccessor
|
|
2505
2557
|
: lb_call_(lb_call) {}
|
2506
2558
|
|
2507
2559
|
const BackendMetricData* GetBackendMetricData() override {
|
2508
|
-
if (lb_call_->backend_metric_data_ == nullptr
|
2560
|
+
if (lb_call_->backend_metric_data_ == nullptr &&
|
2561
|
+
lb_call_->recv_trailing_metadata_ != nullptr) {
|
2509
2562
|
if (const auto* md = lb_call_->recv_trailing_metadata_->get_pointer(
|
2510
|
-
|
2563
|
+
EndpointLoadMetricsBinMetadata())) {
|
2564
|
+
BackendMetricAllocator allocator(lb_call_->arena_);
|
2511
2565
|
lb_call_->backend_metric_data_ =
|
2512
|
-
ParseBackendMetricData(
|
2566
|
+
ParseBackendMetricData(md->as_string_view(), &allocator);
|
2513
2567
|
}
|
2514
2568
|
}
|
2515
2569
|
return lb_call_->backend_metric_data_;
|
2516
2570
|
}
|
2517
2571
|
|
2518
2572
|
private:
|
2573
|
+
class BackendMetricAllocator : public BackendMetricAllocatorInterface {
|
2574
|
+
public:
|
2575
|
+
explicit BackendMetricAllocator(Arena* arena) : arena_(arena) {}
|
2576
|
+
|
2577
|
+
BackendMetricData* AllocateBackendMetricData() override {
|
2578
|
+
return arena_->New<BackendMetricData>();
|
2579
|
+
}
|
2580
|
+
|
2581
|
+
char* AllocateString(size_t size) override {
|
2582
|
+
return static_cast<char*>(arena_->Alloc(size));
|
2583
|
+
}
|
2584
|
+
|
2585
|
+
private:
|
2586
|
+
Arena* arena_;
|
2587
|
+
};
|
2588
|
+
|
2519
2589
|
LoadBalancedCall* lb_call_;
|
2520
2590
|
};
|
2521
2591
|
|
@@ -2541,7 +2611,7 @@ ClientChannel::LoadBalancedCall::LoadBalancedCall(
|
|
2541
2611
|
ConfigSelector::CallDispatchController* call_dispatch_controller,
|
2542
2612
|
bool is_transparent_retry)
|
2543
2613
|
: InternallyRefCounted(
|
2544
|
-
GRPC_TRACE_FLAG_ENABLED(
|
2614
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)
|
2545
2615
|
? "LoadBalancedCall"
|
2546
2616
|
: nullptr),
|
2547
2617
|
chand_(chand),
|
@@ -2555,15 +2625,17 @@ ClientChannel::LoadBalancedCall::LoadBalancedCall(
|
|
2555
2625
|
on_call_destruction_complete_(on_call_destruction_complete),
|
2556
2626
|
call_dispatch_controller_(call_dispatch_controller),
|
2557
2627
|
call_attempt_tracer_(
|
2558
|
-
GetCallAttemptTracer(args.context, is_transparent_retry)) {
|
2628
|
+
GetCallAttemptTracer(args.context, is_transparent_retry)) {
|
2629
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2630
|
+
gpr_log(GPR_INFO, "chand=%p lb_call=%p: created", chand_, this);
|
2631
|
+
}
|
2632
|
+
}
|
2559
2633
|
|
2560
2634
|
ClientChannel::LoadBalancedCall::~LoadBalancedCall() {
|
2561
|
-
grpc_slice_unref_internal(path_);
|
2562
2635
|
GRPC_ERROR_UNREF(cancel_error_);
|
2563
2636
|
GRPC_ERROR_UNREF(failure_error_);
|
2564
2637
|
if (backend_metric_data_ != nullptr) {
|
2565
|
-
backend_metric_data_->
|
2566
|
-
BackendMetricData::~BackendMetricData();
|
2638
|
+
backend_metric_data_->BackendMetricData::~BackendMetricData();
|
2567
2639
|
}
|
2568
2640
|
// Make sure there are no remaining pending batches.
|
2569
2641
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
@@ -2576,6 +2648,12 @@ ClientChannel::LoadBalancedCall::~LoadBalancedCall() {
|
|
2576
2648
|
}
|
2577
2649
|
|
2578
2650
|
void ClientChannel::LoadBalancedCall::Orphan() {
|
2651
|
+
// If the recv_trailing_metadata op was never started, then notify
|
2652
|
+
// about call completion here, as best we can. We assume status
|
2653
|
+
// CANCELLED in this case.
|
2654
|
+
if (recv_trailing_metadata_ == nullptr) {
|
2655
|
+
RecordCallCompletion(absl::CancelledError("call cancelled"));
|
2656
|
+
}
|
2579
2657
|
// Compute latency and report it to the tracer.
|
2580
2658
|
if (call_attempt_tracer_ != nullptr) {
|
2581
2659
|
gpr_timespec latency =
|
@@ -2602,7 +2680,7 @@ size_t ClientChannel::LoadBalancedCall::GetBatchIndex(
|
|
2602
2680
|
void ClientChannel::LoadBalancedCall::PendingBatchesAdd(
|
2603
2681
|
grpc_transport_stream_op_batch* batch) {
|
2604
2682
|
const size_t idx = GetBatchIndex(batch);
|
2605
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2683
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2606
2684
|
gpr_log(GPR_INFO,
|
2607
2685
|
"chand=%p lb_call=%p: adding pending batch at index %" PRIuPTR,
|
2608
2686
|
chand_, this, idx);
|
@@ -2626,10 +2704,10 @@ void ClientChannel::LoadBalancedCall::FailPendingBatchInCallCombiner(
|
|
2626
2704
|
void ClientChannel::LoadBalancedCall::PendingBatchesFail(
|
2627
2705
|
grpc_error_handle error,
|
2628
2706
|
YieldCallCombinerPredicate yield_call_combiner_predicate) {
|
2629
|
-
GPR_ASSERT(error
|
2707
|
+
GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
2630
2708
|
GRPC_ERROR_UNREF(failure_error_);
|
2631
2709
|
failure_error_ = error;
|
2632
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2710
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2633
2711
|
size_t num_batches = 0;
|
2634
2712
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
2635
2713
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
@@ -2671,7 +2749,7 @@ void ClientChannel::LoadBalancedCall::ResumePendingBatchInCallCombiner(
|
|
2671
2749
|
|
2672
2750
|
// This is called via the call combiner, so access to calld is synchronized.
|
2673
2751
|
void ClientChannel::LoadBalancedCall::PendingBatchesResume() {
|
2674
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2752
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2675
2753
|
size_t num_batches = 0;
|
2676
2754
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
2677
2755
|
if (pending_batches_[i] != nullptr) ++num_batches;
|
@@ -2700,6 +2778,14 @@ void ClientChannel::LoadBalancedCall::PendingBatchesResume() {
|
|
2700
2778
|
|
2701
2779
|
void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
2702
2780
|
grpc_transport_stream_op_batch* batch) {
|
2781
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace) ||
|
2782
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
|
2783
|
+
gpr_log(GPR_INFO,
|
2784
|
+
"chand=%p lb_call=%p: batch started from above: %s, "
|
2785
|
+
"call_attempt_tracer_=%p",
|
2786
|
+
chand_, this, grpc_transport_stream_op_batch_string(batch).c_str(),
|
2787
|
+
call_attempt_tracer_);
|
2788
|
+
}
|
2703
2789
|
// Handle call tracing.
|
2704
2790
|
if (call_attempt_tracer_ != nullptr) {
|
2705
2791
|
// Record send ops in tracer.
|
@@ -2763,7 +2849,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2763
2849
|
// the channel's data plane mutex, which is more efficient (especially for
|
2764
2850
|
// streaming calls).
|
2765
2851
|
if (subchannel_call_ != nullptr) {
|
2766
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2852
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2767
2853
|
gpr_log(GPR_INFO,
|
2768
2854
|
"chand=%p lb_call=%p: starting batch on subchannel_call=%p",
|
2769
2855
|
chand_, this, subchannel_call_.get());
|
@@ -2774,8 +2860,8 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2774
2860
|
// We do not yet have a subchannel call.
|
2775
2861
|
//
|
2776
2862
|
// If we've previously been cancelled, immediately fail any new batches.
|
2777
|
-
if (GPR_UNLIKELY(cancel_error_
|
2778
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2863
|
+
if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(cancel_error_))) {
|
2864
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2779
2865
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: failing batch with error: %s",
|
2780
2866
|
chand_, this, grpc_error_std_string(cancel_error_).c_str());
|
2781
2867
|
}
|
@@ -2793,7 +2879,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2793
2879
|
// error to the caller when the first batch does get passed down.
|
2794
2880
|
GRPC_ERROR_UNREF(cancel_error_);
|
2795
2881
|
cancel_error_ = GRPC_ERROR_REF(batch->payload->cancel_stream.cancel_error);
|
2796
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2882
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2797
2883
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: recording cancel_error=%s",
|
2798
2884
|
chand_, this, grpc_error_std_string(cancel_error_).c_str());
|
2799
2885
|
}
|
@@ -2809,7 +2895,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2809
2895
|
// For batches containing a send_initial_metadata op, acquire the
|
2810
2896
|
// channel's data plane mutex to pick a subchannel.
|
2811
2897
|
if (GPR_LIKELY(batch->send_initial_metadata)) {
|
2812
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2898
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2813
2899
|
gpr_log(GPR_INFO,
|
2814
2900
|
"chand=%p lb_call=%p: grabbing data plane mutex to perform pick",
|
2815
2901
|
chand_, this);
|
@@ -2817,7 +2903,7 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2817
2903
|
PickSubchannel(this, GRPC_ERROR_NONE);
|
2818
2904
|
} else {
|
2819
2905
|
// For all other batches, release the call combiner.
|
2820
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2906
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2821
2907
|
gpr_log(GPR_INFO,
|
2822
2908
|
"chand=%p lb_call=%p: saved batch, yielding call combiner",
|
2823
2909
|
chand_, this);
|
@@ -2830,6 +2916,12 @@ void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
|
|
2830
2916
|
void ClientChannel::LoadBalancedCall::SendInitialMetadataOnComplete(
|
2831
2917
|
void* arg, grpc_error_handle error) {
|
2832
2918
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2919
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2920
|
+
gpr_log(GPR_INFO,
|
2921
|
+
"chand=%p lb_call=%p: got on_complete for send_initial_metadata: "
|
2922
|
+
"error=%s",
|
2923
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2924
|
+
}
|
2833
2925
|
self->call_attempt_tracer_->RecordOnDoneSendInitialMetadata(
|
2834
2926
|
self->peer_string_);
|
2835
2927
|
Closure::Run(DEBUG_LOCATION,
|
@@ -2840,7 +2932,12 @@ void ClientChannel::LoadBalancedCall::SendInitialMetadataOnComplete(
|
|
2840
2932
|
void ClientChannel::LoadBalancedCall::RecvInitialMetadataReady(
|
2841
2933
|
void* arg, grpc_error_handle error) {
|
2842
2934
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2843
|
-
if (
|
2935
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2936
|
+
gpr_log(GPR_INFO,
|
2937
|
+
"chand=%p lb_call=%p: got recv_initial_metadata_ready: error=%s",
|
2938
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2939
|
+
}
|
2940
|
+
if (GRPC_ERROR_IS_NONE(error)) {
|
2844
2941
|
// recv_initial_metadata_flags is not populated for clients
|
2845
2942
|
self->call_attempt_tracer_->RecordReceivedInitialMetadata(
|
2846
2943
|
self->recv_initial_metadata_, 0 /* recv_initial_metadata_flags */);
|
@@ -2852,7 +2949,11 @@ void ClientChannel::LoadBalancedCall::RecvInitialMetadataReady(
|
|
2852
2949
|
void ClientChannel::LoadBalancedCall::RecvMessageReady(
|
2853
2950
|
void* arg, grpc_error_handle error) {
|
2854
2951
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2855
|
-
if (
|
2952
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2953
|
+
gpr_log(GPR_INFO, "chand=%p lb_call=%p: got recv_message_ready: error=%s",
|
2954
|
+
self->chand_, self, grpc_error_std_string(error).c_str());
|
2955
|
+
}
|
2956
|
+
if (self->recv_message_->has_value()) {
|
2856
2957
|
self->call_attempt_tracer_->RecordReceivedMessage(**self->recv_message_);
|
2857
2958
|
}
|
2858
2959
|
Closure::Run(DEBUG_LOCATION, self->original_recv_message_ready_,
|
@@ -2862,12 +2963,21 @@ void ClientChannel::LoadBalancedCall::RecvMessageReady(
|
|
2862
2963
|
void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
2863
2964
|
void* arg, grpc_error_handle error) {
|
2864
2965
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
2966
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2967
|
+
gpr_log(GPR_INFO,
|
2968
|
+
"chand=%p lb_call=%p: got recv_trailing_metadata_ready: error=%s "
|
2969
|
+
"call_attempt_tracer_=%p lb_subchannel_call_tracker_=%p "
|
2970
|
+
"failure_error_=%s",
|
2971
|
+
self->chand_, self, grpc_error_std_string(error).c_str(),
|
2972
|
+
self->call_attempt_tracer_, self->lb_subchannel_call_tracker_.get(),
|
2973
|
+
grpc_error_std_string(self->failure_error_).c_str());
|
2974
|
+
}
|
2865
2975
|
// Check if we have a tracer or an LB callback to invoke.
|
2866
2976
|
if (self->call_attempt_tracer_ != nullptr ||
|
2867
2977
|
self->lb_subchannel_call_tracker_ != nullptr) {
|
2868
2978
|
// Get the call's status.
|
2869
2979
|
absl::Status status;
|
2870
|
-
if (error
|
2980
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
2871
2981
|
// Get status from error.
|
2872
2982
|
grpc_status_code code;
|
2873
2983
|
std::string message;
|
@@ -2877,10 +2987,8 @@ void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
|
2877
2987
|
} else {
|
2878
2988
|
// Get status from headers.
|
2879
2989
|
const auto& md = *self->recv_trailing_metadata_;
|
2880
|
-
const auto& fields = md.legacy_index()->named;
|
2881
|
-
GPR_ASSERT(fields.grpc_status != nullptr);
|
2882
2990
|
grpc_status_code code =
|
2883
|
-
|
2991
|
+
md.get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
2884
2992
|
if (code != GRPC_STATUS_OK) {
|
2885
2993
|
absl::string_view message;
|
2886
2994
|
if (const auto* grpc_message = md.get_pointer(GrpcMessageMetadata())) {
|
@@ -2889,25 +2997,10 @@ void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
|
2889
2997
|
status = absl::Status(static_cast<absl::StatusCode>(code), message);
|
2890
2998
|
}
|
2891
2999
|
}
|
2892
|
-
|
2893
|
-
if (self->call_attempt_tracer_ != nullptr) {
|
2894
|
-
self->call_attempt_tracer_->RecordReceivedTrailingMetadata(
|
2895
|
-
status, self->recv_trailing_metadata_,
|
2896
|
-
*self->transport_stream_stats_);
|
2897
|
-
}
|
2898
|
-
// If the LB policy requested a callback for trailing metadata, invoke
|
2899
|
-
// the callback.
|
2900
|
-
if (self->lb_subchannel_call_tracker_ != nullptr) {
|
2901
|
-
Metadata trailing_metadata(self, self->recv_trailing_metadata_);
|
2902
|
-
BackendMetricAccessor backend_metric_accessor(self);
|
2903
|
-
LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
|
2904
|
-
status, &trailing_metadata, &backend_metric_accessor};
|
2905
|
-
self->lb_subchannel_call_tracker_->Finish(args);
|
2906
|
-
self->lb_subchannel_call_tracker_.reset();
|
2907
|
-
}
|
3000
|
+
self->RecordCallCompletion(status);
|
2908
3001
|
}
|
2909
3002
|
// Chain to original callback.
|
2910
|
-
if (self->failure_error_
|
3003
|
+
if (!GRPC_ERROR_IS_NONE(self->failure_error_)) {
|
2911
3004
|
error = self->failure_error_;
|
2912
3005
|
self->failure_error_ = GRPC_ERROR_NONE;
|
2913
3006
|
} else {
|
@@ -2917,16 +3010,35 @@ void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
|
|
2917
3010
|
error);
|
2918
3011
|
}
|
2919
3012
|
|
3013
|
+
void ClientChannel::LoadBalancedCall::RecordCallCompletion(
|
3014
|
+
absl::Status status) {
|
3015
|
+
// If we have a tracer, notify it.
|
3016
|
+
if (call_attempt_tracer_ != nullptr) {
|
3017
|
+
call_attempt_tracer_->RecordReceivedTrailingMetadata(
|
3018
|
+
status, recv_trailing_metadata_, transport_stream_stats_);
|
3019
|
+
}
|
3020
|
+
// If the LB policy requested a callback for trailing metadata, invoke
|
3021
|
+
// the callback.
|
3022
|
+
if (lb_subchannel_call_tracker_ != nullptr) {
|
3023
|
+
Metadata trailing_metadata(recv_trailing_metadata_);
|
3024
|
+
BackendMetricAccessor backend_metric_accessor(this);
|
3025
|
+
LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
|
3026
|
+
status, &trailing_metadata, &backend_metric_accessor};
|
3027
|
+
lb_subchannel_call_tracker_->Finish(args);
|
3028
|
+
lb_subchannel_call_tracker_.reset();
|
3029
|
+
}
|
3030
|
+
}
|
3031
|
+
|
2920
3032
|
void ClientChannel::LoadBalancedCall::CreateSubchannelCall() {
|
2921
3033
|
SubchannelCall::Args call_args = {
|
2922
|
-
std::move(connected_subchannel_), pollent_, path_, /*start_time=*/0,
|
3034
|
+
std::move(connected_subchannel_), pollent_, path_.Ref(), /*start_time=*/0,
|
2923
3035
|
deadline_, arena_,
|
2924
3036
|
// TODO(roth): When we implement hedging support, we will probably
|
2925
3037
|
// need to use a separate call context for each subchannel call.
|
2926
3038
|
call_context_, call_combiner_};
|
2927
3039
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
2928
3040
|
subchannel_call_ = SubchannelCall::Create(std::move(call_args), &error);
|
2929
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3041
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2930
3042
|
gpr_log(GPR_INFO,
|
2931
3043
|
"chand=%p lb_call=%p: create subchannel_call=%p: error=%s", chand_,
|
2932
3044
|
this, subchannel_call_.get(), grpc_error_std_string(error).c_str());
|
@@ -2935,7 +3047,7 @@ void ClientChannel::LoadBalancedCall::CreateSubchannelCall() {
|
|
2935
3047
|
subchannel_call_->SetAfterCallStackDestroy(on_call_destruction_complete_);
|
2936
3048
|
on_call_destruction_complete_ = nullptr;
|
2937
3049
|
}
|
2938
|
-
if (GPR_UNLIKELY(error
|
3050
|
+
if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(error))) {
|
2939
3051
|
PendingBatchesFail(error, YieldCallCombiner);
|
2940
3052
|
} else {
|
2941
3053
|
PendingBatchesResume();
|
@@ -2965,14 +3077,14 @@ class ClientChannel::LoadBalancedCall::LbQueuedCallCanceller {
|
|
2965
3077
|
auto* chand = lb_call->chand_;
|
2966
3078
|
{
|
2967
3079
|
MutexLock lock(&chand->data_plane_mu_);
|
2968
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3080
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2969
3081
|
gpr_log(GPR_INFO,
|
2970
3082
|
"chand=%p lb_call=%p: cancelling queued pick: "
|
2971
3083
|
"error=%s self=%p calld->pick_canceller=%p",
|
2972
3084
|
chand, lb_call, grpc_error_std_string(error).c_str(), self,
|
2973
3085
|
lb_call->lb_call_canceller_);
|
2974
3086
|
}
|
2975
|
-
if (lb_call->lb_call_canceller_ == self && error
|
3087
|
+
if (lb_call->lb_call_canceller_ == self && !GRPC_ERROR_IS_NONE(error)) {
|
2976
3088
|
lb_call->call_dispatch_controller_->Commit();
|
2977
3089
|
// Remove pick from list of queued picks.
|
2978
3090
|
lb_call->MaybeRemoveCallFromLbQueuedCallsLocked();
|
@@ -2991,7 +3103,7 @@ class ClientChannel::LoadBalancedCall::LbQueuedCallCanceller {
|
|
2991
3103
|
|
2992
3104
|
void ClientChannel::LoadBalancedCall::MaybeRemoveCallFromLbQueuedCallsLocked() {
|
2993
3105
|
if (!queued_pending_lb_pick_) return;
|
2994
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3106
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
2995
3107
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: removing from queued picks list",
|
2996
3108
|
chand_, this);
|
2997
3109
|
}
|
@@ -3003,7 +3115,7 @@ void ClientChannel::LoadBalancedCall::MaybeRemoveCallFromLbQueuedCallsLocked() {
|
|
3003
3115
|
|
3004
3116
|
void ClientChannel::LoadBalancedCall::MaybeAddCallToLbQueuedCallsLocked() {
|
3005
3117
|
if (queued_pending_lb_pick_) return;
|
3006
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3118
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3007
3119
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: adding to queued picks list",
|
3008
3120
|
chand_, this);
|
3009
3121
|
}
|
@@ -3023,8 +3135,8 @@ void ClientChannel::LoadBalancedCall::AsyncPickDone(grpc_error_handle error) {
|
|
3023
3135
|
void ClientChannel::LoadBalancedCall::PickDone(void* arg,
|
3024
3136
|
grpc_error_handle error) {
|
3025
3137
|
auto* self = static_cast<LoadBalancedCall*>(arg);
|
3026
|
-
if (error
|
3027
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3138
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
3139
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3028
3140
|
gpr_log(GPR_INFO,
|
3029
3141
|
"chand=%p lb_call=%p: failed to pick subchannel: error=%s",
|
3030
3142
|
self->chand_, self, grpc_error_std_string(error).c_str());
|
@@ -3063,10 +3175,10 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3063
3175
|
send_initial_metadata.send_initial_metadata_flags;
|
3064
3176
|
// Perform LB pick.
|
3065
3177
|
LoadBalancingPolicy::PickArgs pick_args;
|
3066
|
-
pick_args.path =
|
3178
|
+
pick_args.path = path_.as_string_view();
|
3067
3179
|
LbCallState lb_call_state(this);
|
3068
3180
|
pick_args.call_state = &lb_call_state;
|
3069
|
-
Metadata initial_metadata(
|
3181
|
+
Metadata initial_metadata(initial_metadata_batch);
|
3070
3182
|
pick_args.initial_metadata = &initial_metadata;
|
3071
3183
|
auto result = chand_->picker_->Pick(pick_args);
|
3072
3184
|
return HandlePickResult<bool>(
|
@@ -3074,7 +3186,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3074
3186
|
// CompletePick
|
3075
3187
|
[this](LoadBalancingPolicy::PickResult::Complete* complete_pick)
|
3076
3188
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3077
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3189
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3078
3190
|
gpr_log(GPR_INFO,
|
3079
3191
|
"chand=%p lb_call=%p: LB pick succeeded: subchannel=%p",
|
3080
3192
|
chand_, this, complete_pick->subchannel.get());
|
@@ -3090,7 +3202,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3090
3202
|
// yet seen that change and given us a new picker), then just
|
3091
3203
|
// queue the pick. We'll try again as soon as we get a new picker.
|
3092
3204
|
if (connected_subchannel_ == nullptr) {
|
3093
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3205
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3094
3206
|
gpr_log(GPR_INFO,
|
3095
3207
|
"chand=%p lb_call=%p: subchannel returned by LB picker "
|
3096
3208
|
"has no connected subchannel; queueing pick",
|
@@ -3110,7 +3222,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3110
3222
|
// QueuePick
|
3111
3223
|
[this](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/)
|
3112
3224
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3113
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3225
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3114
3226
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick queued", chand_,
|
3115
3227
|
this);
|
3116
3228
|
}
|
@@ -3121,7 +3233,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3121
3233
|
[this, send_initial_metadata_flags,
|
3122
3234
|
&error](LoadBalancingPolicy::PickResult::Fail* fail_pick)
|
3123
3235
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3124
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3236
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3125
3237
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick failed: %s",
|
3126
3238
|
chand_, this, fail_pick->status.ToString().c_str());
|
3127
3239
|
}
|
@@ -3145,7 +3257,7 @@ bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
|
|
3145
3257
|
// DropPick
|
3146
3258
|
[this, &error](LoadBalancingPolicy::PickResult::Drop* drop_pick)
|
3147
3259
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
|
3148
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
3260
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
|
3149
3261
|
gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick dropped: %s",
|
3150
3262
|
chand_, this, drop_pick->status.ToString().c_str());
|
3151
3263
|
}
|