You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.6 KiB
71 lines
2.6 KiB
syntax = "proto3"; |
|
|
|
package envoy.api.v2; |
|
|
|
import "google/protobuf/wrappers.proto"; |
|
|
|
import "validate/validate.proto"; |
|
|
|
// [#protodoc-title: Network addresses] |
|
// [#v2-api-diff: Addresses now have .proto structure.] |
|
|
|
message Pipe { |
|
// Unix Domain Socket path. |
|
string path = 1 [(validate.rules).string.min_bytes = 1]; |
|
} |
|
|
|
message SocketAddress { |
|
enum Protocol { |
|
TCP = 0; |
|
// [#not-implemented-hide:] |
|
UDP = 1; |
|
} |
|
Protocol protocol = 1 [(validate.rules).enum = {in: [0]}]; |
|
// The address for this socket. :ref:`Listeners <config_listeners>` will bind |
|
// to the address or outbound connections will be made. An empty address |
|
// implies a bind to 0.0.0.0 or ::. It's still possible to distinguish on an |
|
// address via the prefix/suffix matching in FilterChainMatch after connection. |
|
// For :ref:`clusters <config_cluster_manager_cluster>`, an address may be |
|
// either an IP or hostname to be resolved via DNS. If it is a hostname, |
|
// :ref:`resolver_name <envoy_api_field_SocketAddress.resolver_name>` should |
|
// be set unless default (i.e. DNS) resolution is expected. |
|
string address = 2; |
|
oneof port_specifier { |
|
option (validate.required) = true; |
|
uint32 port_value = 3; |
|
// This is only valid if :ref:`resolver_name |
|
// <envoy_api_field_SocketAddress.resolver_name>` is specified below and the |
|
// named resolver is capable of named port resolution. |
|
string named_port = 4; |
|
} |
|
// The name of the resolver. This must have been registered with Envoy. If this is |
|
// empty, a context dependent default applies. If address is a hostname this |
|
// should be set for resolution other than DNS. If the address is a concrete |
|
// IP address, no resolution will occur. |
|
string resolver_name = 5; |
|
} |
|
|
|
message BindConfig { |
|
// The address to bind to when creating a socket. |
|
SocketAddress source_address = 1 [(validate.rules).message.required = true]; |
|
} |
|
|
|
// Addresses specify either a logical or physical address and port, which are |
|
// used to tell Envoy where to bind/listen, connect to upstream and find |
|
// management servers. |
|
message Address { |
|
oneof address { |
|
option (validate.required) = true; |
|
SocketAddress socket_address = 1; |
|
Pipe pipe = 2; |
|
} |
|
} |
|
|
|
// CidrRange specifies an IP Address and a prefix length to construct |
|
// the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range. |
|
message CidrRange { |
|
// IPv4 or IPv6 address, e.g. 192.0.0.0 or 2001:db8::. |
|
string address_prefix = 1 [(validate.rules).string.min_bytes = 1]; |
|
// Length of prefix, e.g. 0, 32. |
|
google.protobuf.UInt32Value prefix_len = 2 [(validate.rules).uint32.lte = 128]; |
|
}
|
|
|