Details
-
Type:
RFC
-
Status: Implemented
-
Resolution: Done
-
Component/s: T&S
-
Labels:None
-
Location:This ticket
Description
ts_sal and ts_salobj both are designed to automatically acknowledge each command with code CMD_ACK=300. This occurs before the user even knows a command has been received.
This is in addition to the acknowledgements that the user has control over, such as CMD_INPROGRESS=301 (a slow command has started, and here is how long it might take) and the final codes that indicate the command has finished, such as CMD_COMPLETE=303 and CMD_FAILED=-302.
I don't think we are getting any value out of CMD_ACK. The issuer of a command can't do anything useful based on it. If the command will take a long time then the issuer should get CMD_INPROGRESS with an estimate of duration and then at some point a final code. Otherwise the issuer should quickly receive the final code. Sending and receiving CMD_ACK adds latency to commands and uses bandwidth for essentially no benefit.
I propose we update ts_sal and ts_salobj to stop returning CMD_ACK. But that we continue to accept and ignore it. That will allow a gradual transition.
Implementing this is simple and should be minimally disruptive. Users of ts_sal and ts_salobj should not notice the difference. Code that could be affected includes test code that explicitly checks for CMD_ACK. There are two such unit tests in ts_salobj (both of which would be easy to change), there may be a few tests in ts_sal and a few verification scripts in the wild that would also need updating.
I thought the purpose was to be able to rapidly detect a networking or messaging layer problem or failure of the commanded system without waiting for a potentially longer timeout.