Well Known Filter State Objects

The following lists the filter state object keys used by the Envoy extensions:

envoy.network.upstream_server_name

Sets the transport socket option to override the SNI in the upstream connections. Accepts a host name as a constructor, e.g. “lyft.com”.

envoy.network.application_protocols

Sets the transport socket option to override the ALPN list in the upstream connections. This setting takes precedence over the upstream cluster configuration. Accepts a comma-separated list of protocols as a constructor, e.g. “h2,http/1.1”.

envoy.network.upstream_subject_alt_names

Enables additional verification of the upstream peer certificate SAN names. Accepts a comma-separated list of SAN names as a constructor.

envoy.tcp_proxy.cluster

TCP proxy dynamic cluster name selection on a per-connection basis. Accepts a cluster name as a constructor.

envoy.udp_proxy.cluster

UDP proxy dynamic cluster name selection on a per-session basis. Accepts a cluster name as a constructor.

envoy.network.transport_socket.original_dst_address

Original destination cluster dynamic address selection. Accepts an IP:PORT string as a constructor. Fields:

  • ip: IP address value as a string;

  • port: port value as a number.

envoy.filters.listener.original_dst.local_ip

Original destination listener filter destination address selection for the internal listeners. Accepts an IP:PORT string as a constructor. Fields:

  • ip: IP address value as a string;

  • port: port value as a number.

envoy.filters.listener.original_dst.remote_ip

Original destination listener filter source address selection for the internal listeners. Accepts an IP:PORT string as a constructor. Fields:

  • ip: IP address value as a string;

  • port: port value as a number.

envoy.upstream.dynamic_host

Dynamic forward proxy upstream host override on a per-connection basis. Accepts a host string as a constructor.

envoy.upstream.dynamic_port

Dynamic forward proxy upstream port override on a per-connection basis. Accepts a port number string as a constructor.

envoy.tcp_proxy.disable_tunneling

TCP proxy tunneling override to disable tunneling on a per-connection bases. Accepts values “true” and “false”.

envoy.filters.network.http_connection_manager.local_reply_owner

Shared filter status for logging which filter config name in the HTTP filter chain sent the local reply.

envoy.string

A special generic string object factory, to be used as a factory lookup key.

envoy.tcp_proxy.per_connection_idle_timeout_ms

TCP proxy idle timeout duration override on a per-connection basis. Accepts a count of milliseconds number string as a constructor.

envoy.ratelimit.hits_addend

Rate Limit Hits Addend override on a per-route basis. Accepts a number string as a constructor.

Filter state object fields

The filter state object fields can be used in the format strings. For example, the following format string references the port number in the original destination cluster filter state object:

%FILTER_STATE(envoy.network.transport_socket.original_dst_address:FIELD:port)%