{
  "complete": true,
  "duration_seconds": 854.0395543575287,
  "source_revision": "7b141fc00e5932b3c0b0d41fe5eb774dc095fe04",
  "conditions": {
    "frequency_mhz": 912.525,
    "bandwidth_khz": 250,
    "sf": 7,
    "cr_denominator": 5,
    "preamble_symbols": 32,
    "explicit_header": true,
    "crc_bits": 16,
    "path_bytes": 3,
    "tx_power_dbm": 2,
    "bot_airtime_ms_per_minute": 3600,
    "telemetry_interval_seconds": 2
  },
  "radios": {
    "aspen": {
      "samples": 425,
      "minimum_sampled_heap_bytes": 40260,
      "minimum_sampled_dma_bytes": 32520,
      "minimum_sampled_dma_largest_bytes": 29684,
      "maximum_sampled_queue": 12,
      "counter_deltas": {
        "rx_packets": 4161,
        "rx_estimated_ms": 238624,
        "rx_errors": 64,
        "tx_accepted": 2218,
        "tx_rejected": 0,
        "tx_succeeded": 2219,
        "tx_failed": 0,
        "tx_unknown": 0,
        "tx_rf_ms": 131573
      },
      "reboots": 0
    },
    "cedar": {
      "samples": 427,
      "minimum_sampled_heap_bytes": 56492,
      "minimum_sampled_dma_bytes": 48752,
      "minimum_sampled_dma_largest_bytes": 42996,
      "maximum_sampled_queue": 12,
      "counter_deltas": {
        "rx_packets": 3786,
        "rx_estimated_ms": 214685,
        "rx_errors": 51,
        "tx_accepted": 2640,
        "tx_rejected": 0,
        "tx_succeeded": 2640,
        "tx_failed": 0,
        "tx_unknown": 0,
        "tx_rf_ms": 158484
      },
      "reboots": 0
    }
  },
  "phases": [
    {
      "phase": "control",
      "seconds": 60.01436519622803,
      "start_minutes": 0.3492785970369975,
      "planned_bot_per_second": 0.05,
      "actual_bot_per_second": 0.049988031868552586,
      "planned_flood_per_second": 0,
      "actual_flood_per_second": 0.0,
      "calc_requests": 3,
      "calc_replies": 2,
      "calc_reply_percent": 66.66666666666667,
      "requests": 9,
      "admitted": 9,
      "ack_expected": 9,
      "received_acks": 9,
      "correlated_replies": 4,
      "expected_replies": 4,
      "refusals": 0,
      "reply_p50_ms": 359.52186584472656,
      "reply_p95_ms": 376.29151344299316,
      "room_posts": 2,
      "room_deliveries": 2,
      "room_delivery_percent": 100.0
    },
    {
      "phase": "high",
      "seconds": 90.0173270702362,
      "start_minutes": 1.349519920349121,
      "planned_bot_per_second": 0.8,
      "actual_bot_per_second": 0.6776473150819577,
      "planned_flood_per_second": 1,
      "actual_flood_per_second": 0.844281900757849,
      "calc_requests": 53,
      "calc_replies": 41,
      "calc_reply_percent": 77.35849056603773,
      "requests": 146,
      "admitted": 146,
      "ack_expected": 62,
      "received_acks": 53,
      "correlated_replies": 47,
      "expected_replies": 47,
      "refusals": 3,
      "reply_p50_ms": 528.9993286132812,
      "reply_p95_ms": 1403.3713340759277,
      "room_posts": 3,
      "room_deliveries": 3,
      "room_delivery_percent": 100.0
    },
    {
      "phase": "burst",
      "seconds": 180.06586694717407,
      "start_minutes": 2.8498112678527834,
      "planned_bot_per_second": 2,
      "actual_bot_per_second": 1.8160021415715173,
      "planned_flood_per_second": 3,
      "actual_flood_per_second": 2.665691216985713,
      "calc_requests": 280,
      "calc_replies": 54,
      "calc_reply_percent": 19.285714285714285,
      "requests": 824,
      "admitted": 824,
      "ack_expected": 304,
      "received_acks": 134,
      "correlated_replies": 58,
      "expected_replies": 58,
      "refusals": 2,
      "reply_p50_ms": 1219.9265956878662,
      "reply_p95_ms": 4768.458843231201,
      "room_posts": 6,
      "room_deliveries": 3,
      "room_delivery_percent": 50.0
    },
    {
      "phase": "overload",
      "seconds": 180.02863001823425,
      "start_minutes": 5.850914474328359,
      "planned_bot_per_second": 2,
      "actual_bot_per_second": 1.8052684174016227,
      "planned_flood_per_second": 4,
      "actual_flood_per_second": 3.477224705518202,
      "calc_requests": 278,
      "calc_replies": 45,
      "calc_reply_percent": 16.18705035971223,
      "requests": 968,
      "admitted": 968,
      "ack_expected": 302,
      "received_acks": 88,
      "correlated_replies": 50,
      "expected_replies": 50,
      "refusals": 4,
      "reply_p50_ms": 1531.334638595581,
      "reply_p95_ms": 3472.7821350097656,
      "room_posts": 6,
      "room_deliveries": 3,
      "room_delivery_percent": 50.0
    },
    {
      "phase": "sustained",
      "seconds": 180.00204634666443,
      "start_minutes": 8.851395865281424,
      "planned_bot_per_second": 0.8,
      "actual_bot_per_second": 0.7833244280370529,
      "planned_flood_per_second": 1,
      "actual_flood_per_second": 0.9666556771521079,
      "calc_requests": 121,
      "calc_replies": 58,
      "calc_reply_percent": 47.93388429752066,
      "requests": 332,
      "admitted": 332,
      "ack_expected": 140,
      "received_acks": 99,
      "correlated_replies": 67,
      "expected_replies": 67,
      "refusals": 6,
      "reply_p50_ms": 634.7904205322266,
      "reply_p95_ms": 1284.89089012146,
      "room_posts": 6,
      "room_deliveries": 5,
      "room_delivery_percent": 83.33333333333333
    },
    {
      "phase": "recovery",
      "seconds": 120.01177406311035,
      "start_minutes": 11.851671636104584,
      "planned_bot_per_second": 0.1,
      "actual_bot_per_second": 0.09999018924334527,
      "planned_flood_per_second": 0,
      "actual_flood_per_second": 0.0,
      "calc_requests": 11,
      "calc_replies": 9,
      "calc_reply_percent": 81.81818181818181,
      "requests": 23,
      "admitted": 23,
      "ack_expected": 22,
      "received_acks": 20,
      "correlated_replies": 12,
      "expected_replies": 12,
      "refusals": 1,
      "reply_p50_ms": 298.65312576293945,
      "reply_p95_ms": 896.0964679718018,
      "room_posts": 4,
      "room_deliveries": 4,
      "room_delivery_percent": 100.0
    }
  ],
  "role_observations": {
    "relay_status_requests": 27,
    "relay_status_responses": 22,
    "management_requests": 28,
    "management_rf_replies": 22,
    "room_keepalives_submitted": 34,
    "room_keepalives_with_routed_ack_within_20_seconds": 14,
    "authenticated_diagnostic_samples": 249,
    "diagnostic_sample_errors": 0
  },
  "negative_rf_cases": [
    {
      "phase": "high",
      "case": "replay",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 694.1525936126709
    },
    {
      "phase": "high",
      "case": "invalid-mac",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 193.6166286468506
    },
    {
      "phase": "high",
      "case": "unsupported-version",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 108.5519790649414
    },
    {
      "phase": "high",
      "case": "reserved-path-width",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 69.38481330871582
    },
    {
      "phase": "burst",
      "case": "replay",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "burst",
      "case": "invalid-mac",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "burst",
      "case": "unsupported-version",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 78.11260223388672
    },
    {
      "phase": "burst",
      "case": "reserved-path-width",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 768.4128284454346
    },
    {
      "phase": "overload",
      "case": "replay",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "overload",
      "case": "invalid-mac",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "overload",
      "case": "unsupported-version",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "overload",
      "case": "reserved-path-width",
      "wire_bytes": 38,
      "matching_rf_receptions": 0,
      "first_rf_latency_ms": null
    },
    {
      "phase": "sustained",
      "case": "replay",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 271.69108390808105
    },
    {
      "phase": "sustained",
      "case": "invalid-mac",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 286.4117622375488
    },
    {
      "phase": "sustained",
      "case": "unsupported-version",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 311.0160827636719
    },
    {
      "phase": "sustained",
      "case": "reserved-path-width",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 70.88804244995117
    },
    {
      "phase": "recovery",
      "case": "replay",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 235.7168197631836
    },
    {
      "phase": "recovery",
      "case": "invalid-mac",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 73.0292797088623
    },
    {
      "phase": "recovery",
      "case": "unsupported-version",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 69.4589614868164
    },
    {
      "phase": "recovery",
      "case": "reserved-path-width",
      "wire_bytes": 38,
      "matching_rf_receptions": 1,
      "first_rf_latency_ms": 219.00272369384766
    }
  ],
  "phy_model": {
    "symbol_ms": 0.512,
    "nominal_coded_bit_rate": 10937.5,
    "request_38_bytes_ms": 53.376,
    "reply_22_bytes_ms": 40.576,
    "ack_6_bytes_ms": 30.336000000000002,
    "request_reply_and_two_acks_packet_only_per_second": 6.467301324503311,
    "bot_reply_22_bytes_budget_per_second": 1.4787066246056781
  },
  "reply_correlation": {
    "rf_reply_events": 388,
    "matched_reply_events": 239,
    "unmatched_reply_events": 149,
    "unmatched_refusals": 0,
    "channel_calc_requests": 107,
    "channel_calc_successful_requests": 36,
    "channel_calc_refused_requests": 0,
    "channel_refusal_events": 0,
    "duplicate_channel_reply_events": 1
  }
}
