Listener: extend connection balancer (#20268)

Signed-off-by: Loong Dai <loong.dai@intel.com>

Mirrored from https://github.com/envoyproxy/envoy @ 2167cb3b0bc0353cf53bca4a14a846c19de59018
pull/626/head
data-plane-api(Azure Pipelines) 2 years ago
parent 01c9cb2f98
commit 73fdc08d54
  1. 1
      BUILD
  2. 9
      contrib/envoy/extensions/network/connection_balance/dlb/v3alpha/BUILD
  3. 30
      contrib/envoy/extensions/network/connection_balance/dlb/v3alpha/dlb.proto
  4. 6
      envoy/config/listener/v3/listener.proto
  5. 1
      versioning/BUILD

@ -86,6 +86,7 @@ proto_library(
"//contrib/envoy/extensions/filters/network/sip_proxy/tra/v3alpha:pkg",
"//contrib/envoy/extensions/filters/network/sip_proxy/v3alpha:pkg",
"//contrib/envoy/extensions/matching/input_matchers/hyperscan/v3alpha:pkg",
"//contrib/envoy/extensions/network/connection_balance/dlb/v3alpha:pkg",
"//contrib/envoy/extensions/private_key_providers/cryptomb/v3alpha:pkg",
"//contrib/envoy/extensions/vcl/v3alpha:pkg",
"//envoy/admin/v3:pkg",

@ -0,0 +1,9 @@
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py.
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")
licenses(["notice"]) # Apache 2
api_proto_package(
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"],
)

@ -0,0 +1,30 @@
syntax = "proto3";
package envoy.extensions.network.connection_balance.dlb.v3alpha;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.extensions.network.connection_balance.dlb.v3alpha";
option java_outer_classname = "DlbProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/network/connection_balance/dlb/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Dlb connection balancer configuration]
// DLB :ref:`configuration overview <config_connection_balance_dlb>`.
// [#extension: envoy.network.connection_balance.dlb]
// The Dlb is a hardware managed system of queues and arbiters connecting producers and consumers. It is a PCIE device
// in the CPU package. It interacts with software running on cores and potentially other devices. The Dlb implements the
// following balancing features:
//
// - Lock-free multi-producer/multi-consumer operation.
// - Multiple priorities for varying traffic types.
// - Various distribution schemes.
//
// Dlb connection balancer uses Dlb hardware to balance connections, and can significantly reduce latency.
//
// As the Dlb connection balancer provides assistance from dedicated Dlb hardware, it can be used for a proxy with a large number of connections
// (e.g., a gateway).
message Dlb {
}

@ -5,6 +5,7 @@ package envoy.config.listener.v3;
import "envoy/config/accesslog/v3/accesslog.proto";
import "envoy/config/core/v3/address.proto";
import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/extension.proto";
import "envoy/config/core/v3/socket_option.proto";
import "envoy/config/listener/v3/api_listener.proto";
import "envoy/config/listener/v3/listener_components.proto";
@ -94,6 +95,11 @@ message Listener {
// If specified, the listener will use the exact connection balancer.
ExactBalance exact_balance = 1;
// The listener will use the connection balancer according to ``type_url``. If ``type_url`` is invalid,
// Envoy will not attempt to balance active connections between worker threads.
// [#extension-category: envoy.network.connection_balance]
core.v3.TypedExtensionConfig extend_balance = 2;
}
}

@ -23,6 +23,7 @@ proto_library(
"//contrib/envoy/extensions/filters/network/sip_proxy/tra/v3alpha:pkg",
"//contrib/envoy/extensions/filters/network/sip_proxy/v3alpha:pkg",
"//contrib/envoy/extensions/matching/input_matchers/hyperscan/v3alpha:pkg",
"//contrib/envoy/extensions/network/connection_balance/dlb/v3alpha:pkg",
"//contrib/envoy/extensions/private_key_providers/cryptomb/v3alpha:pkg",
"//contrib/envoy/extensions/vcl/v3alpha:pkg",
"//envoy/admin/v3:pkg",

Loading…
Cancel
Save