Appearance
数据模型与落盘规范
Run 目录结构(必须)
每次运行输出一个目录:
runs/<run_id>/
scenario.yaml
strategy.json
versions.json
schedule_decisions.csv
traces.csv
metrics.csv
report.md其中:
scenario.yaml:本次运行使用的场景快照strategy.json:策略 id 与参数快照versions.json:可复现所需的版本与环境信息schedule_decisions.csv:每步的调度决策与调度开销traces.csv:包级别原始事件(发送/接收)metrics.csv:聚合指标(按 step 或窗口)report.md:本次 run 的关键统计与图表
versions.json(最小字段)
git_commit:代码提交版本python_version:Python 版本deps:关键依赖版本(可用 pip freeze 的子集)unet_cmd:UNET 启动命令(如适用)unet_host/unet_portscenario_id/strategy_id/seed/K/delta_t_s
Payload Header 协议(24 bytes,little-endian)
为保证跨 UNET 版本/事件字段差异时仍能稳定计算指标,发送 payload 前增加固定头部:
run_id:uint32step_id:uint32seq:uint32tx_time_ms:uint64src:uint16dst:uint16
编码:
struct.pack('<IIIQHH', run_id, step_id, seq, tx_time_ms, src, dst)payload = header + user_data
traces.csv(建议字段)
最小建议字段(能拿到多少写多少,拿不到留空):
t_tx_ms:发送时间(来自 header.tx_time_ms)t_rx_ms:接收时间(来自系统采集或 wall-clock)run_id/step_id/seqsrc/dstpayload_len:user_data 长度ok:是否成功(若无显式失败,可用“未收到”推断)meta_json:扩展字段(SNR/RSSI/agent/service 等)
metrics.csv(建议字段)
按 step 聚合或按窗口聚合,建议字段:
step_idthroughput_bpsloss_ratedelay_p50_ms/delay_p95_mssync_error_msschedule_overhead_ms