##
## This is the system-wide configuration file for QCP.
## On Unix platforms, it should be installed as /etc/qcp.conf
##
## The values set here can be overridden in per-user configuration files, or on the command line.
##
## This file is a very similar format to ssh_config.
## You can use Host and Include directives in the same way.
## See qcp_config(5) for more information.
##

## For full explanations of the options you can set, see qcp(1) or run `qcp --help`.
##
## For a list of what local settings qcp would use when connecting to a particular host and why,
## run `qcp --show-config hostname:`
##
## For a list of the settings a remote system would use and the result of setting negotiation,
## run `qcp --remote-config --dry-run hostname: /`


## Like ssh, qcp uses the FIRST matching Host block. If you wish to specify settings for particular
## hosts or groups of hosts, put those groups ABOVE `Host *`.

Host *

## Receive bandwidth we expect to this host, in bytes per second. (Not bits!)
## This may be specified as a number, or as an SI quantity like '10M'
#
# Rx 12.5M

## Transmit bandwidth we expect to this host, in bytes per second. (Not bits!)
## If zero, uses the value of Rx.
#
# Tx 0

## Round-trip time to the host in milliseconds
#
# Rtt 300

## Force a particular connection family.
## Options: 4|inet|inet4 , 6|inet6, any
#
# AddressFamily any

## Specifies a UDP port or range to use on the LOCAL endpoint (i.e. the machine this file exists on).
## Useful when this machine is firewalled.
## 0 means any.
## Examples:
##    1234
##    1234-3456
#
# Port 0

## Specifies a UDP port or range to use on the REMOTE endpoint (i.e. the one described by this Host directive)
## 0 means any.
#
# RemotePort 0

## Specifies the path to the qcp binary on the remote machine. [default: `qcp`]
##
## This is useful where the remote system has a locked-down `PATH` and the qcp binary is
## installed in a non-standard location. qcp will run `<path> --server` after logging in.
#
# RemoteQcpBinary qcp

## The ssh client program to use (give full path if necessary)
#
# Ssh ssh

## Any additional options or arguments you need to pass to the ssh client
#
# SshOptions

## Alternative ssh config file(s) to read instead of your user and system ssh config files.
## qcp reads these to resolve any HostName aliasing that you might have set.
#
# SshConfig

## Engages ssh subsystem mode.
## This only works when the ssh daemon on the remote system has been configured to use qcp as a subsystem.
## This is useful where the remote system has a locked-down PATH.
## The effect is that we run "ssh <host> -s qcp" instead of "ssh <host> qcp --server".
#
# SshSubsystem 0

## The time format to use when printing messages to the console or to file
#
# TimeFormat local

## Connection timeout for the QUIC endpoints (seconds)
#
# Timeout 5

## ADVANCED NETWORK TUNING ########################################################
## These options are intended for use by network wizards.
## If misused, they can have unhelpful or surprising effects on performance.

## Specifies the congestion control algorithm to use.
## Options: cubic, bbr, newreno
#
# Congestion cubic

## Specifies the initial congestion control window to use, in bytes
## 0 means to use the algorithm default.
## This may be specified as a number, or as an SI quantity like '64k'
#
# InitialCongestionWindow 0

## Size of the UDP kernel buffer.
## Specify as an integer or as an SI quantity.
## The default, 4M, should be good for most cases. However there may be high-bandwidth
## situations (10Gbps or more) where this becomes a bottleneck, or situations where you wish to
## restrict memory consumption.
#
# UdpBuffer 4M

## Packet reordering loss detection threshold
##
## The default, 3, should be good for most cases. See RFC 9002 s6.1 for more details.
#
# PacketThreshold 3

## Time reordering loss detection threshold
##
## This is a fractional multiple of the Round Trip Time.
## The default, 9/8, should be good for most cases. See RFC 9002 s6.1 for more details.
#
# TimeThreshold 1.125

## The maximum UDP payload size to use before initial MTU discovery has completed (default: 1200)
##
## QUIC runs dynamic Path MTU detection, so this option is not necessary. However,
## setting it appropriately can speed up the initial transfer phase, particularly if jumbo frames
## are in use.
##
## Setting it higher than supported will cause very poor performance while QUIC deals with
## blackhole events and figures out what the network is actually capable of.
#
# InitialMtu 1200

## The minimum MTU that the network is guaranteed to support (default: 1200)
##
## Unless you have very good control over all the network infrastructure in use, this setting is
## unlikely to help you.
##
## Setting this higher than the network actually supports will cause very poor performance and
## unpredictable effects; it may not be possible to complete a file transfer in a reasonable
## time.
#
# MinMtu 1200

## The maximum value that Path MTU discovery will search for (default: 1452)
##
## The maximum MTU only really affects the sending direction of the connection.
##
## If jumbo frames are possible with your end-to-end network connection, set this appropriately.
##
## The default is reasonably conservative. Depending on your network connection and any tunnelling
## or VPN in use, hosts connected by ethernet may be able to support a slightly higher maximum MTU.
##
## Some connections do not support even this MTU, so for best efficiency - particularly with small
## file transfers - it may be worth setting this lower to avoid the penalty caused by MTU detection
## triggering black hole behaviour.
##
## It is safe to set a high limit, but that will reduce efficiency as MTU discovery will take longer
## to complete.
#
# MaxMtu 1452

## Specifies the TLS authentication type (default: any)
##
## Options: any, x509, raw-public-key
##
## If "Any" is selected, we automatically determine based on either side's protocol compatibility versions.
#
# TlsAuthType RawPublicKey

## The buffer size to use for local (disk) input/output operations
#
# IoBufferSize 1M
