3.6 Definition of a Successful Update

A successful update requires the host to walk the client through all five stages of the update process successfully. The host accomplishes this using a sequence of command-response pairs that need to be executed by the client. In order to complete the update successfully, the following conditions must be met:

  1. Each command in the update must be successfully delivered to the client without corruption.
  2. Each command in the update must be executed by the client once in the proper order.
  3. Each response to an executed command must be successfully delivered to the host without corruption.

Ideally no commands or responses will get corrupted during an update, but corrupted commands and responses will not necessarily cause an update to fail if the MDFU error recovery algorithms can recover from the command/response corruption.

The MDFU Protocol defines a number of algorithms to help detect command/response corruption and automatically recover if possible. The MDFU Protocol defines procedures for resending corrupted commands/responses as well as filtering mechanisms to ensure commands are executed only once and in the proper order. To understand the mechanisms that the MDFU provides to assist with detecting and recovering from command/response corruption, refer to the following sections of the specification.