# Global configuration options for Ouroboros # These options affect the entire framework # Installation directories set(OUROBOROS_CONFIG_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/ouroboros" CACHE PATH "Configuration directory") # Security directories set(OUROBOROS_SECURITY_DIR "${OUROBOROS_CONFIG_DIR}/security" CACHE PATH "Security directory holding authentication information") set(OUROBOROS_CA_CRT_DIR "${OUROBOROS_SECURITY_DIR}/cacert" CACHE PATH "Directory holding trusted CA certificates") set(OUROBOROS_SRV_CRT_DIR "${OUROBOROS_SECURITY_DIR}/server" CACHE PATH "Directory holding server certificates") set(OUROBOROS_CLI_CRT_DIR "${OUROBOROS_SECURITY_DIR}/client" CACHE PATH "Directory holding client certificates") set(OUROBOROS_UNTRUSTED_DIR "${OUROBOROS_SECURITY_DIR}/untrusted" CACHE PATH "Directory holding untrusted intermediate certificates") # Shared memory naming set(SHM_PREFIX "ouroboros" CACHE STRING "String to prepend to POSIX shared memory filenames") set(SHM_LOCKFILE_NAME "/${SHM_PREFIX}.lockfile" CACHE INTERNAL "Filename for the POSIX shared memory lockfile") # Secure memory configuration set(IRMD_SECMEM_MAX 1048576 CACHE STRING "IRMd secure heap size") # ~8 KiB secure heap per encrypted flow (cur+prev node slabs); the total # is rounded up to a power of two for the OpenSSL secure-heap allocator. set(PROC_SECMEM_FLOWS 512 CACHE STRING "Max concurrent encrypted flows the per-process secure heap is sized for") math(EXPR PROC_SECMEM_NEED "${PROC_SECMEM_FLOWS} * 8192") set(PROC_SECMEM_MAX 4096) while(PROC_SECMEM_MAX LESS PROC_SECMEM_NEED) math(EXPR PROC_SECMEM_MAX "${PROC_SECMEM_MAX} * 2") endwhile() set(SECMEM_MINSIZE 32 CACHE STRING "Secure heap min alloc size") # Container/deployment options set(BUILD_CONTAINER FALSE CACHE BOOL "Disable thread priority setting for container compatibility") set(DISABLE_CORE_LOCK TRUE CACHE BOOL "Disable locking performance threads to a core") # IPC socket configuration set(SOCK_BUF_SIZE 10240 CACHE STRING "Size of the buffer used by the UNIX sockets for local IPC")