1.2. TAS Command-Line Parameters¶
1.2.1. IP Configuration¶
--ip-addr=ADDR[/PREFIXLEN]Set local IP address. Currently only exactly one IP address is supported.
--ip-route=DEST[/PREFIX],NEXTHOPAdd an IP route for the destination subnet
DEST/PREFIXviaNEXTHOP. Can be specified more than once. For example, a default route could be--ip-route=0.0.0.0/0,192.168.1.1.
1.2.2. Fast Path Configuration¶
--fp-cores-max=CORESMaximum number of cores to use for fast-path. (default: 1)
--fp-no-intsDisable receive interrupts in the NIC driver, switches over to just polling.
--fp-no-xsumoffloadDisable transmit checksum offloads, primarily useful to run TAS with NICs that do not support checksum offload, but comes at a slight performance cost.
--fp-no-autoscaleDisable auto scaling, instead fix the number of cores used by the fast path to the maximum.
--fp-no-hugepagesDo not use huge pages for the shared memory region between TAS and applications. (DPDK still uses huge pages for it’s buffers unless explicitly disabled through
--dpdk-extra)
--dpdk-extra=ARGPass
ARGthrough as a parameter to the dpdk EAL. (see https://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html)
1.2.3. TCP Protocol Parameters¶
--tcp-rtt-init=RTTInitial RTT used for congestion control. Is updated with actual measurements when they arrive.
--tcp-link-bw=BANDWIDHLink bandwidth in GBPS. TODO: what is this used for? (default: 10).
--tcp-rxbuf-len=LENConnection receive buffer len in bytes (default: 8,192).
--tcp-txbuf-len=LENConnection transmit buffer len in bytes (default: 8,192).
--tcp-handshake-timeout=TIMEOUTTCP handshake timeout in microseconds (default 10,000us).
--tcp-handshake-retries=RETRIESMaximum retries for timeouts during handshake. (default: 10).
1.2.4. Congestion Control Parameters¶
--cc=ALGORITHMChoose which congestion control algorithm to use. The supported options are:
dctcp-rate: dctcp algorithm adapted to directly operate on the connection rate.
dctcp-win: original dctcp algorithm with the window converted to a rate for enforcement.
timely: latency-based TIMELY control law.
const-rate: set all connections to a constant rate (effectively disables congestion control, useful for debugging).
--cc-control-interval=INTControl interval length as multiples of the connection’s RTT. (default: 2)
--cc-control-granularity=GMinimal control loop granularity. Control loop is only executed at most once every
Gmicroseconds. (default: 50)
--cc-rexmit-ints=INTERVALSNumber of connection cnotrol intervals before TAS triggers a re-transmit. (default: 4).
1.2.4.1. DCTCP¶
For the dctcp-rate and dctcp-win algorithm:
--cc-dctcp-weight=WEIGHTEWMA weight for dctcp’s ECN rate (alpha, default: 0.0625).
--cc-dctcp-mimd=INC_FACTEnable mutliplicative increase by
INC_FACT(disabled by default, only used for tests).
--cc-dctcp-min=RATEMinimum rate to set for flows (kbps, default: 10000).
1.2.4.2. Timely¶
Parameters for the timely algorithm:
--cc-timely-tlow=TIMETlow threshold in microseconds. (default: 30)
--cc-timely-thigh=TIMEThigh threshold in microseconds. (default: 150)
--cc-timely-step=STEPAdditive increase step size in kbps (default: 10000)
--cc-timely-init=RATEInitial connection rate in kbps (default: 10000)
--cc-timely-alpha=FRACEWMA weight for rtt diff. (default: 0.02)
--cc-timely-beta=FRACMultiplicative decrease factor. (default: 0.8)
--cc-timely-minrtt=RTTMinimal RTT without queueing in microseconds. (default: 11)
--cc-timely-minrate=RTTMinimal connection rate to use in kbps (default: 10000)
1.2.4.3. Constant Rate¶
For the const-rate “algorithm” the following configuration options apply:
--cc-const-rate=RATESets the rate to use in kbps.
1.2.5. ARP Protocol Parameters¶
--arp-timeout=TIMEOUTInitial ARP request timetout in microseconds. This doubles with every retry (default: 500).
--arp-timeout-max=TIMEOUTMaximal ARP timeout in microseconds. If the retry-timeout grows larger than this, the request fails. (default: 10,000,000 us)
1.2.6. Slowpath Queues¶
--nic-rx-len=LENNumber of entries in TAS slowpath receive queue. (default: 16,384).
--nic-tx-len=LENNumber of entries in TAS slowpath transmit queue. (default: 16,384).
--app-kin-len=LENApplication slow path receive queue length in bytes. (default: 1,048,576).
--app-kout-len=LENApplication slow path transmit queue length in bytes. (default: 1,048,576).
1.2.7. Host Kernel Interface¶
--kni-name=NAMEEnables the DPDK kernel network interface, by creating a dummy network interface with the name
NAME. (default: disabled)
1.2.8. Miscellaneous¶
--quietDisable non-essential logging.
--ready-fd=FDCauses TAS to write to file descriptor
FDwhen ready. Can be used by supervisor processes to detect when TAS is ready, e.g. used in full system tests.