3.2.6.3 ABORT_FILE_TRANSFER Response
When clients detect an unrecoverable error, the MDFU Protocol provides clients with a mechanism to terminate the update immediately using the ABORT_FILE_TRANSFER response. Clients can respond to any command with the ABORT_FILE_TRANSFER response to terminate the update. Additionally, clients can communicate information about the reason why the update was terminated.
See the section on Unrecoverable Errors and Client Command Processing and Response Generation for more details on when this response is generated by a client.
3.2.6.3.1 Response Details
ABORT_FILE_TRANSFER Response Details | |
---|---|
Status Code | 0x05 |
Response Data Payload | [uint8_t FileAbortCause]1 |
Note 1: When aborting a file transfer, it is optional to report one of the following causes for debugging purposes. |
FileAbortCause Definition
Reporting a FileAbortCause is optional but encouraged. The smallest clients are allowed to report a ABORT_FILE_TRANSFER status without reporting a FileAbortCause and the protocol will function properly. However, when errors are encountered, the reason for encountering the ABORT_FILE_TRANSFER will not be known and can’t be communicated to the user or developer. It is encouraged for clients to report a FileAbortCause to improve the debugging experience when errors are encountered.
FileAbortCause Name | FileAbortCause Value | Reason Client is Rejecting the Update |
---|---|---|
GENERIC_CLIENT_ERROR | 0x00 | Code for reporting a generic problem encountered by the client |
INVALID_FILE | 0x01 | Code for reporting a generic problem detected in the Client Update File |
INVALID_CLIENT_DEVICEID | 0x02 | The Client Update File is not compatible with the client device ID |
ADDRESS_ERROR | 0x03 | An invalid address is present in the Client Update File |
ERASE_ERROR | 0x04 | Client memory did not properly erase |
WRITE_ERROR | 0x05 | Client memory did not properly write |
READ_ERROR | 0x06 | Client memory did not properly read |
APPLICATION_VERSION_ERROR | 0x07 | Client won’t allow changing to the application version in the Client Update File (Anti-rollback) |
Reserved for Future Use | 0x08-0xFF | Reserved for future use |
3.2.6.3.2 Response Examples
The following figure shows an example of the ABORT_FILE_TRANSFER response where no FileAbortCause is reported.
The following figure shows an example of the ABORT_FILE_TRANSFER response where the INVALID_FILE FileAbortCause is reported.