package internal

import "google.golang.org/grpc/xds/internal"

Package internal contains functions/structs shared by xds balancers/resolvers.

Index

Variables

var ResourceTypeMapForTesting map[string]any

ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.

var UnknownCSMLabels = map[string]string{
	"csm.service_name":           "unknown",
	"csm.service_namespace_name": "unknown",
}

UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label data is not present in the CDS Resource.

Functions

func GetLocalityID

func GetLocalityID(addr resolver.Address) clients.Locality

GetLocalityID returns the locality ID of addr.

func IsLocalityEqual

func IsLocalityEqual(l clients.Locality, o any) bool

IsLocalityEqual allows the values to be compared by Attributes.Equal.

func LocalityFromString

func LocalityFromString(s string) (ret clients.Locality, _ error)

LocalityFromString converts a string representation of clients.locality as specified in gRFC A76, into a LocalityID struct.

func LocalityString

func LocalityString(l clients.Locality) string

LocalityString generates a string representation of clients.Locality in the format specified in gRFC A76.

func SetLocalityID

func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address

SetLocalityID sets locality ID in addr to l.

func SetLocalityIDInEndpoint

func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint

SetLocalityIDInEndpoint sets locality ID in endpoint to l.

Source Files

internal.go

Directories

PathSynopsis
xds/internal/balancerPackage balancer installs all the xds balancers.
xds/internal/balancer/cdsbalancerPackage cdsbalancer implements a balancer to handle CDS responses.
xds/internal/balancer/clusterimplPackage clusterimpl implements the xds_cluster_impl balancing policy.
xds/internal/balancer/clusterimpl/tests
xds/internal/balancer/clustermanagerPackage clustermanager implements the cluster manager LB policy for xds.
xds/internal/balancer/clustermanager/e2e_test
xds/internal/balancer/clusterresolverPackage clusterresolver contains the implementation of the cluster_resolver_experimental LB policy which resolves endpoint addresses using a list of one or more discovery mechanisms.
xds/internal/balancer/clusterresolver/e2e_test
xds/internal/balancer/loadstorePackage loadstore contains the loadStoreWrapper shared by the balancers.
xds/internal/balancer/outlierdetectionPackage outlierdetection provides an implementation of the outlier detection LB policy, as defined in https://github.com/grpc/proposal/blob/master/A50-xds-outlier-detection.md.
xds/internal/balancer/outlierdetection/e2e_test
xds/internal/balancer/priorityPackage priority implements the priority balancer.
xds/internal/balancer/wrrlocalityPackage wrrlocality provides an implementation of the wrr locality LB policy, as defined in [A52 - xDS Custom LB Policies].
xds/internal/clientsPackage clients provides implementations of the clients to interact with xDS and LRS servers.
xds/internal/clients/grpctransportPackage grpctransport provides an implementation of the clients.TransportBuilder interface using gRPC.
xds/internal/clients/internalPackage internal contains helpers for xDS and LRS clients.
xds/internal/clients/internal/backoffPackage backoff implements the backoff strategy for clients.
xds/internal/clients/internal/bufferPackage buffer provides an implementation of an unbounded buffer.
xds/internal/clients/internal/prettyPackage pretty defines helper functions to pretty-print structs for logging.
xds/internal/clients/internal/syncutilPackage syncutil implements additional synchronization primitives built upon the sync package.
xds/internal/clients/internal/testutilsPackage testutils contains testing helpers for xDS and LRS clients.
xds/internal/clients/internal/testutils/e2ePackage e2e provides utilities for end2end testing of xDS and LRS clients functionalities.
xds/internal/clients/internal/testutils/fakeserverPackage fakeserver provides a fake implementation of the management server.
xds/internal/clients/lrsclientPackage lrsclient provides an LRS (Load Reporting Service) client.
xds/internal/clients/lrsclient/internalPackage internal contains functionality internal to the lrsclient package.
xds/internal/clients/xdsclientPackage xdsclient provides an xDS (* Discovery Service) client.
xds/internal/clients/xdsclient/internalPackage internal contains functionality internal to the xdsclient package.
xds/internal/clients/xdsclient/internal/xdsresourcePackage xdsresource defines constants to distinguish between supported xDS API versions.
xds/internal/clients/xdsclient/metricsPackage metrics defines all metrics that can be produced by an xDS client.
xds/internal/clients/xdsclient/test
xds/internal/clusterspecifierPackage clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations.
xds/internal/clusterspecifier/rlsPackage rls implements the RLS cluster specifier plugin.
xds/internal/httpfilterPackage httpfilter contains the HTTPFilter interface and a registry for storing and retrieving their implementations.
xds/internal/httpfilter/faultPackage fault implements the Envoy Fault Injection HTTP filter.
xds/internal/httpfilter/rbacPackage rbac implements the Envoy RBAC HTTP filter.
xds/internal/httpfilter/routerPackage router implements the Envoy Router HTTP filter.
xds/internal/resolverPackage resolver implements the xds resolver, that does LDS and RDS to find the cluster to use.
xds/internal/resolver/internalPackage internal contains functionality internal to the xDS resolver.
xds/internal/serverPackage server contains internal server-side functionality used by the public facing xds package.
xds/internal/test
xds/internal/test/e2ePackage e2e implements xds e2e tests using go-control-plane.
xds/internal/testutilsPackage testutils provides utility types, for use in xds tests.
xds/internal/testutils/fakeclientPackage fakeclient provides a fake implementation of an xDS client.
xds/internal/xdsclientPackage xdsclient implements a full fledged gRPC client for the xDS API used by the xds resolver and balancer implementations.
xds/internal/xdsclient/internalPackage internal contains functionality internal to the xdsclient package.
xds/internal/xdsclient/pool
xds/internal/xdsclient/tests
xds/internal/xdsclient/xdslbregistryPackage xdslbregistry provides a registry of converters that convert proto from load balancing configuration, defined by the xDS API spec, to JSON load balancing configuration.
xds/internal/xdsclient/xdslbregistry/converterPackage converter provides converters to convert proto load balancing configuration, defined by the xDS API spec, to JSON load balancing configuration.
xds/internal/xdsclient/xdsresourcePackage xdsresource implements the xDS data model layer.
xds/internal/xdsclient/xdsresource/tests
xds/internal/xdsclient/xdsresource/versionPackage version defines constants to distinguish between supported xDS API versions.
Version
v1.74.2 (latest)
Published
Jul 22, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
21 hours ago

Tools for package owners.