pull/20478/head
Juanli Shen 5 years ago
parent 85a500c13a
commit 2dc42a1e02
  1. 7
      CMakeLists.txt
  2. 21
      Makefile
  3. 1
      build.yaml
  4. 140
      src/core/ext/filters/client_channel/xds/xds_client.cc
  5. 560
      src/core/lib/transport/static_metadata.cc
  6. 149
      src/core/lib/transport/static_metadata.h
  7. 9
      src/proto/grpc/testing/xds/BUILD
  8. 51
      src/proto/grpc/testing/xds/ads_for_test.proto
  9. 1
      test/core/end2end/fuzzers/hpack.dictionary
  10. 1
      test/cpp/end2end/BUILD
  11. 455
      test/cpp/end2end/xds_end2end_test.cc
  12. 1
      tools/codegen/core/gen_static_metadata.py

@ -16791,6 +16791,10 @@ endif (gRPC_BUILD_TESTS)
if (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS)
add_executable(xds_end2end_test add_executable(xds_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/ads_for_test.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/ads_for_test.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.pb.h ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/eds_for_test.pb.h
@ -16804,6 +16808,9 @@ add_executable(xds_end2end_test
third_party/googletest/googlemock/src/gmock-all.cc third_party/googletest/googlemock/src/gmock-all.cc
) )
protobuf_generate_grpc_cpp(
src/proto/grpc/testing/xds/ads_for_test.proto
)
protobuf_generate_grpc_cpp( protobuf_generate_grpc_cpp(
src/proto/grpc/testing/xds/eds_for_test.proto src/proto/grpc/testing/xds/eds_for_test.proto
) )

@ -2984,6 +2984,22 @@ $(GENDIR)/src/proto/grpc/testing/worker_service.grpc.pb.cc: src/proto/grpc/testi
$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $< $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
endif endif
ifeq ($(NO_PROTOC),true)
$(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.pb.cc: protoc_dep_error
$(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.cc: protoc_dep_error
else
$(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.pb.cc: src/proto/grpc/testing/xds/ads_for_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc
$(E) "[PROTOC] Generating protobuf CC file from $<"
$(Q) mkdir -p `dirname $@`
$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
$(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.cc: src/proto/grpc/testing/xds/ads_for_test.proto $(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.pb.cc $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc
$(E) "[GRPC] Generating gRPC's protobuf service CC file from $<"
$(Q) mkdir -p `dirname $@`
$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
endif
ifeq ($(NO_PROTOC),true) ifeq ($(NO_PROTOC),true)
$(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc: protoc_dep_error
$(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc: protoc_dep_error
@ -20004,6 +20020,7 @@ endif
XDS_END2END_TEST_SRC = \ XDS_END2END_TEST_SRC = \
$(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.grpc.pb.cc \
test/cpp/end2end/xds_end2end_test.cc \ test/cpp/end2end/xds_end2end_test.cc \
@ -20037,6 +20054,8 @@ endif
endif endif
$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/xds/ads_for_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/xds/eds_for_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/xds/eds_for_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/xds/lrs_for_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/xds/lrs_for_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
@ -20050,7 +20069,7 @@ ifneq ($(NO_DEPS),true)
-include $(XDS_END2END_TEST_OBJS:.o=.dep) -include $(XDS_END2END_TEST_OBJS:.o=.dep)
endif endif
endif endif
$(OBJDIR)/$(CONFIG)/test/cpp/end2end/xds_end2end_test.o: $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.grpc.pb.cc $(OBJDIR)/$(CONFIG)/test/cpp/end2end/xds_end2end_test.o: $(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/ads_for_test.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/eds_for_test.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.pb.cc $(GENDIR)/src/proto/grpc/testing/xds/lrs_for_test.grpc.pb.cc
PUBLIC_HEADERS_MUST_BE_C89_SRC = \ PUBLIC_HEADERS_MUST_BE_C89_SRC = \

@ -6009,6 +6009,7 @@ targets:
build: test build: test
language: c++ language: c++
src: src:
- src/proto/grpc/testing/xds/ads_for_test.proto
- src/proto/grpc/testing/xds/eds_for_test.proto - src/proto/grpc/testing/xds/eds_for_test.proto
- src/proto/grpc/testing/xds/lrs_for_test.proto - src/proto/grpc/testing/xds/lrs_for_test.proto
- test/cpp/end2end/xds_end2end_test.cc - test/cpp/end2end/xds_end2end_test.cc

@ -114,16 +114,16 @@ class XdsClient::ChannelState : public InternallyRefCounted<ChannelState> {
bool shutting_down_ = false; bool shutting_down_ = false;
}; };
// Contains an EDS call to the xds server. // Contains an ADS call to the xds server.
class EdsCallState : public InternallyRefCounted<EdsCallState> { class AdsCallState : public InternallyRefCounted<AdsCallState> {
public: public:
// The ctor and dtor should not be used directly. // The ctor and dtor should not be used directly.
explicit EdsCallState(RefCountedPtr<RetryableCall<EdsCallState>> parent); explicit AdsCallState(RefCountedPtr<RetryableCall<AdsCallState>> parent);
~EdsCallState() override; ~AdsCallState() override;
void Orphan() override; void Orphan() override;
RetryableCall<EdsCallState>* parent() const { return parent_.get(); } RetryableCall<AdsCallState>* parent() const { return parent_.get(); }
ChannelState* chand() const { return parent_->chand(); } ChannelState* chand() const { return parent_->chand(); }
XdsClient* xds_client() const { return chand()->xds_client(); } XdsClient* xds_client() const { return chand()->xds_client(); }
bool seen_response() const { return seen_response_; } bool seen_response() const { return seen_response_; }
@ -135,7 +135,7 @@ class XdsClient::ChannelState : public InternallyRefCounted<ChannelState> {
bool IsCurrentCallOnChannel() const; bool IsCurrentCallOnChannel() const;
// The owning RetryableCall<>. // The owning RetryableCall<>.
RefCountedPtr<RetryableCall<EdsCallState>> parent_; RefCountedPtr<RetryableCall<AdsCallState>> parent_;
bool seen_response_ = false; bool seen_response_ = false;
// Always non-NULL. // Always non-NULL.
@ -256,16 +256,16 @@ class XdsClient::ChannelState : public InternallyRefCounted<ChannelState> {
grpc_channel* channel() const { return channel_; } grpc_channel* channel() const { return channel_; }
XdsClient* xds_client() const { return xds_client_.get(); } XdsClient* xds_client() const { return xds_client_.get(); }
EdsCallState* eds_calld() const { return eds_calld_->calld(); } AdsCallState* ads_calld() const { return ads_calld_->calld(); }
LrsCallState* lrs_calld() const { return lrs_calld_->calld(); } LrsCallState* lrs_calld() const { return lrs_calld_->calld(); }
void MaybeStartEdsCall(); void MaybeStartAdsCall();
void StopEdsCall(); void StopAdsCall();
void MaybeStartLrsCall(); void MaybeStartLrsCall();
void StopLrsCall(); void StopLrsCall();
bool HasActiveEdsCall() const { return eds_calld_->calld() != nullptr; } bool HasActiveAdsCall() const { return ads_calld_->calld() != nullptr; }
void StartConnectivityWatchLocked(); void StartConnectivityWatchLocked();
void CancelConnectivityWatchLocked(); void CancelConnectivityWatchLocked();
@ -282,7 +282,7 @@ class XdsClient::ChannelState : public InternallyRefCounted<ChannelState> {
StateWatcher* watcher_ = nullptr; StateWatcher* watcher_ = nullptr;
// The retryable XDS calls. // The retryable XDS calls.
OrphanablePtr<RetryableCall<EdsCallState>> eds_calld_; OrphanablePtr<RetryableCall<AdsCallState>> ads_calld_;
OrphanablePtr<RetryableCall<LrsCallState>> lrs_calld_; OrphanablePtr<RetryableCall<LrsCallState>> lrs_calld_;
}; };
@ -396,18 +396,18 @@ XdsClient::ChannelState::~ChannelState() {
void XdsClient::ChannelState::Orphan() { void XdsClient::ChannelState::Orphan() {
shutting_down_ = true; shutting_down_ = true;
CancelConnectivityWatchLocked(); CancelConnectivityWatchLocked();
eds_calld_.reset(); ads_calld_.reset();
lrs_calld_.reset(); lrs_calld_.reset();
Unref(DEBUG_LOCATION, "ChannelState+orphaned"); Unref(DEBUG_LOCATION, "ChannelState+orphaned");
} }
void XdsClient::ChannelState::MaybeStartEdsCall() { void XdsClient::ChannelState::MaybeStartAdsCall() {
if (eds_calld_ != nullptr) return; if (ads_calld_ != nullptr) return;
eds_calld_.reset(New<RetryableCall<EdsCallState>>( ads_calld_.reset(New<RetryableCall<AdsCallState>>(
Ref(DEBUG_LOCATION, "ChannelState+eds"))); Ref(DEBUG_LOCATION, "ChannelState+ads")));
} }
void XdsClient::ChannelState::StopEdsCall() { eds_calld_.reset(); } void XdsClient::ChannelState::StopAdsCall() { ads_calld_.reset(); }
void XdsClient::ChannelState::MaybeStartLrsCall() { void XdsClient::ChannelState::MaybeStartLrsCall() {
if (lrs_calld_ != nullptr) return; if (lrs_calld_ != nullptr) return;
@ -526,14 +526,14 @@ void XdsClient::ChannelState::RetryableCall<T>::OnRetryTimerLocked(
} }
// //
// XdsClient::ChannelState::EdsCallState // XdsClient::ChannelState::AdsCallState
// //
XdsClient::ChannelState::EdsCallState::EdsCallState( XdsClient::ChannelState::AdsCallState::AdsCallState(
RefCountedPtr<RetryableCall<EdsCallState>> parent) RefCountedPtr<RetryableCall<AdsCallState>> parent)
: InternallyRefCounted<EdsCallState>(&grpc_xds_client_trace), : InternallyRefCounted<AdsCallState>(&grpc_xds_client_trace),
parent_(std::move(parent)) { parent_(std::move(parent)) {
// Init the EDS call. Note that the call will progress every time there's // Init the ADS call. Note that the call will progress every time there's
// activity in xds_client()->interested_parties_, which is comprised of // activity in xds_client()->interested_parties_, which is comprised of
// the polling entities from client_channel. // the polling entities from client_channel.
GPR_ASSERT(xds_client() != nullptr); GPR_ASSERT(xds_client() != nullptr);
@ -543,7 +543,7 @@ XdsClient::ChannelState::EdsCallState::EdsCallState(
call_ = grpc_channel_create_pollset_set_call( call_ = grpc_channel_create_pollset_set_call(
chand()->channel_, nullptr, GRPC_PROPAGATE_DEFAULTS, chand()->channel_, nullptr, GRPC_PROPAGATE_DEFAULTS,
xds_client()->interested_parties_, xds_client()->interested_parties_,
GRPC_MDSTR_SLASH_ENVOY_DOT_API_DOT_V2_DOT_ENDPOINTDISCOVERYSERVICE_SLASH_STREAMENDPOINTS, GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES,
nullptr, GRPC_MILLIS_INF_FUTURE, nullptr); nullptr, GRPC_MILLIS_INF_FUTURE, nullptr);
GPR_ASSERT(call_ != nullptr); GPR_ASSERT(call_ != nullptr);
// Init the request payload. // Init the request payload.
@ -562,7 +562,7 @@ XdsClient::ChannelState::EdsCallState::EdsCallState(
// Start the call. // Start the call.
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) { if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO, gpr_log(GPR_INFO,
"[xds_client %p] Starting EDS call (chand: %p, calld: %p, " "[xds_client %p] Starting ADS call (chand: %p, calld: %p, "
"call: %p)", "call: %p)",
xds_client(), chand(), this, call_); xds_client(), chand(), this, call_);
} }
@ -601,7 +601,7 @@ XdsClient::ChannelState::EdsCallState::EdsCallState(
op->flags = 0; op->flags = 0;
op->reserved = nullptr; op->reserved = nullptr;
op++; op++;
Ref(DEBUG_LOCATION, "EDS+OnResponseReceivedLocked").release(); Ref(DEBUG_LOCATION, "ADS+OnResponseReceivedLocked").release();
call_error = grpc_call_start_batch_and_execute(call_, ops, (size_t)(op - ops), call_error = grpc_call_start_batch_and_execute(call_, ops, (size_t)(op - ops),
&on_response_received_); &on_response_received_);
GPR_ASSERT(GRPC_CALL_OK == call_error); GPR_ASSERT(GRPC_CALL_OK == call_error);
@ -622,7 +622,7 @@ XdsClient::ChannelState::EdsCallState::EdsCallState(
GPR_ASSERT(GRPC_CALL_OK == call_error); GPR_ASSERT(GRPC_CALL_OK == call_error);
} }
XdsClient::ChannelState::EdsCallState::~EdsCallState() { XdsClient::ChannelState::AdsCallState::~AdsCallState() {
grpc_metadata_array_destroy(&initial_metadata_recv_); grpc_metadata_array_destroy(&initial_metadata_recv_);
grpc_metadata_array_destroy(&trailing_metadata_recv_); grpc_metadata_array_destroy(&trailing_metadata_recv_);
grpc_byte_buffer_destroy(send_message_payload_); grpc_byte_buffer_destroy(send_message_payload_);
@ -632,7 +632,7 @@ XdsClient::ChannelState::EdsCallState::~EdsCallState() {
grpc_call_unref(call_); grpc_call_unref(call_);
} }
void XdsClient::ChannelState::EdsCallState::Orphan() { void XdsClient::ChannelState::AdsCallState::Orphan() {
GPR_ASSERT(call_ != nullptr); GPR_ASSERT(call_ != nullptr);
// If we are here because xds_client wants to cancel the call, // If we are here because xds_client wants to cancel the call,
// on_status_received_ will complete the cancellation and clean up. Otherwise, // on_status_received_ will complete the cancellation and clean up. Otherwise,
@ -643,23 +643,23 @@ void XdsClient::ChannelState::EdsCallState::Orphan() {
// corresponding unref happens in on_status_received_ instead of here. // corresponding unref happens in on_status_received_ instead of here.
} }
void XdsClient::ChannelState::EdsCallState::OnResponseReceivedLocked( void XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked(
void* arg, grpc_error* error) { void* arg, grpc_error* error) {
EdsCallState* eds_calld = static_cast<EdsCallState*>(arg); AdsCallState* ads_calld = static_cast<AdsCallState*>(arg);
XdsClient* xds_client = eds_calld->xds_client(); XdsClient* xds_client = ads_calld->xds_client();
// Empty payload means the call was cancelled. // Empty payload means the call was cancelled.
if (!eds_calld->IsCurrentCallOnChannel() || if (!ads_calld->IsCurrentCallOnChannel() ||
eds_calld->recv_message_payload_ == nullptr) { ads_calld->recv_message_payload_ == nullptr) {
eds_calld->Unref(DEBUG_LOCATION, "EDS+OnResponseReceivedLocked"); ads_calld->Unref(DEBUG_LOCATION, "ADS+OnResponseReceivedLocked");
return; return;
} }
// Read the response. // Read the response.
grpc_byte_buffer_reader bbr; grpc_byte_buffer_reader bbr;
grpc_byte_buffer_reader_init(&bbr, eds_calld->recv_message_payload_); grpc_byte_buffer_reader_init(&bbr, ads_calld->recv_message_payload_);
grpc_slice response_slice = grpc_byte_buffer_reader_readall(&bbr); grpc_slice response_slice = grpc_byte_buffer_reader_readall(&bbr);
grpc_byte_buffer_reader_destroy(&bbr); grpc_byte_buffer_reader_destroy(&bbr);
grpc_byte_buffer_destroy(eds_calld->recv_message_payload_); grpc_byte_buffer_destroy(ads_calld->recv_message_payload_);
eds_calld->recv_message_payload_ = nullptr; ads_calld->recv_message_payload_ = nullptr;
// TODO(juanlishen): When we convert this to use the xds protocol, the // TODO(juanlishen): When we convert this to use the xds protocol, the
// balancer will send us a fallback timeout such that we should go into // balancer will send us a fallback timeout such that we should go into
// fallback mode if we have lost contact with the balancer after a certain // fallback mode if we have lost contact with the balancer after a certain
@ -676,7 +676,7 @@ void XdsClient::ChannelState::EdsCallState::OnResponseReceivedLocked(
XdsEdsResponseDecodeAndParse(response_slice, &update); XdsEdsResponseDecodeAndParse(response_slice, &update);
if (parse_error != GRPC_ERROR_NONE) { if (parse_error != GRPC_ERROR_NONE) {
gpr_log(GPR_ERROR, gpr_log(GPR_ERROR,
"[xds_client %p] EDS response parsing failed. error=%s", "[xds_client %p] ADS response parsing failed. error=%s",
xds_client, grpc_error_string(parse_error)); xds_client, grpc_error_string(parse_error));
GRPC_ERROR_UNREF(parse_error); GRPC_ERROR_UNREF(parse_error);
return; return;
@ -685,16 +685,16 @@ void XdsClient::ChannelState::EdsCallState::OnResponseReceivedLocked(
char* response_slice_str = char* response_slice_str =
grpc_dump_slice(response_slice, GPR_DUMP_ASCII | GPR_DUMP_HEX); grpc_dump_slice(response_slice, GPR_DUMP_ASCII | GPR_DUMP_HEX);
gpr_log(GPR_ERROR, gpr_log(GPR_ERROR,
"[xds_client %p] EDS response '%s' doesn't contain any valid " "[xds_client %p] ADS response '%s' doesn't contain any valid "
"locality but doesn't require to drop all calls. Ignoring.", "locality but doesn't require to drop all calls. Ignoring.",
xds_client, response_slice_str); xds_client, response_slice_str);
gpr_free(response_slice_str); gpr_free(response_slice_str);
return; return;
} }
eds_calld->seen_response_ = true; ads_calld->seen_response_ = true;
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) { if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO, gpr_log(GPR_INFO,
"[xds_client %p] EDS response with %" PRIuPTR "[xds_client %p] ADS response with %" PRIuPTR
" priorities and %" PRIuPTR " priorities and %" PRIuPTR
" drop categories received (drop_all=%d)", " drop categories received (drop_all=%d)",
xds_client, update.priority_list_update.size(), xds_client, update.priority_list_update.size(),
@ -741,7 +741,7 @@ void XdsClient::ChannelState::EdsCallState::OnResponseReceivedLocked(
} }
} }
// Start load reporting if needed. // Start load reporting if needed.
LrsCallState* lrs_calld = eds_calld->chand()->lrs_calld_->calld(); LrsCallState* lrs_calld = ads_calld->chand()->lrs_calld_->calld();
if (lrs_calld != nullptr) lrs_calld->MaybeStartReportingLocked(); if (lrs_calld != nullptr) lrs_calld->MaybeStartReportingLocked();
// Ignore identical update. // Ignore identical update.
const EdsUpdate& prev_update = xds_client->cluster_state_.eds_update; const EdsUpdate& prev_update = xds_client->cluster_state_.eds_update;
@ -768,54 +768,54 @@ void XdsClient::ChannelState::EdsCallState::OnResponseReceivedLocked(
}(); }();
grpc_slice_unref_internal(response_slice); grpc_slice_unref_internal(response_slice);
if (xds_client->shutting_down_) { if (xds_client->shutting_down_) {
eds_calld->Unref(DEBUG_LOCATION, ads_calld->Unref(DEBUG_LOCATION,
"EDS+OnResponseReceivedLocked+xds_shutdown"); "ADS+OnResponseReceivedLocked+xds_shutdown");
return; return;
} }
// Keep listening for serverlist updates. // Keep listening for serverlist updates.
grpc_op op; grpc_op op;
memset(&op, 0, sizeof(op)); memset(&op, 0, sizeof(op));
op.op = GRPC_OP_RECV_MESSAGE; op.op = GRPC_OP_RECV_MESSAGE;
op.data.recv_message.recv_message = &eds_calld->recv_message_payload_; op.data.recv_message.recv_message = &ads_calld->recv_message_payload_;
op.flags = 0; op.flags = 0;
op.reserved = nullptr; op.reserved = nullptr;
GPR_ASSERT(eds_calld->call_ != nullptr); GPR_ASSERT(ads_calld->call_ != nullptr);
// Reuse the "EDS+OnResponseReceivedLocked" ref taken in ctor. // Reuse the "ADS+OnResponseReceivedLocked" ref taken in ctor.
const grpc_call_error call_error = grpc_call_start_batch_and_execute( const grpc_call_error call_error = grpc_call_start_batch_and_execute(
eds_calld->call_, &op, 1, &eds_calld->on_response_received_); ads_calld->call_, &op, 1, &ads_calld->on_response_received_);
GPR_ASSERT(GRPC_CALL_OK == call_error); GPR_ASSERT(GRPC_CALL_OK == call_error);
} }
void XdsClient::ChannelState::EdsCallState::OnStatusReceivedLocked( void XdsClient::ChannelState::AdsCallState::OnStatusReceivedLocked(
void* arg, grpc_error* error) { void* arg, grpc_error* error) {
EdsCallState* eds_calld = static_cast<EdsCallState*>(arg); AdsCallState* ads_calld = static_cast<AdsCallState*>(arg);
ChannelState* chand = eds_calld->chand(); ChannelState* chand = ads_calld->chand();
XdsClient* xds_client = eds_calld->xds_client(); XdsClient* xds_client = ads_calld->xds_client();
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) { if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
char* status_details = grpc_slice_to_c_string(eds_calld->status_details_); char* status_details = grpc_slice_to_c_string(ads_calld->status_details_);
gpr_log(GPR_INFO, gpr_log(GPR_INFO,
"[xds_client %p] EDS call status received. Status = %d, details " "[xds_client %p] ADS call status received. Status = %d, details "
"= '%s', (chand: %p, eds_calld: %p, call: %p), error '%s'", "= '%s', (chand: %p, ads_calld: %p, call: %p), error '%s'",
xds_client, eds_calld->status_code_, status_details, chand, xds_client, ads_calld->status_code_, status_details, chand,
eds_calld, eds_calld->call_, grpc_error_string(error)); ads_calld, ads_calld->call_, grpc_error_string(error));
gpr_free(status_details); gpr_free(status_details);
} }
// Ignore status from a stale call. // Ignore status from a stale call.
if (eds_calld->IsCurrentCallOnChannel()) { if (ads_calld->IsCurrentCallOnChannel()) {
// Try to restart the call. // Try to restart the call.
eds_calld->parent_->OnCallFinishedLocked(); ads_calld->parent_->OnCallFinishedLocked();
// Send error to all watchers. // Send error to all watchers.
xds_client->NotifyOnError( xds_client->NotifyOnError(
GRPC_ERROR_CREATE_FROM_STATIC_STRING("xds call failed")); GRPC_ERROR_CREATE_FROM_STATIC_STRING("xds call failed"));
} }
eds_calld->Unref(DEBUG_LOCATION, "EDS+OnStatusReceivedLocked"); ads_calld->Unref(DEBUG_LOCATION, "ADS+OnStatusReceivedLocked");
} }
bool XdsClient::ChannelState::EdsCallState::IsCurrentCallOnChannel() const { bool XdsClient::ChannelState::AdsCallState::IsCurrentCallOnChannel() const {
// If the retryable EDS call is null (which only happens when the xds channel // If the retryable ADS call is null (which only happens when the xds channel
// is shutting down), all the EDS calls are stale. // is shutting down), all the ADS calls are stale.
if (chand()->eds_calld_ == nullptr) return false; if (chand()->ads_calld_ == nullptr) return false;
return this == chand()->eds_calld_->calld(); return this == chand()->ads_calld_->calld();
} }
// //
@ -1031,11 +1031,11 @@ void XdsClient::ChannelState::LrsCallState::MaybeStartReportingLocked() {
if (send_message_payload_ != nullptr) return; if (send_message_payload_ != nullptr) return;
// Don't start if no LRS response has arrived. // Don't start if no LRS response has arrived.
if (!seen_response()) return; if (!seen_response()) return;
// Don't start if the EDS call hasn't received any valid response. Note that // Don't start if the ADS call hasn't received any valid response. Note that
// this must be the first channel because it is the current channel but its // this must be the first channel because it is the current channel but its
// EDS call hasn't seen any response. // ADS call hasn't seen any response.
EdsCallState* eds_calld = chand()->eds_calld_->calld(); AdsCallState* ads_calld = chand()->ads_calld_->calld();
if (eds_calld == nullptr || !eds_calld->seen_response()) return; if (ads_calld == nullptr || !ads_calld->seen_response()) return;
// Start reporting. // Start reporting.
for (auto* client_stats : chand()->xds_client_->cluster_state_.client_stats) { for (auto* client_stats : chand()->xds_client_->cluster_state_.client_stats) {
client_stats->MaybeInitLastReportTime(); client_stats->MaybeInitLastReportTime();
@ -1219,7 +1219,7 @@ void XdsClient::WatchEndpointData(StringView cluster,
if (!cluster_state_.eds_update.priority_list_update.empty()) { if (!cluster_state_.eds_update.priority_list_update.empty()) {
w->OnEndpointChanged(cluster_state_.eds_update); w->OnEndpointChanged(cluster_state_.eds_update);
} }
chand_->MaybeStartEdsCall(); chand_->MaybeStartAdsCall();
} }
void XdsClient::CancelEndpointDataWatch(StringView cluster, void XdsClient::CancelEndpointDataWatch(StringView cluster,
@ -1228,7 +1228,7 @@ void XdsClient::CancelEndpointDataWatch(StringView cluster,
if (it != cluster_state_.endpoint_watchers.end()) { if (it != cluster_state_.endpoint_watchers.end()) {
cluster_state_.endpoint_watchers.erase(it); cluster_state_.endpoint_watchers.erase(it);
} }
if (cluster_state_.endpoint_watchers.empty()) chand_->StopEdsCall(); if (cluster_state_.endpoint_watchers.empty()) chand_->StopAdsCall();
} }
void XdsClient::AddClientStats(StringView cluster, void XdsClient::AddClientStats(StringView cluster,

@ -68,62 +68,59 @@ static constexpr uint8_t g_bytes[] = {
114, 118, 105, 99, 101, 46, 108, 111, 97, 100, 95, 115, 116, 97, 116, 114, 118, 105, 99, 101, 46, 108, 111, 97, 100, 95, 115, 116, 97, 116,
115, 46, 118, 50, 46, 76, 111, 97, 100, 82, 101, 112, 111, 114, 116, 115, 46, 118, 50, 46, 76, 111, 97, 100, 82, 101, 112, 111, 114, 116,
105, 110, 103, 83, 101, 114, 118, 105, 99, 101, 47, 83, 116, 114, 101, 105, 110, 103, 83, 101, 114, 118, 105, 99, 101, 47, 83, 116, 114, 101,
97, 109, 76, 111, 97, 100, 83, 116, 97, 116, 115, 47, 101, 110, 118, 97, 109, 76, 111, 97, 100, 83, 116, 97, 116, 115, 47, 103, 114, 112,
111, 121, 46, 97, 112, 105, 46, 118, 50, 46, 69, 110, 100, 112, 111, 99, 46, 104, 101, 97, 108, 116, 104, 46, 118, 49, 46, 72, 101, 97,
105, 110, 116, 68, 105, 115, 99, 111, 118, 101, 114, 121, 83, 101, 114, 108, 116, 104, 47, 87, 97, 116, 99, 104, 47, 101, 110, 118, 111, 121,
118, 105, 99, 101, 47, 83, 116, 114, 101, 97, 109, 69, 110, 100, 112, 46, 115, 101, 114, 118, 105, 99, 101, 46, 100, 105, 115, 99, 111, 118,
111, 105, 110, 116, 115, 47, 103, 114, 112, 99, 46, 104, 101, 97, 108, 101, 114, 121, 46, 118, 50, 46, 65, 103, 103, 114, 101, 103, 97, 116,
116, 104, 46, 118, 49, 46, 72, 101, 97, 108, 116, 104, 47, 87, 97, 101, 100, 68, 105, 115, 99, 111, 118, 101, 114, 121, 83, 101, 114, 118,
116, 99, 104, 47, 101, 110, 118, 111, 121, 46, 115, 101, 114, 118, 105, 105, 99, 101, 47, 83, 116, 114, 101, 97, 109, 65, 103, 103, 114, 101,
99, 101, 46, 100, 105, 115, 99, 111, 118, 101, 114, 121, 46, 118, 50, 103, 97, 116, 101, 100, 82, 101, 115, 111, 117, 114, 99, 101, 115, 100,
46, 65, 103, 103, 114, 101, 103, 97, 116, 101, 100, 68, 105, 115, 99, 101, 102, 108, 97, 116, 101, 103, 122, 105, 112, 115, 116, 114, 101, 97,
111, 118, 101, 114, 121, 83, 101, 114, 118, 105, 99, 101, 47, 83, 116, 109, 47, 103, 122, 105, 112, 71, 69, 84, 80, 79, 83, 84, 47, 47,
114, 101, 97, 109, 65, 103, 103, 114, 101, 103, 97, 116, 101, 100, 82, 105, 110, 100, 101, 120, 46, 104, 116, 109, 108, 104, 116, 116, 112, 104,
101, 115, 111, 117, 114, 99, 101, 115, 100, 101, 102, 108, 97, 116, 101, 116, 116, 112, 115, 50, 48, 48, 50, 48, 52, 50, 48, 54, 51, 48,
103, 122, 105, 112, 115, 116, 114, 101, 97, 109, 47, 103, 122, 105, 112, 52, 52, 48, 48, 52, 48, 52, 53, 48, 48, 97, 99, 99, 101, 112,
71, 69, 84, 80, 79, 83, 84, 47, 47, 105, 110, 100, 101, 120, 46, 116, 45, 99, 104, 97, 114, 115, 101, 116, 103, 122, 105, 112, 44, 32,
104, 116, 109, 108, 104, 116, 116, 112, 104, 116, 116, 112, 115, 50, 48, 100, 101, 102, 108, 97, 116, 101, 97, 99, 99, 101, 112, 116, 45, 108,
48, 50, 48, 52, 50, 48, 54, 51, 48, 52, 52, 48, 48, 52, 48, 97, 110, 103, 117, 97, 103, 101, 97, 99, 99, 101, 112, 116, 45, 114,
52, 53, 48, 48, 97, 99, 99, 101, 112, 116, 45, 99, 104, 97, 114, 97, 110, 103, 101, 115, 97, 99, 99, 101, 112, 116, 97, 99, 99, 101,
115, 101, 116, 103, 122, 105, 112, 44, 32, 100, 101, 102, 108, 97, 116, 115, 115, 45, 99, 111, 110, 116, 114, 111, 108, 45, 97, 108, 108, 111,
101, 97, 99, 99, 101, 112, 116, 45, 108, 97, 110, 103, 117, 97, 103, 119, 45, 111, 114, 105, 103, 105, 110, 97, 103, 101, 97, 108, 108, 111,
101, 97, 99, 99, 101, 112, 116, 45, 114, 97, 110, 103, 101, 115, 97, 119, 97, 117, 116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110, 99,
99, 99, 101, 112, 116, 97, 99, 99, 101, 115, 115, 45, 99, 111, 110, 97, 99, 104, 101, 45, 99, 111, 110, 116, 114, 111, 108, 99, 111, 110,
116, 114, 111, 108, 45, 97, 108, 108, 111, 119, 45, 111, 114, 105, 103, 116, 101, 110, 116, 45, 100, 105, 115, 112, 111, 115, 105, 116, 105, 111,
105, 110, 97, 103, 101, 97, 108, 108, 111, 119, 97, 117, 116, 104, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 108, 97, 110, 103, 117, 97,
114, 105, 122, 97, 116, 105, 111, 110, 99, 97, 99, 104, 101, 45, 99, 103, 101, 99, 111, 110, 116, 101, 110, 116, 45, 108, 101, 110, 103, 116,
111, 110, 116, 114, 111, 108, 99, 111, 110, 116, 101, 110, 116, 45, 100, 104, 99, 111, 110, 116, 101, 110, 116, 45, 108, 111, 99, 97, 116, 105,
105, 115, 112, 111, 115, 105, 116, 105, 111, 110, 99, 111, 110, 116, 101, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 114, 97, 110, 103, 101,
110, 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, 99, 111, 110, 116, 99, 111, 111, 107, 105, 101, 100, 97, 116, 101, 101, 116, 97, 103, 101,
101, 110, 116, 45, 108, 101, 110, 103, 116, 104, 99, 111, 110, 116, 101, 120, 112, 101, 99, 116, 101, 120, 112, 105, 114, 101, 115, 102, 114, 111,
110, 116, 45, 108, 111, 99, 97, 116, 105, 111, 110, 99, 111, 110, 116, 109, 105, 102, 45, 109, 97, 116, 99, 104, 105, 102, 45, 109, 111, 100,
101, 110, 116, 45, 114, 97, 110, 103, 101, 99, 111, 111, 107, 105, 101, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 105, 102, 45, 110,
100, 97, 116, 101, 101, 116, 97, 103, 101, 120, 112, 101, 99, 116, 101, 111, 110, 101, 45, 109, 97, 116, 99, 104, 105, 102, 45, 114, 97, 110,
120, 112, 105, 114, 101, 115, 102, 114, 111, 109, 105, 102, 45, 109, 97, 103, 101, 105, 102, 45, 117, 110, 109, 111, 100, 105, 102, 105, 101, 100,
116, 99, 104, 105, 102, 45, 109, 111, 100, 105, 102, 105, 101, 100, 45, 45, 115, 105, 110, 99, 101, 108, 97, 115, 116, 45, 109, 111, 100, 105,
115, 105, 110, 99, 101, 105, 102, 45, 110, 111, 110, 101, 45, 109, 97, 102, 105, 101, 100, 108, 105, 110, 107, 108, 111, 99, 97, 116, 105, 111,
116, 99, 104, 105, 102, 45, 114, 97, 110, 103, 101, 105, 102, 45, 117, 110, 109, 97, 120, 45, 102, 111, 114, 119, 97, 114, 100, 115, 112, 114,
110, 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 111, 120, 121, 45, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116,
108, 97, 115, 116, 45, 109, 111, 100, 105, 102, 105, 101, 100, 108, 105, 101, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 111, 114, 105, 122,
110, 107, 108, 111, 99, 97, 116, 105, 111, 110, 109, 97, 120, 45, 102, 97, 116, 105, 111, 110, 114, 97, 110, 103, 101, 114, 101, 102, 101, 114,
111, 114, 119, 97, 114, 100, 115, 112, 114, 111, 120, 121, 45, 97, 117, 101, 114, 114, 101, 102, 114, 101, 115, 104, 114, 101, 116, 114, 121, 45,
116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 112, 114, 111, 120, 121, 97, 102, 116, 101, 114, 115, 101, 114, 118, 101, 114, 115, 101, 116, 45,
45, 97, 117, 116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110, 114, 99, 111, 111, 107, 105, 101, 115, 116, 114, 105, 99, 116, 45, 116, 114,
97, 110, 103, 101, 114, 101, 102, 101, 114, 101, 114, 114, 101, 102, 114, 97, 110, 115, 112, 111, 114, 116, 45, 115, 101, 99, 117, 114, 105, 116,
101, 115, 104, 114, 101, 116, 114, 121, 45, 97, 102, 116, 101, 114, 115, 121, 116, 114, 97, 110, 115, 102, 101, 114, 45, 101, 110, 99, 111, 100,
101, 114, 118, 101, 114, 115, 101, 116, 45, 99, 111, 111, 107, 105, 101, 105, 110, 103, 118, 97, 114, 121, 118, 105, 97, 119, 119, 119, 45, 97,
115, 116, 114, 105, 99, 116, 45, 116, 114, 97, 110, 115, 112, 111, 114, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 48, 105, 100, 101,
116, 45, 115, 101, 99, 117, 114, 105, 116, 121, 116, 114, 97, 110, 115, 110, 116, 105, 116, 121, 116, 114, 97, 105, 108, 101, 114, 115, 97, 112,
102, 101, 114, 45, 101, 110, 99, 111, 100, 105, 110, 103, 118, 97, 114, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 103, 114, 112, 99, 103,
121, 118, 105, 97, 119, 119, 119, 45, 97, 117, 116, 104, 101, 110, 116, 114, 112, 99, 80, 85, 84, 108, 98, 45, 99, 111, 115, 116, 45, 98,
105, 99, 97, 116, 101, 48, 105, 100, 101, 110, 116, 105, 116, 121, 116, 105, 110, 105, 100, 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108,
114, 97, 105, 108, 101, 114, 115, 97, 112, 112, 108, 105, 99, 97, 116, 97, 116, 101, 105, 100, 101, 110, 116, 105, 116, 121, 44, 103, 122, 105,
105, 111, 110, 47, 103, 114, 112, 99, 103, 114, 112, 99, 80, 85, 84, 112, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112, 105, 100,
108, 98, 45, 99, 111, 115, 116, 45, 98, 105, 110, 105, 100, 101, 110, 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 44,
116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 105, 100, 101, 103, 122, 105, 112};
110, 116, 105, 116, 121, 44, 103, 122, 105, 112, 100, 101, 102, 108, 97,
116, 101, 44, 103, 122, 105, 112, 105, 100, 101, 110, 116, 105, 116, 121,
44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112};
grpc_slice_refcount grpc_core::StaticSliceRefcount::kStaticSubRefcount; grpc_slice_refcount grpc_core::StaticSliceRefcount::kStaticSubRefcount;
@ -188,7 +185,6 @@ struct StaticMetadataCtx {
StaticSliceRefcount(102), StaticSliceRefcount(103), StaticSliceRefcount(102), StaticSliceRefcount(103),
StaticSliceRefcount(104), StaticSliceRefcount(105), StaticSliceRefcount(104), StaticSliceRefcount(105),
StaticSliceRefcount(106), StaticSliceRefcount(107), StaticSliceRefcount(106), StaticSliceRefcount(107),
StaticSliceRefcount(108),
}; };
const StaticMetadataSlice slices[GRPC_STATIC_MDSTR_COUNT] = { const StaticMetadataSlice slices[GRPC_STATIC_MDSTR_COUNT] = {
@ -229,79 +225,78 @@ struct StaticMetadataCtx {
grpc_core::StaticMetadataSlice(&refcounts[33].base, 31, g_bytes + 434), grpc_core::StaticMetadataSlice(&refcounts[33].base, 31, g_bytes + 434),
grpc_core::StaticMetadataSlice(&refcounts[34].base, 36, g_bytes + 465), grpc_core::StaticMetadataSlice(&refcounts[34].base, 36, g_bytes + 465),
grpc_core::StaticMetadataSlice(&refcounts[35].base, 65, g_bytes + 501), grpc_core::StaticMetadataSlice(&refcounts[35].base, 65, g_bytes + 501),
grpc_core::StaticMetadataSlice(&refcounts[36].base, 54, g_bytes + 566), grpc_core::StaticMetadataSlice(&refcounts[36].base, 28, g_bytes + 566),
grpc_core::StaticMetadataSlice(&refcounts[37].base, 28, g_bytes + 620), grpc_core::StaticMetadataSlice(&refcounts[37].base, 80, g_bytes + 594),
grpc_core::StaticMetadataSlice(&refcounts[38].base, 80, g_bytes + 648), grpc_core::StaticMetadataSlice(&refcounts[38].base, 7, g_bytes + 674),
grpc_core::StaticMetadataSlice(&refcounts[39].base, 7, g_bytes + 728), grpc_core::StaticMetadataSlice(&refcounts[39].base, 4, g_bytes + 681),
grpc_core::StaticMetadataSlice(&refcounts[40].base, 4, g_bytes + 735), grpc_core::StaticMetadataSlice(&refcounts[40].base, 11, g_bytes + 685),
grpc_core::StaticMetadataSlice(&refcounts[41].base, 11, g_bytes + 739), grpc_core::StaticMetadataSlice(&refcounts[41].base, 3, g_bytes + 696),
grpc_core::StaticMetadataSlice(&refcounts[42].base, 3, g_bytes + 750), grpc_core::StaticMetadataSlice(&refcounts[42].base, 4, g_bytes + 699),
grpc_core::StaticMetadataSlice(&refcounts[43].base, 4, g_bytes + 753), grpc_core::StaticMetadataSlice(&refcounts[43].base, 1, g_bytes + 703),
grpc_core::StaticMetadataSlice(&refcounts[44].base, 1, g_bytes + 757), grpc_core::StaticMetadataSlice(&refcounts[44].base, 11, g_bytes + 704),
grpc_core::StaticMetadataSlice(&refcounts[45].base, 11, g_bytes + 758), grpc_core::StaticMetadataSlice(&refcounts[45].base, 4, g_bytes + 715),
grpc_core::StaticMetadataSlice(&refcounts[46].base, 4, g_bytes + 769), grpc_core::StaticMetadataSlice(&refcounts[46].base, 5, g_bytes + 719),
grpc_core::StaticMetadataSlice(&refcounts[47].base, 5, g_bytes + 773), grpc_core::StaticMetadataSlice(&refcounts[47].base, 3, g_bytes + 724),
grpc_core::StaticMetadataSlice(&refcounts[48].base, 3, g_bytes + 778), grpc_core::StaticMetadataSlice(&refcounts[48].base, 3, g_bytes + 727),
grpc_core::StaticMetadataSlice(&refcounts[49].base, 3, g_bytes + 781), grpc_core::StaticMetadataSlice(&refcounts[49].base, 3, g_bytes + 730),
grpc_core::StaticMetadataSlice(&refcounts[50].base, 3, g_bytes + 784), grpc_core::StaticMetadataSlice(&refcounts[50].base, 3, g_bytes + 733),
grpc_core::StaticMetadataSlice(&refcounts[51].base, 3, g_bytes + 787), grpc_core::StaticMetadataSlice(&refcounts[51].base, 3, g_bytes + 736),
grpc_core::StaticMetadataSlice(&refcounts[52].base, 3, g_bytes + 790), grpc_core::StaticMetadataSlice(&refcounts[52].base, 3, g_bytes + 739),
grpc_core::StaticMetadataSlice(&refcounts[53].base, 3, g_bytes + 793), grpc_core::StaticMetadataSlice(&refcounts[53].base, 3, g_bytes + 742),
grpc_core::StaticMetadataSlice(&refcounts[54].base, 3, g_bytes + 796), grpc_core::StaticMetadataSlice(&refcounts[54].base, 14, g_bytes + 745),
grpc_core::StaticMetadataSlice(&refcounts[55].base, 14, g_bytes + 799), grpc_core::StaticMetadataSlice(&refcounts[55].base, 13, g_bytes + 759),
grpc_core::StaticMetadataSlice(&refcounts[56].base, 13, g_bytes + 813), grpc_core::StaticMetadataSlice(&refcounts[56].base, 15, g_bytes + 772),
grpc_core::StaticMetadataSlice(&refcounts[57].base, 15, g_bytes + 826), grpc_core::StaticMetadataSlice(&refcounts[57].base, 13, g_bytes + 787),
grpc_core::StaticMetadataSlice(&refcounts[58].base, 13, g_bytes + 841), grpc_core::StaticMetadataSlice(&refcounts[58].base, 6, g_bytes + 800),
grpc_core::StaticMetadataSlice(&refcounts[59].base, 6, g_bytes + 854), grpc_core::StaticMetadataSlice(&refcounts[59].base, 27, g_bytes + 806),
grpc_core::StaticMetadataSlice(&refcounts[60].base, 27, g_bytes + 860), grpc_core::StaticMetadataSlice(&refcounts[60].base, 3, g_bytes + 833),
grpc_core::StaticMetadataSlice(&refcounts[61].base, 3, g_bytes + 887), grpc_core::StaticMetadataSlice(&refcounts[61].base, 5, g_bytes + 836),
grpc_core::StaticMetadataSlice(&refcounts[62].base, 5, g_bytes + 890), grpc_core::StaticMetadataSlice(&refcounts[62].base, 13, g_bytes + 841),
grpc_core::StaticMetadataSlice(&refcounts[63].base, 13, g_bytes + 895), grpc_core::StaticMetadataSlice(&refcounts[63].base, 13, g_bytes + 854),
grpc_core::StaticMetadataSlice(&refcounts[64].base, 13, g_bytes + 908), grpc_core::StaticMetadataSlice(&refcounts[64].base, 19, g_bytes + 867),
grpc_core::StaticMetadataSlice(&refcounts[65].base, 19, g_bytes + 921), grpc_core::StaticMetadataSlice(&refcounts[65].base, 16, g_bytes + 886),
grpc_core::StaticMetadataSlice(&refcounts[66].base, 16, g_bytes + 940), grpc_core::StaticMetadataSlice(&refcounts[66].base, 14, g_bytes + 902),
grpc_core::StaticMetadataSlice(&refcounts[67].base, 14, g_bytes + 956), grpc_core::StaticMetadataSlice(&refcounts[67].base, 16, g_bytes + 916),
grpc_core::StaticMetadataSlice(&refcounts[68].base, 16, g_bytes + 970), grpc_core::StaticMetadataSlice(&refcounts[68].base, 13, g_bytes + 932),
grpc_core::StaticMetadataSlice(&refcounts[69].base, 13, g_bytes + 986), grpc_core::StaticMetadataSlice(&refcounts[69].base, 6, g_bytes + 945),
grpc_core::StaticMetadataSlice(&refcounts[70].base, 6, g_bytes + 999), grpc_core::StaticMetadataSlice(&refcounts[70].base, 4, g_bytes + 951),
grpc_core::StaticMetadataSlice(&refcounts[71].base, 4, g_bytes + 1005), grpc_core::StaticMetadataSlice(&refcounts[71].base, 4, g_bytes + 955),
grpc_core::StaticMetadataSlice(&refcounts[72].base, 4, g_bytes + 1009), grpc_core::StaticMetadataSlice(&refcounts[72].base, 6, g_bytes + 959),
grpc_core::StaticMetadataSlice(&refcounts[73].base, 6, g_bytes + 1013), grpc_core::StaticMetadataSlice(&refcounts[73].base, 7, g_bytes + 965),
grpc_core::StaticMetadataSlice(&refcounts[74].base, 7, g_bytes + 1019), grpc_core::StaticMetadataSlice(&refcounts[74].base, 4, g_bytes + 972),
grpc_core::StaticMetadataSlice(&refcounts[75].base, 4, g_bytes + 1026), grpc_core::StaticMetadataSlice(&refcounts[75].base, 8, g_bytes + 976),
grpc_core::StaticMetadataSlice(&refcounts[76].base, 8, g_bytes + 1030), grpc_core::StaticMetadataSlice(&refcounts[76].base, 17, g_bytes + 984),
grpc_core::StaticMetadataSlice(&refcounts[77].base, 17, g_bytes + 1038), grpc_core::StaticMetadataSlice(&refcounts[77].base, 13, g_bytes + 1001),
grpc_core::StaticMetadataSlice(&refcounts[78].base, 13, g_bytes + 1055), grpc_core::StaticMetadataSlice(&refcounts[78].base, 8, g_bytes + 1014),
grpc_core::StaticMetadataSlice(&refcounts[79].base, 8, g_bytes + 1068), grpc_core::StaticMetadataSlice(&refcounts[79].base, 19, g_bytes + 1022),
grpc_core::StaticMetadataSlice(&refcounts[80].base, 19, g_bytes + 1076), grpc_core::StaticMetadataSlice(&refcounts[80].base, 13, g_bytes + 1041),
grpc_core::StaticMetadataSlice(&refcounts[81].base, 13, g_bytes + 1095), grpc_core::StaticMetadataSlice(&refcounts[81].base, 4, g_bytes + 1054),
grpc_core::StaticMetadataSlice(&refcounts[82].base, 4, g_bytes + 1108), grpc_core::StaticMetadataSlice(&refcounts[82].base, 8, g_bytes + 1058),
grpc_core::StaticMetadataSlice(&refcounts[83].base, 8, g_bytes + 1112), grpc_core::StaticMetadataSlice(&refcounts[83].base, 12, g_bytes + 1066),
grpc_core::StaticMetadataSlice(&refcounts[84].base, 12, g_bytes + 1120), grpc_core::StaticMetadataSlice(&refcounts[84].base, 18, g_bytes + 1078),
grpc_core::StaticMetadataSlice(&refcounts[85].base, 18, g_bytes + 1132), grpc_core::StaticMetadataSlice(&refcounts[85].base, 19, g_bytes + 1096),
grpc_core::StaticMetadataSlice(&refcounts[86].base, 19, g_bytes + 1150), grpc_core::StaticMetadataSlice(&refcounts[86].base, 5, g_bytes + 1115),
grpc_core::StaticMetadataSlice(&refcounts[87].base, 5, g_bytes + 1169), grpc_core::StaticMetadataSlice(&refcounts[87].base, 7, g_bytes + 1120),
grpc_core::StaticMetadataSlice(&refcounts[88].base, 7, g_bytes + 1174), grpc_core::StaticMetadataSlice(&refcounts[88].base, 7, g_bytes + 1127),
grpc_core::StaticMetadataSlice(&refcounts[89].base, 7, g_bytes + 1181), grpc_core::StaticMetadataSlice(&refcounts[89].base, 11, g_bytes + 1134),
grpc_core::StaticMetadataSlice(&refcounts[90].base, 11, g_bytes + 1188), grpc_core::StaticMetadataSlice(&refcounts[90].base, 6, g_bytes + 1145),
grpc_core::StaticMetadataSlice(&refcounts[91].base, 6, g_bytes + 1199), grpc_core::StaticMetadataSlice(&refcounts[91].base, 10, g_bytes + 1151),
grpc_core::StaticMetadataSlice(&refcounts[92].base, 10, g_bytes + 1205), grpc_core::StaticMetadataSlice(&refcounts[92].base, 25, g_bytes + 1161),
grpc_core::StaticMetadataSlice(&refcounts[93].base, 25, g_bytes + 1215), grpc_core::StaticMetadataSlice(&refcounts[93].base, 17, g_bytes + 1186),
grpc_core::StaticMetadataSlice(&refcounts[94].base, 17, g_bytes + 1240), grpc_core::StaticMetadataSlice(&refcounts[94].base, 4, g_bytes + 1203),
grpc_core::StaticMetadataSlice(&refcounts[95].base, 4, g_bytes + 1257), grpc_core::StaticMetadataSlice(&refcounts[95].base, 3, g_bytes + 1207),
grpc_core::StaticMetadataSlice(&refcounts[96].base, 3, g_bytes + 1261), grpc_core::StaticMetadataSlice(&refcounts[96].base, 16, g_bytes + 1210),
grpc_core::StaticMetadataSlice(&refcounts[97].base, 16, g_bytes + 1264), grpc_core::StaticMetadataSlice(&refcounts[97].base, 1, g_bytes + 1226),
grpc_core::StaticMetadataSlice(&refcounts[98].base, 1, g_bytes + 1280), grpc_core::StaticMetadataSlice(&refcounts[98].base, 8, g_bytes + 1227),
grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, g_bytes + 1281), grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, g_bytes + 1235),
grpc_core::StaticMetadataSlice(&refcounts[100].base, 8, g_bytes + 1289), grpc_core::StaticMetadataSlice(&refcounts[100].base, 16, g_bytes + 1243),
grpc_core::StaticMetadataSlice(&refcounts[101].base, 16, g_bytes + 1297), grpc_core::StaticMetadataSlice(&refcounts[101].base, 4, g_bytes + 1259),
grpc_core::StaticMetadataSlice(&refcounts[102].base, 4, g_bytes + 1313), grpc_core::StaticMetadataSlice(&refcounts[102].base, 3, g_bytes + 1263),
grpc_core::StaticMetadataSlice(&refcounts[103].base, 3, g_bytes + 1317), grpc_core::StaticMetadataSlice(&refcounts[103].base, 11, g_bytes + 1266),
grpc_core::StaticMetadataSlice(&refcounts[104].base, 11, g_bytes + 1320), grpc_core::StaticMetadataSlice(&refcounts[104].base, 16, g_bytes + 1277),
grpc_core::StaticMetadataSlice(&refcounts[105].base, 16, g_bytes + 1331), grpc_core::StaticMetadataSlice(&refcounts[105].base, 13, g_bytes + 1293),
grpc_core::StaticMetadataSlice(&refcounts[106].base, 13, g_bytes + 1347), grpc_core::StaticMetadataSlice(&refcounts[106].base, 12, g_bytes + 1306),
grpc_core::StaticMetadataSlice(&refcounts[107].base, 12, g_bytes + 1360), grpc_core::StaticMetadataSlice(&refcounts[107].base, 21, g_bytes + 1318),
grpc_core::StaticMetadataSlice(&refcounts[108].base, 21, g_bytes + 1372),
}; };
StaticMetadata static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = { StaticMetadata static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = {
StaticMetadata( StaticMetadata(
@ -310,107 +305,107 @@ struct StaticMetadataCtx {
0), 0),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5), grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5),
grpc_core::StaticMetadataSlice(&refcounts[42].base, 3, g_bytes + 750), grpc_core::StaticMetadataSlice(&refcounts[41].base, 3, g_bytes + 696),
1), 1),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5), grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5),
grpc_core::StaticMetadataSlice(&refcounts[43].base, 4, g_bytes + 753), grpc_core::StaticMetadataSlice(&refcounts[42].base, 4, g_bytes + 699),
2), 2),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[0].base, 5, g_bytes + 0), grpc_core::StaticMetadataSlice(&refcounts[0].base, 5, g_bytes + 0),
grpc_core::StaticMetadataSlice(&refcounts[44].base, 1, g_bytes + 757), grpc_core::StaticMetadataSlice(&refcounts[43].base, 1, g_bytes + 703),
3), 3),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[0].base, 5, g_bytes + 0), grpc_core::StaticMetadataSlice(&refcounts[0].base, 5, g_bytes + 0),
grpc_core::StaticMetadataSlice(&refcounts[45].base, 11, grpc_core::StaticMetadataSlice(&refcounts[44].base, 11,
g_bytes + 758), g_bytes + 704),
4), 4),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29), grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29),
grpc_core::StaticMetadataSlice(&refcounts[46].base, 4, g_bytes + 769), grpc_core::StaticMetadataSlice(&refcounts[45].base, 4, g_bytes + 715),
5), 5),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29), grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29),
grpc_core::StaticMetadataSlice(&refcounts[47].base, 5, g_bytes + 773), grpc_core::StaticMetadataSlice(&refcounts[46].base, 5, g_bytes + 719),
6), 6),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[48].base, 3, g_bytes + 778), grpc_core::StaticMetadataSlice(&refcounts[47].base, 3, g_bytes + 724),
7), 7),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[49].base, 3, g_bytes + 781), grpc_core::StaticMetadataSlice(&refcounts[48].base, 3, g_bytes + 727),
8), 8),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[50].base, 3, g_bytes + 784), grpc_core::StaticMetadataSlice(&refcounts[49].base, 3, g_bytes + 730),
9), 9),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[51].base, 3, g_bytes + 787), grpc_core::StaticMetadataSlice(&refcounts[50].base, 3, g_bytes + 733),
10), 10),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[52].base, 3, g_bytes + 790), grpc_core::StaticMetadataSlice(&refcounts[51].base, 3, g_bytes + 736),
11), 11),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[53].base, 3, g_bytes + 793), grpc_core::StaticMetadataSlice(&refcounts[52].base, 3, g_bytes + 739),
12), 12),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12), grpc_core::StaticMetadataSlice(&refcounts[2].base, 7, g_bytes + 12),
grpc_core::StaticMetadataSlice(&refcounts[54].base, 3, g_bytes + 796), grpc_core::StaticMetadataSlice(&refcounts[53].base, 3, g_bytes + 742),
13), 13),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[55].base, 14, grpc_core::StaticMetadataSlice(&refcounts[54].base, 14,
g_bytes + 799), g_bytes + 745),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
14), 14),
StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15, StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15,
g_bytes + 186), g_bytes + 186),
grpc_core::StaticMetadataSlice(&refcounts[56].base, 13, grpc_core::StaticMetadataSlice(&refcounts[55].base, 13,
g_bytes + 813), g_bytes + 759),
15), 15),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[57].base, 15, grpc_core::StaticMetadataSlice(&refcounts[56].base, 15,
g_bytes + 826), g_bytes + 772),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
16), 16),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[58].base, 13, grpc_core::StaticMetadataSlice(&refcounts[57].base, 13,
g_bytes + 841), g_bytes + 787),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
17), 17),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[59].base, 6, g_bytes + 854), grpc_core::StaticMetadataSlice(&refcounts[58].base, 6, g_bytes + 800),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
18), 18),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[60].base, 27, grpc_core::StaticMetadataSlice(&refcounts[59].base, 27,
g_bytes + 860), g_bytes + 806),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
19), 19),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[61].base, 3, g_bytes + 887), grpc_core::StaticMetadataSlice(&refcounts[60].base, 3, g_bytes + 833),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
20), 20),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[62].base, 5, g_bytes + 890), grpc_core::StaticMetadataSlice(&refcounts[61].base, 5, g_bytes + 836),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
21), 21),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[63].base, 13, grpc_core::StaticMetadataSlice(&refcounts[62].base, 13,
g_bytes + 895), g_bytes + 841),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
22), 22),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[64].base, 13, grpc_core::StaticMetadataSlice(&refcounts[63].base, 13,
g_bytes + 908), g_bytes + 854),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
23), 23),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[65].base, 19, grpc_core::StaticMetadataSlice(&refcounts[64].base, 19,
g_bytes + 921), g_bytes + 867),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
24), 24),
StaticMetadata( StaticMetadata(
@ -419,23 +414,23 @@ struct StaticMetadataCtx {
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
25), 25),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[66].base, 16, grpc_core::StaticMetadataSlice(&refcounts[65].base, 16,
g_bytes + 940), g_bytes + 886),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
26), 26),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[67].base, 14, grpc_core::StaticMetadataSlice(&refcounts[66].base, 14,
g_bytes + 956), g_bytes + 902),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
27), 27),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[68].base, 16, grpc_core::StaticMetadataSlice(&refcounts[67].base, 16,
g_bytes + 970), g_bytes + 916),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
28), 28),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[69].base, 13, grpc_core::StaticMetadataSlice(&refcounts[68].base, 13,
g_bytes + 986), g_bytes + 932),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
29), 29),
StaticMetadata( StaticMetadata(
@ -444,32 +439,27 @@ struct StaticMetadataCtx {
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
30), 30),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[70].base, 6, g_bytes + 999), grpc_core::StaticMetadataSlice(&refcounts[69].base, 6, g_bytes + 945),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
31), 31),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[71].base, 4, grpc_core::StaticMetadataSlice(&refcounts[70].base, 4, g_bytes + 951),
g_bytes + 1005),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
32), 32),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[72].base, 4, grpc_core::StaticMetadataSlice(&refcounts[71].base, 4, g_bytes + 955),
g_bytes + 1009),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
33), 33),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[73].base, 6, grpc_core::StaticMetadataSlice(&refcounts[72].base, 6, g_bytes + 959),
g_bytes + 1013),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
34), 34),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[74].base, 7, grpc_core::StaticMetadataSlice(&refcounts[73].base, 7, g_bytes + 965),
g_bytes + 1019),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
35), 35),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[75].base, 4, grpc_core::StaticMetadataSlice(&refcounts[74].base, 4, g_bytes + 972),
g_bytes + 1026),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
36), 36),
StaticMetadata( StaticMetadata(
@ -477,98 +467,97 @@ struct StaticMetadataCtx {
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
37), 37),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[76].base, 8, grpc_core::StaticMetadataSlice(&refcounts[75].base, 8, g_bytes + 976),
g_bytes + 1030),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
38), 38),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[77].base, 17, grpc_core::StaticMetadataSlice(&refcounts[76].base, 17,
g_bytes + 1038), g_bytes + 984),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
39), 39),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[78].base, 13, grpc_core::StaticMetadataSlice(&refcounts[77].base, 13,
g_bytes + 1055), g_bytes + 1001),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
40), 40),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[79].base, 8, grpc_core::StaticMetadataSlice(&refcounts[78].base, 8,
g_bytes + 1068), g_bytes + 1014),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
41), 41),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[80].base, 19, grpc_core::StaticMetadataSlice(&refcounts[79].base, 19,
g_bytes + 1076), g_bytes + 1022),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
42), 42),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[81].base, 13, grpc_core::StaticMetadataSlice(&refcounts[80].base, 13,
g_bytes + 1095), g_bytes + 1041),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
43), 43),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[82].base, 4, grpc_core::StaticMetadataSlice(&refcounts[81].base, 4,
g_bytes + 1108), g_bytes + 1054),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
44), 44),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[83].base, 8, grpc_core::StaticMetadataSlice(&refcounts[82].base, 8,
g_bytes + 1112), g_bytes + 1058),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
45), 45),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[84].base, 12, grpc_core::StaticMetadataSlice(&refcounts[83].base, 12,
g_bytes + 1120), g_bytes + 1066),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
46), 46),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[85].base, 18, grpc_core::StaticMetadataSlice(&refcounts[84].base, 18,
g_bytes + 1132), g_bytes + 1078),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
47), 47),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[86].base, 19, grpc_core::StaticMetadataSlice(&refcounts[85].base, 19,
g_bytes + 1150), g_bytes + 1096),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
48), 48),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[87].base, 5, grpc_core::StaticMetadataSlice(&refcounts[86].base, 5,
g_bytes + 1169), g_bytes + 1115),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
49), 49),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[88].base, 7, grpc_core::StaticMetadataSlice(&refcounts[87].base, 7,
g_bytes + 1174), g_bytes + 1120),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
50), 50),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[89].base, 7, grpc_core::StaticMetadataSlice(&refcounts[88].base, 7,
g_bytes + 1181), g_bytes + 1127),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
51), 51),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[90].base, 11, grpc_core::StaticMetadataSlice(&refcounts[89].base, 11,
g_bytes + 1188), g_bytes + 1134),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
52), 52),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[91].base, 6, grpc_core::StaticMetadataSlice(&refcounts[90].base, 6,
g_bytes + 1199), g_bytes + 1145),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
53), 53),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[92].base, 10, grpc_core::StaticMetadataSlice(&refcounts[91].base, 10,
g_bytes + 1205), g_bytes + 1151),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
54), 54),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[93].base, 25, grpc_core::StaticMetadataSlice(&refcounts[92].base, 25,
g_bytes + 1215), g_bytes + 1161),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
55), 55),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[94].base, 17, grpc_core::StaticMetadataSlice(&refcounts[93].base, 17,
g_bytes + 1240), g_bytes + 1186),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
56), 56),
StaticMetadata( StaticMetadata(
@ -577,24 +566,24 @@ struct StaticMetadataCtx {
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
57), 57),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[95].base, 4, grpc_core::StaticMetadataSlice(&refcounts[94].base, 4,
g_bytes + 1257), g_bytes + 1203),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
58), 58),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[96].base, 3, grpc_core::StaticMetadataSlice(&refcounts[95].base, 3,
g_bytes + 1261), g_bytes + 1207),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
59), 59),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[97].base, 16, grpc_core::StaticMetadataSlice(&refcounts[96].base, 16,
g_bytes + 1264), g_bytes + 1210),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
60), 60),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[7].base, 11, g_bytes + 50), grpc_core::StaticMetadataSlice(&refcounts[7].base, 11, g_bytes + 50),
grpc_core::StaticMetadataSlice(&refcounts[98].base, 1, grpc_core::StaticMetadataSlice(&refcounts[97].base, 1,
g_bytes + 1280), g_bytes + 1226),
61), 61),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[7].base, 11, g_bytes + 50), grpc_core::StaticMetadataSlice(&refcounts[7].base, 11, g_bytes + 50),
@ -606,36 +595,36 @@ struct StaticMetadataCtx {
63), 63),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77), grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77),
grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, grpc_core::StaticMetadataSlice(&refcounts[98].base, 8,
g_bytes + 1281), g_bytes + 1227),
64), 64),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77), grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77),
grpc_core::StaticMetadataSlice(&refcounts[40].base, 4, g_bytes + 735), grpc_core::StaticMetadataSlice(&refcounts[39].base, 4, g_bytes + 681),
65), 65),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77), grpc_core::StaticMetadataSlice(&refcounts[9].base, 13, g_bytes + 77),
grpc_core::StaticMetadataSlice(&refcounts[39].base, 7, g_bytes + 728), grpc_core::StaticMetadataSlice(&refcounts[38].base, 7, g_bytes + 674),
66), 66),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[5].base, 2, g_bytes + 36), grpc_core::StaticMetadataSlice(&refcounts[5].base, 2, g_bytes + 36),
grpc_core::StaticMetadataSlice(&refcounts[100].base, 8, grpc_core::StaticMetadataSlice(&refcounts[99].base, 8,
g_bytes + 1289), g_bytes + 1235),
67), 67),
StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[14].base, 12, StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[14].base, 12,
g_bytes + 158), g_bytes + 158),
grpc_core::StaticMetadataSlice(&refcounts[101].base, 16, grpc_core::StaticMetadataSlice(&refcounts[100].base, 16,
g_bytes + 1297), g_bytes + 1243),
68), 68),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29), grpc_core::StaticMetadataSlice(&refcounts[4].base, 7, g_bytes + 29),
grpc_core::StaticMetadataSlice(&refcounts[102].base, 4, grpc_core::StaticMetadataSlice(&refcounts[101].base, 4,
g_bytes + 1313), g_bytes + 1259),
69), 69),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5), grpc_core::StaticMetadataSlice(&refcounts[1].base, 7, g_bytes + 5),
grpc_core::StaticMetadataSlice(&refcounts[103].base, 3, grpc_core::StaticMetadataSlice(&refcounts[102].base, 3,
g_bytes + 1317), g_bytes + 1263),
70), 70),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[16].base, 15, grpc_core::StaticMetadataSlice(&refcounts[16].base, 15,
@ -644,66 +633,66 @@ struct StaticMetadataCtx {
71), 71),
StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[15].base, 16, StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[15].base, 16,
g_bytes + 170), g_bytes + 170),
grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, grpc_core::StaticMetadataSlice(&refcounts[98].base, 8,
g_bytes + 1281), g_bytes + 1227),
72), 72),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[15].base, 16, grpc_core::StaticMetadataSlice(&refcounts[15].base, 16,
g_bytes + 170), g_bytes + 170),
grpc_core::StaticMetadataSlice(&refcounts[40].base, 4, g_bytes + 735), grpc_core::StaticMetadataSlice(&refcounts[39].base, 4, g_bytes + 681),
73), 73),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[104].base, 11, grpc_core::StaticMetadataSlice(&refcounts[103].base, 11,
g_bytes + 1320), g_bytes + 1266),
grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373), grpc_core::StaticMetadataSlice(&refcounts[29].base, 0, g_bytes + 373),
74), 74),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, grpc_core::StaticMetadataSlice(&refcounts[98].base, 8,
g_bytes + 1281), g_bytes + 1227),
75), 75),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[39].base, 7, g_bytes + 728), grpc_core::StaticMetadataSlice(&refcounts[38].base, 7, g_bytes + 674),
76), 76),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[105].base, 16, grpc_core::StaticMetadataSlice(&refcounts[104].base, 16,
g_bytes + 1331), g_bytes + 1277),
77), 77),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[40].base, 4, g_bytes + 735), grpc_core::StaticMetadataSlice(&refcounts[39].base, 4, g_bytes + 681),
78), 78),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[106].base, 13, grpc_core::StaticMetadataSlice(&refcounts[105].base, 13,
g_bytes + 1347), g_bytes + 1293),
79), 79),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[107].base, 12, grpc_core::StaticMetadataSlice(&refcounts[106].base, 12,
g_bytes + 1360), g_bytes + 1306),
80), 80),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90), grpc_core::StaticMetadataSlice(&refcounts[10].base, 20, g_bytes + 90),
grpc_core::StaticMetadataSlice(&refcounts[108].base, 21, grpc_core::StaticMetadataSlice(&refcounts[107].base, 21,
g_bytes + 1372), g_bytes + 1318),
81), 81),
StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15, StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15,
g_bytes + 186), g_bytes + 186),
grpc_core::StaticMetadataSlice(&refcounts[99].base, 8, grpc_core::StaticMetadataSlice(&refcounts[98].base, 8,
g_bytes + 1281), g_bytes + 1227),
82), 82),
StaticMetadata( StaticMetadata(
grpc_core::StaticMetadataSlice(&refcounts[16].base, 15, grpc_core::StaticMetadataSlice(&refcounts[16].base, 15,
g_bytes + 186), g_bytes + 186),
grpc_core::StaticMetadataSlice(&refcounts[40].base, 4, g_bytes + 735), grpc_core::StaticMetadataSlice(&refcounts[39].base, 4, g_bytes + 681),
83), 83),
StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15, StaticMetadata(grpc_core::StaticMetadataSlice(&refcounts[16].base, 15,
g_bytes + 186), g_bytes + 186),
grpc_core::StaticMetadataSlice(&refcounts[106].base, 13, grpc_core::StaticMetadataSlice(&refcounts[105].base, 13,
g_bytes + 1347), g_bytes + 1293),
84), 84),
}; };
@ -1189,17 +1178,17 @@ uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 6, 6, 8, 8, 2, 4, 4}; 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 6, 6, 8, 8, 2, 4, 4};
static const int8_t elems_r[] = { static const int8_t elems_r[] = {
15, 10, -8, 0, 2, -43, -81, -44, 0, 4, -8, 0, 0, 0, 6, -1, 15, 10, -8, 0, 2, -43, -82, -43, 0, 4, -8, 0, 0, 0, 8, -2,
-8, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -67, 0, -38, -50, -56, -76, 0, 46, 28, 0, 0, 0, 0, 0, 0, -66, 0, -69, -70, -51, -73, 0, 32, 31, 30,
27, 26, 25, 24, 23, 23, 22, 21, 20, 19, 24, 16, 15, 14, 13, 15, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 16,
14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 6, 5, 4, 3, 2, 3, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 2,
2, 2, 6, 0, 0, 0, 0, 0, 0, -6, 0}; 2, 7, 0, 0, 0, 0, 0, 0, -6, 0};
static uint32_t elems_phash(uint32_t i) { static uint32_t elems_phash(uint32_t i) {
i -= 44; i -= 43;
uint32_t x = i % 107; uint32_t x = i % 106;
uint32_t y = i / 107; uint32_t y = i / 106;
uint32_t h = x; uint32_t h = x;
if (y < GPR_ARRAY_SIZE(elems_r)) { if (y < GPR_ARRAY_SIZE(elems_r)) {
uint32_t delta = (uint32_t)elems_r[y]; uint32_t delta = (uint32_t)elems_r[y];
@ -1209,26 +1198,25 @@ static uint32_t elems_phash(uint32_t i) {
} }
static const uint16_t elem_keys[] = { static const uint16_t elem_keys[] = {
266, 267, 268, 269, 270, 271, 272, 1129, 1130, 1773, 151, 263, 264, 265, 266, 267, 268, 269, 1118, 1119, 1757, 149, 150,
152, 482, 483, 1664, 44, 45, 1020, 1021, 1555, 1784, 788, 477, 478, 1649, 43, 44, 1010, 1011, 1767, 781, 782, 1541, 639,
789, 645, 861, 1675, 2100, 2209, 6024, 6569, 6787, 6896, 7005, 1659, 853, 2081, 2189, 5861, 6077, 6185, 6401, 6509, 6617, 6725, 1783,
7114, 7223, 7332, 1800, 7441, 7550, 7659, 7768, 7877, 8095, 8204, 6833, 6941, 7049, 7157, 7265, 7373, 7481, 7589, 7697, 7805, 7913, 8021,
8313, 8422, 6678, 6460, 7986, 8531, 8640, 6351, 8749, 8858, 8967, 8129, 8237, 8345, 6293, 8453, 8561, 8669, 8777, 8885, 8993, 9101, 9209,
9076, 9185, 9294, 9403, 9512, 9621, 6242, 9730, 9839, 9948, 10057, 9317, 9425, 9533, 9641, 9749, 9857, 9965, 1178, 533, 10073, 10181, 210,
10166, 1189, 538, 10275, 10384, 212, 10493, 1195, 1196, 1197, 1198, 10289, 1184, 1185, 1186, 1187, 1070, 1826, 10397, 11153, 0, 0, 1718,
1080, 10602, 1843, 11365, 0, 0, 0, 1734, 0, 1850, 0, 0, 1833, 0, 0, 0, 0, 353, 0, 0, 1612};
0, 0, 356, 1627};
static const uint8_t elem_idxs[] = { static const uint8_t elem_idxs[] = {
7, 8, 9, 10, 11, 12, 13, 76, 78, 71, 1, 2, 5, 6, 25, 3, 7, 8, 9, 10, 11, 12, 13, 76, 78, 71, 1, 2, 5, 6, 25, 3,
4, 66, 65, 30, 83, 62, 63, 67, 61, 73, 57, 37, 14, 19, 21, 22, 4, 66, 65, 83, 62, 63, 30, 67, 73, 61, 57, 37, 14, 16, 17, 19,
23, 24, 26, 27, 15, 28, 29, 31, 32, 33, 35, 36, 38, 39, 20, 18, 20, 21, 22, 15, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36,
34, 40, 41, 17, 42, 43, 44, 45, 46, 47, 48, 49, 50, 16, 51, 52, 38, 39, 40, 18, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 75, 69, 56, 58, 70, 59, 77, 79, 80, 81, 64, 60, 82, 53, 54, 55, 75, 69, 56, 58, 70, 59, 77, 79, 80, 81, 64, 82, 60,
74, 255, 255, 255, 72, 255, 84, 255, 255, 255, 0, 68}; 74, 255, 255, 72, 255, 84, 255, 255, 255, 255, 0, 255, 255, 68};
grpc_mdelem grpc_static_mdelem_for_static_strings(intptr_t a, intptr_t b) { grpc_mdelem grpc_static_mdelem_for_static_strings(intptr_t a, intptr_t b) {
if (a == -1 || b == -1) return GRPC_MDNULL; if (a == -1 || b == -1) return GRPC_MDNULL;
uint32_t k = static_cast<uint32_t>(a * 109 + b); uint32_t k = static_cast<uint32_t>(a * 108 + b);
uint32_t h = elems_phash(k); uint32_t h = elems_phash(k);
return h < GPR_ARRAY_SIZE(elem_keys) && elem_keys[h] == k && return h < GPR_ARRAY_SIZE(elem_keys) && elem_keys[h] == k &&
elem_idxs[h] != 255 elem_idxs[h] != 255

@ -36,7 +36,7 @@
static_assert( static_assert(
std::is_trivially_destructible<grpc_core::StaticMetadataSlice>::value, std::is_trivially_destructible<grpc_core::StaticMetadataSlice>::value,
"grpc_core::StaticMetadataSlice must be trivially destructible."); "grpc_core::StaticMetadataSlice must be trivially destructible.");
#define GRPC_STATIC_MDSTR_COUNT 109 #define GRPC_STATIC_MDSTR_COUNT 108
void grpc_init_static_metadata_ctx(void); void grpc_init_static_metadata_ctx(void);
void grpc_destroy_static_metadata_ctx(void); void grpc_destroy_static_metadata_ctx(void);
@ -132,157 +132,154 @@ inline const grpc_core::StaticMetadataSlice* grpc_static_slice_table() {
/* "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" */ /* "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" */
#define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \ #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \
(grpc_static_slice_table()[35]) (grpc_static_slice_table()[35])
/* "/envoy.api.v2.EndpointDiscoveryService/StreamEndpoints" */
#define GRPC_MDSTR_SLASH_ENVOY_DOT_API_DOT_V2_DOT_ENDPOINTDISCOVERYSERVICE_SLASH_STREAMENDPOINTS \
(grpc_static_slice_table()[36])
/* "/grpc.health.v1.Health/Watch" */ /* "/grpc.health.v1.Health/Watch" */
#define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \ #define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \
(grpc_static_slice_table()[37]) (grpc_static_slice_table()[36])
/* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources" /* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
*/ */
#define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \ #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
(grpc_static_slice_table()[38]) (grpc_static_slice_table()[37])
/* "deflate" */ /* "deflate" */
#define GRPC_MDSTR_DEFLATE (grpc_static_slice_table()[39]) #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table()[38])
/* "gzip" */ /* "gzip" */
#define GRPC_MDSTR_GZIP (grpc_static_slice_table()[40]) #define GRPC_MDSTR_GZIP (grpc_static_slice_table()[39])
/* "stream/gzip" */ /* "stream/gzip" */
#define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table()[41]) #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table()[40])
/* "GET" */ /* "GET" */
#define GRPC_MDSTR_GET (grpc_static_slice_table()[42]) #define GRPC_MDSTR_GET (grpc_static_slice_table()[41])
/* "POST" */ /* "POST" */
#define GRPC_MDSTR_POST (grpc_static_slice_table()[43]) #define GRPC_MDSTR_POST (grpc_static_slice_table()[42])
/* "/" */ /* "/" */
#define GRPC_MDSTR_SLASH (grpc_static_slice_table()[44]) #define GRPC_MDSTR_SLASH (grpc_static_slice_table()[43])
/* "/index.html" */ /* "/index.html" */
#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table()[45]) #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table()[44])
/* "http" */ /* "http" */
#define GRPC_MDSTR_HTTP (grpc_static_slice_table()[46]) #define GRPC_MDSTR_HTTP (grpc_static_slice_table()[45])
/* "https" */ /* "https" */
#define GRPC_MDSTR_HTTPS (grpc_static_slice_table()[47]) #define GRPC_MDSTR_HTTPS (grpc_static_slice_table()[46])
/* "200" */ /* "200" */
#define GRPC_MDSTR_200 (grpc_static_slice_table()[48]) #define GRPC_MDSTR_200 (grpc_static_slice_table()[47])
/* "204" */ /* "204" */
#define GRPC_MDSTR_204 (grpc_static_slice_table()[49]) #define GRPC_MDSTR_204 (grpc_static_slice_table()[48])
/* "206" */ /* "206" */
#define GRPC_MDSTR_206 (grpc_static_slice_table()[50]) #define GRPC_MDSTR_206 (grpc_static_slice_table()[49])
/* "304" */ /* "304" */
#define GRPC_MDSTR_304 (grpc_static_slice_table()[51]) #define GRPC_MDSTR_304 (grpc_static_slice_table()[50])
/* "400" */ /* "400" */
#define GRPC_MDSTR_400 (grpc_static_slice_table()[52]) #define GRPC_MDSTR_400 (grpc_static_slice_table()[51])
/* "404" */ /* "404" */
#define GRPC_MDSTR_404 (grpc_static_slice_table()[53]) #define GRPC_MDSTR_404 (grpc_static_slice_table()[52])
/* "500" */ /* "500" */
#define GRPC_MDSTR_500 (grpc_static_slice_table()[54]) #define GRPC_MDSTR_500 (grpc_static_slice_table()[53])
/* "accept-charset" */ /* "accept-charset" */
#define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table()[55]) #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table()[54])
/* "gzip, deflate" */ /* "gzip, deflate" */
#define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table()[56]) #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table()[55])
/* "accept-language" */ /* "accept-language" */
#define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table()[57]) #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table()[56])
/* "accept-ranges" */ /* "accept-ranges" */
#define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table()[58]) #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table()[57])
/* "accept" */ /* "accept" */
#define GRPC_MDSTR_ACCEPT (grpc_static_slice_table()[59]) #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table()[58])
/* "access-control-allow-origin" */ /* "access-control-allow-origin" */
#define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table()[60]) #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table()[59])
/* "age" */ /* "age" */
#define GRPC_MDSTR_AGE (grpc_static_slice_table()[61]) #define GRPC_MDSTR_AGE (grpc_static_slice_table()[60])
/* "allow" */ /* "allow" */
#define GRPC_MDSTR_ALLOW (grpc_static_slice_table()[62]) #define GRPC_MDSTR_ALLOW (grpc_static_slice_table()[61])
/* "authorization" */ /* "authorization" */
#define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table()[63]) #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table()[62])
/* "cache-control" */ /* "cache-control" */
#define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table()[64]) #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table()[63])
/* "content-disposition" */ /* "content-disposition" */
#define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table()[65]) #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table()[64])
/* "content-language" */ /* "content-language" */
#define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table()[66]) #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table()[65])
/* "content-length" */ /* "content-length" */
#define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table()[67]) #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table()[66])
/* "content-location" */ /* "content-location" */
#define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table()[68]) #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table()[67])
/* "content-range" */ /* "content-range" */
#define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table()[69]) #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table()[68])
/* "cookie" */ /* "cookie" */
#define GRPC_MDSTR_COOKIE (grpc_static_slice_table()[70]) #define GRPC_MDSTR_COOKIE (grpc_static_slice_table()[69])
/* "date" */ /* "date" */
#define GRPC_MDSTR_DATE (grpc_static_slice_table()[71]) #define GRPC_MDSTR_DATE (grpc_static_slice_table()[70])
/* "etag" */ /* "etag" */
#define GRPC_MDSTR_ETAG (grpc_static_slice_table()[72]) #define GRPC_MDSTR_ETAG (grpc_static_slice_table()[71])
/* "expect" */ /* "expect" */
#define GRPC_MDSTR_EXPECT (grpc_static_slice_table()[73]) #define GRPC_MDSTR_EXPECT (grpc_static_slice_table()[72])
/* "expires" */ /* "expires" */
#define GRPC_MDSTR_EXPIRES (grpc_static_slice_table()[74]) #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table()[73])
/* "from" */ /* "from" */
#define GRPC_MDSTR_FROM (grpc_static_slice_table()[75]) #define GRPC_MDSTR_FROM (grpc_static_slice_table()[74])
/* "if-match" */ /* "if-match" */
#define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table()[76]) #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table()[75])
/* "if-modified-since" */ /* "if-modified-since" */
#define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table()[77]) #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table()[76])
/* "if-none-match" */ /* "if-none-match" */
#define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table()[78]) #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table()[77])
/* "if-range" */ /* "if-range" */
#define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table()[79]) #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table()[78])
/* "if-unmodified-since" */ /* "if-unmodified-since" */
#define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table()[80]) #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table()[79])
/* "last-modified" */ /* "last-modified" */
#define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table()[81]) #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table()[80])
/* "link" */ /* "link" */
#define GRPC_MDSTR_LINK (grpc_static_slice_table()[82]) #define GRPC_MDSTR_LINK (grpc_static_slice_table()[81])
/* "location" */ /* "location" */
#define GRPC_MDSTR_LOCATION (grpc_static_slice_table()[83]) #define GRPC_MDSTR_LOCATION (grpc_static_slice_table()[82])
/* "max-forwards" */ /* "max-forwards" */
#define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table()[84]) #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table()[83])
/* "proxy-authenticate" */ /* "proxy-authenticate" */
#define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table()[85]) #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table()[84])
/* "proxy-authorization" */ /* "proxy-authorization" */
#define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table()[86]) #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table()[85])
/* "range" */ /* "range" */
#define GRPC_MDSTR_RANGE (grpc_static_slice_table()[87]) #define GRPC_MDSTR_RANGE (grpc_static_slice_table()[86])
/* "referer" */ /* "referer" */
#define GRPC_MDSTR_REFERER (grpc_static_slice_table()[88]) #define GRPC_MDSTR_REFERER (grpc_static_slice_table()[87])
/* "refresh" */ /* "refresh" */
#define GRPC_MDSTR_REFRESH (grpc_static_slice_table()[89]) #define GRPC_MDSTR_REFRESH (grpc_static_slice_table()[88])
/* "retry-after" */ /* "retry-after" */
#define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table()[90]) #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table()[89])
/* "server" */ /* "server" */
#define GRPC_MDSTR_SERVER (grpc_static_slice_table()[91]) #define GRPC_MDSTR_SERVER (grpc_static_slice_table()[90])
/* "set-cookie" */ /* "set-cookie" */
#define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table()[92]) #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table()[91])
/* "strict-transport-security" */ /* "strict-transport-security" */
#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table()[93]) #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table()[92])
/* "transfer-encoding" */ /* "transfer-encoding" */
#define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table()[94]) #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table()[93])
/* "vary" */ /* "vary" */
#define GRPC_MDSTR_VARY (grpc_static_slice_table()[95]) #define GRPC_MDSTR_VARY (grpc_static_slice_table()[94])
/* "via" */ /* "via" */
#define GRPC_MDSTR_VIA (grpc_static_slice_table()[96]) #define GRPC_MDSTR_VIA (grpc_static_slice_table()[95])
/* "www-authenticate" */ /* "www-authenticate" */
#define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table()[97]) #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table()[96])
/* "0" */ /* "0" */
#define GRPC_MDSTR_0 (grpc_static_slice_table()[98]) #define GRPC_MDSTR_0 (grpc_static_slice_table()[97])
/* "identity" */ /* "identity" */
#define GRPC_MDSTR_IDENTITY (grpc_static_slice_table()[99]) #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table()[98])
/* "trailers" */ /* "trailers" */
#define GRPC_MDSTR_TRAILERS (grpc_static_slice_table()[100]) #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table()[99])
/* "application/grpc" */ /* "application/grpc" */
#define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table()[101]) #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table()[100])
/* "grpc" */ /* "grpc" */
#define GRPC_MDSTR_GRPC (grpc_static_slice_table()[102]) #define GRPC_MDSTR_GRPC (grpc_static_slice_table()[101])
/* "PUT" */ /* "PUT" */
#define GRPC_MDSTR_PUT (grpc_static_slice_table()[103]) #define GRPC_MDSTR_PUT (grpc_static_slice_table()[102])
/* "lb-cost-bin" */ /* "lb-cost-bin" */
#define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table()[104]) #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table()[103])
/* "identity,deflate" */ /* "identity,deflate" */
#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table()[105]) #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table()[104])
/* "identity,gzip" */ /* "identity,gzip" */
#define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table()[106]) #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table()[105])
/* "deflate,gzip" */ /* "deflate,gzip" */
#define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table()[107]) #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table()[106])
/* "identity,deflate,gzip" */ /* "identity,deflate,gzip" */
#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \ #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
(grpc_static_slice_table()[108]) (grpc_static_slice_table()[107])
namespace grpc_core { namespace grpc_core {
struct StaticSliceRefcount; struct StaticSliceRefcount;

@ -21,6 +21,15 @@ grpc_package(
visibility = "public", visibility = "public",
) )
grpc_proto_library(
name = "ads_for_test_proto",
srcs = [
"ads_for_test.proto",
],
has_services = True,
deps = ["eds_for_test_proto"],
)
grpc_proto_library( grpc_proto_library(
name = "eds_for_test_proto", name = "eds_for_test_proto",
srcs = [ srcs = [

@ -0,0 +1,51 @@
// Copyright 2019 The 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.
// This file contains the eds protocol and its dependency.
//
// TODO(juanlishen): This file is a hack to avoid a problem we're
// currently having where we can't depend on a proto file in an external
// repo due to bazel limitations. Once that's fixed, this should be
// removed. Until this, it should be used in the gRPC tests only, or else it
// will cause a conflict due to the same proto messages being defined in
// multiple files in the same binary.
syntax = "proto3";
package envoy.service.discovery.v2;
import "src/proto/grpc/testing/xds/eds_for_test.proto";
// [#not-implemented-hide:] Discovery services for endpoints, clusters, routes,
// and listeners are retained in the package `envoy.api.v2` for backwards
// compatibility with existing management servers. New development in discovery
// services should proceed in the package `envoy.service.discovery.v2`.
// See https://github.com/lyft/envoy-api#apis for a description of the role of
// ADS and how it is intended to be used by a management server. ADS requests
// have the same structure as their singleton xDS counterparts, but can
// multiplex many resource types on a single stream. The type_url in the
// DiscoveryRequest/DiscoveryResponse provides sufficient information to recover
// the multiplexed singleton APIs at the Envoy instance and management server.
service AggregatedDiscoveryService {
// This is a gRPC-only API.
rpc StreamAggregatedResources(stream envoy.api.v2.DiscoveryRequest)
returns (stream envoy.api.v2.DiscoveryResponse) {
}
// Commented out so that we don't have to copy the request/response protos.
// rpc DeltaAggregatedResources(stream api.v2.DeltaDiscoveryRequest)
// returns (stream api.v2.DeltaDiscoveryResponse) {
// }
}

@ -35,7 +35,6 @@
"\x1Fgrpc.max_response_message_bytes" "\x1Fgrpc.max_response_message_bytes"
"$/grpc.lb.v1.LoadBalancer/BalanceLoad" "$/grpc.lb.v1.LoadBalancer/BalanceLoad"
"A/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" "A/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats"
"6/envoy.api.v2.EndpointDiscoveryService/StreamEndpoints"
"\x1C/grpc.health.v1.Health/Watch" "\x1C/grpc.health.v1.Health/Watch"
"P/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources" "P/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
"\x07deflate" "\x07deflate"

@ -499,6 +499,7 @@ grpc_cc_test(
"//:grpc", "//:grpc",
"//:grpc++", "//:grpc++",
"//:grpc_resolver_fake", "//:grpc_resolver_fake",
"//src/proto/grpc/testing/xds:ads_for_test_proto",
"//src/proto/grpc/testing/xds:eds_for_test_proto", "//src/proto/grpc/testing/xds:eds_for_test_proto",
"//src/proto/grpc/testing/xds:lrs_for_test_proto", "//src/proto/grpc/testing/xds:lrs_for_test_proto",
"//src/proto/grpc/testing:echo_messages_proto", "//src/proto/grpc/testing:echo_messages_proto",

File diff suppressed because it is too large Load Diff

@ -65,7 +65,6 @@ CONFIG = [
# well known method names # well known method names
'/grpc.lb.v1.LoadBalancer/BalanceLoad', '/grpc.lb.v1.LoadBalancer/BalanceLoad',
'/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats', '/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats',
'/envoy.api.v2.EndpointDiscoveryService/StreamEndpoints',
'/grpc.health.v1.Health/Watch', '/grpc.health.v1.Health/Watch',
'/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources', '/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources',
# compression algorithm names # compression algorithm names

Loading…
Cancel
Save