# Protocols

![Protocols](https://1676458320-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LsNFVozLgvw3NDMzxBg%2Fsync%2F921e62949ecb6a1b96889ab7db4fdc8a8df67735.png?generation=1605200968704922\&alt=media)

The dashboard displays one or more protocols for each service. Protocols are determined for each listener [announced in the mesh](https://greymatter.gitbook.io/grey-matter-documentation/1.3/usage/discovery). Note that multiple listeners may be configured for each service, each with distinct protocol types.

Protocols are shown as badges on the service cards/list items, separated by commas. Services can be filtered, grouped, and sorted on all of the following protocols.

## Plaintext Protocols

Protocols are identified as plaintext if the following criteria are true:

* `ssl_config` is not set on the [domain](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/domain)
* `force_https` is set to `false` on the [domain](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/domain)

### `HTTP`

In addition to the plaintext protocol requirements listed above, a service is labeled as HTTP if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is **not** set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `HTTP2`

In addition to the plaintext protocol requirements listed above, a service is labeled as HTTP2 if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `WebSocket`

In addition to the plaintext protocol requirements listed above, a service is labeled as WebSocket if `upgrades: "websocket"` is set on the [proxy](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/proxy).

### `TCP`

In addition to the plaintext protocol requirements listed above, a service is labeled as `TCP` if `envoy.tcp_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Mongo`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Mongo` if `envoy.mongo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Redis`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Redis` if `envoy.redis_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Kafka`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Kafka` if `envoy.kafka_broker` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Dubbo`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Dubbo` if `envoy.dubbo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `MySQL`

In addition to the plaintext protocol requirements listed above, a service is labeled as `MySQL` if `envoy.mysql_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Zookeeper`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Zookeeper` if `envoy.filters.network.zookeeper_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `Thrift`

In addition to the plaintext protocol requirements listed above, a service is labeled as `Thrift` if `envoy.thrift_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

## TLS Protocols

Protocols are identified as using TLS if one of the following is true:

* `force_https` is set to `true` on the [domain](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/domain)
* `ssl_config` is set on the [domain](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/domain) and `ssl_config.require_client_certs` is `true`

### `TLS/HTTP`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/HTTP if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is **not** set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `TLS/HTTP2`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/HTTP2 if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `TLS/WebSocket`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/WebSocket if `upgrades: "websocket"` is set on the [proxy](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/proxy).

### `TLS/TCP`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/TCP if `envoy.tcp_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Mongo`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Mongo if `envoy.mongo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Redis`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Redis if `envoy.redis_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Kafka`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Kafka if `envoy.kafka_broker` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Dubbo`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Dubbo if `envoy.dubbo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/MySQL`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/MySQL if `envoy.mysql_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Zookeeper`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Zookeeper if `envoy.filters.network.zookeeper_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `TLS/Thrift`

In addition to the TLS protocol requirements listed above, a service is labeled as TLS/Thrift if `envoy.thrift_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

## Mutual TLS Protocols

Protocols are identified as using mTLS if one of the following is true:

* `ssl_config` is set on the [domain](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/domain) and `ssl_config.trust_file` is configured
* `listener.secret.subjects` is configured on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `mTLS/HTTP`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/HTTP if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is **not** set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `mTLS/HTTP2`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/HTTP2 if:

* No [network layer protocols](https://greymatter.gitbook.io/grey-matter-documentation/1.3/traffic_control/protocols#network-layer-protocols) have been been configured
* `http2_protocol_options` is set on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener)

### `mTLS/WebSocket`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/WebSocket if `upgrades: "websocket"` is set on the [proxy](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/proxy).

### `mTLS/TCP`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/TCP if `envoy.tcp_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Mongo`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Mongo if `envoy.mongo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Redis`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Redis if `envoy.redis_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Kafka`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Kafka if `envoy.kafka_broker` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Dubbo`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Dubbo if `envoy.dubbo_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/MySQL`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/MySQL if `envoy.mysql_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Zookeeper`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Zookeeper if `envoy.filters.network.zookeeper_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).

### `mTLS/Thrift`

In addition to the mTLS protocol requirements listed above, a service is labeled as mTLS/Thrift if `envoy.thrift_proxy` is included in the `active_network_filters` array on the [listener](https://greymatter.gitbook.io/grey-matter-documentation/1.3/reference/api/fabric-api/listener).
