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],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.

1.2.2. 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)

1.2.3. 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).

1.2.4. 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).

1.2.4.1. 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).

1.2.4.2. 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)

1.2.4.3. Constant Rate

For the const-rate “algorithm” the following configuration options apply:

  • --cc-const-rate=RATE

    Sets the rate to use in kbps.

1.2.5. 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)

1.2.6. 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).

1.2.7. Host Kernel Interface

  • --kni-name=NAME

    Enables the DPDK kernel network interface, by creating a dummy network interface with the name NAME. (default: disabled)

1.2.8. 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.