2. System Requirements

This chapter describes the dependency libraries you need to compile the mOS networking stack.

2.1. mOS Requirements

We require the following libraries to run mOS applications.

  • libnuma
  • libpthread
  • librt
  • libssl-dev
  • libglib2.0-0

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

mOS applications can run on any multi-core machine that is equipped with a NIC that supports RSS hardware queues.

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

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

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

2.2.3. netmap Requirements

Support for netmap driver will be released soon.