1syntax = "proto3"; 2 3package envoy.config.core.v3; 4 5import "udpa/annotations/status.proto"; 6import "validate/validate.proto"; 7 8option java_package = "io.envoyproxy.envoy.config.core.v3"; 9option java_outer_classname = "ProxyProtocolProto"; 10option java_multiple_files = true; 11option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3"; 12option (udpa.annotations.file_status).package_version_status = ACTIVE; 13 14// [#protodoc-title: Proxy protocol] 15 16message ProxyProtocolPassThroughTLVs { 17 enum PassTLVsMatchType { 18 // Pass all TLVs. 19 INCLUDE_ALL = 0; 20 21 // Pass specific TLVs defined in tlv_type. 22 INCLUDE = 1; 23 } 24 25 // The strategy to pass through TLVs. Default is INCLUDE_ALL. 26 // If INCLUDE_ALL is set, all TLVs will be passed through no matter the tlv_type field. 27 PassTLVsMatchType match_type = 1; 28 29 // The TLV types that are applied based on match_type. 30 // TLV type is defined as uint8_t in proxy protocol. See `the spec 31 // <https://www.haproxy.org/download/2.1/doc/proxy-protocol.txt>`_ for details. 32 repeated uint32 tlv_type = 2 [(validate.rules).repeated = {items {uint32 {lt: 256}}}]; 33} 34 35message ProxyProtocolConfig { 36 enum Version { 37 // PROXY protocol version 1. Human readable format. 38 V1 = 0; 39 40 // PROXY protocol version 2. Binary format. 41 V2 = 1; 42 } 43 44 // The PROXY protocol version to use. See https://www.haproxy.org/download/2.1/doc/proxy-protocol.txt for details 45 Version version = 1; 46 47 // This config controls which TLVs can be passed to upstream if it is Proxy Protocol 48 // V2 header. If there is no setting for this field, no TLVs will be passed through. 49 ProxyProtocolPassThroughTLVs pass_through_tlvs = 2; 50} 51