System Requirements =============================== This chapter describes the dependency libraries you need to compile the mOS networking stack. mOS Requirements ---------------- We require the following libraries to run mOS applications. - libnuma - libpthread - librt - libssl-dev - libglib2.0-0 Tested Environments ~~~~~~~~~~~~~~~~~~~~~ mOS applications have been tested on the following system: * Intel Xeon E5-2690 octacore CPU @ 2.90 GHz, 64 GB of RAM (4 memory channels), 10 GbE NIC with Intel 82599 chipset (specifically Intel X520-DA2), Ubuntu 14.0.4 (Linux 3.13.0-24-amd64) * Intel Xeon E5-2640 v3 octacore CPU @ 2.60GHz, 32 GB of RAM (4 memory channels), 1 GbE NIC with Intel Corporation 82572EI Gigabit Ethernet, Ubuntu 14.04.3 LTS (3.19.0-25-generic-amd64) .. * Intel Core i7-3770 quadcore CPU @ 3.40 GHz, .. 16 GB of RAM (2 memory channels), .. 10 GbE NIC with Intel 82599 chipset (specifically Intel X520-DA2), .. Ubuntu 10.04 (Linux 2.6.32-47) mOS applications can run on any multi-core machine that is equipped with a NIC that supports RSS_ hardware queues. I/O Library Requirements --------------------------- The default I/O module for using our stack is `Intel Data Plane Development Kit (DPDK)`_ driver. We also provide PCAP I/O plugin for debugging purposes. We briefly specify the system requirements for compiling and running mOS applications on top of each packet I/O library. .. tip:: | Compling DPDK driver requires Linux kernel headers. | For Debian/Ubuntu based systems: | ``apt-get install linux-headers-$(uname -r)`` | For Fedora/CentOS based systems: | ``yum install kernel-devel`` Intel Data Plane Development Kit (DPDK) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We enlist the requirements for compiling mOS with DPDK library, specified in the DPDK docs (http://dpdk.readthedocs.org/en/v2.2.0/linux_gsg/sys_reqs.html). **Requirement for Running DPDK Applications:** * Kernel version >= 2.6.34 The kernel version in use can be checked using the command:: uname -r * glibc >= 2.7 (for features related to cpuset) The version can be checked using the ``ldd --version`` command. * Kernel configuration In the Fedora OS and other common distributions, such as Ubuntu, or Red Hat Enterprise Linux, the vendor supplied kernel configurations can be used to run most DPDK applications. For other kernel builds, options which should be enabled for DPDK include: * UIO support * HUGETLBFS * PROC_PAGE_MONITOR support **Required Tools for Compilation:** * GNU ``make``. * coreutils: ``cmp``, ``sed``, ``grep``, ``arch``, etc. * gcc: versions 4.5.x or later is recommended for ``x86_64``. .. note:: Current mOS library only supports 64-bit OS (e.g., x86_64) and can run on the host OS. Support for 32-bit OS and virtualization will be released later this year. PCAP Requirements ~~~~~~~~~~~~~~~~~ You need to install ``libpcap-dev`` library to get the stack operational. We tested mOS on an Ubuntu machine with ``libpcap0.8-dev`` library. The mOS core is heavily reliant on posix libraries and have only been tested on Linux machines. We do not recommend testing mOS on Windows machine. netmap Requirements ~~~~~~~~~~~~~~~~~~~~ Support for netmap driver will be released soon. .. _RSS: https://www.kernel.org/doc/Documentation/networking/scaling.txt .. _`Intel Data Plane Development Kit (DPDK)`: http://dpdk.org/