Protocol Documentation

Table of Contents

Top

quilkin/relay/v1alpha1/relay.proto

AggregatedControlPlaneDiscoveryService

The Manager Discovery Service provides an RPC for a management service to upstream its configuration to a relay service. This RPC works essentially the same as xDS, except instead of the client connecting to the server to receive configuration, the client is connecting to the server send its configuration.

This service enables the relay to merge the configuration of all currently live management servers as a single aggregated xDS server without the relay needing to maintain a list of xDS servers to connect to in the relay itself.

Method NameRequest TypeResponse TypeDescription
StreamAggregatedResources.envoy.service.discovery.v3.DiscoveryResponse stream.envoy.service.discovery.v3.DiscoveryRequest streamThis RPC is not supported but remains here as part of the xDS standard, as Quilkin only uses a delta configuration transport for performance reasons.
DeltaAggregatedResources.envoy.service.discovery.v3.DeltaDiscoveryResponse stream.envoy.service.discovery.v3.DeltaDiscoveryRequest streamDelta (Incremental) xDS implementation

Top

quilkin/config/v1alpha1/config.proto

Cluster

FieldTypeLabelDescription
localityLocality
endpointsEndpointrepeated

ClusterMap

FieldTypeLabelDescription
clustersClusterrepeated

Datacenter

FieldTypeLabelDescription
hoststring
qcmp_portuint32
icao_codestring

Endpoint

FieldTypeLabelDescription
hoststring
portuint32
metadatagoogle.protobuf.Struct
host2Host

Filter

FieldTypeLabelDescription
namestring
labelstringoptional
configstringoptional

FilterChain

FieldTypeLabelDescription
filtersFilterrepeated

Host

FieldTypeLabelDescription
namestring
ipv4fixed32
ipv6Ipv6

Ipv6

FieldTypeLabelDescription
firstfixed64
secondfixed64

Locality

FieldTypeLabelDescription
regionstring
zonestring
sub_zonestring

Top

quilkin/filters/capture/v1alpha1/capture.proto

Capture

FieldTypeLabelDescription
metadata_keygoogle.protobuf.StringValue
prefixCapture.Prefix
suffixCapture.Suffix
regexCapture.Regex

Capture.Prefix

FieldTypeLabelDescription
sizeuint32
removegoogle.protobuf.BoolValue

Capture.Regex

FieldTypeLabelDescription
regexgoogle.protobuf.StringValue

Capture.Suffix

FieldTypeLabelDescription
sizeuint32
removegoogle.protobuf.BoolValue

Top

quilkin/filters/compress/v1alpha1/compress.proto

Compress

FieldTypeLabelDescription
modeCompress.ModeValue
on_readCompress.ActionValue
on_writeCompress.ActionValue

Compress.ActionValue

FieldTypeLabelDescription
valueCompress.Action

Compress.ModeValue

FieldTypeLabelDescription
valueCompress.Mode

Compress.Action

NameNumberDescription
DoNothing0
Compress1
Decompress2

Compress.Mode

NameNumberDescription
Snappy0
Lz41

Top

quilkin/filters/concatenate/v1alpha1/concatenate.proto

Concatenate

FieldTypeLabelDescription
on_writeConcatenate.StrategyValue
on_readConcatenate.StrategyValue
bytesbytes

Concatenate.StrategyValue

FieldTypeLabelDescription
valueConcatenate.Strategy

Concatenate.Strategy

NameNumberDescription
DoNothing0
Append1
Prepend2

Top

quilkin/filters/debug/v1alpha1/debug.proto

Debug

FieldTypeLabelDescription
idgoogle.protobuf.StringValue

Top

quilkin/filters/drop/v1alpha1/drop.proto

Drop

Top

quilkin/filters/firewall/v1alpha1/firewall.proto

Firewall

FieldTypeLabelDescription
on_readFirewall.Rulerepeated
on_writeFirewall.Rulerepeated

Firewall.PortRange

FieldTypeLabelDescription
minuint32
maxuint32

Firewall.Rule

FieldTypeLabelDescription
actionFirewall.Action
sourcesstringrepeated
portsFirewall.PortRangerepeated

Firewall.Action

NameNumberDescription
Allow0
Deny1

Top

quilkin/filters/load_balancer/v1alpha1/load_balancer.proto

LoadBalancer

FieldTypeLabelDescription
policyLoadBalancer.PolicyValue

LoadBalancer.PolicyValue

FieldTypeLabelDescription
valueLoadBalancer.Policy

LoadBalancer.Policy

NameNumberDescription
RoundRobin0
Random1
Hash2

Top

quilkin/filters/local_rate_limit/v1alpha1/local_rate_limit.proto

LocalRateLimit

FieldTypeLabelDescription
max_packetsuint64
periodgoogle.protobuf.UInt32Value

Top

quilkin/filters/match/v1alpha1/match.proto

Match

FieldTypeLabelDescription
on_readMatch.Configoptional
on_writeMatch.Configoptional

Match.Branch

FieldTypeLabelDescription
valuegoogle.protobuf.Value
filterenvoy.config.listener.v3.Filter

Match.Config

FieldTypeLabelDescription
metadata_keygoogle.protobuf.StringValue
branchesMatch.Branchrepeated
fallthroughenvoy.config.listener.v3.Filter

Top

quilkin/filters/pass/v1alpha1/pass.proto

Pass

Top

quilkin/filters/token_router/v1alpha1/token_router.proto

TokenRouter

FieldTypeLabelDescription
metadata_keygoogle.protobuf.StringValue

Top

quilkin/filters/timestamp/v1alpha1/timestamp.proto

Timestamp

FieldTypeLabelDescription
metadata_keygoogle.protobuf.StringValue

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)