xds_api.cc
Go to the documentation of this file.
1 //
2 // Copyright 2018 gRPC authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
18 
20 
21 #include <stdint.h>
22 #include <stdlib.h>
23 
24 #include <algorithm>
25 #include <set>
26 #include <string>
27 #include <vector>
28 
29 #include "absl/strings/str_cat.h"
30 #include "absl/strings/strip.h"
43 #include "google/rpc/status.upb.h"
44 #include "upb/def.h"
45 #include "upb/text_encode.h"
46 #include "upb/upb.h"
47 #include "upb/upb.hpp"
48 
49 #include <grpc/grpc.h>
51 #include <grpc/status.h>
52 #include <grpc/support/log.h>
53 
57 #include "src/core/lib/json/json.h"
58 
59 // IWYU pragma: no_include "upb/msg_internal.h"
60 
61 namespace grpc_core {
62 
63 // If gRPC is built with -DGRPC_XDS_USER_AGENT_NAME_SUFFIX="...", that string
64 // will be appended to the user agent name reported to the xDS server.
65 #ifdef GRPC_XDS_USER_AGENT_NAME_SUFFIX
66 #define GRPC_XDS_USER_AGENT_NAME_SUFFIX_STRING \
67  " " GRPC_XDS_USER_AGENT_NAME_SUFFIX
68 #else
69 #define GRPC_XDS_USER_AGENT_NAME_SUFFIX_STRING ""
70 #endif
71 
72 // If gRPC is built with -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX="...", that string
73 // will be appended to the user agent version reported to the xDS server.
74 #ifdef GRPC_XDS_USER_AGENT_VERSION_SUFFIX
75 #define GRPC_XDS_USER_AGENT_VERSION_SUFFIX_STRING \
76  " " GRPC_XDS_USER_AGENT_VERSION_SUFFIX
77 #else
78 #define GRPC_XDS_USER_AGENT_VERSION_SUFFIX_STRING ""
79 #endif
80 
82  const XdsBootstrap::Node* node,
84  certificate_provider_definition_map,
86  : client_(client),
87  tracer_(tracer),
88  node_(node),
89  certificate_provider_definition_map_(certificate_provider_definition_map),
90  symtab_(symtab),
91  build_version_(absl::StrCat("gRPC C-core ", GPR_PLATFORM_STRING, " ",
95  user_agent_name_(absl::StrCat("gRPC C-core ", GPR_PLATFORM_STRING,
97  user_agent_version_(
98  absl::StrCat("C-core ", grpc_version_string(),
101 
102 namespace {
103 
104 void PopulateMetadataValue(const XdsEncodingContext& context,
105  google_protobuf_Value* value_pb, const Json& value);
106 
107 void PopulateListValue(const XdsEncodingContext& context,
108  google_protobuf_ListValue* list_value,
109  const Json::Array& values) {
110  for (const auto& value : values) {
111  auto* value_pb =
113  PopulateMetadataValue(context, value_pb, value);
114  }
115 }
116 
117 void PopulateMetadata(const XdsEncodingContext& context,
118  google_protobuf_Struct* metadata_pb,
119  const Json::Object& metadata) {
120  for (const auto& p : metadata) {
122  PopulateMetadataValue(context, value, p.second);
124  metadata_pb, StdStringToUpbString(p.first), value, context.arena);
125  }
126 }
127 
128 void PopulateMetadataValue(const XdsEncodingContext& context,
129  google_protobuf_Value* value_pb, const Json& value) {
130  switch (value.type()) {
133  break;
134  case Json::Type::NUMBER:
136  value_pb, strtod(value.string_value().c_str(), nullptr));
137  break;
138  case Json::Type::STRING:
140  value_pb, StdStringToUpbString(value.string_value()));
141  break;
143  google_protobuf_Value_set_bool_value(value_pb, true);
144  break;
146  google_protobuf_Value_set_bool_value(value_pb, false);
147  break;
148  case Json::Type::OBJECT: {
149  google_protobuf_Struct* struct_value =
151  PopulateMetadata(context, struct_value, value.object_value());
152  break;
153  }
154  case Json::Type::ARRAY: {
155  google_protobuf_ListValue* list_value =
157  PopulateListValue(context, list_value, value.array_value());
158  break;
159  }
160  }
161 }
162 
163 // Helper functions to manually do protobuf string encoding, so that we
164 // can populate the node build_version field that was removed in v3.
167  do {
168  uint8_t byte = val & 0x7fU;
169  val >>= 7;
170  if (val) byte |= 0x80U;
171  data += byte;
172  } while (val);
173  return data;
174 }
175 std::string EncodeTag(uint32_t field_number, uint8_t wire_type) {
176  return EncodeVarint((field_number << 3) | wire_type);
177 }
178 std::string EncodeStringField(uint32_t field_number, const std::string& str) {
179  static const uint8_t kDelimitedWireType = 2;
180  return EncodeTag(field_number, kDelimitedWireType) +
181  EncodeVarint(str.size()) + str;
182 }
183 
184 void PopulateBuildVersion(const XdsEncodingContext& context,
185  envoy_config_core_v3_Node* node_msg,
186  const std::string& build_version) {
187  std::string encoded_build_version = EncodeStringField(5, build_version);
188  // TODO(roth): This should use upb_Message_AddUnknown(), but that API is
189  // broken in the current version of upb, so we're using the internal
190  // API for now. Change this once we upgrade to a version of upb that
191  // fixes this bug.
192  _upb_Message_AddUnknown(node_msg, encoded_build_version.data(),
193  encoded_build_version.size(), context.arena);
194 }
195 
196 void PopulateNode(const XdsEncodingContext& context,
197  const XdsBootstrap::Node* node,
198  const std::string& build_version,
199  const std::string& user_agent_name,
200  const std::string& user_agent_version,
201  envoy_config_core_v3_Node* node_msg) {
202  if (node != nullptr) {
203  if (!node->id.empty()) {
205  StdStringToUpbString(node->id));
206  }
207  if (!node->cluster.empty()) {
209  node_msg, StdStringToUpbString(node->cluster));
210  }
211  if (!node->metadata.object_value().empty()) {
214  PopulateMetadata(context, metadata, node->metadata.object_value());
215  }
216  if (!node->locality_region.empty() || !node->locality_zone.empty() ||
217  !node->locality_sub_zone.empty()) {
220  if (!node->locality_region.empty()) {
222  locality, StdStringToUpbString(node->locality_region));
223  }
224  if (!node->locality_zone.empty()) {
226  locality, StdStringToUpbString(node->locality_zone));
227  }
228  if (!node->locality_sub_zone.empty()) {
230  locality, StdStringToUpbString(node->locality_sub_zone));
231  }
232  }
233  }
234  if (!context.use_v3) {
235  PopulateBuildVersion(context, node_msg, build_version);
236  }
238  node_msg, StdStringToUpbString(user_agent_name));
240  node_msg, StdStringToUpbString(user_agent_version));
242  node_msg,
243  upb_StringView_FromString("envoy.lb.does_not_support_overprovisioning"),
244  context.arena);
245 }
246 
247 void MaybeLogDiscoveryRequest(
248  const XdsEncodingContext& context,
250  if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
252  const upb_MessageDef* msg_type =
254  char buf[10240];
255  upb_TextEncode(request, msg_type, nullptr, 0, buf, sizeof(buf));
256  gpr_log(GPR_DEBUG, "[xds_client %p] constructed ADS request: %s",
257  context.client, buf);
258  }
259 }
260 
261 grpc_slice SerializeDiscoveryRequest(
262  const XdsEncodingContext& context,
264  size_t output_length;
266  request, context.arena, &output_length);
267  return grpc_slice_from_copied_buffer(output, output_length);
268 }
269 
270 } // namespace
271 
275  const std::vector<std::string>& resource_names, grpc_error_handle error,
276  bool populate_node) {
279  server,
280  tracer_,
281  symtab_->ptr(),
282  arena.ptr(),
283  server.ShouldUseV3(),
285  // Create a request.
288  // Set type_url.
289  std::string type_url_str = absl::StrCat("type.googleapis.com/", type_url);
291  request, StdStringToUpbString(type_url_str));
292  // Set version_info.
293  if (!version.empty()) {
296  }
297  // Set nonce.
298  if (!nonce.empty()) {
300  request, StdStringToUpbString(nonce));
301  }
302  // Set error_detail if it's a NACK.
303  std::string error_string_storage;
304  if (!GRPC_ERROR_IS_NONE(error)) {
305  google_rpc_Status* error_detail =
307  request, arena.ptr());
308  // Hard-code INVALID_ARGUMENT as the status code.
309  // TODO(roth): If at some point we decide we care about this value,
310  // we could attach a status code to the individual errors where we
311  // generate them in the parsing code, and then use that here.
313  // Error description comes from the error that was passed in.
314  error_string_storage = grpc_error_std_string(error);
315  upb_StringView error_description =
316  StdStringToUpbString(error_string_storage);
317  google_rpc_Status_set_message(error_detail, error_description);
319  }
320  // Populate node.
321  if (populate_node) {
322  envoy_config_core_v3_Node* node_msg =
324  arena.ptr());
326  user_agent_version_, node_msg);
328  node_msg, upb_StringView_FromString("xds.config.resource-in-sotw"),
329  context.arena);
330  }
331  // Add resource_names.
332  for (const std::string& resource_name : resource_names) {
334  request, StdStringToUpbString(resource_name), arena.ptr());
335  }
336  MaybeLogDiscoveryRequest(context, request);
337  return SerializeDiscoveryRequest(context, request);
338 }
339 
340 namespace {
341 
342 void MaybeLogDiscoveryResponse(
345  if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
347  const upb_MessageDef* msg_type =
349  char buf[10240];
350  upb_TextEncode(response, msg_type, nullptr, 0, buf, sizeof(buf));
351  gpr_log(GPR_DEBUG, "[xds_client %p] received response: %s", context.client,
352  buf);
353  }
354 }
355 
356 } // namespace
357 
359  const grpc_slice& encoded_response,
363  server,
364  tracer_,
365  symtab_->ptr(),
366  arena.ptr(),
367  server.ShouldUseV3(),
369  // Decode the response.
372  reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(encoded_response)),
373  GRPC_SLICE_LENGTH(encoded_response), arena.ptr());
374  // If decoding fails, report a fatal error and return.
375  if (response == nullptr) {
376  return absl::InvalidArgumentError("Can't decode DiscoveryResponse.");
377  }
378  MaybeLogDiscoveryResponse(context, response);
379  // Report the type_url, version, nonce, and number of resources to the parser.
384  "type.googleapis.com/"));
385  fields.version = UpbStringToStdString(
389  size_t num_resources;
390  const google_protobuf_Any* const* resources =
392  &num_resources);
393  fields.num_resources = num_resources;
394  absl::Status status = parser->ProcessAdsResponseFields(std::move(fields));
395  if (!status.ok()) return status;
396  // Process each resource.
397  for (size_t i = 0; i < num_resources; ++i) {
400  "type.googleapis.com/");
401  absl::string_view serialized_resource =
403  // Unwrap Resource messages, if so wrapped.
404  if (type_url == "envoy.api.v2.Resource" ||
405  type_url == "envoy.service.discovery.v3.Resource") {
406  const auto* resource_wrapper = envoy_service_discovery_v3_Resource_parse(
407  serialized_resource.data(), serialized_resource.size(), arena.ptr());
408  if (resource_wrapper == nullptr) {
410  "Can't decode Resource proto wrapper");
411  }
412  const auto* resource =
416  "type.googleapis.com/");
417  serialized_resource =
419  }
420  parser->ParseResource(context, i, type_url, serialized_resource);
421  }
422  return absl::OkStatus();
423 }
424 
425 namespace {
426 
427 void MaybeLogLrsRequest(
430  if (GRPC_TRACE_FLAG_ENABLED(*context.tracer) &&
432  const upb_MessageDef* msg_type =
434  char buf[10240];
435  upb_TextEncode(request, msg_type, nullptr, 0, buf, sizeof(buf));
436  gpr_log(GPR_DEBUG, "[xds_client %p] constructed LRS request: %s",
437  context.client, buf);
438  }
439 }
440 
441 grpc_slice SerializeLrsRequest(
442  const XdsEncodingContext& context,
444  size_t output_length;
446  request, context.arena, &output_length);
447  return grpc_slice_from_copied_buffer(output, output_length);
448 }
449 
450 } // namespace
451 
456  server,
457  tracer_,
458  symtab_->ptr(),
459  arena.ptr(),
460  server.ShouldUseV3(),
462  // Create a request.
465  // Populate node.
466  envoy_config_core_v3_Node* node_msg =
468  arena.ptr());
470  user_agent_version_, node_msg);
472  node_msg,
473  upb_StringView_FromString("envoy.lrs.supports_send_all_clusters"),
474  arena.ptr());
475  MaybeLogLrsRequest(context, request);
476  return SerializeLrsRequest(context, request);
477 }
478 
479 namespace {
480 
481 void LocalityStatsPopulate(
484  const XdsLocalityName& locality_name,
485  const XdsClusterLocalityStats::Snapshot& snapshot) {
486  // Set locality.
489  output, context.arena);
490  if (!locality_name.region().empty()) {
492  locality, StdStringToUpbString(locality_name.region()));
493  }
494  if (!locality_name.zone().empty()) {
496  locality, StdStringToUpbString(locality_name.zone()));
497  }
498  if (!locality_name.sub_zone().empty()) {
500  locality, StdStringToUpbString(locality_name.sub_zone()));
501  }
502  // Set total counts.
508  output, snapshot.total_error_requests);
510  output, snapshot.total_issued_requests);
511  // Add backend metrics.
512  for (const auto& p : snapshot.backend_metrics) {
513  const std::string& metric_name = p.first;
514  const XdsClusterLocalityStats::BackendMetric& metric_value = p.second;
517  output, context.arena);
519  load_metric, StdStringToUpbString(metric_name));
521  load_metric, metric_value.num_requests_finished_with_metric);
523  load_metric, metric_value.total_metric_value);
524  }
525 }
526 
527 } // namespace
528 
530  ClusterLoadReportMap cluster_load_report_map) {
532  // The xDS server info is not actually needed here, so we seed it with an
533  // empty value.
534  XdsBootstrap::XdsServer empty_server;
536  empty_server,
537  tracer_,
538  symtab_->ptr(),
539  arena.ptr(),
540  false,
542  // Create a request.
545  for (auto& p : cluster_load_report_map) {
546  const std::string& cluster_name = p.first.first;
547  const std::string& eds_service_name = p.first.second;
548  const ClusterLoadReport& load_report = p.second;
549  // Add cluster stats.
552  request, arena.ptr());
553  // Set the cluster name.
555  cluster_stats, StdStringToUpbString(cluster_name));
556  // Set EDS service name, if non-empty.
557  if (!eds_service_name.empty()) {
559  cluster_stats, StdStringToUpbString(eds_service_name));
560  }
561  // Add locality stats.
562  for (const auto& p : load_report.locality_stats) {
563  const XdsLocalityName& locality_name = *p.first;
564  const auto& snapshot = p.second;
567  cluster_stats, arena.ptr());
568  LocalityStatsPopulate(context, locality_stats, locality_name, snapshot);
569  }
570  // Add dropped requests.
571  uint64_t total_dropped_requests = 0;
572  for (const auto& p : load_report.dropped_requests.categorized_drops) {
573  const std::string& category = p.first;
574  const uint64_t count = p.second;
577  cluster_stats, arena.ptr());
579  dropped_requests, StdStringToUpbString(category));
581  dropped_requests, count);
582  total_dropped_requests += count;
583  }
584  total_dropped_requests += load_report.dropped_requests.uncategorized_drops;
585  // Set total dropped requests.
587  cluster_stats, total_dropped_requests);
588  // Set real load report interval.
589  gpr_timespec timespec = load_report.load_report_interval.as_timespec();
590  google_protobuf_Duration* load_report_interval =
592  cluster_stats, arena.ptr());
593  google_protobuf_Duration_set_seconds(load_report_interval, timespec.tv_sec);
594  google_protobuf_Duration_set_nanos(load_report_interval, timespec.tv_nsec);
595  }
596  MaybeLogLrsRequest(context, request);
597  return SerializeLrsRequest(context, request);
598 }
599 
601  bool* send_all_clusters,
602  std::set<std::string>* cluster_names,
603  Duration* load_reporting_interval) {
605  // Decode the response.
606  const envoy_service_load_stats_v3_LoadStatsResponse* decoded_response =
608  reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(encoded_response)),
609  GRPC_SLICE_LENGTH(encoded_response), arena.ptr());
610  // Parse the response.
611  if (decoded_response == nullptr) {
612  return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Can't decode response.");
613  }
614  // Check send_all_clusters.
616  decoded_response)) {
617  *send_all_clusters = true;
618  } else {
619  // Store the cluster names.
620  size_t size;
621  const upb_StringView* clusters =
623  &size);
624  for (size_t i = 0; i < size; ++i) {
625  cluster_names->emplace(UpbStringToStdString(clusters[i]));
626  }
627  }
628  // Get the load report interval.
629  const google_protobuf_Duration* load_reporting_interval_duration =
631  decoded_response);
632  *load_reporting_interval = Duration::FromSecondsAndNanoseconds(
633  google_protobuf_Duration_seconds(load_reporting_interval_duration),
634  google_protobuf_Duration_nanos(load_reporting_interval_duration));
635  return GRPC_ERROR_NONE;
636 }
637 
638 namespace {
639 
641  Timestamp value) {
642  google_protobuf_Timestamp* timestamp =
644  gpr_timespec timespec = value.as_timespec(GPR_CLOCK_REALTIME);
645  google_protobuf_Timestamp_set_seconds(timestamp, timespec.tv_sec);
646  google_protobuf_Timestamp_set_nanos(timestamp, timespec.tv_nsec);
647  return timestamp;
648 }
649 
650 } // namespace
651 
653  const ResourceTypeMetadataMap& resource_type_metadata_map) {
655  // Create the ClientConfig for resource metadata from XdsClient
656  auto* client_config = envoy_service_status_v3_ClientConfig_new(arena.ptr());
657  // Fill-in the node information
658  auto* node = envoy_service_status_v3_ClientConfig_mutable_node(client_config,
659  arena.ptr());
660  // The xDS server info is not actually needed here, so we seed it with an
661  // empty value.
662  XdsBootstrap::XdsServer empty_server;
664  empty_server,
665  tracer_,
666  symtab_->ptr(),
667  arena.ptr(),
668  true,
671  user_agent_version_, node);
672  // Dump each resource.
673  std::vector<std::string> type_url_storage;
674  for (const auto& p : resource_type_metadata_map) {
675  absl::string_view type_url = p.first;
676  const ResourceMetadataMap& resource_metadata_map = p.second;
677  type_url_storage.emplace_back(
678  absl::StrCat("type.googleapis.com/", type_url));
679  for (const auto& q : resource_metadata_map) {
680  absl::string_view resource_name = q.first;
681  const ResourceMetadata& metadata = *q.second;
682  auto* entry =
684  client_config, context.arena);
686  entry, StdStringToUpbString(type_url_storage.back()));
688  entry, StdStringToUpbString(resource_name));
690  entry, metadata.client_status);
691  if (!metadata.serialized_proto.empty()) {
693  entry, StdStringToUpbString(metadata.version));
695  entry, EncodeTimestamp(context, metadata.update_time));
696  auto* any_field =
698  entry, context.arena);
700  any_field, StdStringToUpbString(type_url_storage.back()));
702  any_field, StdStringToUpbString(metadata.serialized_proto));
703  }
704  if (metadata.client_status == XdsApi::ResourceMetadata::NACKED) {
705  auto* update_failure_state =
708  update_failure_state,
709  StdStringToUpbString(metadata.failed_details));
711  update_failure_state,
712  StdStringToUpbString(metadata.failed_version));
714  update_failure_state,
715  EncodeTimestamp(context, metadata.failed_update_time));
717  entry, update_failure_state);
718  }
719  }
720  }
721  // Serialize the upb message to bytes
722  size_t output_length;
724  client_config, arena.ptr(), &output_length);
725  return std::string(output, output_length);
726 }
727 
728 } // namespace grpc_core
google_rpc_Status
struct google_rpc_Status google_rpc_Status
Definition: google/rpc/status.upb.h:24
grpc_core::Json::Array
std::vector< Json > Array
Definition: src/core/lib/json/json.h:55
envoy_config_endpoint_v3_UpstreamLocalityStats_add_load_metric_stats
UPB_INLINE struct envoy_config_endpoint_v3_EndpointLoadMetricStats * envoy_config_endpoint_v3_UpstreamLocalityStats_add_load_metric_stats(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, upb_Arena *arena)
Definition: load_report.upb.h:166
grpc_core::XdsLocalityName::sub_zone
const std::string & sub_zone() const
Definition: xds_client_stats.h:85
gpr_timespec::tv_nsec
int32_t tv_nsec
Definition: gpr_types.h:52
xds_interop_client.str
str
Definition: xds_interop_client.py:487
grpc_core::XdsApi::client_
XdsClient * client_
Definition: xds_api.h:185
absl::InvalidArgumentError
Status InvalidArgumentError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:351
envoy_service_load_stats_v3_LoadStatsResponse_clusters
UPB_INLINE upb_StringView const * envoy_service_load_stats_v3_LoadStatsResponse_clusters(const envoy_service_load_stats_v3_LoadStatsResponse *msg, size_t *len)
Definition: lrs.upb.h:148
envoy_service_discovery_v3_DiscoveryRequest_mutable_error_detail
UPB_INLINE struct google_rpc_Status * envoy_service_discovery_v3_DiscoveryRequest_mutable_error_detail(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_Arena *arena)
Definition: discovery.upb.h:166
envoy_service_discovery_v3_DiscoveryRequest_add_resource_names
UPB_INLINE bool envoy_service_discovery_v3_DiscoveryRequest_add_resource_names(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_StringView val, upb_Arena *arena)
Definition: discovery.upb.h:153
gpr_timespec::tv_sec
int64_t tv_sec
Definition: gpr_types.h:51
envoy_config_endpoint_v3_EndpointLoadMetricStats_set_total_metric_value
UPB_INLINE void envoy_config_endpoint_v3_EndpointLoadMetricStats_set_total_metric_value(envoy_config_endpoint_v3_EndpointLoadMetricStats *msg, double value)
Definition: load_report.upb.h:381
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_error_state
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_error_state(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, struct envoy_admin_v3_UpdateFailureState *value)
Definition: csds.upb.h:552
status.upb.h
grpc_core::XdsApi::ClusterLoadReport::dropped_requests
XdsClusterDropStats::Snapshot dropped_requests
Definition: xds_api.h:81
grpc_core::Json::Type::JSON_TRUE
@ JSON_TRUE
csds.upb.h
GRPC_ERROR_NONE
#define GRPC_ERROR_NONE
Definition: error.h:234
log.h
upb::SymbolTable
Definition: def.hpp:377
envoy_service_discovery_v3_DiscoveryResponse
struct envoy_service_discovery_v3_DiscoveryResponse envoy_service_discovery_v3_DiscoveryResponse
Definition: discovery.upb.h:31
opencensus.proto.agent.common.v1.common_pb2.Node
Node
Definition: common_pb2.py:308
google_protobuf_Timestamp_set_seconds
UPB_INLINE void google_protobuf_Timestamp_set_seconds(google_protobuf_Timestamp *msg, int64_t value)
Definition: timestamp.upb.h:73
google_protobuf_Value_set_number_value
UPB_INLINE void google_protobuf_Value_set_number_value(google_protobuf_Value *msg, double value)
Definition: google/protobuf/struct.upb.h:221
absl::StrCat
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
Definition: abseil-cpp/absl/strings/str_cat.cc:98
metadata
Definition: cq_verifier.cc:48
grpc_core::XdsLocalityName::region
const std::string & region() const
Definition: xds_client_stats.h:83
google_protobuf_Value_mutable_struct_value
UPB_INLINE struct google_protobuf_Struct * google_protobuf_Value_mutable_struct_value(google_protobuf_Value *msg, upb_Arena *arena)
Definition: google/protobuf/struct.upb.h:233
gpr_should_log
GPRAPI void GPRAPI int gpr_should_log(gpr_log_severity severity)
Definition: log.cc:67
grpc_core::Json::Type::OBJECT
@ OBJECT
grpc_core::XdsApi::CreateLrsRequest
grpc_slice CreateLrsRequest(ClusterLoadReportMap cluster_load_report_map)
Definition: xds_api.cc:529
envoy_service_status_v3_ClientConfig_new
UPB_INLINE envoy_service_status_v3_ClientConfig * envoy_service_status_v3_ClientConfig_new(upb_Arena *arena)
Definition: csds.upb.h:321
grpc_core::XdsEncodingContext
Definition: upb_utils.h:39
envoy_service_discovery_v3_DiscoveryResponse_version_info
UPB_INLINE upb_StringView envoy_service_discovery_v3_DiscoveryResponse_version_info(const envoy_service_discovery_v3_DiscoveryResponse *msg)
Definition: discovery.upb.h:210
grpc_core
Definition: call_metric_recorder.h:31
cluster_name
std::string cluster_name
Definition: xds_cluster_resolver.cc:91
client
Definition: examples/python/async_streaming/client.py:1
upb_MessageDef
Definition: upb/upb/def.c:100
envoy_config_core_v3_Node_set_user_agent_version
UPB_INLINE void envoy_config_core_v3_Node_set_user_agent_version(envoy_config_core_v3_Node *msg, upb_StringView value)
Definition: base.upb.h:546
grpc_core::XdsClient
Definition: xds_client.h:60
envoy_service_discovery_v3_Resource_resource
UPB_INLINE const struct google_protobuf_Any * envoy_service_discovery_v3_Resource_resource(const envoy_service_discovery_v3_Resource *msg)
Definition: discovery.upb.h:616
benchmark.request
request
Definition: benchmark.py:77
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_client_status
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_client_status(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, int32_t value)
Definition: csds.upb.h:549
buf
voidpf void * buf
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
envoy_config_core_v3_Node_set_cluster
UPB_INLINE void envoy_config_core_v3_Node_set_cluster(envoy_config_core_v3_Node *msg, upb_StringView value)
Definition: base.upb.h:514
grpc_core::Timestamp
Definition: src/core/lib/gprpp/time.h:62
envoy_service_load_stats_v3_LoadStatsRequest_new
UPB_INLINE envoy_service_load_stats_v3_LoadStatsRequest * envoy_service_load_stats_v3_LoadStatsRequest_new(upb_Arena *arena)
Definition: lrs.upb.h:40
envoy_admin_v3_UpdateFailureState_set_details
UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_details(envoy_admin_v3_UpdateFailureState *msg, upb_StringView value)
Definition: config_dump.upb.h:248
grpc_core::XdsLocalityName::zone
const std::string & zone() const
Definition: xds_client_stats.h:84
grpc_core::XdsApi::user_agent_name_
const std::string user_agent_name_
Definition: xds_api.h:192
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
error
grpc_error_handle error
Definition: retry_filter.cc:499
grpc_core::XdsClusterLocalityStats::Snapshot::total_error_requests
uint64_t total_error_requests
Definition: xds_client_stats.h:179
google_protobuf_Value_mutable_list_value
UPB_INLINE struct google_protobuf_ListValue * google_protobuf_Value_mutable_list_value(google_protobuf_Value *msg, upb_Arena *arena)
Definition: google/protobuf/struct.upb.h:245
grpc_core::StdStringToUpbString
upb_StringView StdStringToUpbString(const T &str)
Definition: upb_utils.h:52
absl::OkStatus
Status OkStatus()
Definition: third_party/abseil-cpp/absl/status/status.h:882
envoy_service_status_v3_ClientConfig_add_generic_xds_configs
UPB_INLINE struct envoy_service_status_v3_ClientConfig_GenericXdsConfig * envoy_service_status_v3_ClientConfig_add_generic_xds_configs(envoy_service_status_v3_ClientConfig *msg, upb_Arena *arena)
Definition: csds.upb.h:409
status
absl::Status status
Definition: rls.cc:251
envoy_config_endpoint_v3_EndpointLoadMetricStats_set_metric_name
UPB_INLINE void envoy_config_endpoint_v3_EndpointLoadMetricStats_set_metric_name(envoy_config_endpoint_v3_EndpointLoadMetricStats *msg, upb_StringView value)
Definition: load_report.upb.h:375
struct.upb.h
client_
std::unique_ptr< SubProcess > client_
Definition: server_crash_test.cc:121
GPR_PLATFORM_STRING
#define GPR_PLATFORM_STRING
Definition: impl/codegen/port_platform.h:488
version
Definition: version.py:1
envoy_config_endpoint_v3_ClusterStats_DroppedRequests_set_dropped_count
UPB_INLINE void envoy_config_endpoint_v3_ClusterStats_DroppedRequests_set_dropped_count(envoy_config_endpoint_v3_ClusterStats_DroppedRequests *msg, uint64_t value)
Definition: load_report.upb.h:556
envoy_config_endpoint_v3_ClusterStats_set_cluster_service_name
UPB_INLINE void envoy_config_endpoint_v3_ClusterStats_set_cluster_service_name(envoy_config_endpoint_v3_ClusterStats *msg, upb_StringView value)
Definition: load_report.upb.h:505
absl::StripPrefix
ABSL_MUST_USE_RESULT absl::string_view StripPrefix(absl::string_view str, absl::string_view prefix)
Definition: abseil-cpp/absl/strings/strip.h:73
xds_manager.p
p
Definition: xds_manager.py:60
google_protobuf_Any_set_type_url
UPB_INLINE void google_protobuf_Any_set_type_url(google_protobuf_Any *msg, upb_StringView value)
Definition: any.upb.h:73
GRPC_STATUS_INVALID_ARGUMENT
@ GRPC_STATUS_INVALID_ARGUMENT
Definition: include/grpc/impl/codegen/status.h:46
grpc_core::XdsBootstrap::Node
Definition: xds_bootstrap.h:43
GPR_LOG_SEVERITY_DEBUG
@ GPR_LOG_SEVERITY_DEBUG
Definition: include/grpc/impl/codegen/log.h:46
grpc_core::Json::Type::JSON_FALSE
@ JSON_FALSE
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
grpc_core::XdsClusterDropStats::Snapshot::uncategorized_drops
uint64_t uncategorized_drops
Definition: xds_client_stats.h:110
grpc_core::XdsLocalityName
Definition: xds_client_stats.h:46
GRPC_TRACE_FLAG_ENABLED
#define GRPC_TRACE_FLAG_ENABLED(f)
Definition: debug/trace.h:114
lrs.upbdefs.h
grpc_core::XdsClusterDropStats::Snapshot::categorized_drops
CategorizedDropsMap categorized_drops
Definition: xds_client_stats.h:113
envoy_config_endpoint_v3_UpstreamLocalityStats
struct envoy_config_endpoint_v3_UpstreamLocalityStats envoy_config_endpoint_v3_UpstreamLocalityStats
Definition: load_report.upb.h:28
google_protobuf_ListValue_add_values
UPB_INLINE struct google_protobuf_Value * google_protobuf_ListValue_add_values(google_protobuf_ListValue *msg, upb_Arena *arena)
Definition: google/protobuf/struct.upb.h:302
GRPC_XDS_USER_AGENT_VERSION_SUFFIX_STRING
#define GRPC_XDS_USER_AGENT_VERSION_SUFFIX_STRING
Definition: xds_api.cc:78
arena
grpc_core::ScopedArenaPtr arena
Definition: binder_transport_test.cc:237
grpc_core::CertificateProviderStore::PluginDefinitionMap
std::map< std::string, PluginDefinition > PluginDefinitionMap
Definition: certificate_provider_store.h:55
lrs.upb.h
envoy_config_endpoint_v3_ClusterStats_set_cluster_name
UPB_INLINE void envoy_config_endpoint_v3_ClusterStats_set_cluster_name(envoy_config_endpoint_v3_ClusterStats *msg, upb_StringView value)
Definition: load_report.upb.h:462
envoy_service_discovery_v3_DiscoveryResponse_resources
UPB_INLINE const struct google_protobuf_Any *const * envoy_service_discovery_v3_DiscoveryResponse_resources(const envoy_service_discovery_v3_DiscoveryResponse *msg, size_t *len)
Definition: discovery.upb.h:219
base.upb.h
status.h
grpc_core::UpbStringToStdString
std::string UpbStringToStdString(const upb_StringView &str)
Definition: upb_utils.h:60
google_protobuf_Any
struct google_protobuf_Any google_protobuf_Any
Definition: any.upb.h:24
envoy_service_load_stats_v3_LoadStatsResponse_parse
UPB_INLINE envoy_service_load_stats_v3_LoadStatsResponse * envoy_service_load_stats_v3_LoadStatsResponse_parse(const char *buf, size_t size, upb_Arena *arena)
Definition: lrs.upb.h:119
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
grpc_core::XdsApi::XdsApi
XdsApi(XdsClient *client, TraceFlag *tracer, const XdsBootstrap::Node *node, const CertificateProviderStore::PluginDefinitionMap *map, upb::SymbolTable *symtab)
Definition: xds_api.cc:81
grpc_core::XdsApi::ResourceTypeMetadataMap
std::map< absl::string_view, ResourceMetadataMap > ResourceTypeMetadataMap
Definition: xds_api.h:129
envoy_service_load_stats_v3_LoadStatsRequest_serialize
UPB_INLINE char * envoy_service_load_stats_v3_LoadStatsRequest_serialize(const envoy_service_load_stats_v3_LoadStatsRequest *msg, upb_Arena *arena, size_t *len)
Definition: lrs.upb.h:62
envoy_config_endpoint_v3_ClusterStats_DroppedRequests_set_category
UPB_INLINE void envoy_config_endpoint_v3_ClusterStats_DroppedRequests_set_category(envoy_config_endpoint_v3_ClusterStats_DroppedRequests *msg, upb_StringView value)
Definition: load_report.upb.h:553
grpc_core::XdsClusterLocalityStats::Snapshot::total_successful_requests
uint64_t total_successful_requests
Definition: xds_client_stats.h:177
server
std::unique_ptr< Server > server
Definition: channelz_service_test.cc:330
envoy_config_core_v3_Node_set_user_agent_name
UPB_INLINE void envoy_config_core_v3_Node_set_user_agent_name(envoy_config_core_v3_Node *msg, upb_StringView value)
Definition: base.upb.h:543
grpc_version_string
const GRPCAPI char * grpc_version_string(void)
Definition: version.cc:26
grpc_core::XdsApi::AssembleClientConfig
std::string AssembleClientConfig(const ResourceTypeMetadataMap &resource_type_metadata_map)
Definition: xds_api.cc:652
asyncio_get_stats.parser
parser
Definition: asyncio_get_stats.py:34
envoy_config_endpoint_v3_EndpointLoadMetricStats
struct envoy_config_endpoint_v3_EndpointLoadMetricStats envoy_config_endpoint_v3_EndpointLoadMetricStats
Definition: load_report.upb.h:30
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_type_url
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_type_url(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, upb_StringView value)
Definition: csds.upb.h:511
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_last_updated
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_last_updated(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, struct google_protobuf_Timestamp *value)
Definition: csds.upb.h:533
envoy_service_discovery_v3_Resource_parse
UPB_INLINE envoy_service_discovery_v3_Resource * envoy_service_discovery_v3_Resource_parse(const char *buf, size_t size, upb_Arena *arena)
Definition: discovery.upb.h:578
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
grpc_core::XdsApi::ResourceMetadata
Definition: xds_api.h:92
envoy_config_endpoint_v3_ClusterStats_set_total_dropped_requests
UPB_INLINE void envoy_config_endpoint_v3_ClusterStats_set_total_dropped_requests(envoy_config_endpoint_v3_ClusterStats *msg, uint64_t value)
Definition: load_report.upb.h:477
absl::string_view::size
constexpr size_type size() const noexcept
Definition: abseil-cpp/absl/strings/string_view.h:277
grpc_core::XdsApi::AdsResponseParserInterface
Definition: xds_api.h:58
grpc_core::XdsApi::ResourceMetadata::NACKED
@ NACKED
Definition: xds_api.h:108
google_protobuf_Timestamp_new
UPB_INLINE google_protobuf_Timestamp * google_protobuf_Timestamp_new(upb_Arena *arena)
Definition: timestamp.upb.h:31
grpc_core::XdsClusterLocalityStats::Snapshot
Definition: xds_client_stats.h:176
Json
JSON (JavaScript Object Notation).
Definition: third_party/bloaty/third_party/protobuf/conformance/third_party/jsoncpp/json.h:227
gmock_output_test.output
output
Definition: bloaty/third_party/googletest/googlemock/test/gmock_output_test.py:175
grpc_core::XdsApi::CreateAdsRequest
grpc_slice CreateAdsRequest(const XdsBootstrap::XdsServer &server, absl::string_view type_url, absl::string_view version, absl::string_view nonce, const std::vector< std::string > &resource_names, grpc_error_handle error, bool populate_node)
Definition: xds_api.cc:272
envoy_service_discovery_v3_DiscoveryRequest_serialize
UPB_INLINE char * envoy_service_discovery_v3_DiscoveryRequest_serialize(const envoy_service_discovery_v3_DiscoveryRequest *msg, upb_Arena *arena, size_t *len)
Definition: discovery.upb.h:81
xds_client.h
google_protobuf_Duration_set_nanos
UPB_INLINE void google_protobuf_Duration_set_nanos(google_protobuf_Duration *msg, int32_t value)
Definition: duration.upb.h:76
upb.h
gpr_log
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
EncodeVarint
void EncodeVarint(uint64_t val, std::string *str)
Definition: upb/upb/util/compare_test.cc:107
grpc_core::XdsApi::CreateLrsInitialRequest
grpc_slice CreateLrsInitialRequest(const XdsBootstrap::XdsServer &server)
Definition: xds_api.cc:452
google_protobuf_Value_new
UPB_INLINE google_protobuf_Value * google_protobuf_Value_new(upb_Arena *arena)
Definition: google/protobuf/struct.upb.h:122
grpc.h
envoy_service_load_stats_v3_LoadStatsRequest_getmsgdef
const UPB_INLINE upb_MessageDef * envoy_service_load_stats_v3_LoadStatsRequest_getmsgdef(upb_DefPool *s)
Definition: lrs.upbdefs.h:24
grpc_core::Duration::FromSecondsAndNanoseconds
static Duration FromSecondsAndNanoseconds(int64_t seconds, int32_t nanos)
Definition: src/core/lib/gprpp/time.h:274
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90
google_protobuf_Duration_nanos
UPB_INLINE int32_t google_protobuf_Duration_nanos(const google_protobuf_Duration *msg)
Definition: duration.upb.h:69
grpc_core::XdsApi::symtab_
upb::SymbolTable * symtab_
Definition: xds_api.h:190
load_report.upb.h
GRPC_SLICE_START_PTR
#define GRPC_SLICE_START_PTR(slice)
Definition: include/grpc/impl/codegen/slice.h:101
envoy_service_discovery_v3_DiscoveryRequest_getmsgdef
const UPB_INLINE upb_MessageDef * envoy_service_discovery_v3_DiscoveryRequest_getmsgdef(upb_DefPool *s)
Definition: discovery.upbdefs.h:24
envoy_config_core_v3_Node_add_client_features
UPB_INLINE bool envoy_config_core_v3_Node_add_client_features(envoy_config_core_v3_Node *msg, upb_StringView val, upb_Arena *arena)
Definition: base.upb.h:579
google_protobuf_Value_set_string_value
UPB_INLINE void google_protobuf_Value_set_string_value(google_protobuf_Value *msg, upb_StringView value)
Definition: google/protobuf/struct.upb.h:224
google_protobuf_Struct
struct google_protobuf_Struct google_protobuf_Struct
Definition: google/protobuf/struct.upb.h:27
discovery.upbdefs.h
upb::SymbolTable::ptr
const upb_DefPool * ptr() const
Definition: def.hpp:382
_upb_Message_AddUnknown
bool _upb_Message_AddUnknown(upb_Message *msg, const char *data, size_t len, upb_Arena *arena)
Definition: msg.c:85
grpc_slice
Definition: include/grpc/impl/codegen/slice.h:65
envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_requests_in_progress
UPB_INLINE void envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_requests_in_progress(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, uint64_t value)
Definition: load_report.upb.h:154
grpc_core::XdsClusterLocalityStats::Snapshot::total_requests_in_progress
uint64_t total_requests_in_progress
Definition: xds_client_stats.h:178
grpc_core::XdsClusterLocalityStats::Snapshot::backend_metrics
std::map< std::string, BackendMetric > backend_metrics
Definition: xds_client_stats.h:181
google_protobuf_Struct_fields_set
UPB_INLINE bool google_protobuf_Struct_fields_set(google_protobuf_Struct *msg, upb_StringView key, google_protobuf_Value *val, upb_Arena *a)
Definition: google/protobuf/struct.upb.h:90
grpc_core::Json::Type::NUMBER
@ NUMBER
error.h
grpc_core::Json::Type::ARRAY
@ ARRAY
data
char data[kBufferLength]
Definition: abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
envoy_admin_v3_UpdateFailureState_new
UPB_INLINE envoy_admin_v3_UpdateFailureState * envoy_admin_v3_UpdateFailureState_new(upb_Arena *arena)
Definition: config_dump.upb.h:162
json.h
google_protobuf_Timestamp_set_nanos
UPB_INLINE void google_protobuf_Timestamp_set_nanos(google_protobuf_Timestamp *msg, int32_t value)
Definition: timestamp.upb.h:76
google_protobuf_Duration_seconds
UPB_INLINE int64_t google_protobuf_Duration_seconds(const google_protobuf_Duration *msg)
Definition: duration.upb.h:63
envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_error_requests
UPB_INLINE void envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_error_requests(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, uint64_t value)
Definition: load_report.upb.h:157
envoy_config_core_v3_Node_mutable_locality
UPB_INLINE struct envoy_config_core_v3_Locality * envoy_config_core_v3_Node_mutable_locality(envoy_config_core_v3_Node *msg, upb_Arena *arena)
Definition: base.upb.h:534
envoy_service_discovery_v3_DiscoveryResponse_type_url
UPB_INLINE upb_StringView envoy_service_discovery_v3_DiscoveryResponse_type_url(const envoy_service_discovery_v3_DiscoveryResponse *msg)
Definition: discovery.upb.h:231
envoy_config_endpoint_v3_ClusterStats_mutable_load_report_interval
UPB_INLINE struct google_protobuf_Duration * envoy_config_endpoint_v3_ClusterStats_mutable_load_report_interval(envoy_config_endpoint_v3_ClusterStats *msg, upb_Arena *arena)
Definition: load_report.upb.h:484
envoy_service_load_stats_v3_LoadStatsRequest_mutable_node
UPB_INLINE struct envoy_config_core_v3_Node * envoy_service_load_stats_v3_LoadStatsRequest_mutable_node(envoy_service_load_stats_v3_LoadStatsRequest *msg, upb_Arena *arena)
Definition: lrs.upb.h:92
stdint.h
google_protobuf_Timestamp
struct google_protobuf_Timestamp google_protobuf_Timestamp
Definition: timestamp.upb.h:24
GRPC_ERROR_CREATE_FROM_STATIC_STRING
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
Definition: error.h:291
GRPC_SLICE_LENGTH
#define GRPC_SLICE_LENGTH(slice)
Definition: include/grpc/impl/codegen/slice.h:104
gpr_types.h
grpc_core::TraceFlag
Definition: debug/trace.h:63
google_rpc_Status_set_message
UPB_INLINE void google_rpc_Status_set_message(google_rpc_Status *msg, upb_StringView value)
Definition: google/rpc/status.upb.h:87
value
const char * value
Definition: hpack_parser_table.cc:165
symtab
upb_symtab * symtab
Definition: bloaty/third_party/protobuf/php/ext/google/protobuf/protobuf.h:774
grpc_core::XdsApi::ClusterLoadReport
Definition: xds_api.h:80
discovery.upb.h
upb_TextEncode
size_t upb_TextEncode(const upb_Message *msg, const upb_MessageDef *m, const upb_DefPool *ext_pool, int options, char *buf, size_t size)
Definition: text_encode.c:455
grpc_core::Json::Object
std::map< std::string, Json > Object
Definition: src/core/lib/json/json.h:54
GRPC_XDS_USER_AGENT_NAME_SUFFIX_STRING
#define GRPC_XDS_USER_AGENT_NAME_SUFFIX_STRING
Definition: xds_api.cc:69
ares::byte
unsigned char byte
Definition: ares-test.h:33
envoy_config_core_v3_Node_set_id
UPB_INLINE void envoy_config_core_v3_Node_set_id(envoy_config_core_v3_Node *msg, upb_StringView value)
Definition: base.upb.h:511
grpc_core::XdsApi::build_version_
const std::string build_version_
Definition: xds_api.h:191
upb::Arena
Definition: upb.hpp:68
google_protobuf_ListValue
struct google_protobuf_ListValue google_protobuf_ListValue
Definition: google/protobuf/struct.upb.h:30
grpc_slice_from_copied_buffer
GPRAPI grpc_slice grpc_slice_from_copied_buffer(const char *source, size_t len)
Definition: slice/slice.cc:170
envoy_service_discovery_v3_DiscoveryRequest_new
UPB_INLINE envoy_service_discovery_v3_DiscoveryRequest * envoy_service_discovery_v3_DiscoveryRequest_new(upb_Arena *arena)
Definition: discovery.upb.h:59
envoy_config_endpoint_v3_EndpointLoadMetricStats_set_num_requests_finished_with_metric
UPB_INLINE void envoy_config_endpoint_v3_EndpointLoadMetricStats_set_num_requests_finished_with_metric(envoy_config_endpoint_v3_EndpointLoadMetricStats *msg, uint64_t value)
Definition: load_report.upb.h:378
google_protobuf_Value_set_null_value
UPB_INLINE void google_protobuf_Value_set_null_value(google_protobuf_Value *msg, int32_t value)
Definition: google/protobuf/struct.upb.h:218
grpc_core::XdsBootstrap::XdsServer
Definition: xds_bootstrap.h:52
envoy_config_core_v3_Node
struct envoy_config_core_v3_Node envoy_config_core_v3_Node
Definition: base.upb.h:50
envoy_config_endpoint_v3_ClusterStats
struct envoy_config_endpoint_v3_ClusterStats envoy_config_endpoint_v3_ClusterStats
Definition: load_report.upb.h:31
envoy_config_endpoint_v3_ClusterStats_DroppedRequests
struct envoy_config_endpoint_v3_ClusterStats_DroppedRequests envoy_config_endpoint_v3_ClusterStats_DroppedRequests
Definition: load_report.upb.h:32
envoy_config_core_v3_Locality
struct envoy_config_core_v3_Locality envoy_config_core_v3_Locality
Definition: base.upb.h:47
upb_StringView
Definition: upb/upb/upb.h:72
eds_service_name
std::string eds_service_name
Definition: xds_cluster_resolver.cc:99
envoy_service_load_stats_v3_LoadStatsResponse_load_reporting_interval
UPB_INLINE const struct google_protobuf_Duration * envoy_service_load_stats_v3_LoadStatsResponse_load_reporting_interval(const envoy_service_load_stats_v3_LoadStatsResponse *msg)
Definition: lrs.upb.h:157
server
Definition: examples/python/async_streaming/server.py:1
def.h
count
int * count
Definition: bloaty/third_party/googletest/googlemock/test/gmock_stress_test.cc:96
upb.hpp
google_protobuf_Any_set_value
UPB_INLINE void google_protobuf_Any_set_value(google_protobuf_Any *msg, upb_StringView value)
Definition: any.upb.h:76
grpc_core::XdsApi::certificate_provider_definition_map_
const CertificateProviderStore::PluginDefinitionMap * certificate_provider_definition_map_
Definition: xds_api.h:189
grpc_error_std_string
std::string grpc_error_std_string(grpc_error_handle error)
Definition: error.cc:944
grpc_core::XdsClusterLocalityStats::Snapshot::total_issued_requests
uint64_t total_issued_requests
Definition: xds_client_stats.h:180
grpc_core::XdsApi::ParseLrsResponse
grpc_error_handle ParseLrsResponse(const grpc_slice &encoded_response, bool *send_all_clusters, std::set< std::string > *cluster_names, Duration *load_reporting_interval)
Definition: xds_api.cc:600
grpc_core::XdsApi::ResourceMetadataMap
std::map< std::string, const ResourceMetadata * > ResourceMetadataMap
Definition: xds_api.h:127
absl::Status
Definition: third_party/abseil-cpp/absl/status/status.h:424
envoy_service_status_v3_ClientConfig_GenericXdsConfig_mutable_xds_config
UPB_INLINE struct google_protobuf_Any * envoy_service_status_v3_ClientConfig_GenericXdsConfig_mutable_xds_config(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, upb_Arena *arena)
Definition: csds.upb.h:524
grpc_core::Duration::as_timespec
gpr_timespec as_timespec() const
Definition: src/core/lib/gprpp/time.cc:171
envoy_service_load_stats_v3_LoadStatsResponse_send_all_clusters
UPB_INLINE bool envoy_service_load_stats_v3_LoadStatsResponse_send_all_clusters(const envoy_service_load_stats_v3_LoadStatsResponse *msg)
Definition: lrs.upb.h:169
grpc_core::Json::Type::JSON_NULL
@ JSON_NULL
google_protobuf_Value
struct google_protobuf_Value google_protobuf_Value
Definition: google/protobuf/struct.upb.h:29
envoy_service_discovery_v3_DiscoveryRequest_set_version_info
UPB_INLINE void envoy_service_discovery_v3_DiscoveryRequest_set_version_info(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_StringView value)
Definition: discovery.upb.h:131
envoy_config_core_v3_Locality_set_region
UPB_INLINE void envoy_config_core_v3_Locality_set_region(envoy_config_core_v3_Locality *msg, upb_StringView value)
Definition: base.upb.h:200
envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_issued_requests
UPB_INLINE void envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_issued_requests(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, uint64_t value)
Definition: load_report.upb.h:187
profile_analyzer.fields
list fields
Definition: profile_analyzer.py:266
xds_api.h
asyncio_get_stats.response
response
Definition: asyncio_get_stats.py:28
envoy_config_endpoint_v3_ClusterStats_add_upstream_locality_stats
UPB_INLINE struct envoy_config_endpoint_v3_UpstreamLocalityStats * envoy_config_endpoint_v3_ClusterStats_add_upstream_locality_stats(envoy_config_endpoint_v3_ClusterStats *msg, upb_Arena *arena)
Definition: load_report.upb.h:471
google_protobuf_Any_type_url
UPB_INLINE upb_StringView google_protobuf_Any_type_url(const google_protobuf_Any *msg)
Definition: any.upb.h:63
envoy_service_discovery_v3_DiscoveryRequest_set_type_url
UPB_INLINE void envoy_service_discovery_v3_DiscoveryRequest_set_type_url(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_StringView value)
Definition: discovery.upb.h:156
grpc_core::XdsApi::AdsResponseParserInterface::AdsResponseFields
Definition: xds_api.h:60
values
std::array< int64_t, Size > values
Definition: abseil-cpp/absl/container/btree_benchmark.cc:608
grpc_core::XdsApi::tracer_
TraceFlag * tracer_
Definition: xds_api.h:186
grpc_core::XdsApi::ClusterLoadReport::load_report_interval
Duration load_report_interval
Definition: xds_api.h:85
type_url
string * type_url
Definition: bloaty/third_party/protobuf/conformance/conformance_cpp.cc:72
google_protobuf_Duration
struct google_protobuf_Duration google_protobuf_Duration
Definition: duration.upb.h:24
envoy_config_core_v3_Locality_set_zone
UPB_INLINE void envoy_config_core_v3_Locality_set_zone(envoy_config_core_v3_Locality *msg, upb_StringView value)
Definition: base.upb.h:203
absl::Status::ok
ABSL_MUST_USE_RESULT bool ok() const
Definition: third_party/abseil-cpp/absl/status/status.h:802
envoy_admin_v3_UpdateFailureState_set_version_info
UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_version_info(envoy_admin_v3_UpdateFailureState *msg, upb_StringView value)
Definition: config_dump.upb.h:251
GRPC_ERROR_UNREF
#define GRPC_ERROR_UNREF(err)
Definition: error.h:262
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_version_info
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_version_info(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, upb_StringView value)
Definition: csds.upb.h:517
upb_StringView_FromString
UPB_INLINE upb_StringView upb_StringView_FromString(const char *data)
Definition: upb/upb/upb.h:85
envoy_service_discovery_v3_DiscoveryResponse_parse
UPB_INLINE envoy_service_discovery_v3_DiscoveryResponse * envoy_service_discovery_v3_DiscoveryResponse_parse(const char *buf, size_t size, upb_Arena *arena)
Definition: discovery.upb.h:181
envoy_service_discovery_v3_DiscoveryRequest
struct envoy_service_discovery_v3_DiscoveryRequest envoy_service_discovery_v3_DiscoveryRequest
Definition: discovery.upb.h:30
envoy_service_load_stats_v3_LoadStatsRequest
struct envoy_service_load_stats_v3_LoadStatsRequest envoy_service_load_stats_v3_LoadStatsRequest
Definition: lrs.upb.h:25
timestamp.upb.h
GPR_DEBUG
#define GPR_DEBUG
Definition: include/grpc/impl/codegen/log.h:55
grpc_core::XdsApi::ParseAdsResponse
absl::Status ParseAdsResponse(const XdsBootstrap::XdsServer &server, const grpc_slice &encoded_response, AdsResponseParserInterface *parser)
Definition: xds_api.cc:358
absl::string_view::empty
constexpr bool empty() const noexcept
Definition: abseil-cpp/absl/strings/string_view.h:292
envoy_config_core_v3_Node_mutable_metadata
UPB_INLINE struct google_protobuf_Struct * envoy_config_core_v3_Node_mutable_metadata(envoy_config_core_v3_Node *msg, upb_Arena *arena)
Definition: base.upb.h:521
context
grpc::ClientContext context
Definition: istio_echo_server_lib.cc:61
absl
Definition: abseil-cpp/absl/algorithm/algorithm.h:31
duration.upb.h
any.upb.h
envoy_config_endpoint_v3_ClusterStats_add_dropped_requests
UPB_INLINE struct envoy_config_endpoint_v3_ClusterStats_DroppedRequests * envoy_config_endpoint_v3_ClusterStats_add_dropped_requests(envoy_config_endpoint_v3_ClusterStats *msg, upb_Arena *arena)
Definition: load_report.upb.h:499
envoy_config_core_v3_Locality_set_sub_zone
UPB_INLINE void envoy_config_core_v3_Locality_set_sub_zone(envoy_config_core_v3_Locality *msg, upb_StringView value)
Definition: base.upb.h:206
gpr_timespec
Definition: gpr_types.h:50
grpc_error
Definition: error_internal.h:42
envoy_service_discovery_v3_DiscoveryRequest_mutable_node
UPB_INLINE struct envoy_config_core_v3_Node * envoy_service_discovery_v3_DiscoveryRequest_mutable_node(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_Arena *arena)
Definition: discovery.upb.h:138
envoy_service_discovery_v3_DiscoveryResponse_getmsgdef
const UPB_INLINE upb_MessageDef * envoy_service_discovery_v3_DiscoveryResponse_getmsgdef(upb_DefPool *s)
Definition: discovery.upbdefs.h:29
grpc_core::XdsApi::user_agent_version_
const std::string user_agent_version_
Definition: xds_api.h:193
upb_utils.h
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
grpc_core::Duration
Definition: src/core/lib/gprpp/time.h:122
GPR_CLOCK_REALTIME
@ GPR_CLOCK_REALTIME
Definition: gpr_types.h:39
google_protobuf_Value_set_bool_value
UPB_INLINE void google_protobuf_Value_set_bool_value(google_protobuf_Value *msg, bool value)
Definition: google/protobuf/struct.upb.h:227
envoy_service_status_v3_ClientConfig_mutable_node
UPB_INLINE struct envoy_config_core_v3_Node * envoy_service_status_v3_ClientConfig_mutable_node(envoy_service_status_v3_ClientConfig *msg, upb_Arena *arena)
Definition: csds.upb.h:382
absl::string_view::data
constexpr const_pointer data() const noexcept
Definition: abseil-cpp/absl/strings/string_view.h:336
envoy_admin_v3_UpdateFailureState_set_last_update_attempt
UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_last_update_attempt(envoy_admin_v3_UpdateFailureState *msg, struct google_protobuf_Timestamp *value)
Definition: config_dump.upb.h:235
grpc_core::XdsApi::node_
const XdsBootstrap::Node * node_
Definition: xds_api.h:187
grpc_core::XdsApi::ClusterLoadReport::locality_stats
std::map< RefCountedPtr< XdsLocalityName >, XdsClusterLocalityStats::Snapshot, XdsLocalityName::Less > locality_stats
Definition: xds_api.h:84
text_encode.h
grpc_core::UpbStringToAbsl
absl::string_view UpbStringToAbsl(const upb_StringView &str)
Definition: upb_utils.h:56
envoy_service_status_v3_ClientConfig_serialize
UPB_INLINE char * envoy_service_status_v3_ClientConfig_serialize(const envoy_service_status_v3_ClientConfig *msg, upb_Arena *arena, size_t *len)
Definition: csds.upb.h:343
google_rpc_Status_set_code
UPB_INLINE void google_rpc_Status_set_code(google_rpc_Status *msg, int32_t value)
Definition: google/rpc/status.upb.h:84
google_protobuf_Duration_set_seconds
UPB_INLINE void google_protobuf_Duration_set_seconds(google_protobuf_Duration *msg, int64_t value)
Definition: duration.upb.h:73
envoy_service_load_stats_v3_LoadStatsResponse
struct envoy_service_load_stats_v3_LoadStatsResponse envoy_service_load_stats_v3_LoadStatsResponse
Definition: lrs.upb.h:26
envoy_service_load_stats_v3_LoadStatsRequest_add_cluster_stats
UPB_INLINE struct envoy_config_endpoint_v3_ClusterStats * envoy_service_load_stats_v3_LoadStatsRequest_add_cluster_stats(envoy_service_load_stats_v3_LoadStatsRequest *msg, upb_Arena *arena)
Definition: lrs.upb.h:107
grpc_core::Json::Type::STRING
@ STRING
grpc_core::XdsApi::ClusterLoadReportMap
std::map< std::pair< std::string, std::string >, ClusterLoadReport > ClusterLoadReportMap
Definition: xds_api.h:89
envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_name
UPB_INLINE void envoy_service_status_v3_ClientConfig_GenericXdsConfig_set_name(envoy_service_status_v3_ClientConfig_GenericXdsConfig *msg, upb_StringView value)
Definition: csds.upb.h:514
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
google_protobuf_Any_value
UPB_INLINE upb_StringView google_protobuf_Any_value(const google_protobuf_Any *msg)
Definition: any.upb.h:69
envoy_service_discovery_v3_DiscoveryRequest_set_response_nonce
UPB_INLINE void envoy_service_discovery_v3_DiscoveryRequest_set_response_nonce(envoy_service_discovery_v3_DiscoveryRequest *msg, upb_StringView value)
Definition: discovery.upb.h:159
config_dump.upb.h
GRPC_ERROR_IS_NONE
#define GRPC_ERROR_IS_NONE(err)
Definition: error.h:241
envoy_service_discovery_v3_DiscoveryResponse_nonce
UPB_INLINE upb_StringView envoy_service_discovery_v3_DiscoveryResponse_nonce(const envoy_service_discovery_v3_DiscoveryResponse *msg)
Definition: discovery.upb.h:237
envoy_config_endpoint_v3_UpstreamLocalityStats_mutable_locality
UPB_INLINE struct envoy_config_core_v3_Locality * envoy_config_endpoint_v3_UpstreamLocalityStats_mutable_locality(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, upb_Arena *arena)
Definition: load_report.upb.h:142
port_platform.h
envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_successful_requests
UPB_INLINE void envoy_config_endpoint_v3_UpstreamLocalityStats_set_total_successful_requests(envoy_config_endpoint_v3_UpstreamLocalityStats *msg, uint64_t value)
Definition: load_report.upb.h:151


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:55