{
  "schema_version": 3,
  "recorded_at": "2026-08-04T15:43:42.757206+00:00",
  "producer": "benchmarks/realphy_l1_cells.py",
  "producer_argv": [
    "--cell",
    "A1",
    "--seconds",
    "240",
    "--l1-placement",
    "cpu",
    "--gnb",
    "wg3-oai-gnb",
    "--ue",
    "wg3-oai-nr-ue",
    "--label",
    "L1 on CPU, AI tenant SATURATING the GPU. Both SR workers ACTIVE on cuda with models loaded (SPAN display path, RealESRGAN x4plus archive path) as MPS clients; nvidia-smi GPU utilisation 96%. Same box epoch, same rig, same gNB/UE containers and identical launch flags as cell A0 -- the ONLY deliberate change is the two SR workers moving IDLE->ACTIVE via their own /activate endpoints. Demo video flowing through the UE tun throughout.",
    "--out",
    "benchmarks/reports/realphy-l1-cell-A1-2026-08-04.json"
  ],
  "cell": "A1",
  "cell_label": "L1 on CPU, AI tenant SATURATING the GPU. Both SR workers ACTIVE on cuda with models loaded (SPAN display path, RealESRGAN x4plus archive path) as MPS clients; nvidia-smi GPU utilisation 96%. Same box epoch, same rig, same gNB/UE containers and identical launch flags as cell A0 -- the ONLY deliberate change is the two SR workers moving IDLE->ACTIVE via their own /activate endpoints. Demo video flowing through the UE tun throughout.",
  "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:38:01.061182+00:00",
  "gnb_container": "wg3-oai-gnb",
  "ue_container": "wg3-oai-nr-ue",
  "box_state_at_start": {
    "captured_at": "2026-08-04T15:38:01.061191+00:00",
    "loadavg_1_5_15": [
      52.78,
      39.09,
      31.79
    ],
    "runnable_over_total_threads": "54/9617",
    "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": 24,
    "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",
      "1237059, nvidia-cuda-mps-server, 62 MiB",
      "17344, python, 1050 MiB",
      "18320, python, 4738 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:43:42.194478+00:00",
    "loadavg_1_5_15": [
      52.39,
      49.54,
      38.9
    ],
    "runnable_over_total_threads": "29/9610",
    "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": 96,
    "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",
      "1237059, nvidia-cuda-mps-server, 62 MiB",
      "17344, python, 1050 MiB",
      "18320, python, 4738 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": 77,
    "observed_frame_steps": [
      128
    ],
    "margin_window_air_s": 1.28,
    "min_x": 0.3502,
    "p50_x": 0.389,
    "p90_x": 0.4182,
    "max_x": 0.4422,
    "mean_x": 0.39,
    "stdev_x": 0.0214,
    "would_be_late_steps": 77,
    "would_be_late_fraction": 1.0,
    "steps": [
      {
        "d_frames": 128,
        "d_wall_s": 3.523,
        "air_s": 1.28,
        "margin_x": 0.3633
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2308,
        "air_s": 1.28,
        "margin_x": 0.3962
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.6093,
        "air_s": 1.28,
        "margin_x": 0.3546
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2569,
        "air_s": 1.28,
        "margin_x": 0.393
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1739,
        "air_s": 1.28,
        "margin_x": 0.4033
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2285,
        "air_s": 1.28,
        "margin_x": 0.3965
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3667,
        "air_s": 1.28,
        "margin_x": 0.3802
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.573,
        "air_s": 1.28,
        "margin_x": 0.3582
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2242,
        "air_s": 1.28,
        "margin_x": 0.397
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1302,
        "air_s": 1.28,
        "margin_x": 0.4089
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2613,
        "air_s": 1.28,
        "margin_x": 0.3925
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4128,
        "air_s": 1.28,
        "margin_x": 0.3751
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4739,
        "air_s": 1.28,
        "margin_x": 0.3685
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3694,
        "air_s": 1.28,
        "margin_x": 0.3799
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1722,
        "air_s": 1.28,
        "margin_x": 0.4035
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2284,
        "air_s": 1.28,
        "margin_x": 0.3965
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3472,
        "air_s": 1.28,
        "margin_x": 0.3824
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.544,
        "air_s": 1.28,
        "margin_x": 0.3612
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.5755,
        "air_s": 1.28,
        "margin_x": 0.358
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.992,
        "air_s": 1.28,
        "margin_x": 0.4278
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0713,
        "air_s": 1.28,
        "margin_x": 0.4168
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4052,
        "air_s": 1.28,
        "margin_x": 0.3759
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.5699,
        "air_s": 1.28,
        "margin_x": 0.3586
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.52,
        "air_s": 1.28,
        "margin_x": 0.3636
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2865,
        "air_s": 1.28,
        "margin_x": 0.3895
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2657,
        "air_s": 1.28,
        "margin_x": 0.3919
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.5343,
        "air_s": 1.28,
        "margin_x": 0.3622
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4947,
        "air_s": 1.28,
        "margin_x": 0.3663
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1951,
        "air_s": 1.28,
        "margin_x": 0.4006
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0609,
        "air_s": 1.28,
        "margin_x": 0.4182
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2009,
        "air_s": 1.28,
        "margin_x": 0.3999
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3103,
        "air_s": 1.28,
        "margin_x": 0.3867
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3607,
        "air_s": 1.28,
        "margin_x": 0.3809
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4705,
        "air_s": 1.28,
        "margin_x": 0.3688
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0609,
        "air_s": 1.28,
        "margin_x": 0.4182
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2577,
        "air_s": 1.28,
        "margin_x": 0.3929
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1593,
        "air_s": 1.28,
        "margin_x": 0.4052
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.6553,
        "air_s": 1.28,
        "margin_x": 0.3502
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4658,
        "air_s": 1.28,
        "margin_x": 0.3693
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0951,
        "air_s": 1.28,
        "margin_x": 0.4136
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.028,
        "air_s": 1.28,
        "margin_x": 0.4227
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4901,
        "air_s": 1.28,
        "margin_x": 0.3668
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1686,
        "air_s": 1.28,
        "margin_x": 0.404
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3045,
        "air_s": 1.28,
        "margin_x": 0.3874
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1641,
        "air_s": 1.28,
        "margin_x": 0.4045
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.024,
        "air_s": 1.28,
        "margin_x": 0.4233
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3555,
        "air_s": 1.28,
        "margin_x": 0.3815
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3216,
        "air_s": 1.28,
        "margin_x": 0.3854
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4901,
        "air_s": 1.28,
        "margin_x": 0.3667
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.148,
        "air_s": 1.28,
        "margin_x": 0.4066
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0805,
        "air_s": 1.28,
        "margin_x": 0.4155
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2434,
        "air_s": 1.28,
        "margin_x": 0.3946
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3742,
        "air_s": 1.28,
        "margin_x": 0.3793
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3976,
        "air_s": 1.28,
        "margin_x": 0.3767
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3199,
        "air_s": 1.28,
        "margin_x": 0.3856
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1829,
        "air_s": 1.28,
        "margin_x": 0.4021
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3921,
        "air_s": 1.28,
        "margin_x": 0.3773
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.9625,
        "air_s": 1.28,
        "margin_x": 0.4321
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4273,
        "air_s": 1.28,
        "margin_x": 0.3735
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.41,
        "air_s": 1.28,
        "margin_x": 0.3754
      },
      {
        "d_frames": 128,
        "d_wall_s": 2.8945,
        "air_s": 1.28,
        "margin_x": 0.4422
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0198,
        "air_s": 1.28,
        "margin_x": 0.4239
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4155,
        "air_s": 1.28,
        "margin_x": 0.3748
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.3489,
        "air_s": 1.28,
        "margin_x": 0.3822
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2907,
        "air_s": 1.28,
        "margin_x": 0.389
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2913,
        "air_s": 1.28,
        "margin_x": 0.3889
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.2153,
        "air_s": 1.28,
        "margin_x": 0.3981
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4138,
        "air_s": 1.28,
        "margin_x": 0.375
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1022,
        "air_s": 1.28,
        "margin_x": 0.4126
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.5229,
        "air_s": 1.28,
        "margin_x": 0.3633
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0,
        "air_s": 1.28,
        "margin_x": 0.4267
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1076,
        "air_s": 1.28,
        "margin_x": 0.4119
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1906,
        "air_s": 1.28,
        "margin_x": 0.4012
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.1515,
        "air_s": 1.28,
        "margin_x": 0.4062
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.4026,
        "air_s": 1.28,
        "margin_x": 0.3762
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.5914,
        "air_s": 1.28,
        "margin_x": 0.3564
      },
      {
        "d_frames": 128,
        "d_wall_s": 3.0665,
        "air_s": 1.28,
        "margin_x": 0.4174
      }
    ]
  },
  "radio_quality": {
    "960a": {
      "dl_bler": {
        "n": 78,
        "min": 0.0,
        "p50": 0.0,
        "max": 0.0,
        "mean": 0.0
      },
      "dl_mcs": {
        "n": 78,
        "min": 27,
        "p50": 28,
        "max": 28,
        "mean": 27.98718
      },
      "ul_bler": {
        "n": 78,
        "min": 0.0,
        "p50": 0.0,
        "max": 0.0,
        "mean": 0.0
      },
      "ul_mcs": {
        "n": 78,
        "min": 28,
        "p50": 28,
        "max": 28,
        "mean": 28
      },
      "ul_nprb": {
        "n": 78,
        "min": 5,
        "p50": 35,
        "max": 106,
        "mean": 51.0641
      },
      "ul_snr_db": {
        "n": 78,
        "min": 21.8,
        "p50": 23.5,
        "max": 26.0,
        "mean": 23.59103
      }
    }
  },
  "user_plane": {
    "state": "measured",
    "window_wall_s": 253.443,
    "per_ue": {
      "960a": {
        "mac_dl_bytes": 6896411,
        "mac_ul_bytes": 84001188,
        "mac_dl_mbps": 0.2177,
        "mac_ul_mbps": 2.6515,
        "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": "measured",
    "window_s": 90.0,
    "ue_tun_tx_bytes": 14300088,
    "ue_tun_tx_packets": 10257,
    "mediamtx_bytes_received": 13737244,
    "byte_parity_percent": 96.06,
    "parity_note": "shortfall is RTSP/RTP framing overhead accounted on the tun but not counted by mediamtx as payload; it is not loss",
    "uplink_mbps": 1.2711,
    "mediamtx_resolved_ip": "10.0.43.18",
    "decoded": {
      "state": "measured",
      "codec_name": "h264",
      "width": 768,
      "height": 432,
      "avg_frame_rate": "30000/1001",
      "frames_decoded": 0,
      "note": "the picture survives the round trip, not just the byte count"
    }
  },
  "l1_cpu_cost": {
    "sample_window_s": 240.2,
    "method": "cgroup v2 cpu.stat usage_usec delta",
    "per_container": {
      "wg3-oai-gnb": {
        "state": "measured",
        "cores": 2.0772
      },
      "wg3-oai-nr-ue": {
        "state": "measured",
        "cores": 1.0633
      }
    },
    "total_cores": 3.1405,
    "total_cores_state": "measured",
    "host_cores": 20
  },
  "stats_blocks_parsed": 78,
  "gnb_image": "oaisoftwarealliance/oai-gnb:2026.w14",
  "ue_image": "oaisoftwarealliance/oai-nr-ue:2026.w14"
}
