3.8.3 Host Command Sequence Number Selection

The host follows the following procedure when selecting the sequence numbers for commands.

  1. First Command:
    • The sequence number field provides the client with a mechanism to filter incoming commands to ensure commands occur once and in the proper order.
    • When an update starts, the host doesn’t know what the client’s next expected sequence number is. To resolve this situation, the protocol provides a mechanism for the host to synchronize the client’s sequence number.
    • For only the first command from the host to the client of an update attempt, the host sets the SYNC bit of the sequence field to 1 and sets the sequence number to 0.
    • When the client sees that the SYNC bit is set to 1, the client overrides its current sequence number setting with the value of the sequence number in the command from the host which is 0.
  2. All Subsequent Commands:
    • After the host synchronizes the client sequence number with the client on its first command. All subsequent new commands must increment the sequence number by one and clear the SYNC bit to 0.
    • The sequence number is five bits and wraps back around to 0 after overflowing the five bits.

3.8.3.1 Command Sequence Number Example

The following figure shows an example of the sequence numbers that are selected by the host for commands.