Add `ClientSideWeightedRoundRobin` LB Policy. (#35905)

Commit Message:

- Add `ClientSideWeightedRoundRobinLoadBalancer`.
  - Attach `ClientSideHostLbPolicyData` to each `Host`.
- Add `OrcaLoadReportCallbacks` callback to each `LoadBalancerContext`.
- Calculate weights in `Host::ClientSideHostLbPolicyData` based on
OrcaLoadReport.
- Periodically update `Host::weight` for load balancing using calculated
weights.
- Add `host` reference to `OrcaLoadReportCallbacks::onOrcaLoadReport`
callback.

Risk Level: low
Testing: `bazel test
//test/extensions/load_balancing_policies/client_side_weighted_round_robin/...`
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

#34777

---------

Signed-off-by: Misha Efimov <mef@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 89d485de2bdf741e4c010eccad9539db18e61202
main
update-envoy[bot] 2 months ago
parent def3553c1e
commit c7ef8db086
  1. 1
      BUILD
  2. 2
      envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.proto

@ -276,6 +276,7 @@ proto_library(
"//envoy/extensions/internal_redirect/previous_routes/v3:pkg",
"//envoy/extensions/internal_redirect/safe_cross_scheme/v3:pkg",
"//envoy/extensions/key_value/file_based/v3:pkg",
"//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg",
"//envoy/extensions/load_balancing_policies/cluster_provided/v3:pkg",
"//envoy/extensions/load_balancing_policies/common/v3:pkg",
"//envoy/extensions/load_balancing_policies/least_request/v3:pkg",

@ -15,7 +15,7 @@ option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/loa
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Client-Side Weighted Round Robin Load Balancing Policy]
// [#not-implemented-hide:]
// [#extension: envoy.load_balancing_policies.client_side_weighted_round_robin]
// Configuration for the client_side_weighted_round_robin LB policy.
//

Loading…
Cancel
Save