syntax = "proto3"; package envoy.extensions.load_balancing_policies.maglev.v3; import "envoy/extensions/load_balancing_policies/common/v3/common.proto"; import "google/protobuf/wrappers.proto"; import "udpa/annotations/status.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.extensions.load_balancing_policies.maglev.v3"; option java_outer_classname = "MaglevProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/load_balancing_policies/maglev/v3;maglevv3"; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Maglev Load Balancing Policy] // [#extension: envoy.load_balancing_policies.maglev] // This configuration allows the built-in Maglev LB policy to be configured via the LB policy // extension point. See the :ref:`load balancing architecture overview // ` and :ref:`Maglev` for more information. message Maglev { // The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee. // Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same // upstream as it was before. Increasing the table size reduces the amount of disruption. // The table size must be prime number limited to 5000011. If it is not specified, the default is 65537. google.protobuf.UInt64Value table_size = 1 [(validate.rules).uint64 = {lte: 5000011}]; // Common configuration for hashing-based load balancing policies. common.v3.ConsistentHashingLbConfig consistent_hashing_lb_config = 2; // Enable locality weighted load balancing for maglev lb explicitly. common.v3.LocalityLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; }