.. _envoy_v3_api_file_envoy/config/core/v3/address.proto:

Network addresses
=================


.. _envoy_v3_api_msg_config.core.v3.Pipe:

config.core.v3.Pipe
-------------------

`[config.core.v3.Pipe proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L19>`_


.. code-block:: json

  {
    "path": "...",
    "mode": "..."
  }

.. _envoy_v3_api_field_config.core.v3.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_v3_api_field_config.core.v3.Pipe.mode:

mode
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The mode for the Pipe. Not applicable for abstract sockets.
  
  



.. _envoy_v3_api_msg_config.core.v3.SocketAddress:

config.core.v3.SocketAddress
----------------------------

`[config.core.v3.SocketAddress proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L45>`_


.. code-block:: json

  {
    "protocol": "...",
    "address": "...",
    "port_value": "...",
    "named_port": "...",
    "resolver_name": "...",
    "ipv4_compat": "..."
  }

.. _envoy_v3_api_field_config.core.v3.SocketAddress.protocol:

protocol
  (:ref:`config.core.v3.SocketAddress.Protocol <envoy_v3_api_enum_config.core.v3.SocketAddress.Protocol>`) 
  
.. _envoy_v3_api_field_config.core.v3.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_v3_api_msg_config.core.v3.BindConfig>`, the address
  controls the source address of outbound connections. For :ref:`clusters
  <envoy_v3_api_msg_config.cluster.v3.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_v3_api_field_config.core.v3.SocketAddress.resolver_name>`.
  
  
.. _envoy_v3_api_field_config.core.v3.SocketAddress.port_value:

port_value
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) 
  
  
  Precisely one of :ref:`port_value <envoy_v3_api_field_config.core.v3.SocketAddress.port_value>`, :ref:`named_port <envoy_v3_api_field_config.core.v3.SocketAddress.named_port>` must be set.
  
.. _envoy_v3_api_field_config.core.v3.SocketAddress.named_port:

named_port
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) This is only valid if :ref:`resolver_name
  <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the
  named resolver is capable of named port resolution.
  
  
  
  Precisely one of :ref:`port_value <envoy_v3_api_field_config.core.v3.SocketAddress.port_value>`, :ref:`named_port <envoy_v3_api_field_config.core.v3.SocketAddress.named_port>` must be set.
  
.. _envoy_v3_api_field_config.core.v3.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_v3_api_field_config.core.v3.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_v3_api_enum_config.core.v3.SocketAddress.Protocol:

Enum config.core.v3.SocketAddress.Protocol
------------------------------------------

`[config.core.v3.SocketAddress.Protocol proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L48>`_


.. _envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.TCP:

TCP
  *(DEFAULT)* ⁣
  
.. _envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP:

UDP
  ⁣
  

.. _envoy_v3_api_msg_config.core.v3.TcpKeepalive:

config.core.v3.TcpKeepalive
---------------------------

`[config.core.v3.TcpKeepalive proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L93>`_


.. code-block:: json

  {
    "keepalive_probes": "{...}",
    "keepalive_time": "{...}",
    "keepalive_interval": "{...}"
  }

.. _envoy_v3_api_field_config.core.v3.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_v3_api_field_config.core.v3.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 (i.e., 2 hours.)
  
  
.. _envoy_v3_api_field_config.core.v3.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_v3_api_msg_config.core.v3.BindConfig:

config.core.v3.BindConfig
-------------------------

`[config.core.v3.BindConfig proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L111>`_


.. code-block:: json

  {
    "source_address": "{...}",
    "freebind": "{...}",
    "socket_options": []
  }

.. _envoy_v3_api_field_config.core.v3.BindConfig.source_address:

source_address
  (:ref:`config.core.v3.SocketAddress <envoy_v3_api_msg_config.core.v3.SocketAddress>`, *REQUIRED*) The address to bind to when creating a socket.
  
  
.. _envoy_v3_api_field_config.core.v3.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_v3_api_field_config.cluster.v3.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_v3_api_field_config.core.v3.BindConfig.socket_options:

socket_options
  (:ref:`config.core.v3.SocketOption <envoy_v3_api_msg_config.core.v3.SocketOption>`) Additional socket options that may not be present in Envoy source code or
  precompiled binaries.
  
  


.. _envoy_v3_api_msg_config.core.v3.Address:

config.core.v3.Address
----------------------

`[config.core.v3.Address proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L134>`_

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_v3_api_field_config.core.v3.Address.socket_address:

socket_address
  (:ref:`config.core.v3.SocketAddress <envoy_v3_api_msg_config.core.v3.SocketAddress>`) 
  
  
  Precisely one of :ref:`socket_address <envoy_v3_api_field_config.core.v3.Address.socket_address>`, :ref:`pipe <envoy_v3_api_field_config.core.v3.Address.pipe>` must be set.
  
.. _envoy_v3_api_field_config.core.v3.Address.pipe:

pipe
  (:ref:`config.core.v3.Pipe <envoy_v3_api_msg_config.core.v3.Pipe>`) 
  
  
  Precisely one of :ref:`socket_address <envoy_v3_api_field_config.core.v3.Address.socket_address>`, :ref:`pipe <envoy_v3_api_field_config.core.v3.Address.pipe>` must be set.
  



.. _envoy_v3_api_msg_config.core.v3.CidrRange:

config.core.v3.CidrRange
------------------------

`[config.core.v3.CidrRange proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L151>`_

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_v3_api_field_config.core.v3.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_v3_api_field_config.core.v3.CidrRange.prefix_len:

prefix_len
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) Length of prefix, e.g. 0, 32.