syntax = "proto3"; package envoy.api.v2; import "google/protobuf/wrappers.proto"; // protodoc-title: Network related configuration elements // [V2-API-DIFF] Addresses now have .proto structure. message Pipe { string path = 1; } message SocketAddress { enum Protocol { TCP = 0; UDP = 1; } Protocol protocol = 1; // The address for this socket. Listeners will bind to the address. An empty // address implies a bind to 0.0.0.0 or ::. It's still possible to distinguish on // address via the prefix/suffix matching in FilterChainMatch after connection. // For clusters, an address may be either an IP or hostname to be resolved via // DNS. If it is a hostname, resolver_name should be set. string address = 2; oneof port_specifier { uint32 port_value = 3; // This is only valid if DNS SRV or if 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. 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; } // 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 { SocketAddress socket_address = 1; Pipe pipe = 2; } } // CidrRange specifies an IP Address and a prefix length to construct // the subnet mask. message CidrRange { string address_prefix = 1; google.protobuf.UInt32Value prefix_len = 2; }