package envoy.api.v2.route

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message CorsPolicy

route_components.proto:489

[#next-free-field: 12]

Used in: RouteAction, VirtualHost

message Decorator

route_components.proto:1249

Used in: Route

message DirectResponseAction

route_components.proto:1234

Used in: Route

message FilterAction

route_components.proto:187

A filter-defined action type.

Used in: Route

message HeaderMatcher

route_components.proto:1517

.. attention:: Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host* header. Thus, if attempting to match on *Host*, match on *:authority* instead. .. attention:: To route on HTTP method, use the special HTTP/2 *:method* header. This works for both HTTP/1 and HTTP/2 as Envoy normalizes headers. E.g., .. code-block:: json { "name": ":method", "exact_match": "POST" } .. attention:: In the absence of any header match specifier, match will default to :ref:`present_match <envoy_api_field_route.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name <envoy_api_field_route.HeaderMatcher.name>` header will match, regardless of the header's value. [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.] [#next-free-field: 12]

Used in: RateLimit.Action.HeaderValueMatch, RetryPolicy, RouteMatch, VirtualCluster, config.filter.accesslog.v2.HeaderFilter, config.filter.http.fault.v2.HTTPFault, config.filter.http.health_check.v2.HealthCheck, config.filter.network.dubbo_proxy.v2alpha1.RouteMatch, config.filter.network.thrift_proxy.v2alpha1.RouteMatch, config.rbac.v2.Permission, config.rbac.v2.Principal, service.tap.v2alpha.HttpHeadersMatch

message HedgePolicy

route_components.proto:1125

HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.

Used in: RouteAction, VirtualHost

message QueryParameterMatcher

route_components.proto:1600

Query parameter matching treats the query string of a request's :path header as an ampersand-separated list of keys and/or key=value elements. [#next-free-field: 7]

Used in: RouteMatch, config.filter.http.cache.v2alpha.CacheConfig.KeyCreatorParams

message RateLimit

route_components.proto:1356

Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.

Used in: RouteAction, VirtualHost, config.filter.network.thrift_proxy.v2alpha1.RouteAction

message RateLimit.Action

route_components.proto:1358

[#next-free-field: 7]

Used in: RateLimit

message RateLimit.Action.DestinationCluster

route_components.proto:1385

The following descriptor entry is appended to the descriptor: .. code-block:: cpp ("destination_cluster", "<routed target cluster>") Once a request matches against a route table rule, a routed cluster is determined by one of the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>` settings: * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster to route to. * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>` chooses a cluster randomly from a set of clusters with attributed weight. * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which header in the request contains the target cluster.

Used in: Action

(message has no fields)

message RateLimit.Action.GenericKey

route_components.proto:1420

The following descriptor entry is appended to the descriptor: .. code-block:: cpp ("generic_key", "<descriptor_value>")

Used in: Action

message RateLimit.Action.HeaderValueMatch

route_components.proto:1430

The following descriptor entry is appended to the descriptor: .. code-block:: cpp ("header_match", "<descriptor_value>")

Used in: Action

message RateLimit.Action.RemoteAddress

route_components.proto:1412

The following descriptor entry is appended to the descriptor and is populated using the trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`: .. code-block:: cpp ("remote_address", "<trusted address from x-forwarded-for>")

Used in: Action

(message has no fields)

message RateLimit.Action.RequestHeaders

route_components.proto:1394

The following descriptor entry is appended when a header contains a key that matches the *header_name*: .. code-block:: cpp ("<descriptor_key>", "<header_value_queried_from_header>")

Used in: Action

message RateLimit.Action.SourceCluster

route_components.proto:1366

The following descriptor entry is appended to the descriptor: .. code-block:: cpp ("source_cluster", "<local service cluster>") <local service cluster> is derived from the :option:`--service-cluster` option.

Used in: Action

(message has no fields)

message RedirectAction

route_components.proto:1155

[#next-free-field: 9]

Used in: Route

enum RedirectAction.RedirectResponseCode

route_components.proto:1156

Used in: RedirectAction

message RetryPolicy

route_components.proto:1028

HTTP retry :ref:`architecture overview <arch_overview_http_routing_retry>`. [#next-free-field: 11]

Used in: RouteAction, VirtualHost

message RetryPolicy.RetryBackOff

route_components.proto:1049

Used in: RetryPolicy

message RetryPolicy.RetryHostPredicate

route_components.proto:1039

Used in: RetryPolicy

message RetryPolicy.RetryPriority

route_components.proto:1029

Used in: RetryPolicy

message Route

route_components.proto:199

A route is both a specification of how to match a request as well as an indication of what to do next (e.g., redirect, forward, rewrite, etc.). .. attention:: Envoy supports routing on HTTP method via :ref:`header matching <envoy_api_msg_route.HeaderMatcher>`. [#next-free-field: 18]

Used in: VirtualHost

message RouteAction

route_components.proto:561

[#next-free-field: 34]

Used in: Route

enum RouteAction.ClusterNotFoundResponseCode

route_components.proto:562

Used in: RouteAction

message RouteAction.HashPolicy

route_components.proto:626

Specifies the route's hashing policy if the upstream cluster uses a hashing :ref:`load balancer <arch_overview_load_balancing_types>`. [#next-free-field: 7]

Used in: RouteAction

message RouteAction.HashPolicy.ConnectionProperties

route_components.proto:665

Used in: HashPolicy

message RouteAction.HashPolicy.Cookie

route_components.proto:649

Envoy supports two types of cookie affinity: 1. Passive. Envoy takes a cookie that's present in the cookies header and hashes on its value. 2. Generated. Envoy generates and sets a cookie with an expiration (TTL) on the first request from the client in its response to the client, based on the endpoint the request gets sent to. The client then presents this on the next and all subsequent requests. The hash of this is sufficient to ensure these requests get sent to the same endpoint. The cookie is generated by hashing the source and destination ports and addresses so that multiple independent HTTP2 streams on the same connection will independently receive the same cookie, even if they arrive at the Envoy simultaneously.

Used in: HashPolicy

message RouteAction.HashPolicy.FilterState

route_components.proto:677

Used in: HashPolicy

message RouteAction.HashPolicy.Header

route_components.proto:627

Used in: HashPolicy

message RouteAction.HashPolicy.QueryParameter

route_components.proto:670

Used in: HashPolicy

enum RouteAction.InternalRedirectAction

route_components.proto:571

Configures :ref:`internal redirect <arch_overview_internal_redirects>` behavior.

Used in: RouteAction

message RouteAction.RequestMirrorPolicy

route_components.proto:587

The router is capable of shadowing traffic from one cluster to another. The current implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to respond before returning the response from the primary cluster. All normal statistics are collected for the shadow cluster making this feature useful for testing. During shadowing, the host/authority header is altered such that *-shadow* is appended. This is useful for logging. For example, *cluster1* becomes *cluster1-shadow*. .. note:: Shadowing will not be triggered if the primary cluster does not exist.

Used in: RouteAction

message RouteAction.UpgradeConfig

route_components.proto:731

Allows enabling and disabling upgrades on a per-route basis. This overrides any enabled/disabled upgrade filter chain specified in the HttpConnectionManager :ref:`upgrade_configs <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.upgrade_configs>` but does not affect any custom filter chain specified there.

Used in: RouteAction

message RouteMatch

route_components.proto:376

[#next-free-field: 12]

Used in: Route, config.filter.http.jwt_authn.v2alpha.RequirementRule

message RouteMatch.GrpcRouteMatchOptions

route_components.proto:377

Used in: RouteMatch

(message has no fields)

message RouteMatch.TlsContextMatchOptions

route_components.proto:380

Used in: RouteMatch

message Tracing

route_components.proto:1264

Used in: Route

message VirtualCluster

route_components.proto:1316

A virtual cluster is a way of specifying a regex matching rule against certain important endpoints such that statistics are generated explicitly for the matched requests. The reason this is useful is that when doing prefix/path matching Envoy does not always know what the application considers to be an endpoint. Thus, it’s impossible for Envoy to generically emit per endpoint statistics. However, often systems have highly critical endpoints that they wish to get “perfect” statistics on. Virtual cluster statistics are perfect in the sense that they are emitted on the downstream side such that they include network level failures. Documentation for :ref:`virtual cluster statistics <config_http_filters_router_vcluster_stats>`. .. note:: Virtual clusters are a useful tool, but we do not recommend setting up a virtual cluster for every application endpoint. This is both not easily maintainable and as well the matching and statistics output are not free.

Used in: VirtualHost

message VirtualHost

route_components.proto:39

The top level element in the routing configuration is a virtual host. Each virtual host has a logical name as well as a set of domains that get routed to it based on the incoming request's host header. This allows a single listener to service multiple top level domain path trees. Once a virtual host is selected based on the domain, the routes are processed in order to see which upstream cluster to route to or whether to perform a redirect. [#next-free-field: 21]

Used in: RouteConfiguration

enum VirtualHost.TlsRequirementType

route_components.proto:40

Used in: VirtualHost

message WeightedCluster

route_components.proto:292

Compared to the :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` field that specifies a single upstream cluster as the target of a request, the :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>` option allows for specification of multiple upstream clusters along with weights that indicate the percentage of traffic to be forwarded to each cluster. The router selects an upstream cluster based on the weights.

Used in: RouteAction, config.filter.network.dubbo_proxy.v2alpha1.RouteAction

message WeightedCluster.ClusterWeight

route_components.proto:294

[#next-free-field: 11]

Used in: WeightedCluster