Well Known Filter State Objects

The following list of filter state objects are consumed by 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.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”.

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)%