Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions api/rds.proto
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,7 @@ message RouteAction {
// cookie based, originating IP, etc.
message Header {
// The name of the request header that will be used to obtain the hash
// key. If the request header is not present, the load balancer will use a
// random number as the hash, effectively making the load balancing policy
// random.
// key. If the request header is not present, no hash will be produced.
string header_name = 1;
}
// Envoy supports two types of cookie affinity:
Expand All @@ -227,14 +225,16 @@ message RouteAction {
// 2. Generated. Envoy generates and sets a cookie with an expiration (TTL)
// on the first request from the client in its response to the client,
// based on the endpoint the request gets sent to. The client then
// presents this on the next and all subsequent requests, the hash of
// presents this on the next and all subsequent requests. The hash of
// this is sufficient to ensure these requests get sent to the same
// endpoint.
// endpoint. The cookie is generated by hashing the source and
// destination ports and addresses so that multiple independent HTTP2
// streams on the same connection will independently receive the same
// cookie, even if they arrive at the Envoy simultaneously.
message Cookie {
// The name of the cookie that will be used to obtain the hash key. If the
// cookie is not present and ttl below is not set, the load balancer will
// use a random number as the hash, effectively making the load balancing
// policy random.
// cookie is not present and ttl below is not set, no hash will be
// produced.
string name = 1;
// If specified, a cookie with the TTL will be generated if the cookie is
// not present.
Expand All @@ -250,6 +250,16 @@ message RouteAction {
ConnectionProperties connection_properties = 3;
}
}
// Specifies a list of hash policies to use for ring hash load balancing. Each
// hash policy is evaluated individually and the combined result is used to
// route the request. The method of combination is deterministic such that
// identical lists of hash policies will produce the same hash. Since a hash
// policy examines specific parts of a request, it can fail to produce a hash
// (i.e. if the hashed header is not present). If (and only if) all configured
// hash policies fail to generate a hash, no hash will be produced for
// the route. In this case, the behavior is the same as if no hash policies
// were specified (i.e. the ring hash load balancer will choose a random
// backend).
repeated HashPolicy hash_policy = 15;

// Indicates that a HTTP/1.1 client connection to this particular route
Expand Down