{
  "schema_version": 3,
  "recorded_at": "2026-08-04T15:35:00.665209+00:00",
  "producer": "benchmarks/realphy_l1_cells.py",
  "producer_argv": [
    "--cell",
    "A0",
    "--seconds",
    "240",
    "--l1-placement",
    "cpu",
    "--gnb",
    "wg3-oai-gnb",
    "--ue",
    "wg3-oai-nr-ue",
    "--label",
    "L1 on CPU, NO AI tenant on the GPU. Both SR workers in state IDLE with device=none and models not loaded; nvidia-smi GPU utilisation 0%. MPS daemon IS running and the GPU IS visible to containers (verified with a --gpus all probe), so this is a genuinely idle GPU, not a broken one. Box is post-reboot (17:20 EAT), loadavg ~29 on 20 cores, 4 ffmpeg processes on the CPU. Demo video flowing through the UE tun.",
    "--out",
    "benchmarks/reports/realphy-l1-cell-A0-2026-08-04.json"
  ],
  "cell": "A0",
  "cell_label": "L1 on CPU, NO AI tenant on the GPU. Both SR workers in state IDLE with device=none and models not loaded; nvidia-smi GPU utilisation 0%. MPS daemon IS running and the GPU IS visible to containers (verified with a --gpus all probe), so this is a genuinely idle GPU, not a broken one. Box is post-reboot (17:20 EAT), loadavg ~29 on 20 cores, 4 ffmpeg processes on the CPU. Demo video flowing through the UE tun.",
  "l1_placement": "cpu",
  "scope": "One cell of the L1-placement x AI-tenant matrix, measured on a RUNNING OAI real-software-L1 RAN over the rfsimulator. RFsim is a TCP sample pump; nothing radiates and no UHD device is opened.",
  "deadline_semantics": "THERE IS NO REAL-TIME SLOT DEADLINE ON THIS PATH. The rfsimulator has no rate limiter (shipped options: chanmod, saviq; prop_delay is a channel model in samples, not a pacer), so both ends free-run at whatever rate the slower process sustains. A slot boundary not pinned to a wall clock cannot be missed. 'Late slots' are therefore UNDEFINED here and are not reported. realtime_margin is reported instead -- see its `definition`.",
  "measurement_window_s": 240.0,
  "started_at": "2026-08-04T15:30:59.094547+00:00",
  "gnb_container": "wg3-oai-gnb",
  "ue_container": "wg3-oai-nr-ue",
  "box_state_at_start": {
    "captured_at": "2026-08-04T15:30:59.094556+00:00",
    "loadavg_1_5_15": [
      27.67,
      29.21,
      27.17
    ],
    "runnable_over_total_threads": "25/9286",
    "nproc": 20,
    "co_tenants": [
      "akili-searxng",
      "akili-tailscale-sidecar",
      "amini-amini-admission-1",
      "amini-amini-host-agent-1",
      "amini-authelia-1",
      "amini-authelia-proxy-1",
      "amini-caddy-1",
      "amini-cloud-rpc-tailscale-sidecar",
      "amini-cloud-tailscale-sidecar",
      "amini-derper-1",
      "amini-headscale-demo-1",
      "amini-ingress-caddy-1",
      "amini-minio-1",
      "amini-postgres-1",
      "amini-tailscale-sidecar-1",
      "amini-vault-1",
      "amini-web-1",
      "b-bridge-backend-app",
      "b-bridge-broker",
      "b-bridge-minio",
      "b-bridge-mock-auth",
      "b-bridge-postgres",
      "b-bridge-web",
      "b-ingestion-api",
      "b-ingestion-db",
      "b-ingestion-mcp",
      "b-ingestion-worker",
      "beszel-agent",
      "beszel-hub",
      "beta-backend",
      "bridge-tailscale-sidecar",
      "buildx_buildkit_wg3-builder0",
      "caddy",
      "chromadb",
      "code-server",
      "couchdb",
      "dcgm-exporter",
      "docker-api-1",
      "docker-redis-1",
      "docker-socket-proxy",
      "docker-worker-1",
      "docs-hub",
      "homepage",
      "ingestion-tailscale-sidecar",
      "kokoro-tts",
      "kuma-auto-monitor",
      "langfuse-run-clickhouse-1",
      "langfuse-run-langfuse-web-1",
      "langfuse-run-langfuse-worker-1",
      "langfuse-run-minio-1",
      "langfuse-run-postgres-1",
      "langfuse-run-redis-1",
      "langfuse-tailscale-sidecar",
      "lexcore-neo4j",
      "lexcore-postgres",
      "lexcore-qdrant",
      "lexcore-redis",
      "lexcore-searxng",
      "lexcore-tailscale-sidecar",
      "mcpo",
      "mongodb",
      "mra-api",
      "mra-integration-mock",
      "mra-keycloak",
      "mra-martin",
      "mra-minio",
      "mra-postgis",
      "mra-pygeoapi",
      "mra-web",
      "ntfy",
      "open-webui",
      "phoenix-agent",
      "phoenix-caddy",
      "phoenix-cloudflared",
      "phoenix-control",
      "phoenix-dashboard",
      "phoenix-docs-hub",
      "phoenix-homepage",
      "phoenix-jarvis-caddy",
      "phoenix-mission-control",
      "phoenix-open-webui",
      "phoenix-searxng",
      "scope-api-tailscale-sidecar",
      "scope-beta-tailscale-sidecar",
      "scope-fe-beta",
      "scope-preview-backend",
      "scope-preview-frontend",
      "scope-tailscale-sidecar",
      "searxng",
      "sionna-tailscale-sidecar",
      "the-desk-searxng",
      "ulap-agent",
      "ulap-bench",
      "ulap-cloudflared",
      "ulap-console",
      "ulap-console-public",
      "ulap-dashboard",
      "ulap-ingress",
      "ulap-lorawan-chirpstack-1",
      "ulap-lorawan-chirpstack-gateway-bridge-1",
      "ulap-lorawan-chirpstack-rest-api-1",
      "ulap-lorawan-lorawan-adapter-1",
      "ulap-lorawan-mosquitto-1",
      "ulap-lorawan-postgres-1",
      "ulap-lorawan-redis-1",
      "uptime-kuma",
      "wg3-alertmanager",
      "wg3-app-function",
      "wg3-cadvisor",
      "wg3-cotenancy-exporter",
      "wg3-dcgm-exporter",
      "wg3-drone-ue-sim",
      "wg3-evidence-capture",
      "wg3-grafana",
      "wg3-logs-proxy",
      "wg3-mediamtx",
      "wg3-metrics-sim",
      "wg3-mode-controller",
      "wg3-mps-control",
      "wg3-node-exporter",
      "wg3-oai-amf",
      "wg3-oai-ausf",
      "wg3-oai-gnb",
      "wg3-oai-mysql",
      "wg3-oai-nr-ue",
      "wg3-oai-nrf",
      "wg3-oai-smf",
      "wg3-oai-udm",
      "wg3-oai-udr",
      "wg3-oai-upf",
      "wg3-paws-simulator",
      "wg3-prometheus",
      "wg3-ran-adapter-oai",
      "wg3-realphy-video",
      "wg3-redis",
      "wg3-sensing-dashboard",
      "wg3-sr-worker",
      "wg3-sr-worker-quality",
      "wg3-subscriber-sim",
      "wg3-tvws-sensing",
      "wg3-ueransim-gnb",
      "wg3-ueransim-ue",
      "wg3-ui-next",
      "wg3-ulap-control-api",
      "wg3-ulap-control-api-preg7",
      "wg3-video-analytics",
      "wg3-video-dashboard",
      "wg3-video-ingest"
    ],
    "gpu_utilization_percent": 0,
    "gpu_memory_utilization_percent": 0,
    "gpu_compute_apps": [
      "3844, llama-server, 655 MiB",
      "6747, llama-server, 12203 MiB",
      "3809, python, 5723 MiB",
      "27693, python3, 916 MiB",
      "42405, llama-server, 20055 MiB",
      "18602, python, 489 MiB",
      "47298, python, 209 MiB"
    ],
    "mps_control_dir_present": true,
    "gpu_compute_apps_note": "process_name reduced to basename; absolute paths leak the operator account (a declared internal name). Redacted in place 2026-08-04; PIDs and memory unchanged."
  },
  "box_state_at_end": {
    "captured_at": "2026-08-04T15:35:00.042252+00:00",
    "loadavg_1_5_15": [
      30.14,
      30.77,
      28.33
    ],
    "runnable_over_total_threads": "48/9214",
    "nproc": 20,
    "co_tenants": [
      "akili-searxng",
      "akili-tailscale-sidecar",
      "amini-amini-admission-1",
      "amini-amini-host-agent-1",
      "amini-authelia-1",
      "amini-authelia-proxy-1",
      "amini-caddy-1",
      "amini-cloud-rpc-tailscale-sidecar",
      "amini-cloud-tailscale-sidecar",
      "amini-derper-1",
      "amini-headscale-demo-1",
      "amini-ingress-caddy-1",
      "amini-minio-1",
      "amini-postgres-1",
      "amini-tailscale-sidecar-1",
      "amini-vault-1",
      "amini-web-1",
      "b-bridge-backend-app",
      "b-bridge-broker",
      "b-bridge-minio",
      "b-bridge-mock-auth",
      "b-bridge-postgres",
      "b-bridge-web",
      "b-ingestion-api",
      "b-ingestion-db",
      "b-ingestion-mcp",
      "b-ingestion-worker",
      "beszel-agent",
      "beszel-hub",
      "beta-backend",
      "bridge-tailscale-sidecar",
      "buildx_buildkit_wg3-builder0",
      "caddy",
      "chromadb",
      "code-server",
      "couchdb",
      "dcgm-exporter",
      "docker-api-1",
      "docker-redis-1",
      "docker-socket-proxy",
      "docker-worker-1",
      "docs-hub",
      "homepage",
      "ingestion-tailscale-sidecar",
      "kokoro-tts",
      "kuma-auto-monitor",
      "langfuse-run-clickhouse-1",
      "langfuse-run-langfuse-web-1",
      "langfuse-run-langfuse-worker-1",
      "langfuse-run-minio-1",
      "langfuse-run-postgres-1",
      "langfuse-run-redis-1",
      "langfuse-tailscale-sidecar",
      "lexcore-neo4j",
      "lexcore-postgres",
      "lexcore-qdrant",
      "lexcore-redis",
      "lexcore-searxng",
      "lexcore-tailscale-sidecar",
      "mcpo",
      "mongodb",
      "mra-api",
      "mra-integration-mock",
      "mra-keycloak",
      "mra-martin",
      "mra-minio",
      "mra-postgis",
      "mra-pygeoapi",
      "mra-web",
      "ntfy",
      "open-webui",
      "phoenix-agent",
      "phoenix-caddy",
      "phoenix-cloudflared",
      "phoenix-control",
      "phoenix-dashboard",
      "phoenix-docs-hub",
      "phoenix-homepage",
      "phoenix-jarvis-caddy",
      "phoenix-mission-control",
      "phoenix-open-webui",
      "phoenix-searxng",
      "scope-api-tailscale-sidecar",
      "scope-beta-tailscale-sidecar",
      "scope-fe-beta",
      "scope-preview-backend",
      "scope-preview-frontend",
      "scope-tailscale-sidecar",
      "searxng",
      "sionna-tailscale-sidecar",
      "the-desk-searxng",
      "ulap-agent",
      "ulap-bench",
      "ulap-cloudflared",
      "ulap-console",
      "ulap-console-public",
      "ulap-dashboard",
      "ulap-ingress",
      "ulap-lorawan-chirpstack-1",
      "ulap-lorawan-chirpstack-gateway-bridge-1",
      "ulap-lorawan-chirpstack-rest-api-1",
      "ulap-lorawan-lorawan-adapter-1",
      "ulap-lorawan-mosquitto-1",
      "ulap-lorawan-postgres-1",
      "ulap-lorawan-redis-1",
      "uptime-kuma",
      "wg3-alertmanager",
      "wg3-app-function",
      "wg3-cadvisor",
      "wg3-cotenancy-exporter",
      "wg3-dcgm-exporter",
      "wg3-drone-ue-sim",
      "wg3-evidence-capture",
      "wg3-grafana",
      "wg3-logs-proxy",
      "wg3-mediamtx",
      "wg3-metrics-sim",
      "wg3-mode-controller",
      "wg3-mps-control",
      "wg3-node-exporter",
      "wg3-oai-amf",
      "wg3-oai-ausf",
      "wg3-oai-gnb",
      "wg3-oai-mysql",
      "wg3-oai-nr-ue",
      "wg3-oai-nrf",
      "wg3-oai-smf",
      "wg3-oai-udm",
      "wg3-oai-udr",
      "wg3-oai-upf",
      "wg3-paws-simulator",
      "wg3-prometheus",
      "wg3-ran-adapter-oai",
      "wg3-realphy-video",
      "wg3-redis",
      "wg3-sensing-dashboard",
      "wg3-sr-worker",
      "wg3-sr-worker-quality",
      "wg3-subscriber-sim",
      "wg3-tvws-sensing",
      "wg3-ueransim-gnb",
      "wg3-ueransim-ue",
      "wg3-ui-next",
      "wg3-ulap-control-api",
      "wg3-ulap-control-api-preg7",
      "wg3-video-analytics",
      "wg3-video-dashboard",
      "wg3-video-ingest"
    ],
    "gpu_utilization_percent": 0,
    "gpu_memory_utilization_percent": 0,
    "gpu_compute_apps": [
      "3844, llama-server, 655 MiB",
      "6747, llama-server, 12203 MiB",
      "3809, python, 5723 MiB",
      "27693, python3, 916 MiB",
      "42405, llama-server, 20055 MiB",
      "18602, python, 489 MiB",
      "47298, python, 209 MiB"
    ],
    "mps_control_dir_present": true,
    "gpu_compute_apps_note": "process_name reduced to basename; absolute paths leak the operator account (a declared internal name). Redacted in place 2026-08-04; PIDs and memory unchanged."
  },
  "realtime_margin": {
    "definition": "air time advanced divided by wall time taken, per consecutive gNB stats step. >1.0 means the L1 processed faster than real time and has headroom; <1.0 means that on real radio hardware, where the slot clock IS the wall clock, this L1 would have missed slots.",
    "unit": "x real time",
    "not_a_latency": "This is a ratio over a stats window, not a per-slot processing time. It cannot be converted to a late-slot count without assuming the shortfall is spread evenly across the window, which nothing here measures.",
    "state": "measured",
    "n_steps": 80,
    "observed_frame_steps": [
      128
    ],
    "margin_window_air_s": 1.28,
    "min_x": 0.3711,
    "p50_x": 0.4129,
    "p90_x": 0.4387,
    "max_x": 0.4513,
    "mean_x": 0.4106,
    "stdev_x": 0.0199,
    "would_be_late_steps": 80,
    "would_be_late_fraction": 1.0,
    "steps": [
      {
        "d_frames": 128,
        "d_wall_s": 3.1527,
        "air_s": 1.28,
        "margin_x": 0.406
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0076,
        "air_s": 1.28,
        "margin_x": 0.4256
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8995,
        "air_s": 1.28,
        "margin_x": 0.4415
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9666,
        "air_s": 1.28,
        "margin_x": 0.4315
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1927,
        "air_s": 1.28,
        "margin_x": 0.4009
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.391,
        "air_s": 1.28,
        "margin_x": 0.3775
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.208,
        "air_s": 1.28,
        "margin_x": 0.399
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8363,
        "air_s": 1.28,
        "margin_x": 0.4513
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0598,
        "air_s": 1.28,
        "margin_x": 0.4183
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1178,
        "air_s": 1.28,
        "margin_x": 0.4105
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1467,
        "air_s": 1.28,
        "margin_x": 0.4068
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2869,
        "air_s": 1.28,
        "margin_x": 0.3894
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0855,
        "air_s": 1.28,
        "margin_x": 0.4148
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0579,
        "air_s": 1.28,
        "margin_x": 0.4186
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0655,
        "air_s": 1.28,
        "margin_x": 0.4175
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0957,
        "air_s": 1.28,
        "margin_x": 0.4135
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3134,
        "air_s": 1.28,
        "margin_x": 0.3863
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3527,
        "air_s": 1.28,
        "margin_x": 0.3818
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0189,
        "air_s": 1.28,
        "margin_x": 0.424
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0008,
        "air_s": 1.28,
        "margin_x": 0.4266
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1849,
        "air_s": 1.28,
        "margin_x": 0.4019
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3317,
        "air_s": 1.28,
        "margin_x": 0.3842
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2187,
        "air_s": 1.28,
        "margin_x": 0.3977
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8944,
        "air_s": 1.28,
        "margin_x": 0.4422
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8529,
        "air_s": 1.28,
        "margin_x": 0.4487
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2944,
        "air_s": 1.28,
        "margin_x": 0.3885
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2523,
        "air_s": 1.28,
        "margin_x": 0.3936
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2111,
        "air_s": 1.28,
        "margin_x": 0.3986
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2158,
        "air_s": 1.28,
        "margin_x": 0.398
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9177,
        "air_s": 1.28,
        "margin_x": 0.4387
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2614,
        "air_s": 1.28,
        "margin_x": 0.3925
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2321,
        "air_s": 1.28,
        "margin_x": 0.396
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.449,
        "air_s": 1.28,
        "margin_x": 0.3711
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1843,
        "air_s": 1.28,
        "margin_x": 0.402
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9846,
        "air_s": 1.28,
        "margin_x": 0.4289
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0777,
        "air_s": 1.28,
        "margin_x": 0.4159
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2538,
        "air_s": 1.28,
        "margin_x": 0.3934
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0697,
        "air_s": 1.28,
        "margin_x": 0.417
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4173,
        "air_s": 1.28,
        "margin_x": 0.3746
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0066,
        "air_s": 1.28,
        "margin_x": 0.4257
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0643,
        "air_s": 1.28,
        "margin_x": 0.4177
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0664,
        "air_s": 1.28,
        "margin_x": 0.4174
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2393,
        "air_s": 1.28,
        "margin_x": 0.3951
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0436,
        "air_s": 1.28,
        "margin_x": 0.4206
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0241,
        "air_s": 1.28,
        "margin_x": 0.4233
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8915,
        "air_s": 1.28,
        "margin_x": 0.4427
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9458,
        "air_s": 1.28,
        "margin_x": 0.4345
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2184,
        "air_s": 1.28,
        "margin_x": 0.3977
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2331,
        "air_s": 1.28,
        "margin_x": 0.3959
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0383,
        "air_s": 1.28,
        "margin_x": 0.4213
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1624,
        "air_s": 1.28,
        "margin_x": 0.4048
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1964,
        "air_s": 1.28,
        "margin_x": 0.4005
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1221,
        "air_s": 1.28,
        "margin_x": 0.41
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.036,
        "air_s": 1.28,
        "margin_x": 0.4216
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.443,
        "air_s": 1.28,
        "margin_x": 0.3718
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2973,
        "air_s": 1.28,
        "margin_x": 0.3882
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9241,
        "air_s": 1.28,
        "margin_x": 0.4377
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9821,
        "air_s": 1.28,
        "margin_x": 0.4292
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0002,
        "air_s": 1.28,
        "margin_x": 0.4266
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2733,
        "air_s": 1.28,
        "margin_x": 0.391
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3035,
        "air_s": 1.28,
        "margin_x": 0.3875
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9817,
        "air_s": 1.28,
        "margin_x": 0.4293
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.888,
        "air_s": 1.28,
        "margin_x": 0.4432
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2153,
        "air_s": 1.28,
        "margin_x": 0.3981
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1038,
        "air_s": 1.28,
        "margin_x": 0.4124
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3441,
        "air_s": 1.28,
        "margin_x": 0.3828
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0308,
        "air_s": 1.28,
        "margin_x": 0.4223
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9935,
        "air_s": 1.28,
        "margin_x": 0.4276
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3972,
        "air_s": 1.28,
        "margin_x": 0.3768
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2019,
        "air_s": 1.28,
        "margin_x": 0.3998
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2832,
        "air_s": 1.28,
        "margin_x": 0.3899
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0243,
        "air_s": 1.28,
        "margin_x": 0.4232
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9063,
        "air_s": 1.28,
        "margin_x": 0.4404
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0783,
        "air_s": 1.28,
        "margin_x": 0.4158
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0696,
        "air_s": 1.28,
        "margin_x": 0.417
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1883,
        "air_s": 1.28,
        "margin_x": 0.4015
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1883,
        "air_s": 1.28,
        "margin_x": 0.4015
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0904,
        "air_s": 1.28,
        "margin_x": 0.4142
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8539,
        "air_s": 1.28,
        "margin_x": 0.4485
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0329,
        "air_s": 1.28,
        "margin_x": 0.422
      }
    ]
  },
  "radio_quality": {
    "960a": {
      "dl_bler": {
        "n": 81,
        "min": 0.0,
        "p50": 0.0,
        "max": 0.0,
        "mean": 0.0
      },
      "dl_mcs": {
        "n": 81,
        "min": 28,
        "p50": 28,
        "max": 28,
        "mean": 28
      },
      "ul_bler": {
        "n": 81,
        "min": 0.0,
        "p50": 0.0,
        "max": 0.0,
        "mean": 0.0
      },
      "ul_mcs": {
        "n": 81,
        "min": 27,
        "p50": 28,
        "max": 28,
        "mean": 27.97531
      },
      "ul_nprb": {
        "n": 81,
        "min": 5,
        "p50": 30,
        "max": 106,
        "mean": 48.37037
      },
      "ul_snr_db": {
        "n": 81,
        "min": 21.8,
        "p50": 23.3,
        "max": 26.0,
        "mean": 23.39136
      }
    }
  },
  "user_plane": {
    "state": "measured",
    "window_wall_s": 249.943,
    "per_ue": {
      "960a": {
        "mac_dl_bytes": 6853012,
        "mac_ul_bytes": 81899495,
        "mac_dl_mbps": 0.2193,
        "mac_ul_mbps": 2.6214,
        "note": "gNB-side: UL is the direction the demo video travels"
      }
    }
  },
  "video_integrity": {
    "mediamtx_path": "realphy-proof",
    "tun": "oaitun_ue1",
    "direction": "TX on the UE tun = uplink = the direction the demo video travels",
    "field_note": "/proc/net/dev $9 is tx_bytes and $10 is tx_packets; this reads $9. See the docstring for the evidence-script defect this guards against.",
    "state": "unknown",
    "unknown_reason": "could not read the UE tun counters and/or the mediamtx path; is the video sender running?"
  },
  "l1_cpu_cost": {
    "sample_window_s": 240.14,
    "method": "cgroup v2 cpu.stat usage_usec delta",
    "per_container": {
      "wg3-oai-gnb": {
        "state": "measured",
        "cores": 2.094
      },
      "wg3-oai-nr-ue": {
        "state": "measured",
        "cores": 1.0583
      }
    },
    "total_cores": 3.1523,
    "total_cores_state": "measured",
    "host_cores": 20
  },
  "stats_blocks_parsed": 81,
  "gnb_image": "oaisoftwarealliance/oai-gnb:2026.w14",
  "ue_image": "oaisoftwarealliance/oai-nr-ue:2026.w14"
}
