.. _envoy_api_file_envoy/api/v2/core/address.proto: Network addresses ================= .. _envoy_api_msg_core.Pipe: core.Pipe --------- `[core.Pipe proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L18>`_ .. code-block:: json { "path": "...", "mode": "..." } .. _envoy_api_field_core.Pipe.path: path (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) Unix Domain Socket path. On Linux, paths starting with '@' will use the abstract namespace. The starting '@' is replaced by a null byte by Envoy. Paths starting with '@' will result in an error in environments other than Linux. .. _envoy_api_field_core.Pipe.mode: mode (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The mode for the Pipe. Not applicable for abstract sockets. .. _envoy_api_msg_core.SocketAddress: core.SocketAddress ------------------ `[core.SocketAddress proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L30>`_ .. code-block:: json { "protocol": "...", "address": "...", "port_value": "...", "named_port": "...", "resolver_name": "...", "ipv4_compat": "..." } .. _envoy_api_field_core.SocketAddress.protocol: protocol (:ref:`core.SocketAddress.Protocol <envoy_api_enum_core.SocketAddress.Protocol>`) .. _envoy_api_field_core.SocketAddress.address: address (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The address for this socket. :ref:`Listeners <config_listeners>` will bind to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to bind to any address. When used within an upstream :ref:`BindConfig <envoy_api_msg_core.BindConfig>`, the address controls the source address of outbound connections. For :ref:`clusters <envoy_api_msg_Cluster>`, the cluster type determines whether the address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized via :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>`. .. _envoy_api_field_core.SocketAddress.port_value: port_value (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Precisely one of :ref:`port_value <envoy_api_field_core.SocketAddress.port_value>`, :ref:`named_port <envoy_api_field_core.SocketAddress.named_port>` must be set. .. _envoy_api_field_core.SocketAddress.named_port: named_port (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) This is only valid if :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>` is specified below and the named resolver is capable of named port resolution. Precisely one of :ref:`port_value <envoy_api_field_core.SocketAddress.port_value>`, :ref:`named_port <envoy_api_field_core.SocketAddress.named_port>` must be set. .. _envoy_api_field_core.SocketAddress.resolver_name: resolver_name (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The name of the custom resolver. This must have been registered with Envoy. If this is empty, a context dependent default applies. If the address is a concrete IP address, no resolution will occur. If address is a hostname this should be set for resolution other than DNS. Specifying a custom resolver with *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime. .. _envoy_api_field_core.SocketAddress.ipv4_compat: ipv4_compat (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) When binding to an IPv6 address above, this enables `IPv4 compatibility <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` will allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into IPv6 space as ``::FFFF:<IPv4-address>``. .. _envoy_api_enum_core.SocketAddress.Protocol: Enum core.SocketAddress.Protocol -------------------------------- `[core.SocketAddress.Protocol proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L31>`_ .. _envoy_api_enum_value_core.SocketAddress.Protocol.TCP: TCP *(DEFAULT)* .. _envoy_api_enum_value_core.SocketAddress.Protocol.UDP: UDP .. _envoy_api_msg_core.TcpKeepalive: core.TcpKeepalive ----------------- `[core.TcpKeepalive proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L76>`_ .. code-block:: json { "keepalive_probes": "{...}", "keepalive_time": "{...}", "keepalive_interval": "{...}" } .. _envoy_api_field_core.TcpKeepalive.keepalive_probes: keepalive_probes (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.) .. _envoy_api_field_core.TcpKeepalive.keepalive_time: keepalive_time (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The number of seconds a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.) .. _envoy_api_field_core.TcpKeepalive.keepalive_interval: keepalive_interval (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The number of seconds between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.) .. _envoy_api_msg_core.BindConfig: core.BindConfig --------------- `[core.BindConfig proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L92>`_ .. code-block:: json { "source_address": "{...}", "freebind": "{...}", "socket_options": [] } .. _envoy_api_field_core.BindConfig.source_address: source_address (:ref:`core.SocketAddress <envoy_api_msg_core.SocketAddress>`, *REQUIRED*) The address to bind to when creating a socket. .. _envoy_api_field_core.BindConfig.freebind: freebind (`BoolValue <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue>`_) Whether to set the *IP_FREEBIND* option when creating the socket. When this flag is set to true, allows the :ref:`source_address <envoy_api_field_UpstreamBindConfig.source_address>` to be an IP address that is not configured on the system running Envoy. When this flag is set to false, the option *IP_FREEBIND* is disabled on the socket. When this flag is not set (default), the socket is not modified, i.e. the option is neither enabled nor disabled. .. _envoy_api_field_core.BindConfig.socket_options: socket_options (:ref:`core.SocketOption <envoy_api_msg_core.SocketOption>`) Additional socket options that may not be present in Envoy source code or precompiled binaries. .. _envoy_api_msg_core.Address: core.Address ------------ `[core.Address proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L113>`_ 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. .. code-block:: json { "socket_address": "{...}", "pipe": "{...}" } .. _envoy_api_field_core.Address.socket_address: socket_address (:ref:`core.SocketAddress <envoy_api_msg_core.SocketAddress>`) Precisely one of :ref:`socket_address <envoy_api_field_core.Address.socket_address>`, :ref:`pipe <envoy_api_field_core.Address.pipe>` must be set. .. _envoy_api_field_core.Address.pipe: pipe (:ref:`core.Pipe <envoy_api_msg_core.Pipe>`) Precisely one of :ref:`socket_address <envoy_api_field_core.Address.socket_address>`, :ref:`pipe <envoy_api_field_core.Address.pipe>` must be set. .. _envoy_api_msg_core.CidrRange: core.CidrRange -------------- `[core.CidrRange proto] <https://github.com/envoyproxy/envoy/blob/v1.13.6/api/envoy/api/v2/core/address.proto#L125>`_ CidrRange specifies an IP Address and a prefix length to construct the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range. .. code-block:: json { "address_prefix": "...", "prefix_len": "{...}" } .. _envoy_api_field_core.CidrRange.address_prefix: address_prefix (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``. .. _envoy_api_field_core.CidrRange.prefix_len: prefix_len (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) Length of prefix, e.g. 0, 32.