Ouroboros Build Parameters
Jump to navigation
Jump to search
These parameters can be enabled by specifying them to cmake:
$ cmake -D<parameter>=<value> [-D<parameter>=<value> ...] ..
As an example, to build and install a debug build of Ouroboros, execute the following in your (empty) build directory:
$ cmake -DCMAKE_BUILD_TYPE=Debug .. $ make $ sudo make install
Alternatively, you can also use the ccmake tool in your build directory to change build options:
$ ccmake .
after altering some of the values pressing c (configure) then g (generate) will set the configuration changes. Subsequent builds will then use this configuration.
Parameter | Description | Values | Default |
---|---|---|---|
ACK_WHEEL_RESOLUTION | Minimum acknowledgment delay (ns), as a power to 2 | 18 | |
ACK_WHEEL_SLOTS | Number of slots in the acknowledgment wheel, must be a power of 2 | 256 | |
BOOTSTRAP_TIMEOUT | Timeout for an IPCP to bootstrap (ms) | 5000 | |
CMAKE_BUILD_TYPE | Build type |
|
Release |
CMAKE_INSTALL_PREFIX | Prefix to install Ouroboros |
/usr (Linux, *BSD) /usr/local (OS X) | |
CONNECT_TIMEOUT | Timeout to connect an IPCP to another IPCP (ms) | 60000 | |
DELTA_T_ACK | Maximum time to acknowledge a packet (s) | 10 | |
DELTA_T_MPL | Maximum packet lifetime (s) | 60 | |
DELTA_T_RTX | Maximum time to retransmit a packet (s) | 120 | |
DHT_ENROLL_SLACK | DHT enrollment waiting time (ms) | 0-999 | 50 |
DISABLE_CORE_LOCK | Disable locking performance threads to a core | Bool | ON |
DISABLE_DDNS | Disable DDNS support for ipcpd-udp | Bool | OFF |
DISABLE_FUSE | Disable FUSE support for exporting metrics (observability) | Bool | OFF |
DISABLE_LIBGCRYPT | Disable libgcrypt support | OFF | |
DISABLE_OPENSSL | Disable OpenSSL support | OFF | |
DISABLE_RAW_SOCKETS | Disable raw socket support for Ethernet IPCPs | OFF | |
DISABLE_ROBUST_MUTEXES | Disable robust mutex support | OFF | |
DU_BUFF_HEADSPACE | Bytes of headspace to reserve for future headers | 256 | |
DU_BUFF_TAILSPACE | Bytes of tailspace to reserve for future tails | 32 | |
ENROLL_TIMEOUT | Timeout the IRMd waits for an IPCP to complete enrollment (ms) | 60000 | |
FRCT_LINUX_RTT_ESTIMATOR | Use Linux RTT estimator formula instead of the TCP RFC formula | ON | |
FRCT_REORDER_QUEUE_SIZE | Size of the reordering queue | Must be a power of 2 | 256 |
FRCT_RTO_INC_FACTOR | Divisor for RTO increase after ACK timeout: RTO += RTX >> X | 0: Karn/Partridge | |
FRCT_RTO_MDEV_MULTIPLIER | Multiplier for deviation term in the RTO: RTO = sRTT + (mdev << X) | 2 | |
FRCT_RTO_MIN | Minimum Retransmission Timeout (RTO) for FRCT (us) | 250 | |
FRCT_START_WINDOW | Start window | Must be a power of 2 | 64 |
FRCT_TICK_TIME | Tick time for FRCT activity (retransmission, acknowledgments) (us) | 5000 | |
FUSE_PREFIX | Mountpoint for FUSE filesystem (observability) | /tmp/ouroboros | |
IPCP_ADD_THREADS | Number of extra threads to start when an IPCP faces thread starvation | 4 | |
IPCP_BROADCAST_MPL | Default maximum packet lifetime for the broadcast IPCP, in seconds | 60 | |
IPCP_CONN_WAIT_DIR | Check the running state of the directory (DHT) when adding a data transfer connection | ON | |
IPCP_ETH_LO_MTU | Restrict Ethernet MTU over loopback interface | 1500 | |
IPCP_ETH_MPL | Default maximum packet lifetime for the Ethernet IPCPs, in seconds | 5 | |
IPCP_ETH_QDISC_BYPASS | Bypass the Qdisc in the kernel when using raw sockets | OFF | |
IPCP_ETH_RD_THR | Number of reader threads in Ethernet IPCP | 1 | |
IPCP_ETH_WR_THR | Number of writer threads in Ethernet IPCP | 1 | |
IPCP_FLOW_STATS | Enable flow statistics tracking in IPCP (observability) | Bool | ON |
IPCP_LINUX_TIMERSLACK_NS | Slack value for high resolution timers on Linux systems | 1000 | |
IPCP_LOCAL_MPL | Default maximum packet lifetime for the Ethernet IPCPs, in seconds | 2 | |
IPCP_MIN_THREADS | Minimum number of worker threads in the IPCP | 4 | |
IPCP_QOS_CUBE_BE_PRIO | Priority for best effort QoS cube (0-99) | 50 | |
IPCP_QOS_CUBE_VIDEO_PRIO | Priority for video QoS cube (0-99) | 90 | |
IPCP_QOS_CUBE_VOICE_PRIO | Priority for voice QoS cube (0-99) | 99 | |
IPCP_SCHED_THR_MUL | Number of scheduler threads per QoS cube | 2 | |
IPCP_UDP_MPL | Default maximum packet lifetime for the UDP IPCP, in seconds | 60 | |
IPCP_UDP_RD_THR | Number of reader threads in UDP IPCP | 3 | |
IPCP_UDP_WR_THR | Number of writer threads in UDP IPCP | 3 | |
IPCP_UNICAST_MPL | Default maximum packet lifetime for the unicast IPCP, in seconds | 60 | |
IRMD_ADD_THREADS | Number of extra threads to start when the IRMD faces thread starvation | 8 | |
IRMD_FLOW_TIMEOUT | Timeout for a flow allocation response (ms) | 5000 | |
IRMD_MIN_THREADS | Minimum number of worker threads in the IRMd | 8 | |
IRMD_REQ_ARR_TIMEOUT | Timeout for an application to respond to arrival of a new flow (ms) | 500 | |
PFT_SIZE | Size of the PDU forwarding (hash) table | 4096 | |
PROC_FLOW_STATS | Enable flow statistics tracking for application flows | Bool | ON |
PROG_MAX_FLOWS | Maximum number of flows in an application | 4096 | |
PROG_MAX_FQUEUES | Maximum number of flow sets per application | 32 | |
PROG_RES_FDS | Number of reserved flow descriptors per application | 64 | |
PTHREAD_COND_CLOCK | Clock to use for condition variable timing | CLOCK_MONOTONIC | |
QOS_DISABLE_CRC | Ignores bit-error rate (BER) setting on all QoS cubes to avoid calculating CRCs | ON | |
QUERY_TIMEOUT | Timeout to query a name with an IPCP (ms) | 3000 | |
REG_TIMEOUT | Timeout for registering a name (ms) | 10000 | |
RXM_BLOCKING | Use blocking writes for retransmission | ON | |
RXM_BUFFER_ON_HEAP | Store packets for retransmission on the heap instead of in packet buffer | OFF | |
RXM_MIN_RESOLUTION | Minimum retransmission delay (ns), as a power to 2 | 20 | |
RXM_WHEEL_LEVELS | Number of levels in the retransmission wheel | 3 | |
RXM_WHEEL_MULTIPLIER | Factor for retransmission wheel levels as a power to 2 | 4 | |
RXM_WHEEL_SLOTS_PER_LEVEL | Number of slots per level in the retransmission wheel | Must be a power of 2 | 256 |
SHM_BUFFER_SIZE | Number of blocks in packet buffer, | Must be a power of 2 | 4096 |
SHM_PREFIX | String to prepend to POSIX shared memory filenames | ouroboros | |
SHM_RBUFF_LOCKLESS | Enable shared memory lockless rbuff support (experimental, unstable) | OFF | |
SHM_RBUFF_SIZE | Number of blocks in rbuff buffer | Must be a power of 2 | 1024 |
SHM_RDRB_BLOCK_SIZE | Packet buffer block size | Defaults to pagesize for performance | sysconf(_SC_PAGESIZE) |
SHM_RDRB_MULTI_BLOCK | Packet buffer multiblock packet support (allows packets larger than block size) | ON | |
SOCKET_TIMEOUT | Default timeout for internal responses from IPCPs (ms) | 1000 | |
SOCK_BUF_SIZE | Size of the buffer used by the UNIX sockets for local IPC | 10240 | |
SYS_MAX_FLOWS | Maximum number of total flows for this system | 10240 |