askill
mmt-help

mmt-helpSafety 95Repository

General help for MMT-Probe — architecture, protocols, modules, troubleshooting, and ecosystem

9 stars
1.2k downloads
Updated 2/12/2026

Package Files

Loading files...
SKILL.md

MMT-Probe Help

Provide general information about MMT-Probe, its architecture, capabilities, and troubleshooting guidance.

Triggers

Use this skill when the user asks:

  • What is MMT-Probe / what can MMT do
  • About the architecture or how it works
  • About supported protocols or modules
  • For troubleshooting help (errors, crashes, performance)
  • About the MMT ecosystem
  • General questions not covered by install/configure/operate skills

What is MMT-Probe

MMT-Probe is a C-based network traffic analysis probe developed by Montimage.

Capabilities

  • Deep Packet Inspection (DPI) via MMT-DPI library
  • Real-time and offline (PCAP) traffic analysis
  • Protocol classification and application identification
  • Session-based flow statistics with QoS metrics
  • Security rule verification via MMT-Security
  • Multi-output: files, Redis, Kafka, MongoDB, MQTT, sockets
  • HTTP/FTP data reconstruction
  • PCAP packet dumping by protocol
  • Custom event and query-based reporting
  • Dynamic runtime configuration via Unix socket
  • LTE/5G mobile network analysis (eNodeB, GTP, QFI)

Architecture

MMT-Probe uses a 3-process model:

start =========== monitor proc ================>> end
       |\                            |  |
       | '======= processing proc ==='  |
       |                                |
       '========= control proc ========='
  1. Monitor process (root): Creates and monitors children. Restarts a child if it crashes.
  2. Processing process: Main packet processing. Reads traffic, performs DPI, generates reports.
  3. Control process (optional): Listens on a Unix domain socket for runtime control commands. Requires DYNAMIC_CONFIG_MODULE.

Multi-threading

Within the processing process:

  • thread-nb = 0: Single thread reads and processes packets
  • thread-nb = 1: One thread reads, one thread processes
  • thread-nb = N: One reader thread dispatches to N processing threads

Packets are dispatched to threads by flow (same flow always goes to same thread). If a thread's queue is full, the packet is dropped.

Module System

Modules are selected at compile time via make targets.

ModuleDescriptionExternal Dependency
QOS_MODULEQoS metrics (RTT, response time)None
REDIS_MODULERedis pub/sub outputhiredis v1.0.2
KAFKA_MODULEKafka outputlibrdkafka v1.8.2
MONGODB_MODULEMongoDB outputmongo-c-driver 1.9.5
MQTT_MODULEMQTT outputlibpaho-mqtt
SOCKET_MODULEUnix/TCP/UDP socket outputNone
SECURITY_MODULESecurity rule verificationMMT-Security + libxml2
PCAP_DUMP_MODULEDump packets to PCAP filesNone
LTE_MODULELTE eNodeB reportingNone
DYNAMIC_CONFIG_MODULERuntime control via Unix socketNone
TCP_REASSEMBLY_MODULETCP segment reassemblyNone
HTTP_RECONSTRUCT_MODULEReconstruct HTTP payloadNone (implies TCP)
FTP_RECONSTRUCT_MODULEReconstruct FTP filesNone (implies TCP)
LICENSE_MODULELicense key verificationNone
NETCONF_MODULENETCONF protocol supportsysrepo + libxml2 (implies DYNAMIC_CONFIG)

Compile with ALL_MODULES to enable everything (all dependencies must be installed).

Module dependencies

  • HTTP_RECONSTRUCT_MODULE automatically enables TCP_REASSEMBLY_MODULE
  • FTP_RECONSTRUCT_MODULE automatically enables TCP_REASSEMBLY_MODULE
  • TCP_REASSEMBLY_MODULE requires enable-tcp-reassembly = true + enable-ip-defragmentation = true in config
  • NETCONF_MODULE automatically enables DYNAMIC_CONFIG_MODULE
  • DPDK_CAPTURE and STATIC_LINK cannot be used together

Supported Protocols

MMT-Probe identifies protocols via MMT-DPI. Categories include:

Link Layer

Ethernet, IEEE 802.15.4, Linux cooked capture, ARP, PPP

Network Layer

IPv4, IPv6, ICMP, ICMPv6, GRE, GTP

Transport Layer

TCP, UDP, SCTP

Application Layer

HTTP, HTTPS/SSL/TLS, DNS, FTP, SSH, SMTP, IMAP, POP3, RTP, RTSP, SIP, DHCP, NTP, SNMP, MQTT, CoAP, and 700+ application signatures (Facebook, YouTube, Netflix, etc.)

Telco/5G

S1AP, NGAP, NAS, GTP-U, GTP-C, PFCP, Diameter, RADIUS

Quick Reference

Stack Types

ValueProtocol
1Ethernet
624Linux cooked capture
800IEEE 802.15.4

Report Format IDs

IDReport Type
1Startup (probe version info)
10Security alerts
30License status
99Protocol statistics (non-session)
100Session flow statistics
200Probe status / liveness
201System CPU/memory info
301HTTP reconstruction metadata
400eNodeB topology events
401eNodeB QoS (bearer allocation)
1000Custom event reports

Output Formats

FormatDescription
CSVComma-separated, strings in ", complex values in []
JSONJSON objects

Session Sub-format IDs (within report 100)

Sub-IDProtocolExtra Fields
0DefaultNone
1HTTPResponse time, hostname, MIME, URI, method, status
2SSLServer name, CDN flag
3RTPLoss rate, burstiness, jitter, order errors
4FTPUsername, password, file info
5GTPOuter IP, TEIDs

Troubleshooting Guide

Compilation Errors

ErrorCauseSolution
ERROR: Not found MMT-DPI at folder /opt/mmt/dpiMMT-DPI not installedInstall MMT-DPI first
Not found MMT-Security at /opt/mmt/securityMMT-Security missingInstall it or remove SECURITY_MODULE
-lhiredis / -lrdkafka / -lmongoc-1.0 not foundLibrary not installedInstall the library or remove the module
Undefined reference errors after module changeStale object filesRun make clean before recompiling

Runtime Errors

ErrorCauseSolution
error while loading shared librariesLibrary not in LD pathRun ldconfig (or sudo ldconfig on host)
Permission denied on interfaceMissing root privilegesRun with sudo on host, or use --network=host in Docker
sudo: command not foundRunning inside DockerOmit sudo — you are already root in Docker
Probe exits immediatelyLicense check with no keyRemove LICENSE_MODULE or provide license.key
No config file foundMissing mmt-probe.confUse -c <path> or place config in ./ or /opt/mmt/probe/

No Output

  1. Check file-output.enable is true
  2. Check file-output.output-dir exists and is writable
  3. Check session-report.enable is true
  4. For non-file channels, verify the channel is globally enabled
  5. For offline mode, verify the PCAP file has traffic matching your config

Packet Drops

  1. Check status reports (ID 200) for nic-lost and mmt-lost counts
  2. Increase thread-nb to add processing threads
  3. Increase thread-queue to buffer more packets per thread
  4. Increase input.buffer-size for NIC-level buffering
  5. Apply BPF filters to reduce packet volume
  6. Consider DPDK mode for high-throughput scenarios

High Memory Usage

  1. Reduce session-timeout values
  2. Reduce output.cache-max
  3. Enable micro-flows to aggregate small flows
  4. Disable unused session sub-reports (HTTP, SSL, RTP, FTP, GTP)

MMT Ecosystem

ComponentDescriptionRepository
MMT-DPIDeep Packet Inspection library (core dependency)montimage/mmt-dpi
MMT-ProbeNetwork traffic analysis probe (this project)montimage/mmt-probe
MMT-SecuritySecurity rule verification engineMontimage/mmt-security
MMT-OperatorWeb dashboard for visualizationmontimage/mmt-operator
5Greplay5G traffic replay and testingmontimage/5greplay

Typical deployment

Network Traffic -> MMT-Probe -> [Kafka/Redis/Files] -> MMT-Operator (Web UI)
                      |
                  MMT-Security (rule engine)

Environment Variables

Build-Time

VariableDefaultDescription
MMT_BASE/opt/mmtBase installation directory
MMT_DPI_DIR$MMT_BASE/dpiMMT-DPI installation path
MMT_SECURITY_DIR$MMT_BASE/securityMMT-Security installation path
RTE_SDK(unset)DPDK SDK path
RTE_TARGETbuildDPDK build target

System Requirements

ResourceMinimumRecommended
OSLinux (x86_64)Ubuntu 22.04
RAM100 MB2 GB+ (DPDK)
Disk~50 MB+ space for reports
Privilegesroot or CAP_NET_RAW (not needed in Docker)root

Cross-references

  • To install MMT-Probe, use /mmt-install.
  • To configure the probe, use /mmt-configure.
  • To run and monitor the probe, use /mmt-operate.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

88/100Analyzed 2/19/2026

Comprehensive reference skill for MMT-Probe covering architecture, modules, protocols, troubleshooting, and ecosystem. Well-structured with clear triggers, detailed tables, and cross-references to related skills. Scores high on completeness, clarity, and safety. Minor deduction for internal_only signal since it targets a specific tool, but the tool is open-source and reusable.

95
90
85
90
85

Metadata

Licenseunknown
Version1.0.0
Updated2/12/2026
PublisherMontimage

Tags

apici-cdgithubobservabilitysecurity