pcapprocessor is a Python toolkit that automates the full pipeline from ns-3 network simulation to publication-ready figures. Available on PyPI.
pip install pcapprocessor
What it does
Given a config file describing simulation parameters, pcapprocessor:
- Runs multiple simulation replications via the ns-3 WAF build system
- Parses each pcap output with pyshark to extract per-flow TCP metrics
- Aggregates metrics across runs (mean, std dev, 95% confidence intervals)
- Writes results to tab-separated CSV files — one per protocol/flow
- Generates matplotlib figures with confidence interval error bars
Metrics
Extracts 12 TCP-level metrics per flow including throughput, one-way delay, goodput, link utilization, retransmitted packets, queue occupancy, and flow completion time.
Pipeline
Config (.ini) → BfsRunner → ns-3 simulation → pcap traces
↓
TraceProcessor (pyshark)
↓
MetricStats + CI aggregation
↓
MetricsWriter → CSV files
↓
Reporter → PNG/SVG plots
Usage
from pcapprocessor import BfsRunner
runner = BfsRunner(config_file="sim.ini", scenario="bottleneckDelay")
runner.run()
# Writes results/metrics_tcp0.csv, results/metrics_udp0.csv, ...
Generate figures from existing CSVs:
from pcapprocessor import Reporter
Reporter(
csvs=["results/metrics_tcp0.csv", "results/metrics_udp0.csv"],
metrics=["throughput", "delay", "utilization"],
output_dir="plots",
).plot()