From 3613589b84cfaead15ac3e7bd83c4690e317754d Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Mon, 20 Jul 2020 14:41:10 -0700 Subject: [PATCH] Change xDS ConfigSelector not to pass the timeout header value to the LB policy. --- BUILD | 9 ------ BUILD.gn | 1 - build_autogenerated.yaml | 2 -- gRPC-C++.podspec | 2 -- gRPC-Core.podspec | 2 -- grpc.gemspec | 1 - package.xml | 1 - .../lb_policy/xds/xds_routing.cc | 18 ++++++------ .../resolver/xds/xds_resolver.cc | 12 +------- .../resolver/xds/xds_resolver.h | 28 ------------------- tools/doxygen/Doxyfile.c++.internal | 1 - tools/doxygen/Doxyfile.core.internal | 1 - 12 files changed, 11 insertions(+), 67 deletions(-) delete mode 100644 src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h diff --git a/BUILD b/BUILD index c6438a08032..b3c97ca5e2a 100644 --- a/BUILD +++ b/BUILD @@ -1456,7 +1456,6 @@ grpc_cc_library( deps = [ "grpc_base", "grpc_client_channel", - "grpc_resolver_xds_header", "grpc_xds_api_header", ], ) @@ -1745,14 +1744,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "grpc_resolver_xds_header", - hdrs = [ - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h", - ], - language = "c++", -) - grpc_cc_library( name = "grpc_resolver_xds", srcs = [ diff --git a/BUILD.gn b/BUILD.gn index 8defd9122d4..035d6bddde6 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -281,7 +281,6 @@ config("grpc_config") { "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h", "src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc", "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc", - "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h", "src/core/ext/filters/client_channel/resolver_factory.h", "src/core/ext/filters/client_channel/resolver_registry.cc", "src/core/ext/filters/client_channel/resolver_registry.h", diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 7d96fb61766..0a8df78a8ca 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -405,7 +405,6 @@ libs: - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h - src/core/ext/filters/client_channel/resolver_factory.h - src/core/ext/filters/client_channel/resolver_registry.h - src/core/ext/filters/client_channel/resolver_result_parsing.h @@ -1334,7 +1333,6 @@ libs: - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h - - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h - src/core/ext/filters/client_channel/resolver_factory.h - src/core/ext/filters/client_channel/resolver_registry.h - src/core/ext/filters/client_channel/resolver_result_parsing.h diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 2f06645b1eb..a0844acf9a9 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -248,7 +248,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h', 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h', 'src/core/ext/filters/client_channel/resolver_factory.h', 'src/core/ext/filters/client_channel/resolver_registry.h', 'src/core/ext/filters/client_channel/resolver_result_parsing.h', @@ -736,7 +735,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h', 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h', 'src/core/ext/filters/client_channel/resolver_factory.h', 'src/core/ext/filters/client_channel/resolver_registry.h', 'src/core/ext/filters/client_channel/resolver_result_parsing.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 515fa312684..ac05dfec3e2 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -265,7 +265,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h', 'src/core/ext/filters/client_channel/resolver_factory.h', 'src/core/ext/filters/client_channel/resolver_registry.cc', 'src/core/ext/filters/client_channel/resolver_registry.h', @@ -1132,7 +1131,6 @@ Pod::Spec.new do |s| 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h', 'src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h', 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h', - 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h', 'src/core/ext/filters/client_channel/resolver_factory.h', 'src/core/ext/filters/client_channel/resolver_registry.h', 'src/core/ext/filters/client_channel/resolver_result_parsing.h', diff --git a/grpc.gemspec b/grpc.gemspec index 81ea3643abd..5b84d4ecf26 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -187,7 +187,6 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h ) s.files += %w( src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc ) s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc ) - s.files += %w( src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h ) s.files += %w( src/core/ext/filters/client_channel/resolver_factory.h ) s.files += %w( src/core/ext/filters/client_channel/resolver_registry.cc ) s.files += %w( src/core/ext/filters/client_channel/resolver_registry.h ) diff --git a/package.xml b/package.xml index bd886a4f58e..36399edc3e1 100644 --- a/package.xml +++ b/package.xml @@ -167,7 +167,6 @@ - diff --git a/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc b/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc index 8df6befc033..2adc7cd9551 100644 --- a/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +++ b/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc @@ -35,7 +35,6 @@ #include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h" #include "src/core/ext/filters/client_channel/lb_policy_factory.h" #include "src/core/ext/filters/client_channel/lb_policy_registry.h" -#include "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h" #include "src/core/ext/filters/client_channel/xds/xds_api.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/string.h" @@ -119,8 +118,8 @@ class XdsRoutingLb : public LoadBalancingPolicy { // Maintains an ordered xds route table as provided by RDS response. using RouteTable = std::vector; - explicit RoutePicker(RouteTable route_table, - RefCountedPtr config) + RoutePicker(RouteTable route_table, + RefCountedPtr config) : route_table_(std::move(route_table)), config_(std::move(config)) {} PickResult Pick(PickArgs args) override; @@ -314,11 +313,11 @@ bool HeaderMatchHelper( } bool HeadersMatch( - LoadBalancingPolicy::PickArgs args, const std::vector& - header_matchers) { + header_matchers, + LoadBalancingPolicy::MetadataInterface* initial_metadata) { for (const auto& header_matcher : header_matchers) { - bool match = HeaderMatchHelper(header_matcher, args.initial_metadata); + bool match = HeaderMatchHelper(header_matcher, initial_metadata); if (header_matcher.invert_match) match = !match; if (!match) return false; } @@ -336,11 +335,14 @@ XdsRoutingLb::PickResult XdsRoutingLb::RoutePicker::Pick(PickArgs args) { // Path matching. if (!PathMatch(args.path, route.matchers->path_matcher)) continue; // Header Matching. - if (!HeadersMatch(args, route.matchers->header_matchers)) continue; + if (!HeadersMatch(route.matchers->header_matchers, args.initial_metadata)) { + continue; + } // Match fraction check if (route.matchers->fraction_per_million.has_value() && - !UnderFraction(route.matchers->fraction_per_million.value())) + !UnderFraction(route.matchers->fraction_per_million.value())) { continue; + } // Found a match return route.picker->Pick(args); } diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc b/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc index f702bf1f541..3c7685579df 100644 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +++ b/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc @@ -28,8 +28,6 @@ namespace grpc_core { TraceFlag grpc_xds_resolver_trace(false, "xds_resolver"); -const char* kCallAttributeDeadline = "deadline"; - namespace { // @@ -86,15 +84,7 @@ class XdsResolver : public Resolver { class XdsConfigSelector : public ConfigSelector { public: CallConfig GetCallConfig(GetCallConfigArgs args) override { - char* deadline_str = static_cast( - args.arena->Alloc(GRPC_HTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE)); - grpc_http2_encode_timeout( - args.initial_metadata->deadline - grpc_core::ExecCtx::Get()->Now(), - deadline_str); - CallConfig call_config; - call_config.call_attributes[kCallAttributeDeadline] = - absl::string_view(deadline_str); - return call_config; + return CallConfig(); } }; diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h b/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h deleted file mode 100644 index 932acd02282..00000000000 --- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright 2019 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_H -#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_H - -#include - -namespace grpc_core { - -extern const char* kCallAttributeDeadline; - -} // namespace grpc_core - -#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_XDS_XDS_RESOLVER_H */ diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index b7997f9c8ea..42ad53a6b6a 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -1144,7 +1144,6 @@ src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \ src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h \ src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h \ src/core/ext/filters/client_channel/resolver_factory.h \ src/core/ext/filters/client_channel/resolver_registry.cc \ src/core/ext/filters/client_channel/resolver_registry.h \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 1edb9e7b663..d33ceb61599 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -951,7 +951,6 @@ src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h \ src/core/ext/filters/client_channel/resolver/sockaddr/README.md \ src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \ src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \ -src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h \ src/core/ext/filters/client_channel/resolver_factory.h \ src/core/ext/filters/client_channel/resolver_registry.cc \ src/core/ext/filters/client_channel/resolver_registry.h \