InFMon (Infrastructure / In-network Flow Monitor) is a high-performance network flow monitoring system built around a VPP-based dataplane with a Rust control plane, frontend UI, and CLI tooling.
This repository hosts the full stack:
- infmon-backend — control plane / dataplane glue (Rust + C/C++ for VPP plugins).
- infmon-frontend — operator-facing web UI.
- infmon-cli — command-line client for operators and automation.
🚧 Early scaffolding. APIs, schemas, and component boundaries are still
being defined under specs/. Expect breaking changes. Roadmap
and active work are tracked in
GitHub Issues.
.
├── specs/ Design specs, RFCs, and protocol documents
├── packaging/
│ ├── debian/ Debian packaging (control, changelog, rules, …)
│ └── tools/ Packaging helper scripts & their tests
├── src/
│ ├── backend/ Backend (control plane + dataplane integration)
│ ├── frontend/ Web UI
│ └── cli/ Command-line client
├── tests/ End-to-end and integration tests
├── CHANGELOG.md Release notes (Keep a Changelog format)
├── CODEOWNERS Required reviewers
└── LICENSE Apache-2.0
Detailed design lives under specs/. Start there to understand
the architecture, data model, and component contracts before contributing
code.
Build instructions per component will land alongside each component's
initial implementation. See the README inside each src/<component>/
directory once available.
- Open or pick up an issue.
- Branch from
main. - Submit a PR — all changes require review from a code owner
(see
CODEOWNERS) and must pass required CI checks. - Sign off your commits (
git commit -s). The DCO sign-off is enforced by thedcoCI check (added in PR #10 / DPU-15) so missing sign-offs block merge.
Licensed under the Apache License, Version 2.0.