################################### TAS Command-Line Parameters ################################### ****************************** IP Configuration ****************************** * ``--ip-addr=ADDR[/PREFIXLEN]`` Set local IP address. Currently only exactly one IP address is supported. * ``--ip-route=DEST[/PREFIX],NEXTHOP`` Add an IP route for the destination subnet ``DEST/PREFIX`` via ``NEXTHOP``. Can be specified more than once. For example, a default route could be ``--ip-route=0.0.0.0/0,192.168.1.1``. ****************************** Fast Path Configuration ****************************** * ``--fp-cores-max=CORES`` Maximum number of cores to use for fast-path. (default: 1) * ``--fp-no-ints`` Disable receive interrupts in the NIC driver, switches over to just polling. * ``--fp-no-xsumoffload`` Disable 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-autoscale`` Disable auto scaling, instead fix the number of cores used by the fast path to the maximum. * ``--fp-no-hugepages`` Do 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=ARG`` Pass ``ARG`` through as a parameter to the dpdk EAL. (see https://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html) ****************************** TCP Protocol Parameters ****************************** * ``--tcp-rtt-init=RTT`` Initial RTT used for congestion control. Is updated with actual measurements when they arrive. * ``--tcp-link-bw=BANDWIDH`` Link bandwidth in GBPS. TODO: what is this used for? (default: 10). * ``--tcp-rxbuf-len=LEN`` Connection receive buffer len in bytes (default: 8,192). * ``--tcp-txbuf-len=LEN`` Connection transmit buffer len in bytes (default: 8,192). * ``--tcp-handshake-timeout=TIMEOUT`` TCP handshake timeout in microseconds (default 10,000us). * ``--tcp-handshake-retries=RETRIES`` Maximum retries for timeouts during handshake. (default: 10). ****************************** Congestion Control Parameters ****************************** * ``--cc=ALGORITHM`` Choose 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=INT`` Control interval length as multiples of the connection's RTT. (default: 2) * ``--cc-control-granularity=G`` Minimal control loop granularity. Control loop is only executed at most once every ``G`` microseconds. (default: 50) * ``--cc-rexmit-ints=INTERVALS`` Number of connection cnotrol intervals before TAS triggers a re-transmit. (default: 4). DCTCP ========================= For the ``dctcp-rate`` and ``dctcp-win`` algorithm: * ``--cc-dctcp-weight=WEIGHT`` EWMA weight for dctcp's ECN rate (alpha, default: 0.0625). * ``--cc-dctcp-mimd=INC_FACT`` Enable mutliplicative increase by ``INC_FACT`` (disabled by default, only used for tests). * ``--cc-dctcp-min=RATE`` Minimum rate to set for flows (kbps, default: 10000). Timely ========================= Parameters for the ``timely`` algorithm: * ``--cc-timely-tlow=TIME`` Tlow threshold in microseconds. (default: 30) * ``--cc-timely-thigh=TIME`` Thigh threshold in microseconds. (default: 150) * ``--cc-timely-step=STEP`` Additive increase step size in kbps (default: 10000) * ``--cc-timely-init=RATE`` Initial connection rate in kbps (default: 10000) * ``--cc-timely-alpha=FRAC`` EWMA weight for rtt diff. (default: 0.02) * ``--cc-timely-beta=FRAC`` Multiplicative decrease factor. (default: 0.8) * ``--cc-timely-minrtt=RTT`` Minimal RTT without queueing in microseconds. (default: 11) * ``--cc-timely-minrate=RTT`` Minimal connection rate to use in kbps (default: 10000) Constant Rate ========================= For the ``const-rate`` "algorithm" the following configuration options apply: * ``--cc-const-rate=RATE`` Sets the rate to use in kbps. ****************************** ARP Protocol Parameters ****************************** * ``--arp-timeout=TIMEOUT`` Initial ARP request timetout in microseconds. This doubles with every retry (default: 500). * ``--arp-timeout-max=TIMEOUT`` Maximal ARP timeout in microseconds. If the retry-timeout grows larger than this, the request fails. (default: 10,000,000 us) ****************************** Slowpath Queues ****************************** * ``--nic-rx-len=LEN`` Number of entries in TAS slowpath receive queue. (default: 16,384). * ``--nic-tx-len=LEN`` Number of entries in TAS slowpath transmit queue. (default: 16,384). * ``--app-kin-len=LEN`` Application slow path receive queue length in bytes. (default: 1,048,576). * ``--app-kout-len=LEN`` Application slow path transmit queue length in bytes. (default: 1,048,576). ****************************** Host Kernel Interface ****************************** * ``--kni-name=NAME`` Enables the DPDK kernel network interface, by creating a dummy network interface with the name ``NAME``. (default: disabled) ****************************** Miscellaneous ****************************** * ``--quiet`` Disable non-essential logging. * ``--ready-fd=FD`` Causes TAS to write to file descriptor ``FD`` when ready. Can be used by supervisor processes to detect when TAS is ready, e.g. used in full system tests.