diff --git a/api/envoy/admin/v3/listeners.proto b/api/envoy/admin/v3/listeners.proto index 86e35890bd67..746ab3db3e7b 100644 --- a/api/envoy/admin/v3/listeners.proto +++ b/api/envoy/admin/v3/listeners.proto @@ -34,4 +34,9 @@ message ListenerStatus { // The actual local address that the listener is listening on. If a listener was configured // to listen on port 0, then this address has the port that was allocated by the OS. config.core.v3.Address local_address = 2; + + // The additional addresses the listener is listening on as specified via the :ref:`additional_addresses ` + // configuration. + // [#not-implemented-hide:] + repeated config.core.v3.Address additional_local_addresses = 3; } diff --git a/api/envoy/config/listener/v3/listener.proto b/api/envoy/config/listener/v3/listener.proto index d8982b0a97a7..5dcddadc7d04 100644 --- a/api/envoy/config/listener/v3/listener.proto +++ b/api/envoy/config/listener/v3/listener.proto @@ -32,13 +32,19 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Listener configuration] // Listener :ref:`configuration overview ` +// The additional address the listener is listening on. +// [#not-implemented-hide:] +message AdditionalAddress { + core.v3.Address address = 1; +} + // Listener list collections. Entries are *Listener* resources or references. // [#not-implemented-hide:] message ListenerCollection { repeated xds.core.v3.CollectionEntry entries = 1; } -// [#next-free-field: 33] +// [#next-free-field: 34] message Listener { option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Listener"; @@ -109,6 +115,12 @@ message Listener { // Required unless *api_listener* or *listener_specifier* is populated. core.v3.Address address = 2; + // The additional addresses the listener should listen on. The addresses must be unique across all + // listeners. Multiple addresses with port 0 can be supplied. When using multiple addresses in a single listener, + // all addresses use the same protocol, and multiple internal addresses are not supported. + // [#not-implemented-hide:] + repeated AdditionalAddress additional_addresses = 33; + // Optional prefix to use on listener stats. If empty, the stats will be rooted at // `listener.
.`. If non-empty, stats will be rooted at // `listener..`.