How perftool-incubator/bench-trafficgen works
bench-trafficgen is a Crucible benchmark integration for generating network traffic and measuring DUT performance. The main workflow starts with the Crucible runner invoking the client wrapper, which prepares inputs and runs a binary search; each trial drives a selected traffic generator and gathers results. The repository also supports server-side testpmd, optional hardware-timestamped latency measurement, and CDM-oriented result processing. The README documents these capabilities; some implementation details are unsampled, so the graph omits uncertain wiring.
Main entry points: binary-search.py Binary search · trafficgen-client Client wrapper · trex-txrx-profile.py Profile driver · trex-txrx.py STL drivers
Components 21
Benchmark orchestration
- Client wrapper
trafficgen-client - Prerequisite helpers
trafficgen-base - Input importer
trafficgen-import-files - Runtime selector
trafficgen-get-runtime - Binary search
trafficgen/binary-search.py - Benchmark configuration
rickshaw.json
Traffic generation
- STL drivers
trafficgen/trex-txrx.py - Profile driver
trafficgen/trex-txrx-profile.py - ASTF driver
trafficgen/binary-search.py - ASTF profiles
trafficgen/astf-profiles - STL workloads
trafficgen/trex-profiles/workloads
Generator infrastructure
- TRex service
- TRex launcher
trafficgen-infra - Port query
trafficgen/trex-query.py - ASTF port query
trafficgen/trex-astf-query.py - Server control
trafficgen-server-start - testpmd
Measurement and results
- PTP latency probe
trafficgen/ptp-latency.c - Result postprocessor
trafficgen-post-process.py - CDM metrics
Other components
- Crucible runner
Connections 23
- Crucible runner → Client wrapper: invokes
- Client wrapper → Prerequisite helpers: uses
- Client wrapper → Binary search: runs
- Client wrapper → Input importer: imports inputs
- Client wrapper → Benchmark configuration: uses settings
- Binary search → Runtime selector: requests runtime
- Binary search → STL drivers: runs trials
- Binary search → Profile driver: runs trials
- Binary search → ASTF driver: runs trials
- Binary search → Port query: queries ports
- Binary search → ASTF port query: queries ports
- Binary search → PTP latency probe: starts probe
- STL drivers → TRex service: drives traffic
- Profile driver → TRex service: drives traffic
- ASTF driver → TRex service: drives traffic
- ASTF driver → ASTF profiles: loads profile
- Profile driver → STL workloads: reads profile
- TRex launcher → TRex service: launches
- Port query → TRex service: queries ports
- ASTF port query → TRex service: queries ports
- Server control → testpmd: starts
- Binary search → Result postprocessor: provides results
- Result postprocessor → CDM metrics: emits CDM