Suppose on your machine installed Ubuntu 18.04, you have:

  • gcc, make, git, libxml2-dev, libpcap-dev, libconfuse-dev libsctp-dev : sudo apt update && sudo apt install gcc make git libxml2-dev libpcap-dev libconfuse-dev libsctp-dev
  • the source code on your machine: git clone
  • mmt-dpi:
    • If you use latest version of Ubuntu, then you can use its pre-compiled Debian packages, for example : wget && sudo dpkg -i ./mmt-dpi*.deb && sudo ldconfig
    • Otherwise, you can compile MMT-DPI from its source code, for example: sudo apt-get update && sudo apt-get install -y gcc make build-essential git cmake libxml2-dev && git clone && cd mmt-dpi/sdk && make && sudo make install


  • Do make clean to clean compiled objects


  • compile on its local directory: make

  • compile sample rules existing in rules folder: make sample-rules

  • enable debug using gdb: make DEBUG=1

  • if you want to use Valgrind DRD or Helgrind, you should do make DEBUG=1 VALGRIND=1. The option VALGRIND=1 adds some instruction allowing Valgrind bypass atomic operations that usually causes false positive errors in Valgrind.




Please refer to ../../tutorial/replay-open5gs