Skip to content

Mandates

Geoffrey Mainland edited this page Dec 11, 2024 · 1 revision

Mandated outcomes provide scenario-specific traffic QoS objectives. The SCE Qualification scenario has 5 phases, and each phase has a different set of mandated outcomes. Mandated outcomes are communicated to radios using the Radio Command and Control (C2) API.

Mandated outcomes stopped working some time between December 26, 2023 and April 2024. This can be seen in the state change logs produced by the Colosseum. Below are two examples, the first from when mandated outcomes functioned properly, and the second from after mandated outcomes ceased to work.

Reservation 139482

This reservation is from November 2023. The contents of the state change log for SRN 71 (dragon-radio-timer-20231101-d3627296-srn71-RES139482-StateChange.log) is below. Points to note:

  • The satatus.sh script is properly called on the radio container and the output of this script is logged.
  • Mandated outcomes are communicated to the SRN container at the beginning of each phase of the scenario by writing the mandated outcomes to a JSON file and calling the update_outcomes.sh script in the container.
  • An environment updated is performed at the beginning of each phase of the scenario by writing the environment parameters to a JSON file and calling the update_environment.sh script in the container.
::Starting State Change Log for::
Team Name          : dragon-radio
Reservation ID     : 139482
SRN ID             : 71
Container Name     : dragon-radio-timer-20231101-d3627296-srn71

Timestamp: 2023-11-07 13:20:42   SRNStateChange: 1 - Reading Allocation Parameters
Timestamp: 2023-11-07 13:20:42   SRNStateChange: 5 - Pulling Image
Timestamp: 2023-11-07 13:23:40   SRNStateChange: 7 - Flashing USRP
Timestamp: 2023-11-07 13:24:27   SRNStateChange: 6 - Creating Container
Timestamp: 2023-11-07 13:24:27   RadioAPI: Image Fingerprint: 0e88b23080f62139cc330f38aa7b9919f6af03fe50daa2431108a30d9b2605d9

Timestamp: 2023-11-07 13:25:32   SRNStateChange: 6 - Creating Container
Timestamp: 2023-11-07 13:25:42   SRNStateChange: 8 - Starting Container
Timestamp: 2023-11-07 13:25:48   SRNStateChange: 0 - Allocated
Timestamp: 2023-11-07 13:25:49   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:25:49 :      remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.100.1.249    .GNSS.           1 u  496 1024  377    0.031    0.040   0.020

Timestamp: 2023-11-07 13:25:58   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:08   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:18   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:28   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:38   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:48   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:26:58   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:08   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:18   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:28   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:38   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:48   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:27:58   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:08   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:18   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "OFF", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:27   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:37   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:47   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:28:57   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:07   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:17   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:27   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:37   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:47   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:29:57   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:07   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:17   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:27   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:33   SRNStateChange: 0 - Allocated
Timestamp: 2023-11-07 13:30:33   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:37   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:47   SRNStateChange: 12 - Ready
Timestamp: 2023-11-07 13:30:47   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:30:47   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:35:33   SRNStateChange: 12 - Ready
Timestamp: 2023-11-07 13:35:33   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "READY", "INFO": ""}\n'
Timestamp: 2023-11-07 13:36:36   RadioAPI: SUCCESS - start.sh: RET: 0
Timestamp: 2023-11-07 13:36:36   SRNStateChange: 13 - Active
Timestamp: 2023-11-07 13:36:36   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "ACTIVE", "INFO": ""}\n'
Timestamp: 2023-11-07 13:36:50   RadioAPI: SUCCESS - wrote mandated_outcomes.json: RET: 0
Timestamp: 2023-11-07 13:36:50   RadioAPI: SUCCESS - wrote environment.json: RET: 0
Timestamp: 2023-11-07 13:36:51   RadioAPI: SUCCESS - update_outcomes.sh: RET: 0
Timestamp: 2023-11-07 13:36:51   RadioAPI: SUCCESS - update_environment.sh: RET: 0
Timestamp: 2023-11-07 13:38:50   RadioAPI: SUCCESS - wrote mandated_outcomes.json: RET: 0
Timestamp: 2023-11-07 13:38:50   RadioAPI: SUCCESS - wrote environment.json: RET: 0
Timestamp: 2023-11-07 13:38:51   RadioAPI: SUCCESS - update_outcomes.sh: RET: 0
Timestamp: 2023-11-07 13:38:51   RadioAPI: SUCCESS - update_environment.sh: RET: 0
Timestamp: 2023-11-07 13:40:33   SRNStateChange: 13 - Active
Timestamp: 2023-11-07 13:40:34   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "ACTIVE", "INFO": ""}\n'
Timestamp: 2023-11-07 13:40:50   RadioAPI: SUCCESS - wrote mandated_outcomes.json: RET: 0
Timestamp: 2023-11-07 13:40:50   RadioAPI: SUCCESS - wrote environment.json: RET: 0
Timestamp: 2023-11-07 13:40:51   RadioAPI: SUCCESS - update_outcomes.sh: RET: 0
Timestamp: 2023-11-07 13:40:51   RadioAPI: SUCCESS - update_environment.sh: RET: 0
Timestamp: 2023-11-07 13:42:50   RadioAPI: SUCCESS - wrote mandated_outcomes.json: RET: 0
Timestamp: 2023-11-07 13:42:50   RadioAPI: SUCCESS - wrote environment.json: RET: 0
Timestamp: 2023-11-07 13:42:51   RadioAPI: SUCCESS - update_environment.sh: RET: 0
Timestamp: 2023-11-07 13:42:51   RadioAPI: SUCCESS - update_outcomes.sh: RET: 0
Timestamp: 2023-11-07 13:44:50   RadioAPI: SUCCESS - wrote mandated_outcomes.json: RET: 0
Timestamp: 2023-11-07 13:44:50   RadioAPI: SUCCESS - wrote environment.json: RET: 0
Timestamp: 2023-11-07 13:44:51   RadioAPI: SUCCESS - update_environment.sh: RET: 0
Timestamp: 2023-11-07 13:44:51   RadioAPI: SUCCESS - update_outcomes.sh: RET: 0
Timestamp: 2023-11-07 13:45:34   SRNStateChange: 13 - Active
Timestamp: 2023-11-07 13:45:34   RadioAPI: STATUS - status.sh: RET: b'{"STATE": "ACTIVE", "INFO": ""}\n'
Timestamp: 2023-11-07 13:47:07   RadioAPI: SUCCESS - stop.sh: RET: 0
Timestamp: 2023-11-07 13:49:07   SRNStateChange: 9 - Stopping Container
Timestamp: 2023-11-07 13:49:11   SRNStateChange: 10 - Deleting Container
Timestamp: 2023-11-07 13:49:13   SRNStateChange: 11 - Saving Data

Reservation 148874

This reservation is from December 2024. The contents of the state change log for SRN 30 (dragon-radio-dragonradio-main-20211102-srn30-RES148874-StateChange.log) is below. Points to note:

  • The status.sh script in the container does not seem to be called at all.
  • Neither mandated outcomes nor environment changes are every communicated to the radio.
::Starting State Change Log for::
Team Name          : dragon-radio
Reservation ID     : 148874
SRN ID             : 30
Container Name     : dragon-radio-dragonradio-main-20211102-srn30

Timestamp: 2024-12-09 21:42:27   SRNStateChange: 1 - Reading Allocation Parameters
Timestamp: 2024-12-09 21:42:28   SRNStateChange: 5 - Pulling Image
Timestamp: 2024-12-09 21:42:38   SRNStateChange: 7 - Flashing USRP
Timestamp: 2024-12-09 21:42:45   SRNStateChange: 3 - Offline
Timestamp: 2024-12-09 21:43:35   SRNStateChange: 6 - Creating Container
Timestamp: 2024-12-09 21:43:35   RadioAPI: Image Fingerprint: 001b3beefc0ef480c5f9d66f9c0eb24092ce90aee66e0e42c0d5b9a2808189f3

Timestamp: 2024-12-09 21:44:35   SRNStateChange: 8 - Starting Container
Timestamp: 2024-12-09 21:45:06   SRNStateChange: 0 - Allocated
Timestamp: 2024-12-09 21:45:06   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:45:14   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:45:24   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:45:34   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:45:44   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:45:54   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:14   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:24   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:34   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:44   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:46:54   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:14   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:24   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:34   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:44   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:45   SRNStateChange: 0 - Allocated
Timestamp: 2024-12-09 21:47:46   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:47:54   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:14   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:24   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:34   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:44   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:48:54   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:14   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:24   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:34   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:44   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:49:54   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:50:03   SRNStateChange: 12 - Ready
Timestamp: 2024-12-09 21:50:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:50:04   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:52:46   SRNStateChange: 12 - Ready
Timestamp: 2024-12-09 21:52:47   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:57:47   SRNStateChange: 12 - Ready
Timestamp: 2024-12-09 21:57:48   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 21:58:22   RadioAPI: SUCCESS - start.sh: RET: 0
Timestamp: 2024-12-09 21:58:22   SRNStateChange: 13 - Active
Timestamp: 2024-12-09 21:58:23   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 22:02:48   SRNStateChange: 13 - Active
Timestamp: 2024-12-09 22:02:49   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 22:07:49   SRNStateChange: 13 - Active
Timestamp: 2024-12-09 22:07:49   RadioAPI: STATUS - status.sh: RET: 0
Timestamp: 2024-12-09 22:08:55   RadioAPI: SUCCESS - stop.sh: RET: 0
Timestamp: 2024-12-09 22:10:55   SRNStateChange: 9 - Stopping Container
Timestamp: 2024-12-09 22:11:03   SRNStateChange: 10 - Deleting Container
Timestamp: 2024-12-09 22:11:05   SRNStateChange: 11 - Saving Data

Clone this wiki locally