Snapdragon® Telematics Application Framework (TelAF) Interface Specification
taf_update_common.h File Reference
#include "legato.h"

Go to the source code of this file.

Data Structures

struct  taf_update_StateInd_t
 

Macros

#define IFGEN_TAF_UPDATE_PROTOCOL_ID   "9ddb9401551a87263257c46e4225b031"
 
#define IFGEN_TAF_UPDATE_MSG_SIZE   272
 
#define TAF_UPDATE_MAX_PKG_NAME_LEN   48
 
#define TAF_UPDATE_FILE_PATH_LEN   256
 
#define TAF_UPDATE_SESSION_NAME_LEN   32
 

Typedefs

typedef struct taf_update_Session * taf_update_SessionRef_t
 
typedef struct taf_update_StateHandler * taf_update_StateHandlerRef_t
 
typedef void(* taf_update_StateHandlerFunc_t) (const taf_update_StateInd_t *LE_NONNULL stateIndPtr, void *contextPtr)
 

Enumerations

enum  taf_update_State_t {
  TAF_UPDATE_IDLE = 0, TAF_UPDATE_DOWNLOADING = 1, TAF_UPDATE_DOWNLOAD_PAUSED = 2, TAF_UPDATE_DOWNLOAD_SUCCESS = 3,
  TAF_UPDATE_DOWNLOAD_FAIL = 4, TAF_UPDATE_INSTALLING = 5, TAF_UPDATE_INSTALL_SUCCESS = 6, TAF_UPDATE_INSTALL_FAIL = 7,
  TAF_UPDATE_PROBATION = 8, TAF_UPDATE_PROBATION_SUCCESS = 9, TAF_UPDATE_PROBATION_FAIL = 10, TAF_UPDATE_ROLLBACK = 11,
  TAF_UPDATE_ROLLBACK_SUCCESS = 12, TAF_UPDATE_ROLLBACK_FAIL = 13, TAF_UPDATE_SYNCHRONIZING = 14, TAF_UPDATE_SYNC_SUCCESS = 15,
  TAF_UPDATE_SYNC_FAIL = 16, TAF_UPDATE_REPORTING = 17
}
 
enum  taf_update_Error_t {
  TAF_UPDATE_NONE = 0, TAF_UPDATE_BAD_PACKAGE = 1, TAF_UPDATE_INTERNAL_ERROR = 2, TAF_UPDATE_SECURITY_FAILURE = 3,
  TAF_UPDATE_PACKAGE_NOT_FOUND = 4, TAF_UPDATE_APP_NOT_RUNNING = 5
}
 
enum  taf_update_OTA_t { TAF_UPDATE_FOTA = 0, TAF_UPDATE_SOTA = 1, TAF_UPDATE_NON_QOTA = 2 }
 
enum  taf_update_PackageType_t {
  TAF_UPDATE_PACKAGE_TYPE_QOTA_PACKAGE = 0, TAF_UPDATE_PACKAGE_TYPE_NAD_ZIP = 1, TAF_UPDATE_PACKAGE_TYPE_TELAF_APP = 2, TAF_UPDATE_PACKAGE_TYPE_UAPI_PACKAGE = 3,
  TAF_UPDATE_PACKAGE_TYPE_UNKNOWN = 4
}
 
enum  taf_update_Bank_t { TAF_UPDATE_BANK_A = 0, TAF_UPDATE_BANK_B = 1, TAF_UPDATE_BANK_UNKNOWN = 2 }
 

Functions

LE_SHARED bool ifgen_taf_update_HasLocalBinding (void)
 
LE_SHARED void ifgen_taf_update_InitCommonData (void)
 
LE_SHARED void ifgen_taf_update_CleanupCommonData (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_update_OpenSession (le_msg_SessionRef_t _ifgen_sessionRef, bool isBlocking)
 
LE_SHARED taf_update_StateHandlerRef_t ifgen_taf_update_AddStateHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_StateHandlerFunc_t handlerPtr, void *contextPtr)
 
LE_SHARED void ifgen_taf_update_RemoveStateHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_StateHandlerRef_t handlerRef)
 
LE_SHARED void ifgen_taf_update_Download (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_update_Install (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_OTA_t ota, const char *LE_NONNULL name)
 
LE_SHARED le_result_t ifgen_taf_update_GetDownloadSession (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL cfgFile, taf_update_SessionRef_t *sessionPtr)
 
LE_SHARED le_result_t ifgen_taf_update_StartDownload (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_PauseDownload (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_ResumeDownload (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_CancelDownload (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_GetInstallationSession (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_PackageType_t pkgType, const char *LE_NONNULL cfgFile, taf_update_SessionRef_t *sessionPtr)
 
LE_SHARED le_result_t ifgen_taf_update_InstallPreCheck (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session, const char *LE_NONNULL manifest)
 
LE_SHARED le_result_t ifgen_taf_update_StartInstall (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session, const char *LE_NONNULL pkgPath)
 
LE_SHARED le_result_t ifgen_taf_update_InstallPostCheck (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_GetActiveBank (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session, taf_update_Bank_t *bankPtr)
 
LE_SHARED le_result_t ifgen_taf_update_VerifyActivation (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session, const char *LE_NONNULL manifest)
 
LE_SHARED le_result_t ifgen_taf_update_Rollback (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 
LE_SHARED le_result_t ifgen_taf_update_Sync (le_msg_SessionRef_t _ifgen_sessionRef, taf_update_SessionRef_t session)
 

Macro Definition Documentation

◆ IFGEN_TAF_UPDATE_PROTOCOL_ID

#define IFGEN_TAF_UPDATE_PROTOCOL_ID   "9ddb9401551a87263257c46e4225b031"

◆ IFGEN_TAF_UPDATE_MSG_SIZE

#define IFGEN_TAF_UPDATE_MSG_SIZE   272

◆ TAF_UPDATE_MAX_PKG_NAME_LEN

#define TAF_UPDATE_MAX_PKG_NAME_LEN   48

Maximum OTA package name length with null character.

◆ TAF_UPDATE_FILE_PATH_LEN

#define TAF_UPDATE_FILE_PATH_LEN   256

File path length with null character.

◆ TAF_UPDATE_SESSION_NAME_LEN

#define TAF_UPDATE_SESSION_NAME_LEN   32

Session name length with null character.

Typedef Documentation

◆ taf_update_SessionRef_t

typedef struct taf_update_Session* taf_update_SessionRef_t

Update session reference.

◆ taf_update_StateHandlerRef_t

typedef struct taf_update_StateHandler* taf_update_StateHandlerRef_t

Reference type used by Add/Remove functions for EVENT 'taf_update_State'

◆ taf_update_StateHandlerFunc_t

typedef void(* taf_update_StateHandlerFunc_t) (const taf_update_StateInd_t *LE_NONNULL stateIndPtr, void *contextPtr)

Handler for update state.

Enumeration Type Documentation

◆ taf_update_State_t

Update states.

Enumerator
TAF_UPDATE_IDLE 

Idle state; user can download OTA packages.

TAF_UPDATE_DOWNLOADING 

Downloading state, user can query download progress.

TAF_UPDATE_DOWNLOAD_PAUSED 

Download paused state, not supported.

TAF_UPDATE_DOWNLOAD_SUCCESS 

Download success state, OTA package downloaded successfully.

TAF_UPDATE_DOWNLOAD_FAIL 

Download fail state, user can retry the download.

TAF_UPDATE_INSTALLING 

Installing state, user can query installation progress.

TAF_UPDATE_INSTALL_SUCCESS 

Install success state, user can reboot to active if firmware installed.

TAF_UPDATE_INSTALL_FAIL 

Install fail state, update service drives to idle state later.

TAF_UPDATE_PROBATION 

Probation state, during probation, update service checks if newly installed.

TAF_UPDATE_PROBATION_SUCCESS 

Probation success state, application or firmware is working properly.

TAF_UPDATE_PROBATION_FAIL 

Probation fail state, update service drives to idle state later.

TAF_UPDATE_ROLLBACK 

Rollback state, rollback to the original system.

TAF_UPDATE_ROLLBACK_SUCCESS 

Rollback success state, rollback to the original system succeeded.

TAF_UPDATE_ROLLBACK_FAIL 

Rollback fail state, rollback to the original system failed.

TAF_UPDATE_SYNCHRONIZING 

Bank synchronization is ongoing.

TAF_UPDATE_SYNC_SUCCESS 

Bank synchronization is successful.

TAF_UPDATE_SYNC_FAIL 

Bank synchronization is failed.

TAF_UPDATE_REPORTING 

Reporting state, update service is reporting state to server.

◆ taf_update_Error_t

Error codes.

Enumerator
TAF_UPDATE_NONE 

No errors.

TAF_UPDATE_BAD_PACKAGE 

Bad package.

TAF_UPDATE_INTERNAL_ERROR 

Internal error.

TAF_UPDATE_SECURITY_FAILURE 

Security check failure.

TAF_UPDATE_PACKAGE_NOT_FOUND 

Package not found.

TAF_UPDATE_APP_NOT_RUNNING 

App is not in running state.

◆ taf_update_OTA_t

OTA workflows.

Enumerator
TAF_UPDATE_FOTA 

Firmware update workflow.

TAF_UPDATE_SOTA 

Application update workflow.

TAF_UPDATE_NON_QOTA 

Not QOTA workflow.

◆ taf_update_PackageType_t

Update package type.

Enumerator
TAF_UPDATE_PACKAGE_TYPE_QOTA_PACKAGE 

Package with QOTA header.

TAF_UPDATE_PACKAGE_TYPE_NAD_ZIP 

Zip file for NAD update.

TAF_UPDATE_PACKAGE_TYPE_TELAF_APP 

TelAF app bundle.

TAF_UPDATE_PACKAGE_TYPE_UAPI_PACKAGE 

Package for UA Plug-In update.

TAF_UPDATE_PACKAGE_TYPE_UNKNOWN 

Unknown package.

◆ taf_update_Bank_t

Bank enum.

Enumerator
TAF_UPDATE_BANK_A 

Bank A in dual system.

TAF_UPDATE_BANK_B 

Bank B in dual system.

TAF_UPDATE_BANK_UNKNOWN 

Unknown bank.

Function Documentation

◆ ifgen_taf_update_HasLocalBinding()

LE_SHARED bool ifgen_taf_update_HasLocalBinding ( void  )

Get if this client bound locally.

◆ ifgen_taf_update_InitCommonData()

LE_SHARED void ifgen_taf_update_InitCommonData ( void  )

Init data that is common across all threads

◆ ifgen_taf_update_CleanupCommonData()

LE_SHARED void ifgen_taf_update_CleanupCommonData ( le_msg_SessionRef_t  _ifgen_sessionRef)

Cleanup the data of a session

◆ ifgen_taf_update_OpenSession()

LE_SHARED le_result_t ifgen_taf_update_OpenSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
bool  isBlocking 
)

Perform common initialization and open a session

◆ ifgen_taf_update_AddStateHandler()

LE_SHARED taf_update_StateHandlerRef_t ifgen_taf_update_AddStateHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_StateHandlerFunc_t  handlerPtr,
void *  contextPtr 
)

Add handler function for EVENT 'taf_update_State'

Event to report update progress.

Parameters
[in]handlerPtrHandler for update state.
[in]contextPtr

◆ ifgen_taf_update_RemoveStateHandler()

LE_SHARED void ifgen_taf_update_RemoveStateHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_StateHandlerRef_t  handlerRef 
)

Remove handler function for EVENT 'taf_update_State'

Parameters
[in]handlerRef

◆ ifgen_taf_update_Download()

LE_SHARED void ifgen_taf_update_Download ( le_msg_SessionRef_t  _ifgen_sessionRef)

Downloads an OTA package from a cloud server.

Note
Update service will parse the download package and remove the QOTA header once the download is complete.

◆ ifgen_taf_update_Install()

LE_SHARED le_result_t ifgen_taf_update_Install ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_OTA_t  ota,
const char *LE_NONNULL  name 
)

Installs an OTA package on the target device.

Note
QOTA header should be removed before calling this API.
Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]otaOTA workflow.
[in]nameOTA package name.

◆ ifgen_taf_update_GetDownloadSession()

LE_SHARED le_result_t ifgen_taf_update_GetDownloadSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  cfgFile,
taf_update_SessionRef_t sessionPtr 
)

Gets download session.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]cfgFileConfiguration file for download session.
[out]sessionPtrDownload session reference.

◆ ifgen_taf_update_StartDownload()

LE_SHARED le_result_t ifgen_taf_update_StartDownload ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Starts download.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionDownload session reference.

◆ ifgen_taf_update_PauseDownload()

LE_SHARED le_result_t ifgen_taf_update_PauseDownload ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Pauses download.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionDownload session reference.

◆ ifgen_taf_update_ResumeDownload()

LE_SHARED le_result_t ifgen_taf_update_ResumeDownload ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Resumes download.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionDownload session reference.

◆ ifgen_taf_update_CancelDownload()

LE_SHARED le_result_t ifgen_taf_update_CancelDownload ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Cancels download.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionDownload session reference.

◆ ifgen_taf_update_GetInstallationSession()

LE_SHARED le_result_t ifgen_taf_update_GetInstallationSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_PackageType_t  pkgType,
const char *LE_NONNULL  cfgFile,
taf_update_SessionRef_t sessionPtr 
)

Gets installation session.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]pkgTypePackage type for installation.
[in]cfgFileConfiguration file for installation session.
[out]sessionPtrInstallation session reference.

◆ ifgen_taf_update_InstallPreCheck()

LE_SHARED le_result_t ifgen_taf_update_InstallPreCheck ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session,
const char *LE_NONNULL  manifest 
)

Checks prerequisites for installation.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.
[in]manifestManifest for pre-check.

◆ ifgen_taf_update_StartInstall()

LE_SHARED le_result_t ifgen_taf_update_StartInstall ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session,
const char *LE_NONNULL  pkgPath 
)

Start installation.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.
[in]pkgPathPackage path.

◆ ifgen_taf_update_InstallPostCheck()

LE_SHARED le_result_t ifgen_taf_update_InstallPostCheck ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Verification post installation, check if flashing properly on inactive bank.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.

◆ ifgen_taf_update_GetActiveBank()

LE_SHARED le_result_t ifgen_taf_update_GetActiveBank ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session,
taf_update_Bank_t bankPtr 
)

Gets the active bank.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.
[out]bankPtrThe active bank.

◆ ifgen_taf_update_VerifyActivation()

LE_SHARED le_result_t ifgen_taf_update_VerifyActivation ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session,
const char *LE_NONNULL  manifest 
)

Activation verification, check if each component has the updated version.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.
[in]manifestManifest for activation verification.

◆ ifgen_taf_update_Rollback()

LE_SHARED le_result_t ifgen_taf_update_Rollback ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Rollback to previous configurations to keep pesistency.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.

◆ ifgen_taf_update_Sync()

LE_SHARED le_result_t ifgen_taf_update_Sync ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_update_SessionRef_t  session 
)

Bank synchronization.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]sessionInstallation session reference.