lbhash

package
v1.18.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_github_com_solo_io_gloo_projects_gloo_api_v1_options_lbhash_lbhash_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Cookie struct {

	// required, the name of the cookie to be used to obtain the hash key
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// If specified, a cookie with the TTL will be generated if the cookie is not present. If the TTL is present and zero, the generated cookie will be a session cookie.
	Ttl *durationpb.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// The name of the path for the cookie. If no path is specified here, no path will be set for the cookie.
	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
	// contains filtered or unexported fields
}

Envoy supports two types of cookie affinity: - Passive: Envoy reads the cookie from the headers - Generated: Envoy uses the cookie spec to generate a cookie In either case, the cookie is incorporated in the hash key. additional notes https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto#envoy-api-msg-route-routeaction-hashpolicy-cookie

func (*Cookie) Clone added in v1.8.24

func (m *Cookie) Clone() proto.Message

Clone function

func (*Cookie) Descriptor deprecated

func (*Cookie) Descriptor() ([]byte, []int)

Deprecated: Use Cookie.ProtoReflect.Descriptor instead.

func (*Cookie) Equal

func (m *Cookie) Equal(that interface{}) bool

Equal function

func (*Cookie) GetName

func (x *Cookie) GetName() string

func (*Cookie) GetPath

func (x *Cookie) GetPath() string

func (*Cookie) GetTtl

func (x *Cookie) GetTtl() *durationpb.Duration

func (*Cookie) Hash deprecated added in v1.2.13

func (m *Cookie) Hash(hasher hash.Hash64) (uint64, error)

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*Cookie) HashUnique added in v1.18.0

func (m *Cookie) HashUnique(hasher hash.Hash64) (uint64, error)

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

func (*Cookie) ProtoMessage

func (*Cookie) ProtoMessage()

func (*Cookie) ProtoReflect added in v1.6.0

func (x *Cookie) ProtoReflect() protoreflect.Message

func (*Cookie) Reset

func (x *Cookie) Reset()

func (*Cookie) String

func (x *Cookie) String() string

type HashPolicy

type HashPolicy struct {

	// Types that are assignable to KeyType:
	//
	//	*HashPolicy_Header
	//	*HashPolicy_Cookie
	//	*HashPolicy_SourceIp
	KeyType isHashPolicy_KeyType `protobuf_oneof:"KeyType"`
	// If set, and a hash key is available after evaluating this policy, Envoy will skip the subsequent policies and
	// use the key as it is.
	// This is useful for defining "fallback" policies and limiting the time Envoy spends generating hash keys.
	Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"`
	// contains filtered or unexported fields
}

Specifies an element of Envoy's hashing policy for hashing load balancers

func (*HashPolicy) Clone added in v1.8.24

func (m *HashPolicy) Clone() proto.Message

Clone function

func (*HashPolicy) Descriptor deprecated

func (*HashPolicy) Descriptor() ([]byte, []int)

Deprecated: Use HashPolicy.ProtoReflect.Descriptor instead.

func (*HashPolicy) Equal

func (m *HashPolicy) Equal(that interface{}) bool

Equal function

func (*HashPolicy) GetCookie

func (x *HashPolicy) GetCookie() *Cookie

func (*HashPolicy) GetHeader

func (x *HashPolicy) GetHeader() string

func (*HashPolicy) GetKeyType

func (m *HashPolicy) GetKeyType() isHashPolicy_KeyType

func (*HashPolicy) GetSourceIp

func (x *HashPolicy) GetSourceIp() bool

func (*HashPolicy) GetTerminal

func (x *HashPolicy) GetTerminal() bool

func (*HashPolicy) Hash deprecated added in v1.2.13

func (m *HashPolicy) Hash(hasher hash.Hash64) (uint64, error)

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HashPolicy) HashUnique added in v1.18.0

func (m *HashPolicy) HashUnique(hasher hash.Hash64) (uint64, error)

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

func (*HashPolicy) ProtoMessage

func (*HashPolicy) ProtoMessage()

func (*HashPolicy) ProtoReflect added in v1.6.0

func (x *HashPolicy) ProtoReflect() protoreflect.Message

func (*HashPolicy) Reset

func (x *HashPolicy) Reset()

func (*HashPolicy) String

func (x *HashPolicy) String() string
type HashPolicy_Cookie struct {
	// Use a given cookie as a component of the hashing load balancer's hash key
	Cookie *Cookie `protobuf:"bytes,2,opt,name=cookie,proto3,oneof"`
}

type HashPolicy_Header

type HashPolicy_Header struct {
	// Use a given header's value as a component of the hashing load balancer's hash key
	Header string `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type HashPolicy_SourceIp

type HashPolicy_SourceIp struct {
	// Use the request's source IP address as a component of the hashing load balancer's hash key
	SourceIp bool `protobuf:"varint,3,opt,name=source_ip,json=sourceIp,proto3,oneof"`
}

type RouteActionHashConfig

type RouteActionHashConfig struct {

	// The list of policies Envoy will use when generating a hash key for a hashing load balancer
	HashPolicies []*HashPolicy `protobuf:"bytes,1,rep,name=hash_policies,json=hashPolicies,proto3" json:"hash_policies,omitempty"`
	// contains filtered or unexported fields
}

Specifies the route’s hashing policy if the upstream cluster uses a hashing load balancer. https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto#envoy-api-msg-route-routeaction-hashpolicy

func (*RouteActionHashConfig) Clone added in v1.8.24

func (m *RouteActionHashConfig) Clone() proto.Message

Clone function

func (*RouteActionHashConfig) Descriptor deprecated

func (*RouteActionHashConfig) Descriptor() ([]byte, []int)

Deprecated: Use RouteActionHashConfig.ProtoReflect.Descriptor instead.

func (*RouteActionHashConfig) Equal

func (m *RouteActionHashConfig) Equal(that interface{}) bool

Equal function

func (*RouteActionHashConfig) GetHashPolicies

func (x *RouteActionHashConfig) GetHashPolicies() []*HashPolicy

func (*RouteActionHashConfig) Hash deprecated added in v1.2.13

func (m *RouteActionHashConfig) Hash(hasher hash.Hash64) (uint64, error)

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*RouteActionHashConfig) HashUnique added in v1.18.0

func (m *RouteActionHashConfig) HashUnique(hasher hash.Hash64) (uint64, error)

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

func (*RouteActionHashConfig) ProtoMessage

func (*RouteActionHashConfig) ProtoMessage()

func (*RouteActionHashConfig) ProtoReflect added in v1.6.0

func (x *RouteActionHashConfig) ProtoReflect() protoreflect.Message

func (*RouteActionHashConfig) Reset

func (x *RouteActionHashConfig) Reset()

func (*RouteActionHashConfig) String

func (x *RouteActionHashConfig) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL