Setup Guide — Media Communications Mesh

Setup Guide — Media Communications Mesh#

Prerequisites#

  • Linux server – Intel® Xeon processor recommended, e.g. Sapphire Rapids.

  • NIC – Network interface card compatible with DPDK, e.g. Intel® Ethernet Controller E810-C.

  • Updated NIC drivers and firmware – Strong recommendation is to update them. For more information and the latest drivers, see Support.

Build and install steps#

  1. Clone the repository

    git clone https://github.com/OpenVisualCloud/Media-Communications-Mesh.git
    
  2. Navigate to the Media-Communications-Mesh directory

    cd Media-Communications-Mesh
    
  3. Install dependencies. There are two options.

    • Option A – Use environment preparation scripts. The scripts were tested under environments with Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, CentOS Stream8, and CentOS Stream9, installed alongside the Linux kernel 5.15.

      Run the following commands, execute setup_ice_irdma.sh to setup and install patched drivers for NIC cards, and exec second one setup_build_env.sh to prepared whole build stack that is mandatory for bare metal version build of MCM:

      sudo ./scripts/setup_build_env.sh
      sudo ./scripts/setup_ice_irdma.sh all
      

      Reboot the host after the scripts are executed.

    • Option B – The following method is universal and should work for the most Linux distributions.

      • XDP-tools with eBPF – Follow the Simple guide for installation instructions.

      • MTL – Follow the MTL setup guide.

      • E810 driver – Follow the MTL NIC setup guide.

      • gRPC – Refer to the gRPC documentation for installation instructions.

      • Install required packages

        • Ubuntu/Debian

          sudo apt-get update
          sudo apt-get install libbsd-dev cmake make rdma-core libibverbs-dev librdmacm-dev dracut
          
        • CentOS Stream

          sudo yum install -y libbsd-devel cmake make rdma-core libibverbs-devel librdmacm-devel dracut
          
      • Install the irdma driver and libfabric:

        ./scripts/setup_rdma_env.sh install
        

        For more information, see Building and installing libfabric from source.

      • Reboot the host.

  4. Build the Media Communications Mesh software components

    Run the build script

    ./build.sh
    

    This script builds and installs the following software components

    • SDK API library

      • File name: libmcm_dp.so

      • Header file to include: mesh_dp.h

    • Media Proxy

      • Executable file name: media_proxy

    • Mesh Agent

      • Executable file name: mesh-agent

Build for Docker#

Make sure the Docker engine is configured and installed. It is recommended to use the Buildx toolkit.

  1. Clone the repository

    git clone https://github.com/OpenVisualCloud/Media-Communications-Mesh.git
    
  2. Navigate to the Media-Communications-Mesh directory

    cd Media-Communications-Mesh
    
  3. Build Docker images

    Depending on the Docker installation, this step may require root privileges.

    Run the following script from the root directory of the repository to build all Dockerfiles

    ./build_docker.sh
    

    In case of success, the following Docker images will be available in the current Docker context:

    • mcm/sample-app:latest

    • mcm/media-proxy:latest

    • mcm/ffmpeg:latest

    • mcm/ffmpeg:6.1-latest

  4. Check if Media Proxy can be run in a container by running the command below

    docker run --privileged -it -v /var/run/mcm:/run/mcm -v /dev/hugepages:/dev/hugepages mcm/media-proxy:latest