AUTOSAR SWS UpdateAndConfigurationManagement
AUTOSAR SWS UpdateAndConfigurationManagement
Management
AUTOSAR AP R21-11
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
1 Introduction and functional overview 8
3 Related documentation 11
3.1 Input documents & related standards and norms . . . . . . . . . . . . 11
3.2 Related specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Further applicable specification . . . . . . . . . . . . . . . . . . . . . . 12
4 Constraints and assumptions 13
4.1 Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Applicability to car domains . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Dependencies to other functional clusters 14
5.1 Interfaces to Adaptive State Management . . . . . . . . . . . . . . . . 14
5.2 UCM service over ara::com . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Interfaces to Adaptive Crypto Interface . . . . . . . . . . . . . . . . . . 14
5.4 Interfaces to Identity and Access Management . . . . . . . . . . . . . 15
5.5 UCM use of Persistency library . . . . . . . . . . . . . . . . . . . . . . 15
6 Requirements Tracing 16
7 Functional specification 26
7.1 UCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1.1 Software Cluster lifecycle . . . . . . . . . . . . . . . . . . . . 26
7.1.2 Technical Overview . . . . . . . . . . . . . . . . . . . . . . . 27
7.1.2.1 Software Package Management . . . . . . . . . . . 28
7.1.2.2 Runtime dependencies . . . . . . . . . . . . . . . . . 32
7.1.2.3 Update scope and State Management . . . . . . . . 32
7.1.3 Transferring Software Packages . . . . . . . . . . . . . . . . 33
7.1.3.1 Error handling in TransferStart . . . . . . . . . . . . . 36
7.1.3.2 Error handling in TransferData . . . . . . . . . . . . . 36
7.1.3.3 Error handling in TransferExit . . . . . . . . . . . . . 38
7.1.3.4 Error handling in DeleteTransfer . . . . . . . . . . . . 39
7.1.4 Processing of Software Packages from a stream . . . . . . . 39
7.1.5 Processing Software Packages . . . . . . . . . . . . . . . . . 40
7.1.5.1 Error handling during Processing Software Packages 41
7.1.5.2 Error handling for Cancel . . . . . . . . . . . . . . . 43
7.1.5.3 Error handling for RevertProcessedSwPackages . . 44
7.1.5.4 Error handling for GetSwProcessProgress . . . . . . 44
7.1.6 Activation and Rollback . . . . . . . . . . . . . . . . . . . . . 44
7.1.6.1 Activation . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.6.2 Rollback . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.6.3 Boot options . . . . . . . . . . . . . . . . . . . . . . . 47
7.1.6.4 Finishing activation . . . . . . . . . . . . . . . . . . . 47
9 Service Interfaces 79
9.1 Type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.1.1 UCMIdentifierType . . . . . . . . . . . . . . . . . . . . . . . . 79
9.1.2 TransferIdType . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.1.3 SwNameType . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.1.4 SwNameVectorType . . . . . . . . . . . . . . . . . . . . . . . 80
9.1.5 StrongRevisionLabelString . . . . . . . . . . . . . . . . . . . 80
9.1.6 SwNameVersionType . . . . . . . . . . . . . . . . . . . . . . 80
9.1.7 SwNameVersionVectorType . . . . . . . . . . . . . . . . . . . 80
9.1.8 ByteVectorType . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.9 SwPackageStateType . . . . . . . . . . . . . . . . . . . . . . 81
9.1.10 SwPackageInfoType . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.11 SwPackageInfoVectorType . . . . . . . . . . . . . . . . . . . 82
9.1.12 SwDescType . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.1.13 SwDescVectorType . . . . . . . . . . . . . . . . . . . . . . . 83
9.1.14 SwPackageDescType . . . . . . . . . . . . . . . . . . . . . . 83
9.1.15 SwPackageDescVectorType . . . . . . . . . . . . . . . . . . 83
9.1.16 SwClusterStateType . . . . . . . . . . . . . . . . . . . . . . . 84
9.1.17 SwClusterInfoType . . . . . . . . . . . . . . . . . . . . . . . . 84
9.1.18 SwClusterInfoVectorType . . . . . . . . . . . . . . . . . . . . 84
9.1.19 PackageManagementStatusType . . . . . . . . . . . . . . . . 85
9.1.20 ActionType . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.1.21 ResultType . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.1.22 GetHistoryType . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.1.23 GetHistoryVectorType . . . . . . . . . . . . . . . . . . . . . . 86
9.1.24 CampaignHistoryType . . . . . . . . . . . . . . . . . . . . . . 87
9.1.25 CampaignErrorType . . . . . . . . . . . . . . . . . . . . . . . 87
9.1.26 CampaignFailureType . . . . . . . . . . . . . . . . . . . . . . 87
9.1.27 UCMStepErrorType . . . . . . . . . . . . . . . . . . . . . . . 88
9.1.28 SoftwarePackageStepType . . . . . . . . . . . . . . . . . . . 88
9.1.29 HistoryVectorType . . . . . . . . . . . . . . . . . . . . . . . . 88
9.1.30 CampaignStateType . . . . . . . . . . . . . . . . . . . . . . . 89
9.1.31 TransferStateType . . . . . . . . . . . . . . . . . . . . . . . . 89
9.1.32 SafetyConditionType . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.33 SafetyConditionsVectorType . . . . . . . . . . . . . . . . . . 90
9.1.34 SafetyStatesType . . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.35 SafetyStatesVectorType . . . . . . . . . . . . . . . . . . . . . 91
9.2 Provided Service Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 91
9.2.1 Package Management . . . . . . . . . . . . . . . . . . . . . . 91
9.2.2 Vehicle Package Management . . . . . . . . . . . . . . . . . 98
9.2.3 Vehicle Driver Application Interface . . . . . . . . . . . . . . 104
9.2.4 Vehicle State Manager . . . . . . . . . . . . . . . . . . . . . 108
9.3 Required Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.3.1 State Management Update Request . . . . . . . . . . . . . . 109
9.4 Application Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.4.1 Application Error Domain . . . . . . . . . . . . . . . . . . . . 109
9.4.1.1 UCMErrorDomain . . . . . . . . . . . . . . . . . . . 109
10 Sequence diagrams 111
10.1 Update process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.2 Data transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.3 Package processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.4 Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
10.5 Failing activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
10.6 UCM Master simplified vehicle update . . . . . . . . . . . . . . . . . . 116
A Mentioned Manifest Elements 117
Some technical terms used in this document are already defined in the corresponding
document mentioned in the table below. This is to avoid duplicate definition of the
technical term. And to refer to the correct document.
Description
Term
Adaptive Application see [1] AUTOSAR Glossary
Application see [1] AUTOSAR Glossary
AUTOSAR Adaptive Platform see [1] AUTOSAR Glossary
AUTOSAR Classic Platform see [1] AUTOSAR Glossary
Electronic Control Unit see [1] AUTOSAR Glossary
Adaptive Platform Foundation see [1] AUTOSAR Glossary
Adaptive Platform Services see [1] AUTOSAR Glossary
Manifest see [1] AUTOSAR Glossary
Executable see [1] AUTOSAR Glossary
Functional Cluster see [1] AUTOSAR Glossary
Machine see [1] AUTOSAR Glossary
Service see [1] AUTOSAR Glossary
Service Interface see [1] AUTOSAR Glossary
Service Discovery see [1] AUTOSAR Glossary
Execution Management see [2] AUTOSAR Execution Management
MachineFG see [2] AUTOSAR Execution Management
State Management see [3] AUTOSAR State Management
Function Group see [3] AUTOSAR State Management
Communication Management see [4] AUTOSAR Communication Management
Software Cluster see [1] AUTOSAR Glossary
Software Package see [1] AUTOSAR Glossary
Vehicle Package see [1] AUTOSAR Glossary
3 Related documentation
[1] Glossary
AUTOSAR_TR_Glossary
[2] Specification of Execution Management
AUTOSAR_SWS_ExecutionManagement
[3] Specification of State Management
AUTOSAR_SWS_StateManagement
[4] Specification of Communication Management
AUTOSAR_SWS_CommunicationManagement
[5] General Requirements specific to Adaptive Platform
AUTOSAR_RS_General
[6] Specification of Cryptography
AUTOSAR_SWS_Cryptography
[7] Specification of Identity and Access Management
AUTOSAR_SWS_IdentityAndAccessManagement
[8] Requirements on Update and Configuration Management
AUTOSAR_RS_UpdateAndConfigurationManagement
[9] Specification of Manifest
AUTOSAR_TPS_ManifestSpecification
[10] Explanation of Adaptive Platform Design
AUTOSAR_EXP_PlatformDesign
[11] Specification of Persistency
AUTOSAR_SWS_Persistency
[12] Specification of Platform Health Management
AUTOSAR_SWS_PlatformHealthManagement
6 Requirements Tracing
The following tables reference the requirements specified in [8] and links to the fulfill-
ment of these. Please note that if column “Satisfied by” is empty for a specific require-
ment this means that this requirement is not fulfilled by this document.
Requirement Description Satisfied by
[RS_EM_00014] Execution Management shall [SWS_UCM_00202]
support a Trusted Platform.
[RS_SM_00001] State Management shall [SWS_UCM_00242]
coordinate and control multiple
sets of Applications.
[RS_UCM_00001] UCM shall support installing new [SWS_UCM_00001]
software on AUTOSAR [SWS_UCM_00017]
Adaptive Platform [SWS_UCM_00073]
[SWS_UCM_00099]
[SWS_UCM_00131]
[SWS_UCM_00137]
[SWS_UCM_00165]
[SWS_UCM_00181]
[SWS_UCM_00182]
[SWS_UCM_00183]
[SWS_UCM_00240]
[SWS_UCM_00266]
[RS_UCM_00002] UCM shall support reporting [SWS_UCM_00004]
version information for an [SWS_UCM_00038]
AUTOSAR Adaptive [SWS_UCM_00039]
Platform [SWS_UCM_00040]
[SWS_UCM_00071]
[SWS_UCM_00077]
[SWS_UCM_00078]
[SWS_UCM_00079]
[SWS_UCM_00112]
[SWS_UCM_00130]
[SWS_UCM_00131]
[SWS_UCM_00174]
[SWS_UCM_00175]
[SWS_UCM_00176]
[SWS_UCM_00177]
[SWS_UCM_00181]
[SWS_UCM_00182]
[SWS_UCM_00183]
[SWS_UCM_00185]
[SWS_UCM_00186]
[SWS_UCM_00187]
[SWS_UCM_01114]
[SWS_UCM_01136]
[SWS_UCM_01137]
[SWS_UCM_01138]
[SWS_UCM_CONSTR_00001]
[SWS_UCM_CONSTR_00002]
7 Functional specification
7.1 UCM
RevertProcessedSw Packages
Finish (from
P rocessSw Package
kA ctivated)
P rocessSw Package RevertProcessedSw Packages
UPDATED
Initi al
The state machine in Fig. 7.1 describes the life-cycle states of a Software Cluster.
These states are reported with GetSwClusterChangeInfo method.
[SWS_UCM_00191] Software Cluster life-cycle state kAdded dA Software
Cluster state shall be kAdded after the Software Cluster is successfully pro-
cessed with ProcessSwPackage method call on the AUTOSAR Adaptive Plat-
form and if it was not previously present in the AUTOSAR Adaptive Platform and
before activation is finished.c(RS_UCM_00011)
[SWS_UCM_00192] Software Cluster life-cycle state transition from kAdded
to kPresent dA Software Cluster state shall change from kAdded to kPre-
sent after a successful activation of a newly added Software Cluster with Finish
method call.c(RS_UCM_00011)
[SWS_UCM_00195] Software Cluster life-cycle state kUpdated dA Software
Cluster state shall be kUpdated after a successful processing of the updated Soft-
ware Cluster with ProcessSwPackage method call and before activation is fin-
ished.c(RS_UCM_00011)
[SWS_UCM_00193] Software Cluster life-cycle state transition from kUp-
dated to kPresent dA Software Cluster state shall change from kUpdated
to kPresent after a successful activation of the updated Software Cluster with
Finish method call, or after reverting the Software Cluster update with a Re-
vertProcessedSwPackage method call.c(RS_UCM_00011)
One of the declared goals of AUTOSAR Adaptive Platform is the ability to flexibly
update the software and its configuration through over-the-air updates. During the life-
cycle of an AUTOSAR Adaptive Platform, UCM is responsible to perform software
modifications on the machine and to retain consistency of the whole system.
The UCM Functional Cluster provides a service interface that exposes its func-
tionality to retrieve AUTOSAR Adaptive Platform software information and consis-
tently execute software updates. Since ara::com is used, the client using the UCM
service interface can be located on the same AUTOSAR Adaptive Platform, but
also remote clients are possible.
The service interface has been primarily designed with the goal to make it possible to
use standard diagnostic services for downloading and installing software updates for
the AUTOSAR Adaptive Platform. However, the methods and fields in the service
interface are designed in such a way that they can be used in principle by any Adaptive
Application. UCM does not impose any specific protocol on how data is transferred to
N am e:
the AUTOSAR A rchitecture
Adaptivesim plyfied Platform and how package processing is controlled. In
A uthor: W aldem ar Knorr
particular 1.0 does not expose diagnostic services.
V ersion:UCM
C reated: 26/03/2018 11:19:35
U pdated: 02/09/2021 14:18:39
As shown in Figure 7.2, whether the use case is an over-the-air update or garage up-
date done through diagnostics, it is not visible to the UCM. The UCM Client abstracts the
use case from the UCM and forwards the data stream and sequence control commands
to the UCM. Later in this document, the term UCM Client is used to describe an Adap-
tive Application that consumes UCM PackageManagement services through
UCM ara::com API. Diagnostic Application and UCM Master are two examples of such
UCM Clients.
Vehicle
«device»
A daptive ECU
U CM Client (Diagnostic
A pplication / UCM Master) «optional»
Cloud
AUTOSAR Adaptive Platform Services + Foundation
«ServiceProvi... Diagnostic
UCM D oIP socket
Manager (DM)
«optional»
Diagnostic
Client
for the modeling element. In the model, the content of a SoftwareCluster is de-
fine by references to all required model elements. The SoftwareCluster and the
related model elements define the content of the manifest that is part of the Software
Package. The Software Package format and the update scope are described in
chapter "Content of a Software Package" as well as in [10].
[SWS_UCM_CONSTR_00012]{DRAFT} dThe SoftwareCluster aggregation of
ArtifactChecksum shall not include the uri of this same SoftwareCluster mani-
fest.c(RS_UCM_00012)
The uri attribute in ArtifactChecksum is referring to the artifact contained in the
SoftwareCluster.
Software Package A
Signed container
SoftwareCluster A
Signed container
Executables
Data
are Package A
Manifests
container
wareCluster Software Cluster
ecutables
Manifest
Data
Authentication tag
anifests
Software Package
are Package Manifest
Manifest
Authentication tag
entication tag
Figure 7.3: Software Package content description
A single Software Package is designed in a way that it could contain one or several
executables of Adaptive Applications, kernel or firmware updates, or updated
Updating and rolling back of persisted data is handled completely by the application
using persistency without involvement of UCM. A detailed explanation can be found in
the Persistency Specification [11]. An exception here is the removal of persistent data
after a SoftwareCluster is removed.
Definition of an updatable state with respect to the system setup is the OEM respon-
sibility. Based on the system setup and the application, the system might need to be
switched into a predefined state, to free resource to speed up the update, to block nor-
mal usage of software which might cause interruptions to update process and to block
using functionality which might be interrupted by the update sequence.
[SWS_UCM_00257]{DRAFT} Update session dTo confirm the system is in an up-
datable state, UCM shall start an update session by calling State Management
UpdateRequest Service Interface RequestUpdateSession method after its de-
pendency check triggered by Activate method call.c(RS_UCM_00026, RS_UCM_-
00003)
[SWS_UCM_00258]{DRAFT} Update session rejected dIf State Management
UpdateRequest Service Interface RequestUpdateSession method call raises er-
ror kRejected, UCM shall transition from kActivating to kReady states and Ac-
tivate method call shall return ApplicationError UpdateSessionRejected.c
(RS_UCM_00026, RS_UCM_00024)
If update session could be recurrently rejected, it is up to implementer to cache the
dependency check result in order to avoid unnecessary computation and compute it
only once.
During the update session, the minimum applications required for the Update process
should be executed. This way system is more robust, more resources are free and
user is blocked from using applications, of which failure could cause safety risk to the
user.
Update of some components require a Machine reset to be performed. These com-
ponents should be configured to be part of Function Group MachineFG, as the
update sequence of Function Group MachineFG includes a Machine reset. Ex-
ecution Management, State Management, Communication Management and
UCM itself are good examples which probably require a Machine reset to activate the up-
date. Other such components could be applications involved in the update sequence
or applications involved in safety monitoring. Further details on Function Group
MachineFG can be found in State Management.
To speed up the overall data transmission time, the package transfer is decoupled
from the processing and activation process. This section describes requirements for
initiation of a data transfer, the data transmission and ending of the data transmission.
Each Software Package gets its own state as soon as it is being transferred to UCM.
The state machines in Fig. 7.4 specify the lifecycle of a Software Package that is
transferred to and processed by UCM. During this lifecycle, a Software Package is
uniquely identified with an id that UCM provides to the client.
The UCM has the possibility to keep the Software Package in kTransferred states
in case it failed and retry later: transferring Software Package can be costly, if
it is authenticated, there could be no reason to delete it if the update has not been
successfully finished.
Initi al
T ransferStart
T ransferD ata
Cancel
[TransferNotCompleted]
[TransferCom pleted]
DeleteTransfer
RevertProcessedSw Packages
D eleteTransfer
T ransfer
[ProcessSwPackageDone]
[transfer blocks not stored]
Com pleted ?
ProcessSwPackage
Stored transfer
blocks ?
D eleteTransfer
ProcessedSwPackageCancelled
RevertProcessedSwPackages,
Finish,
RevertProcessedSw Packages
kProcessingStream kProcessed
[ProcessSw PackageDone]
T ransferD ata,
TransferExit
[SWS_UCM_00007] Data transfer at any time dUCM shall provide support to trans-
fer Software Packages at any time when UCM is running. Transferring is decou-
pled from the UCM Package Management states.c(RS_UCM_00013, RS_UCM_00019,
RS_UCM_00025)
[SWS_UCM_00272]{DRAFT} Transfer block size dTransferStart shall return
BlockSize parameter to indicate the maximum block size to be allowed to transfer
in one TransferData method call.c(RS_UCM_00025)
The block size should be aligned to flashing capability in case of Classic Platform
capability for instance.
integrity check fails. This Software Package integrity check may be realized by
the UCM via a Software Package Checksum check or via other mechanisms.c(RS_-
UCM_00013, RS_UCM_00019, RS_UCM_00025)
TransferExit checks the package version format in accordance to
[SWS_UCM_00161] (IncompatiblePackageVersion).
[SWS_UCM_00213] TransferExit InvalidPackageManifest dTransferExit
shall raise the error ApplicationError InvalidPackageManifest upon receival
of an invalid manifest.c(RS_UCM_00012)
TransferExit checks if the Software Cluster version being updated is older
than currently present in Machine in accordance to [SWS_UCM_00103] (OldVer-
sion).
It is also possible to process a Software Package while the transfer is still ongoing.
The following requirements apply for this use case.
[SWS_UCM_00165] Processing from stream dThe UCM may support calling Pro-
cessSwPackage directly from stream without waiting to receive the Software
Package completely.c(RS_UCM_00001, RS_UCM_00003, RS_UCM_00004, RS_-
UCM_00025)
10. [SWS_UCM_00267]
11. [SWS_UCM_00104]
12. [SWS_UCM_00103]
13. [SWS_UCM_00150]
c(RS_UCM_00026)
[SWS_UCM_00219] ProcessSwPackage OperationNotPermitted dProcessSw-
Package shall raise the error ApplicationError OperationNotPermitted in
case the processing of the specified Software Package is already done, or in case
the processed Software Package action is update or removal of a non-existing soft-
ware cluster or in case streaming is not possible.c(RS_UCM_00025, RS_UCM_00026)
[SWS_UCM_00017] Sequential Software Package Processing dOnce method
ProcessSwPackage has been called by a client, further calls to the same method
shall be rejected with ApplicationError ServiceBusy as long as CurrentSta-
tus is different than kProcessing.c(RS_UCM_00001, RS_UCM_00003, RS_UCM_-
00026)
[SWS_UCM_00218] ProcessSwPackage InvalidTransferId dProcessSwPackage
shall raise the error ApplicationError InvalidTransferId in case an invalid
TransferId is sent by the client.c(RS_UCM_00026)
ProcessSwPackage checks authentication in accordance to [SWS_UCM_00098] (
AuthenticationFailed)
[SWS_UCM_00161] Check Software Package version compatibility against UCM
version dAt ProcessSwPackage, TransferData or TransferExit calls, UCM shall raise
ApplicationError IncompatiblePackageVersion if the version for the Soft-
ware Package transferred or to be processed expressed by minimumSupporte-
dUcmVersion attribute is higher than the current version of UCMc(RS_UCM_00007)
The Software Package is generated by a tooling including a packager which version
could not match with the UCM version, leading to manifest interpretation issues for
instance.
[SWS_UCM_00029] Consistency Check of Manifest dUCM shall validate the content
of the manifest against the schema defined for the meta-data(eg: for missing parameter
or for value out of range of the parameter) and shall raise the ApplicationError
InvalidPackageManifest if it finds discrepancies there.c(RS_UCM_00012)
[SWS_UCM_00285]{DRAFT} Removing or updating a Software Cluster not
existing in the Machine dIf a Software Package’s action is to remove or update
a Software Cluster that is not existing in the Machine, UCM shall raise Appli-
cationError SoftwareClusterMissing when ProcessSwPackage is called.c
(RS_UCM_00015)
UCM should notify the activation or rollback of Software Packages to other Func-
tional Clusters of the AUTOSAR Adaptive Platform. Vendor specific solution
dictates to which modules this information is available, in which form and if this is done
directly when change is done or when change is executed.
7.1.6.1 Activation
[SWS_UCM_00107] Activated state dUCM state kActivated shall express that new
version of updated SoftwareClusters are verified.c(RS_UCM_00008, RS_UCM_-
00030)
The state management [3] on the level of execution is handled by the UCM’s client
controlling the update process.
UCM has to be able to update several SoftwareClusters for an update campaign.
However, these SoftwareClusters could have dependencies not satisfied if updates
are processed and activated one by one. Therefore, UCM splits the activation action
from the general package processing.
[SWS_UCM_00027] Delta Package activation dApplicable version of Soft-
wareCluster on which to apply delta shall be included into related SoftwarePack-
age’s deltaPackageApplicableVersion attribute.c(RS_UCM_00007)
[SWS_UCM_00025] Activation of SoftwareClusters dUCM shall offer method Ac-
tivate to enable execution of any pending changes from the previously processed
Software Packages.c(RS_UCM_00021)
After Activate, the new set of SoftwareClusters can be started. Activation covers
all the processed Software Packages for all the clients.
[SWS_UCM_00022] Shared Activation of Software Packages dUCM shall acti-
vate all the processed Software Packages when Activate is called.c(RS_UCM_-
00021)
The activation method could lead to a full system reset. When Software Package
updates underlying OS, AUTOSAR Adaptive Platform or any Adaptive Appli-
cation which is configured to be part of Function Group MachineFG, the execu-
tion of updated software occurs through system reset by calling State Management
UpdateRequest Service Interface ResetMachine method. Meta-data of Software
Package defines the activation method.
In principle, it is possible to activate multiple versions of the same SoftwareCluster
in one activation step. This could be useful for example with delta package updates
but does not apply to firmware updates. The specification does not prohibit to create
this kind of chained updates. The decision to use chained updates should be based on
safety aspects and the applicability of the underlying update technology, if the update
is for a classic or an adaptive platform, if a file system is involved or if the used platform
even support it.
2. [SWS_UCM_00026]
3. [SWS_UCM_00258]
4. [SWS_UCM_00242]
5. [SWS_UCM_00280]
c(RS_UCM_00026)
[SWS_UCM_00241] Activate OperationNotPermitted dActivate shall raise the er-
ror ApplicationError OperationNotPermitted in case the UCM state is not
kReady.c(RS_UCM_00021)
[SWS_UCM_00026] Dependency Check dAt activation (i.e. after Activate method
is called), UCM shall perform a dependency check to ensure that all the Software
Packages having dependencies toward each other have been processed successfully,
otherwise return ApplicationError MissingDependencies.c(RS_UCM_00007)
If Activate method cannot establish an Update Session with State Management,
it returns UpdateSessionRejected, see [SWS_UCM_00258].
[SWS_UCM_00242] Activate PreActivationFailed dActivate shall raise the error
ApplicationError PreActivationFailed in case of activation state transition
failure from State Management side.c(RS_SM_00001)
[SWS_UCM_00280]{DRAFT} Activate VerificationFailed dActivate shall raise
the error ApplicationError VerificationFailed in case of verification failure
returned by State Management.c(RS_UCM_00021)
7.1.6.2 Rollback
During update process the executed software is switched from original software to
updated software and in case of rollback, from updated software to original version.
Which version of software is executed is dependent on the UCM state and this is man-
aged by the UCM. In case of platform and OS update the switch between software
versions occurs through system reset and depending on the system design the Exe-
cution Management [2] might be started before UCM. In this case there can’t be direct
interface between UCM and Execution Management [2] to define which versions of soft-
ware would be executed. Instead this would be controlled through persistent controls
which are referred as Boot options in this document.
[SWS_UCM_00094] Management of executable software dUCM shall manage which
version of software is available for the Execution Management [2] to launch.c(RS_-
UCM_00021)
During the kActivating state, UCM modifies the Boot options so that in the next
restart for the updated software the new versions will be executed. In the kRolling-
Back state, UCM modifies the Boot options so that in the next restart of the updated
software the original versions will be executed.
UCM should also remove Software Packages, logs or any older versions of changed
software to save storage space. It is up to implementer to remove or not the Software
Packages.
[SWS_UCM_00259] Ending the update session dUCM shall call State Manage-
ment UpdateRequest Service Interface StopUpdateSession method when UCM is
exiting the kCleaningUp state.c(RS_UCM_00021, RS_UCM_00018)
[SWS_UCM_00240] Finish OperationNotPermitted dFinish shall raise the error
ApplicationError OperationNotPermitted in case there are no activated nor
rolled-back Software Packages pending finalization (i.e UCM state is not kActi-
vated nor kRolledBack.c(RS_UCM_00001, RS_UCM_00026)
For UCM to be able to free all unneeded resources while processing the Finish re-
quest, it is up to the vendor and platform specific implementation to make sure that
obsolete versions of changed SoftwareClusters aren’t executed anymore.
Once Software Packages are transferred to UCM, they are ready to be processed
to finally apply changes to the AUTOSAR Adaptive Platform. In contrast to the
transmission, the processing and activation tasks have to happen in a strict sequential
order.
To give an overview of the update sequence, the global state of UCM is described in
this section. The details of the processing and activation phases and the methods are
specified in the 7.1.5 and 7.1.6.
The global state of UCM can be queried using the field CurrentStatus. The state
machine for CurrentStatus is shown in Fig. 7.5. This diagram does not include
behaviour after a reset. Examples can be found of how UCM and its CurrentStatus
field behave including reset management in chapter 10 Sequence Diagram.
[SWS_UCM_00019] Status Field of Package Management dThe global state of UCM
shall be provided using the field CurrentStatusc(RS_UCM_00024)
Figure 7.5: State Machine for the package processing using service interface: Package-
Management
UCM supported method calls for each value of field CurrentStatus are shown in Fig.
7.5.
[SWS_UCM_00086]{OBSOLETE} Unsupported method calls dUnsupported
method calls shall raise the ApplicationError OperationNotPermitted.c
(RS_UCM_00024)
[SWS_UCM_00080] Idle state of Package Management dkIdle shall be the default
state.c(RS_UCM_00024)
[SWS_UCM_00149] Return to the Idle state from Processing state dkIdle state
shall be set when ProcessSwPackage returns with error code ProcessSwPackage-
Cancelled and if no other Software Packages were previously processed during
this processing operation.c(RS_UCM_00024)
[SWS_UCM_00151] Entering the Ready state of Package Management after a
Cancel call dIf ProcessSwPackage has been cancelled, it shall return error code
ProcessSwPackageCancelled and set state to kReady only if at least one other
Software Package was previously processed during this processing operation.c
(RS_UCM_00024)
performed through two states, similarly as activation. Calling Rollback sets UCM
into kRollingBack state where original software version is made executable and
where original software is activated by the State Management. This is started by
calling State Management UpdateRequest Service Interface [SWS_SM_91017]
PrepareRollback method for each Software Cluster. On success, UCM goes to
kRollingBack state. In this state all the changes introduced during update process
have been deactivated and can be cleaned by calling Finish.
[SWS_UCM_00126] Entering the kRollingBack state after a Rollback call dThe
state kRollingBack shall be set when Rollback is called.c(RS_UCM_00008, RS_-
UCM_00030)
[SWS_UCM_00155]{DRAFT} Entering the kRolling-Back state after a failure in
the kVerifying state dThe state kRollingBack shall be set if any of the State Man-
agement UpdateRequest Service Interface VerifyUpdate method calls returns
the result kVerifyFailed.c(RS_UCM_00008, RS_UCM_00030)
[SWS_UCM_00264]{DRAFT} Update verification rejected dIf any one of the State
Management UpdateRequest Service Interface VerifyUpdate returns error kRe-
jected too many times or for too long (implementation specific thresholds), UCM shall
transition to kRollingBack state.c(RS_UCM_00030, RS_UCM_00008)
[SWS_UCM_00111]{DRAFT} Entering the kRollingBack state dThe state
kRollingBack shall be set after all calls to State Management UpdateRequest
Service Interface PrepareRollback have returned successfully.c(RS_UCM_00008,
RS_UCM_00030)
[SWS_UCM_00146] Entering the Cleaning-up state after a Finish call dThe state
kCleaningUp shall be set when Finish is called and the UCM starts to perform
cleanup actions.c(RS_UCM_00008, RS_UCM_00030)
[SWS_UCM_00162] Entering the Cleaning-up state after a RevertProcessedSw-
Packages call dThe state kCleaningUp shall be set when RevertProcessedSw-
Packages is called in kProcessing or kReady states and the UCM starts to perform
cleanup actions.c(RS_UCM_00008, RS_UCM_00030)
[SWS_UCM_00163] Action in Cleaning-up state dWhen kCleaningUp state is set,
the UCM shall clean up all data of the processed packages that are not needed any-
more.c(RS_UCM_00008, RS_UCM_00030)
[SWS_UCM_00164] Cleaning up of Software Packages dIn kCleaningUp state, the
UCM may remove (from the UCM buffer for instance) the "physical" Software Package
(e.g. zip file) that was used to transport the the SoftwareCluster to the UCM.c(RS_-
UCM_00008, RS_UCM_00030)
[SWS_UCM_00127] Finishing update sequence dkIdle shall be set when Finish
is called and the clean-up has been successfully performed. This finishes the update
sequence and next sequence can be started.c(RS_UCM_00008, RS_UCM_00030)
[SWS_UCM_00147] Return to the Idle state from Cleaning-up state dkIdle state
shall be set when the Clean-up operation has been completed successfully.c(RS_-
UCM_00024)
Failure during over-the-air updates could lead into corrupted or inconsistent software
configuration and further updates might be blocked. For this reason UCM needs to be
robust against interruptions like power downs.
[SWS_UCM_00157] Detection of reset dAt start up UCM shall identify if uncontrolled
reset occurred.c(RS_UCM_00027)
The way for UCM to detect uncontrolled reset is project specific. UCM could use hard-
ware platform specific registers to detect Soft/Hard reset. Or it could access PHM
Functional Cluster to detect uncontrolled reset. UCM could also check that the Cur-
rentStatus persistent field is not kIdle or kVerifying.
[SWS_UCM_00158] Cleanup of interrupted actions dAfter an uncontrolled reset,
UCM shall check non volatile memory integrity, recover processed artifacts in case it
is corrupted and resume interrupted actions in order to return the system into a state
from where UCM can continue serving its Clients.c(RS_UCM_00027)
[SWS_UCM_00270]{DRAFT} UCM internal state persistency dUCM shall persist
CurrentStatus state field to be able to resume on-going update after an intended or
unintended reboot.c(RS_UCM_00027)
Activation failure during OS and Platform-self updates can lead to a state in which the
system is not able to reach a point where UCM and the client are able to function as
expected and thus not able to execute the rollback. For these cases the system should
include component which is responsible to monitor that the OS and platform will start
up correctly. In case of failure, the Boot monitoring component should trigger a reset
or modify the boot options to trigger a rollback.
7.1.9 History
[SWS_UCM_00115] History dGetHistory method shall retrieve all actions that have
been performed by UCM within a specific time window input parameter.c(RS_UCM_-
00032)
In the case the UCM Client requests a rollback after a successful activation, Cur-
rentStatus field transitioning to kActivated, GetHistory method will later re-
turn GetHistoryType, with subelement Resolution of type ResultType equal to
kActivatedAndRolledBack.
[SWS_UCM_00160] Processing results records dUCM shall save activation time and
activation result of processed Software Packages in the history.c(RS_UCM_00032)
[SWS_UCM_00271]{DRAFT} Keeping history of failure error code dUCM shall keep
in GetHistoryType subelement FailureError the last failure error code as de-
scribed in [SWS_UCM_00136]. If no error occurred, the stored value shall be 0.c
(RS_UCM_00032)
[SWS_UCM_00274]{DRAFT} UCM initialization dUCM shall offer its services only after
its internal initialization has been completed, after switching to Running state.c(RS_-
UCM_00044)
This requirement prevents calling UCM subordinate API while internal initialization is
on-going. The concrete initialization tasks are implementation specific.
UCM Master objective is to provide a standard Adaptive Autosar solution to safely and
securely update a complete vehicle Over The Air or by a Diagnostic Tester.
UCM Master receives packages from Backend or Diagnostic tool, parses and inter-
prets the Vehicle Package, transfers or streams Software Packages to suitable
targets (UCM subordinate or Diagnostic Application) and orchestrates the processing,
activations and eventual rollbacks. All these actions are what is called a campaign
which UCM Master is coordinating. The UCM of the machines in the same network of
a UCM Master, candidates target of a campaign, are referred to as UCM subordinates.
The UCM Master could be considered as a set of add-on features that could enrich
any UCM instance. Therefore, as per the UCM APIs, the UCM Master APIs are part of
the Adaptive Platform Services. UCM and UCM Master have separate service
instances.
The OTA Client establishes a communication between Backend and UCM Master
so that they can exchange information of the installed Software Clusters in the
vehicle and the Software Clusters available in the Backend. This communica-
tion could be triggered by OTA Client with a scheduler and UCM Master to request
the updates in case of newly available Software Clusters (pull case) or by Back-
end to push, for instance, an important security update to a fleet of vehicles (push
case). The computation to find new Software Clusters versions and resolution of
dependencies between Software Clusters can be either done at UCM Master or
Backend.
Vehicle Driver interface Adaptive Application is required if it is needed during an
update campaign to interact with vehicle human driver through for instance Human-
Machine Interface. Download of packages from a Backend could have various finan-
cial costs for the driver depending of communication types, so consent from driver
could be suitable.
Vehicle State Manager Adaptive Application is required if it is needed dur-
ing an update campaign to control the vehicle state for safety purposes. For instance, it
could be required for safety to have standing still vehicle, shut-off engine, closed doors,
etc. before starting an UCM activation or during its processing.
The UCM Master acts as a client of the service interface offered by the UCM subor-
dinates, already specified in UCM. However, the UCM Master also offers three differ-
ent service interfaces to OTA Client, Vehicle Driver interface and Vehicle State
Manager respectively. UCM Master aggregates UCM subordinates states and can re-
port its status field to a Backend through its OTA Client.
A UCM Master receives a Vehicle Package and transfers or streams Software
Package(s) to the UCM subordinates for an AUTOSAR Adaptive Platform Soft-
ware Cluster update. A Vehicle Package contains instructions for orchestrating
updates between ECUs. The UCM Master provides information about ECUs in the
vehicle, installed software and update campaign resolution.
[SWS_UCM_01003] UCM Master checks states of UCM subordinates dA UCM
Master shall check the status of its UCM subordinates are all at kIdle CurrentSta-
tus state before starting a campaign.c(RS_UCM_00043)
UCM Master should for instance make sure that there is no ongoing diagnostic up-
dates before starting an update campaign by checking the reported state(s) of the UCM
subordinate(s) to be idle.
For UCM Master to distribute Software Packages to other UCM subordinates, UCM
Master has to identify UCM subordinates in vehicle. This identification could be at boot
or later but at least before any communication with Backend are engaged. Each UCM
has a unique identifier in Vehicle Package UcmModuleInstantiation called
identifier to help UCM Master transferring packages to targeted UCMs. To get such
identifier, UCM Master will perform first a service discovery through ara::com to get all
UCMs service instances available. Then UCM Master will call GetId method for each
UCM subordinates returning each corresponding UcmModuleInstantiation identi-
fiers.
[SWS_UCM_00009]{DRAFT} UCM exposing its identifier dUCM shall provide a
method GetId returning its UcmModuleInstantiation identifier.c(RS_UCM_-
00036)
If an ECU hosting UCM subordinate is replaced physically, it will register its services
to the registry at boot up and UCM Master will be able to communicate with UCM
subordinate(s).
[SWS_UCM_01005] UCM Master is discovering UCMs in vehicle dUCM Master
shall continuously look for UCM service instances (use of StartFindService() call).c
(RS_UCM_00036)
If a UCM Master is failing, another inactive UCM Master could be used or activated
by OTA Client.
Default (at boot) Master/Subordinate hierarchy or priority could be optionally overwrit-
ten for each campaign based on Vehicle Package content at the condition OTA
Client could properly parse Vehicle Packages.
UCM Master has generally same transfer API as UCM in order to simplify implementa-
tion and reuse code as much as possible (could be shared library between UCM and
UCM Master).
It is necessary to distinguish Vehicle Package (UCM Master specific) from Soft-
ware Packages transfer.
[SWS_UCM_01011] TransferVehiclePackage InsufficientMemory dTrans-
ferVehiclePackage method shall raise the ApplicationError Insufficient-
Memory if the UCM buffer has not enough resources to process the corresponding
Vehicle Package.c(RS_UCM_00013)
[SWS_UCM_01018]{DRAFT} TransferVehiclePackage BusyWithCampaign d
TransferVehiclePackage method shall return the ApplicationError Busy-
WithCampaign, if the UCM Client wants to start a new campaign, while a campaign is
already started and active.c(RS_UCM_00035)
and packages to the vehicle by identifying the vehicle, by for instance sending VIN to
Backend.
OTA Client uses the UCM Master as a service provider via ara::com. Since trans-
ferring Vehicle Packages and Software Packages from Backend to UCM Mas-
ter is OTA Client’s responsibility, OTA Client should be able to accommodate any
proprietary communication protocol used between OTA Client and Backend and
convert it into ara::com transport protocol. OTA Client should support UCM Master
Software Packages transfer or streaming as specified in chapter 7.2.5, it should
then provide at least the following functionality:
• Comply to the requirements of chapter 7.1.3 in the context of package transfer
between OTA Client and UCM Master.
• OTA Client should subscribe to UCM Master’s RequestedPackage field to
know what Software Package is expected to be transferred
• OTA Client should subscribe to UCM Master’s TransferState field to know
what is campaign state
• OTA Client should subscribe to UCM Master’s SafetyState field to eventu-
ally make sure vehicle is in a safe state before transferring Packages
• OTA Client could support multiple data transfers in parallel, as specified in
[SWS_UCM_00075]
In addition, OTA Client could support the ability to pause or resume the package
transfer for the current campaign to prioritize the transfer of the packages from a dif-
ferent campaign. The ability of OTA Client to pause or resume the package transfer
might be helpful in the case there is a need to cancel an ongoing campaign at kTrans-
ferring state to allow higher priority campaign to be performed.
Only one UCM Master has to be used by OTA Clients per network domain. As UCM
Master is distributing Software Packages and coordinating UCM subordinates, OTA
Clients in the same network domain have to make sure there are no already on-going
campaigns when starting a new campaign with TransferVehiclePackage method
call by checking UCM Master’s state with TransferState field, in order to avoid any
interference and guarantee success of an update campaign.
[SWS_UCM_01101] Provide information of installed Software Clusters in ve-
hicle dUCM Master shall provide a method GetSwClusterInfo to return information
of all Software Cluster present in the vehicle.c(RS_UCM_00033)
UCM Master can aggregate Software Cluster information from several UCMs
within a vehicle and returns the result to a Backend which can compute if there is any
new Software Cluster available and decide to send to UCM Master through OTA
Client a Vehicle Package. It is up to OTA Client to make sure the synchroni-
sation of the versions of Software Packages present in Backend and Software
Clusters in the vehicles using GetSwClusterInfo or SwPackageInventory is
recent enough before starting a campaign with TransferVehiclePackage call.
Vehicle State Manager is collecting states from the several vehicle ECUs and in-
forms UCM Master when the safety state computed based on the safety policy re-
ferred in the Vehicle Package is changing. If the safety policy is not met, the UCM
Master can for instance decide to:
• Inform vehicle driver that the safety conditions are not met to continue the update
• postpone, pause or cancel the update until policy is met
[SWS_UCM_01109]{DRAFT} UCM Master provides a safety interface dUCM Mas-
ter shall provide a field SafetyConditions for which values are available in Vehi-
clePackage.c(RS_UCM_00037)
[SWS_UCM_01110]{DRAFT} UCM Master SafetyState method dUCM Master
shall provide a method SafetyState to get informed of vehicle state changes.c(RS_-
UCM_00037)
Flashing Adapter is an application that is used in the case UCM Master is updating a
AUTOSAR Classic Platform or any platform that can be flashed using diagnostic.
It contains OEM specific diagnostic sequences and communicates via ara::com with
the UCM Master and the AUTOSAR Adaptive Platform, and uses an implemen-
tation of diagnostic protocol data unit application programming interface (D-PDU API)
to communicate with Classic ECUs over the Vehicle Bus.
The data transfer from Flashing Adapter to the target ECU via diagnostic communi-
cation can be subject to interruptions if communication on a higher priority protocol
occurs, e.g. OBD services. In that case the Flashing Adapter can use a project spe-
cific strategy to detect the interruption, retry the transfer from the beginning, and decide
whether to notify or not the client about the transfer interruption.
[SWS_UCM_CONSTR_00011]{DRAFT} Flashing Adapter provided interface
dFlashing Adapter shall provide the same ara::com service interface as UCM
([SWS_UCM_00131]).c(RS_UCM_00035)
These protocols are present in ’Table B.2 - Standard protocol combination list’ of ISO
22900-2:2017(E).
Dynamic Link Libraries for Windows operating system are not required. The Windows
installation process out of ISO 22900-2:2017(E) chapter 8.7.2 is not applicable to the
AUTOSAR Adaptive Platform which is using POSIX Operating System.
[SWS_UCM_01125]{DRAFT} Separation of D-PDU API-Software with the MVCI
protocol module firmware dA D-PDU API implementation may be split at OSI-Layer
4 into a D-PDU API implementation on OSI-Layer 5 (usually in the PC itself) and the
VCI-Module on OSI-Layers 3 and 4 (usually the VCI itself).c(RS_UCM_00035)
[SWS_UCM_01126]{DRAFT} Root description file (RDF) dWithin an AUTOSAR
Adaptive Platform, only one D-PDU API implementation is required for UCM,
therefore the D-PDU API implementation may not use the D-PDU API root descrip-
tion file (RDF).c(RS_UCM_00035)
The only instance of the D-PDU API within a Software Cluster can be statically
linked with the Flashing Adapter.
[SWS_UCM_01127]{DRAFT} Module Description File (MDF) dThe D-PDU API im-
plementation should not implement a protocol description file.c(RS_UCM_00035)
The supported protocol module types are fixed in the UCM use case.
[SWS_UCM_01128]{DRAFT} Symbolic names and IDs dThe Flashing Adapter may
operate the D-PDU API without using symbolic names and IDs during runtime. If the
use case excludes frequent changes to the MDFs, simple Flashing Adapter may even
hardcode (e.g. in a header file) all necessary IDs and operate the D-PDU API without
symbolic names.c(RS_UCM_00035)
[SWS_UCM_01129]{DRAFT} SAE J2534-1 and RP 1210a compatibility dD-PDU
API implementation may not be compatible to SAE J2534-1 and RP 1210a.c(RS_-
UCM_00035)
The Adaptive Platform does not need any migration path.
[SWS_UCM_01130]{DRAFT} ComPrimitives in RawMode dD-PDU API implemen-
tation may not implement the IOCTL filter data structure.c(RS_UCM_00035)
a Classic ECU always requires some exclusive access and should be handled in the
AUTOSAR Adaptive Platform itself.
[SWS_UCM_01131]{DRAFT} PDUIoCtl(PDU_IOCTL_RESET) dThe parame-
ter PDU_IOCTL_RESET may not be implemented in D-PDU API implementa-
tion so the call of PDUIoCtl(PDU_IOCTL_RESET) shall return the error code
PDU_ERR_ID_NOT_SUPPORTED.c(RS_UCM_00035)
[SWS_UCM_01132]{DRAFT} PDUIoCtl(PDU_IOCTL_START_MSG_FILTER),
PDUIoCtl(PDU_IOCTL_CLEAR_MSG_FILTER), PDUIoCtl(
PDU_IOCTL_STOP_MSG_FILTER) dThe call of PDUIoCtl() with the pa-
rameters PDU_IOCTL_START_MSG, PDU_IOCTL_CLEAR_MSG_FILTER
and PDU_IOCTL_CLEAR_MSG_FILTER shall return the error code
PDU_ERR_ID_NOT_SUPPORTED.c(RS_UCM_00035)
The parameters PDU_IOCTL_START_MSG, PDU_IOCTL_CLEAR_MSG_FILTER and
PDU_IOCTL_CLEAR_MSG_FILTER are intended for the PassThru-Mode for com-
primitives and therefore an implementation is not required for the Flashing Adapter.
[SWS_UCM_01133]{DRAFT} PDUIoCtl(PDU_IOCTL_SEND_BREAK)
dThe IOCTL command PDU_IOCTL_SEND_BREAK shall return
PDU_ERR_ID_NOT_SUPPORTED.c(RS_UCM_00035)
The IOCTL command PDU_IOCTL_SEND_BREAK is used to send a break signal on
the ComLogicalLink. A break signal can only be sent on certain physical layers (e.g.
SAE J1850 VPW physical links and UART physical links) which are not supported by
UCM.
[SWS_UCM_01134]{DRAFT} Not used D-PDU API function return codes
dThe return codes PDU_ERR_CABLE_UNKNOWN, PDU_ERR_RSC_LOCKED,
PDU_ERR_RSC_NOT_LOCKED, PDU_ERR_API_SW_OUT_OF_DATE and
PDU_ERR_MODULE_FW_OUT_OF_DATE may not be implemented into the
D-PDU API of the AUTOSAR Adaptive Platform.c(RS_UCM_00035)
There is no cable attached to the ECU and therefore no cable detection return code
PDU_ERR_CABLE_UNKNOWN could occur.
Locking is not required for the Flashing Adapter, therefore PDU_ERR_RSC_LOCKED
and PDU_ERR_RSC_NOT_LOCKED return code could not occur.
There is no separation of D-PDU API-Software with the
MVCI protocol module firmware required in the AUTOSAR Adap-
tive Platform, so PDU_ERR_API_SW_OUT_OF_DATE and
PDU_ERR_MODULE_FW_OUT_OF_DATE return codes could not occur.
7.2.7.4 Classic platform update with UCM Master and diagnostic tool
Updating Classic from diagnostic tester
Communication medium
Garage tester
Communication channel
Vehicle Ethernet or CAN/DoCAN Bus
DoIP
Diagnostic
Flashing application Classic
Adapter AUTOSAR Non
(ECU AUTOSAR
instance)
UDS on
CAN UDS on DoIP
Diagnostic Application is
acting like an OTA Client
Classic Classic
AUTOSAR AUTOSAR
The Diagnostic Manager connects the Diagnostic tool to the Adaptive Platform. The di-
agnostic application is acting like an OTA Client and uses the UCM Master services
to push Vehicle Packages and Software Packages.
[SyncingDone] VEHICLEPACKAGE_TRANSFERRING
Sw PackageInventory(), do / V ehiclePackageReceiving
GetSw ClusterInfo() transferV ehiclePackage()
cancelCam paign(),
IDLE U CMMaster.deleteTransfer()
Cam paign
aborted transferExit() [not
(InvalidPackageManifest |
LackResources | FailedDependency)
[A ll CurrentStatus==Idle] cancelCam paign() & (D river approval not needed)]
[InvalidPackageManifest]
CA NCELLING
A ll SW Ps transferred SOFTWAREPACKAGE_TRANSFERRING
do / Cancelling [D river Approval needed]
/A pprovalRequired = True do / D istributeSoftwarePackages transferD ata()
Transfer
Cam paign finished
Cam paign failed successful
UPDATING U pdate
s tart
[V ehicleChecksSuccessful &&
A ll CurrentStatus==Idle] A ll Packages processed successfully [All
Softw arePackageStates == kProcessed &
cancelCam paign(), D river approval needed]
V ehicleChecksFailed /A pprovalRequired = True
cancelCam paign(),
N onRecoverableFailure
cancelCam paign(), VEHICLE_CHECKING
PROCESSING
A ctivationFailure
do / V ehicleSanityCheck
do / ProcessingSoftw arePackages
A ll Packages processed successfully [All
Softw arePackageStates == kProcessed &
A ll CurrentStatus == Activated D river approval not needed]
transferD ata()
ACTIVATING D riverA pproval(True)
do / UCM.Activate() /A pprovalRequired = False
SYNCING
do / ComputeUpdates
Sw PackageInventory(), [SyncingDone]
GetSw ClusterInfo() Cam paign TRANSFERRING
s tart
IDLE transferV ehiclePackage()
Cam paign
aborted
Transfer
finished
Initi al
[A ll CurrentStatus==Idle]
Figure 7.9: Campaign State Machine for OTA Client (TransferState field)
Diagrams 7.8 and 7.9 do not include behaviour after reset ([SWS_UCM_01205] for
more details)
[SWS_UCM_01201] Sequential orchestration of campaigns dUCM Master shall or-
chestrate at most a single campaign at any one time.c(RS_UCM_00043)
[SWS_UCM_01265] TransferState field dUCM Master shall provide the state of a
campaign over the TransferState field of the UCM Master’s VehiclePackageM-
anagement service interface.c(RS_UCM_00042)
[SWS_UCM_01203] CampaignState field dUCM Master shall provide the state of a
campaign over the CampaignState field of the UCM Master VehicleDriverAp-
plication Service Interface.c(RS_UCM_00042) There is an overview of the cam-
paign state machine in Fig. 7.8 detailing UCM Master campaign states and transitions.
7.2.8.1 States
[SWS_UCM_01204] Initial state dUCM Master shall have kIdle default state.c(RS_-
UCM_00035)
[SWS_UCM_01207] Trigger on kSoftwarePackage_Transferring state dOn
transition to kSoftwarePackage_Transferring state and if all UCM subordinates
part of the campaign are in kIdle state, UCM Master shall start or resume transfer-
ring (TransferStart and TransferData as well as TransferExit if no streaming
required) the software packages to the UCM subordinates according to the campaign
orchestration.c(RS_UCM_00035, RS_UCM_00043)
[SWS_UCM_01209] Trigger on kProcessing state dOn transition to kProcessing
state, UCM Master shall call ProcessSwPackage method to UCM subordinates to
start or resume processing the software packages ready for processing according to
the campaign orchestration.c(RS_UCM_00035, RS_UCM_00043)
[SWS_UCM_00210] Transferring of software packages on kProcessing state
dIf UCM Master is in kProcessing state, UCM Master shall transfer Software
Packages to the UCM subordinates according to the campaign orchestration.c(RS_-
UCM_00035, RS_UCM_00043)
[SWS_UCM_01212] Trigger on kActivating state dOn transition to kActivating
state, UCM Master shall ask UCM subordinates to activate the software with Activate
method call according to the campaign orchestration.c(RS_UCM_00035, RS_UCM_-
00043)
[SWS_UCM_01214]{DRAFT} Final action on kVehicleChecking state dIf UCM
Master is in kVehicleChecking state and receives the method VehicleCheck
call with parameter VehicleCheckResolution=True, UCM Master shall secondly
commit (Finish) the software on all UCM subordinates part of the campaign.c(RS_-
UCM_00035)
[SWS_UCM_01215]{DRAFT} Trigger on kCancelling state dOn transition to
kCancelling state, UCM Master shall first rollback (Rollback) the software on all
UCM subordinates part of the campaign.c(RS_UCM_00035)
[SWS_UCM_01216]{DRAFT} Final action on kCancelling state dIf UCM Master
is in kCancelling state and the rollback of software on all UCM subordinates is suc-
cessful (successful Rollback and transition from kRollingBack to kRolledBack),
UCM Master shall secondly commit (Finish) the software on all UCM subordinates
part of the campaign.c(RS_UCM_00035)
[SWS_UCM_01217] Monitoring of UCM subordinates dUCM Master shall sub-
scribe to the CurrentStatus field, in order to follow the current campaign from the
state of the UCM Subordinates.c(RS_UCM_00035)
[SWS_UCM_01218] Transition from kIdle state to kSyncing state dIf UCM Mas-
ter is in kIdle state, UCM Master shall enter the kSyncing state on a request
to GetSwClusterInfo or SwPackageInventory.c(RS_UCM_00035, RS_UCM_-
00033)
[SWS_UCM_01219] Transition from kSyncing state to kIdle state dIf UCM Mas-
ter is in kSyncing state, UCM Master shall enter the kIdle state on completion of
GetSwClusterInfo or SwPackageInventory.c(RS_UCM_00035)
[SWS_UCM_01220] Transition from kIdle state to kVehiclePackageTrans-
ferring state dIf UCM Master is in kIdle state, UCM Master shall enter the kVe-
hiclePackageTransferring state on successful completion of TransferVehi-
clePackage.c(RS_UCM_00035)
[SWS_UCM_01221]{DRAFT} Transition from kVehiclePackageTransferring
state to kIdle state dIf UCM Master is in kVehiclePackageTransferring state,
UCM Master shall enter the kIdle state on unsuccessful completion of Transfer-
Exit (Vehicle Package) or successful completion of DeleteTransfer (Vehicle
Package) or non recoverable error of TransferData.c(RS_UCM_00035, RS_UCM_-
00039)
[SWS_UCM_01222] Transition from kVehiclePackageTransferring state to
kSoftwarePackage_Transferring state dIf UCM Master is in kVehiclePack-
ageTransferring state, UCM Master shall enter the kSoftwarePackage_-
Transferring state on successful completion of TransferExit (Vehicle Pack-
age).c(RS_UCM_00035, RS_UCM_00037, RS_UCM_00038)
[SWS_UCM_01227] Transition from kSoftwarePackage_Transferring state to
kIdle state dIf UCM Master is in kSoftwarePackage_Transferring state, UCM
Master shall enter the kIdle state on successful cancellation request (CancelCam-
paign) or if there is a non recoverable transfer failure from one of the UCM subordi-
nates.c(RS_UCM_00035)
[SWS_UCM_01228] Transition from kSoftwarePackage_Transferring state to
kProcessing state dWhen UCM Master is in kSoftwarePackage_Transfer-
ring state, if all Software Packages are ready for processing, all Software Pack-
ages from all UCM subordinates are at state kTransferred) or at least one Software
Package started being processed by ProcessSwPackage call to one UCM subordi-
nate according to the campaign orchestration, UCM Master shall enter the kPro-
cessing state.c(RS_UCM_00035, RS_UCM_00037, RS_UCM_00038, RS_UCM_-
00043)
[SWS_UCM_01229]{DRAFT} SafetyConditions while processing stream dIn the
case there is transition from kSoftwarePackage_Transferring state to kPro-
cessing state, the SafetyConditions for kProcessing state shall apply even though
there are Software Packages transferring.c(RS_UCM_00035, RS_UCM_00037)
It is integrator’s responsibility to make sure in this use case that safety conditions for
Processing will also cover safety approach of transferring.
[SWS_UCM_01234]{DRAFT} Transition from kProcessing state to kActivat-
ing state dIf UCM Master is in kProcessing state and all software packages of the
campaign have been successfully (successful ProcessSwPackage) processed and
all UCM subordinates part to the campaign are in the kReady state, UCM Master
shall enter the kActivating state.c(RS_UCM_00035, RS_UCM_00037, RS_UCM_-
00038)
[SWS_UCM_01236]{DRAFT} Transition from kProcessing state to kCan-
celling state dIf UCM Master is in kProcessing state, UCM Master shall enter
the kCancelling state on successful cancellation request (CancelCampaign) or
in case of non recoverable processing failure of one of the UCM subordinates.c(RS_-
UCM_00035)
[SWS_UCM_01239]{DRAFT} Transition from kActivating state to kCan-
celling state dIf UCM Master is in kActivating state, UCM Master shall enter
the kCancelling state if any UCM subordinates part of the campaign unsuccess-
fully (unsuccessful Activate and transition from kVerifying to kRollingBack)
completed activation.c(RS_UCM_00035)
[SWS_UCM_01240] Transition from kActivating state to kVehicleChecking
state dIf UCM Master is in kActivating state, UCM Master shall enter the kVehi-
cleChecking state if all UCM subordinates part of the campaign successfully (suc-
cessful Activate and transition from kVerifying to kActivated) completed acti-
vation.c(RS_UCM_00035, RS_UCM_00037)
[SWS_UCM_01241]{DRAFT} Transition from kVehicleChecking state to kCan-
celling state dIf UCM Master is in kVehicleChecking state and receives the
method VehicleCheck call with parameter VehicleCheckResolution=False, UCM
Master shall enter the kCancelling state.c(RS_UCM_00035)
[SWS_UCM_01242] Transition from kVehicleChecking state to kIdle state dIf
UCM Master is in kVehicleChecking state and all UCM subordinates part of the
campaign transitioned from kCleaningUp to kIdle, UCM Master shall enter the
kIdle state.c(RS_UCM_00035)
[SWS_UCM_01243] Transition from kCancelling state to kIdle state dIf UCM
Master is in kCancelling state and all UCM subordinates part of the campaign
transitioned from kCleaningUp to kIdle, UCM Master shall enter the kIdle state.c
(RS_UCM_00035)
[SWS_UCM_01246]{DRAFT} Unreachable UCM during update campaign dIn case
a UCM is not reachable by UCM Master during an update campaign (from kTrans-
ferring or kUpdating), UCM Master shall cancel and go back to kIdle.c(RS_-
UCM_00035, RS_UCM_00037)
After campaign is finished (finish method has been sent to all UCM subordinates),
UCM Master should report to Backend server status of the vehicle, with for instance
updated information of Software Clusters present in vehicle.
[SWS_UCM_01247] Method to read History Report dUCM Master shall provide a
method GetCampaignHistory to retrieve all actions that have been performed by
UCM Master when exiting state kUpdating from a specific time window.c(RS_UCM_-
00034)
[SWS_UCM_01248] Content of History Report dUCM Master shall save activation
time and activation result of processed Vehicle Packages in the history.c(RS_-
UCM_00034)
(waiting passively for next reboot) to get activated. To optimize a campaign or fulfil
dependencies, it could be required to activate Software Clusters one after the
other or several at once. To support all possible campaigns, the Vehicle Pack-
age includes a model describing this coordination. It also contains a way to identify
the several involved UCMs for packages distribution within the vehicle and potentially
overwriting default UCM Master for this specific campaign.
You can find below for information purpose a description of the information that must
be contained in Vehicle Package manifest:
• Repository: uri, repository or diagnostic address, for history, tracking and security
purposes
• Vehicle description: vehicle description
• Vehicle Driver notifications: it might be needed to ask vehicle driver if UCM Mas-
ter can start transferring Software Packages, processing it and activating it
but also inform him of the necessary safety requirements if applicable.
• Safety policy: safety policy index to be used as argument to subscribe a field to
vehicle safety manager. With this field, UCM Master will be informed at any time
of campaign if vehicle safety is met or not.
• UCM Master identifiers list: defines backup UCM Masters
• Campaign orchestration: You can refer to [9] for more details. This campaign
model allows to group activation of several UCMs and group Software Pack-
ages processing and transferring.
[SWS_UCM_01301]{DRAFT} Vehicle Package authentication dVehicle
Package shall be authenticated by UCM Master before any transfer of Software
Packages.c(RS_UCM_00039, RS_UCM_00043)
[SWS_UCM_01302]{DRAFT} Vehicle Package authentication failure dIn case
Vehicle Package authentication fails at TransferExit call, UCM Master shall
raise the ApplicationError AuthenticationFailed.c(RS_UCM_00039, RS_-
UCM_00043)
[SWS_UCM_01303]{DRAFT} Dependencies between Software Packages dUCM
Master shall check dependencies based on Vehicle Package Manifests and
Software Packages Manifests before an transfer of Software Packages.c
(RS_UCM_00035, RS_UCM_00043)
[SWS_UCM_01305]{DRAFT} Vehicle Package format dVehicle Package shall
contain Vehicle Package manifest and Software Packages manifests of ARXML
format.c(RS_UCM_00035, RS_UCM_00043)
[SWS_UCM_01306]{DRAFT} TransferExit Invalid package manifest dTrans-
ferExit shall raise the error ApplicationErrorInvalidPackageManifest
upon receive of an invalid manifest.c(RS_UCM_00012)
8 API specification
There are no APIs defined in this release.
9 Service Interfaces
9.1.1 UCMIdentifierType
[SWS_UCM_00173]{DRAFT} d
Name UCMIdentifierType
Kind STRING
Derived from -
Description UCM Module Instantiation Identifier.
c(RS_UCM_00036)
9.1.2 TransferIdType
[SWS_UCM_00031]{DRAFT} d
Name TransferIdType
Kind ARRAY
Array size 16
Subelements uint8_t
Derived from -
Description Represents a handle identifier used to reference a particular transfer request.
c(RS_UCM_00019, RS_UCM_00025)
9.1.3 SwNameType
[SWS_UCM_00071]{DRAFT} d
Name SwNameType
Kind STRING
Derived from -
Description SoftwareCluster or SoftwarePackage shortName attribute inherited from referrable meta
Class.
c(RS_UCM_00002)
9.1.4 SwNameVectorType
[SWS_UCM_00174]{DRAFT} d
Name SwNameVectorType
Kind VECTOR
Subelements SwNameType
Derived from -
Description Represents a dynamic size array of Software Cluster names.
c(RS_UCM_00002)
9.1.5 StrongRevisionLabelString
[SWS_UCM_00175]{DRAFT} d
Name StrongRevisionLabelString
Kind STRING
Derived from -
Description Primitive type representing SoftwareCluster (SoftwarePackage) version.
c(RS_UCM_00002)
9.1.6 SwNameVersionType
[SWS_UCM_00176]{DRAFT} d
Name SwNameVersionType
Kind STRUCTURE
Subelements Name SwNameType
Version StrongRevisionLabelString
Derived from -
Description Represents the information of a Software Package (Software Cluster) name and version.
c(RS_UCM_00002)
9.1.7 SwNameVersionVectorType
[SWS_UCM_00177]{DRAFT} d
Name SwNameVersionVectorType
Kind VECTOR
Subelements SwNameVersionType
Derived from -
Description Represents a dynamic size array of Software Name and Version
c(RS_UCM_00002)
9.1.8 ByteVectorType
[SWS_UCM_00032]{DRAFT} d
Name ByteVectorType
Kind VECTOR
Subelements uint8_t
Derived from -
Description Byte vector representing raw data.
c(RS_UCM_00025)
9.1.9 SwPackageStateType
[SWS_UCM_00038]{DRAFT} d
Name SwPackageStateType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the state of a Software Package on the Platform.
Range / Symbol Limit Description
kTransferring 0x00 Software package is being transferred, i.e. not completely received.
kTransferred 0x01 Software package is completely transferred and ready to be
processed.
kProcessing 0x02 Software package is currently being processed.
kProcessed 0x03 Software package processing finished.
kProcessingStream 0x04 Software package is being processed from a stream.
9.1.10 SwPackageInfoType
[SWS_UCM_00039]{DRAFT} d
Name SwPackageInfoType
Kind STRUCTURE
Subelements Name SwNameType
Version StrongRevisionLabelString
TransferID TransferIdType
ConsecutiveBytesReceived uint64_t
ConsecutiveBlocksReceived uint64_t
State SwPackageStateType
Derived from -
Description Represents the information of a Software Package.
9.1.11 SwPackageInfoVectorType
[SWS_UCM_00040]{DRAFT} d
Name SwPackageInfoVectorType
Kind VECTOR
Subelements SwPackageInfoType
Derived from -
Description Represents a dynamic size array of Software Packages
9.1.12 SwDescType
[SWS_UCM_00186]{DRAFT} d
Name SwDescType
Kind STRUCTURE
Subelements Name SwNameType
Version StrongRevisionLabelString
TypeApproval string
License string
ReleaseNotes string
Size uint64_t
Derived from -
Description Contains general information related to SoftwareCluster that can be used by Vehicle
Driver Application or Human Interface.
c(RS_UCM_00002, RS_UCM_00011)
9.1.13 SwDescVectorType
[SWS_UCM_00187]{DRAFT} d
Name SwDescVectorType
Kind VECTOR
Subelements SwDescType
Derived from -
Description Represents a dynamic size array of SoftwareCluster description
c(RS_UCM_00002, RS_UCM_00011)
9.1.14 SwPackageDescType
[SWS_UCM_00268]{DRAFT} d
Name SwPackageDescType
Kind STRUCTURE
Subelements SwDesc SwDescType
PackageAction ActionType
Duration uint32_t
Derived from -
Description Contains general information related to SoftwarePackage that can be used by Human
Interface.
c(RS_UCM_00033)
9.1.15 SwPackageDescVectorType
[SWS_UCM_00269]{DRAFT} d
Name SwPackageDescVectorType
Kind VECTOR
Subelements SwPackageDescType
Derived from -
Description Represents a dynamic size array of SwPackageDescType.
c(RS_UCM_00033)
9.1.16 SwClusterStateType
[SWS_UCM_00077]{DRAFT} d
Name SwClusterStateType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the state of a SoftwareCluster on the adaptive platform.
Range / Symbol Limit Description
kPresent 0x00 State of a SoftwareCluster that is installed on the adaptive platform
and installation has finished.
kAdded 0x01 State of a SoftwareCluster that has been newly installed.
kUpdated 0x02 State of a SoftwareCluster that has been updated.
kRemoved 0x03 State of a SoftwareCluster that has been removed.
9.1.17 SwClusterInfoType
[SWS_UCM_00078]{DRAFT} d
Name SwClusterInfoType
Kind STRUCTURE
Subelements Name SwNameType
Version StrongRevisionLabelString
State SwClusterStateType
Derived from -
Description Represents the information of a SoftwareCluster.
9.1.18 SwClusterInfoVectorType
[SWS_UCM_00079]{DRAFT} d
Name SwClusterInfoVectorType
Kind VECTOR
Subelements SwClusterInfoType
Derived from -
Description Represents a dynamic size array of SoftwareClusters
9.1.19 PackageManagementStatusType
[SWS_UCM_00044]{DRAFT} d
Name PackageManagementStatusType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the state of UCM.
Range / Symbol Limit Description
kIdle 0x00 UCM is ready to start processing if software packages are present.
kReady 0x01 UCM has processed one or several packages and waits for additional
packages, activation or reversion of processed packages.
kProcessing 0x02 UCM is currently in the middle of processing a Software Package, i.e.
a client has called ProcessSwPackage.
kActivating 0x03 UCM is performing the dependency check and preparing the activation
of the processed Software packages.
kActivated 0x04 Software changes introduced with processed Software Packages has
been activated and executed.
kRollingBack 0x05 UCM is reverting changes introduced with processed packages.
kRolledBack 0x06 Software changes introduced with processed Software Packages has
been deactivated and original software is executed.
kCleaningUp 0x07 Making sure that the system is in a clean state.
kVerifying 0x08 UCM (via State Management) is checking that the processed
packages have been properly restarted.
c(RS_UCM_00024, RS_UCM_00026)
9.1.20 ActionType
[SWS_UCM_00132]{DRAFT} d
Name ActionType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the UCM action.
Range / Symbol Limit Description
kUpdate 0x00 Update of a SoftwareCluster.
kInstall 0x01 Installation of a new SoftwareCluster.
kRemove 0x02 Removal of a SoftwareCluster.
c(RS_UCM_00032)
9.1.21 ResultType
[SWS_UCM_00133]{DRAFT} d
Name ResultType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the result of UCM action.
Range / Symbol Limit Description
kActivated 0x00 Activation was successful.
kActivatedAndRolledBack 0x01 UCM was activated but rolled back by its Client.
kVerificationFailed 0x02 UCM’s action failed.
c(RS_UCM_00032)
9.1.22 GetHistoryType
[SWS_UCM_00134]{DRAFT} d
Name GetHistoryType
Kind STRUCTURE
Subelements Time uint64_t
Name SwNameType
Version StrongRevisionLabelString
Action ActionType
Resolution ResultType
FailureError uint64_t
Derived from -
Description Time refers to the activation time of the software cluster. It is represented in milliseconds
of UCM’s action resolution since 01.01.1970 (UTC).
c(RS_UCM_00032)
9.1.23 GetHistoryVectorType
[SWS_UCM_00135]{DRAFT} d
Name GetHistoryVectorType
Kind VECTOR
Subelements GetHistoryType
Derived from -
Description Represents a list of UCM actions
c(RS_UCM_00032)
9.1.24 CampaignHistoryType
[SWS_UCM_00251]{DRAFT} d
Name CampaignHistoryType
Kind STRUCTURE
Subelements CampaignError CampaignErrorType
HistoryVector HistoryVectorType
Derived from -
Description Campaign history
c(RS_UCM_00034)
9.1.25 CampaignErrorType
[SWS_UCM_00252]{DRAFT} d
Name CampaignErrorType
Kind STRUCTURE
Subelements CampaignFailure CampaignFailureType
UCMStepError UCMStepErrorType
Derived from -
Description Campaign Error
c(RS_UCM_00034)
9.1.26 CampaignFailureType
[SWS_UCM_00256]{DRAFT} d
Name CampaignFailureType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Campaign failure
Range / Symbol Limit Description
kUCMError 0x01 UCM error
kInvalidVehiclePackage 0x02 Vehicle Package manifest is invalid
Manifest
kSubordinateNotAvailableOn 0x03 UCM subordinate not reachable
TheNetwork
kVehicleStateManager 0x04 Communication error with Vehicle State Manager
CommunicationError
kVehicleDriverInterface 0x05 Communication error with Vehicle Driver Interface
CommunicationError
5
4
kCampaignCancelled 0x06 Campaign was cancelled
c(RS_UCM_00034)
9.1.27 UCMStepErrorType
[SWS_UCM_00253]{DRAFT} d
Name UCMStepErrorType
Kind STRUCTURE
Subelements id UCMIdentifierType
SoftwarePackageStep SoftwarePackageStepType
ReturnedError uint8_t
Derived from -
Description UCM Error
c(RS_UCM_00034)
9.1.28 SoftwarePackageStepType
[SWS_UCM_00255]{DRAFT} d
Name SoftwarePackageStepType
Kind TYPE_REFERENCE
Derived from uint8_t
Description UCM Software Package step at which error occurred
Range / Symbol Limit Description
kTransfer 0x00 Software Package transfer
kProcess 0x01 Software Package processing
kPreActivate 0x02 Software Cluster pre activation
kVerify 0x03 Software Cluster verification
c(RS_UCM_00034)
9.1.29 HistoryVectorType
[SWS_UCM_00254]{DRAFT} d
Name HistoryVectorType
Kind STRUCTURE
Subelements id UCMIdentifierType
HistoryVector GetHistoryVectorType
Derived from -
Description History of an UCM
c(RS_UCM_00034)
9.1.30 CampaignStateType
[SWS_UCM_01177]{DRAFT} d
Name CampaignStateType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the status of Campaign.
Range / Symbol Limit Description
kIdle 0x00 UCM Master is ready to start a software update campaign.
kSyncing 0x01 UCM master is providing the list of installed SWCLs (GetSwCluster
Info) or computing the list of SWCLs to install (SwPackageInventory).
kVehiclePackageTransferring 0x02 A vehicle package is being transferred to UCM Master.
kSoftwarePackage_ 0x03 UCM Master is transferring software packages to the UCM
Transferring subordinates.
kProcessing 0x04 The processing of software packages on UCM subordinates is
ongoing. The transferring of software packages may still occur.
kActivating 0x05 The activation of SWCLs on UCM subordinates is ongoing.
kVehicleChecking 0x06 UCM Master is performing post-activation checks (OEM specific).
kCancelling 0x07 UCM Master is rolling-back the activated SWCLs on the UCM
subordinates.
c(RS_UCM_00032)
9.1.31 TransferStateType
[SWS_UCM_01178]{DRAFT} d
Name TransferStateType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the state of an update from OTA Client perspective.
Range / Symbol Limit Description
kIdle 0x00 UCM Master is ready to start a software update campaign.
5
4
kTransferring 0x01 Vehicle or Software Packages are being transferred.
kUpdating 0x02 Software Clusters are being updated in the vehicle.
kCancelling 0x03 An error occurred, campaign is being cancelled, reverting changes.
c(RS_UCM_00032)
9.1.32 SafetyConditionType
[SWS_UCM_01114]{DRAFT} d
Name SafetyConditionType
Kind STRING
Derived from -
Description The type of the Safety Conditions.
c(RS_UCM_00002)
9.1.33 SafetyConditionsVectorType
[SWS_UCM_01136]{DRAFT} d
Name SafetyConditionsVectorType
Kind VECTOR
Subelements SafetyConditionType
Derived from -
Description Represents a dynamic size array of Safety Conditions.
c(RS_UCM_00002)
9.1.34 SafetyStatesType
[SWS_UCM_01138]{DRAFT} d
Name SafetyStatesType
Kind TYPE_REFERENCE
Derived from uint8_t
Description Represents the vehicle safety state.
Range / Symbol Limit Description
Safe 0x00 Safe Safety State.
5
4
NotSafe 0x01 Not safe Safety State.
NotSupported 0x02 Unsupported Safety State.
c(RS_UCM_00002)
9.1.35 SafetyStatesVectorType
[SWS_UCM_01137]{DRAFT} d
Name SafetyStatesVectorType
Kind VECTOR
Subelements SafetyStatesType
Derived from -
Description Represents a dynamic size array of Safety States.
c(RS_UCM_00002)
c(RS_UCM_00001)
Service Interface
[SWS_UCM_00131]{DRAFT} d
Name PackageManagement
NameSpace ara::ucm
Field CurrentStatus
Description The current status of UCM.
Type PackageManagementStatusType
HasGetter true
HasNotifier true
HasSetter false
Method Activate
Description This method activates the processed components.
FireAndForget false
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application MissingDe- Activate cannot be performed because of missing dependencies.
Errors pendencies
Application UpdateSes- Start of an update session was rejected by State Management
Errors sionRejected
Application PreActiva- Error during preActivation step.
Errors tionFailed
Application Verifica- State Management returned verification failure
Errors tionFailed
Method Cancel
Description This method aborts an ongoing processing of a Software Package.
FireAndForget false
Parameter id
Description The Transfer ID.
Type TransferIdType
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Method DeleteTransfer
Description Delete a transferred Software Package.
FireAndForget false
Parameter id
Description Transfer ID of the currently running request.
Type TransferIdType
Variation
Direction IN
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Method Finish
Description This method finishes the processing for the current set of processed Software Packages. It does a
cleanup of all data of the processing including the sources of the Software Packages.
FireAndForget false
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Method GetHistory
Description Getter method to retrieve all actions that have been performed by UCM.
FireAndForget false
Parameter timestampGE
Description Earliest timestamp (inclusive)
Type uint64_t
Variation
Direction IN
Parameter timestampLT
Description Latest timestamp (exclusive)
Type uint64_t
Variation
Direction IN
Parameter history
Description The history of all actions that have been performed by UCM.
Type GetHistoryVectorType
Variation
Direction OUT
Method GetId
Description Get the UCM Instance Identifier.
FireAndForget false
Parameter id
Description UCM Module Instantiation Identifier.
Type UCMIdentifierType
Variation
Direction OUT
Method GetSwClusterChangeInfo
Description This method returns a list pending changes to the set of SoftwareClusters on the adaptive platform. The
returned list includes all SoftwareClusters that are to be added, updated or removed. The list of changes
is extended in the course of processing Software Packages.
FireAndForget false
Parameter SwInfo
Description List of SoftwareClusters that are in state kAdded,kUpdated or kRemoved.
5
4
Type SwClusterInfoVectorType
Variation
Direction OUT
Method GetSwClusterDescription
Description This method returns the general information of the Software Clusters present in the platform
FireAndForget false
Parameter SwCluster
Description List of SoftwareClusters present in the platform.
Type SwDescVectorType
Variation
Direction OUT
Method GetSwClusterInfo
Description This method returns a list of SoftwareClusters that are in state kPresent.
FireAndForget false
Parameter SwInfo
Description List of installed SoftwareClusters that are in state kPresent.
Type SwClusterInfoVectorType
Variation
Direction OUT
Method GetSwPackages
Description This method returns the Software Packages that available in UCM.
FireAndForget false
Parameter Packages
Description List of Software Packages.
Type SwPackageInfoVectorType
Variation
Direction OUT
Method GetSwProcessProgress
Description Get the progress (0 - 100%) of the currently processed Software Package.
FireAndForget false
Parameter id
Description The Transfer ID of the Software Package.
Type TransferIdType
Variation
Direction IN
Parameter progress
5
4
Description The progress of the current package processing (0% - 100%). 0x00 ... 0x64, 0xFF
for "No information available"
Type uint8_t
Variation
Direction OUT
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Method ProcessSwPackage
Description Process a previously transferred Software Package.
FireAndForget false
Parameter id
Description The Transfer ID of the Software Package which should be processed.
Type TransferIdType
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application ServiceBusy Another processing is already ongoing and therefore the current processing request
Errors has to be rejected.
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Authentica- Package authentication failed.
Errors tionFailed
Application Incompati- The version of the Software or Vehicle Package to be processed is not compatible
Errors blePackageV- with the current version of UCM or UCM Master.
ersion
Application InvalidPack- Package manifest could not be read.
Errors ageManifest
Application Soft- The Software Cluster is not present in the Machine.
Errors wareCluster-
Missing
Application Incompati- Delta package dependency check failed.
Errors bleDelta
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
Application Processed- The processed Software Package integrity check has failed.
Errors Soft-
warePack-
ageInconsis-
tent
Application OldVersion Software Package version is too old.
Errors
Application ProcessSw- The processing operation has been interrupted by a Cancel() call.
Errors PackageCan-
celled
Method RevertProcessedSwPackages
Description Revert the changes done by processing (ProcessSwPackage) of one or several software packages.
5
4
FireAndForget false
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application NotAbleToRe- RevertProcessedSwPackages failed.
Errors vertPackages
Method Rollback
Description Rollback the system to the state before the packages were processed.
FireAndForget false
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application NotAble- Rollback failed.
Errors ToRollback
Method TransferData
Description Block-wise transfer of a Software Package to UCM.
FireAndForget false
Parameter id
Description Transfer ID.
Type TransferIdType
Variation
Direction IN
Parameter data
Description Data block of the Software Package.
Type ByteVectorType
Variation
Direction IN
Parameter blockCounter
Description Block counter value of the current block.
Type uint64_t
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Incorrect- The same block number is received twice.
Errors Block
Application Incorrect- The size of the block exceeds the provided block size from TransferStart or Transfer
Errors BlockSize VehiclePackage.
Application Incorrect- The size of the Software or Vehicle Package exceeds the provided size in Transfer
Errors Size Start.
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
5
4
Application Transfer- UCM cannot persist transferred block.
Errors Failed
Application BlockIncon- Consistency check for transferred block failed.
Errors sistent
Application Authentica- Package authentication failed.
Errors tionFailed
Application InvalidPack- Package manifest could not be read.
Errors ageManifest
Application Incompati- The version of the Software or Vehicle Package to be processed is not compatible
Errors blePackageV- with the current version of UCM or UCM Master.
ersion
Application PackageIn- Package integrity check failed.
Errors consistent
Application OldVersion Software Package version is too old.
Errors
Method TransferExit
Description Finish the transfer of a Software Package to UCM.
FireAndForget false
Parameter id
Description Transfer ID of the currently running request.
Type TransferIdType
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Insuffi- TransferExit has been called but total transferred data size does not match expected
Errors cientData data size provided with TransferStart call.
Application Authentica- Package authentication failed.
Errors tionFailed
Application PackageIn- Package integrity check failed.
Errors consistent
Application Incompati- The version of the Software or Vehicle Package to be processed is not compatible
Errors blePackageV- with the current version of UCM or UCM Master.
ersion
Application InvalidPack- Package manifest could not be read.
Errors ageManifest
Application MissingDe- Activate cannot be performed because of missing dependencies.
Errors pendencies
Application OldVersion Software Package version is too old.
Errors
Method TransferStart
Description Start the transfer of a Software Package after having received a Vehicle Package. The size of the
Software Package to be transferred to UCM must be provided. UCM will generate a Transfer ID for
subsequent calls to TransferData, TransferExit, ProcessSwPackage, DeleteTransfer.
FireAndForget false
Parameter size
Description Size (in bytes) of the Software Package to be transferred.
5
4
Type uint64_t
Variation
Direction IN
Parameter id
Description Return TransferId.
Type TransferIdType
Variation
Direction OUT
Parameter BlockSize
Description Size of the blocks to be received with TransferData method.
Type uint32_t
Variation
Direction OUT
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
This chapter lists all provided service interfaces of the UCM Master to OTA Client
Adaptive Application.
Port
[SWS_UCM_00178]{DRAFT} d
Name VehiclePackageManagement
Kind ProvidedPort Interface VehiclePackageManagement
Description
Variation
c(RS_UCM_00035)
Service Interface
[SWS_UCM_00181]{DRAFT} d
Name VehiclePackageManagement
NameSpace ara::ucm
Field TransferState
Description The current status of Campaign from an OTA Client perspective.
Type TransferStateType
HasGetter true
HasNotifier true
HasSetter false
Field RequestedPackage
Description Software Package to be transferred to UCM Master.
Type SwNameVersionType
HasGetter true
HasNotifier true
HasSetter false
Field SafetyConditions
Description Safety conditions from the Vehicle Package computed by the Vehicle State Manager Adaptive
Application.
Type SafetyConditionsVectorType
HasGetter true
HasNotifier true
HasSetter false
Field SafetyState
Description Vehicle state computed by the Vehicle State Manager Adaptive Application.
Type SafetyStatesVectorType
HasGetter true
HasNotifier true
HasSetter false
Method CancelCampaign
Description This method aborts an ongoing campaign processing of a Vehicle Package.
FireAndForget false
Parameter DisableCampaign
Description To forbid new campaign
Type bool
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application CancelFailed Cancel failed.
Errors
Method AllowCampaign
Description To allow a new campaign to start
5
4
FireAndForget false
Method DeleteTransfer
Description Delete a transferred Software or Vehicle Package.
FireAndForget false
Parameter id
Description Transfer ID of the currently running request.
Type TransferIdType
Variation
Direction IN
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Method GetCampaignHistory
Description Getter method to retrieve all actions that have been performed by UCM Master.
FireAndForget false
Parameter timestampGE
Description Earliest timestamp (inclusive)
Type uint64_t
Variation
Direction IN
Parameter timestampLT
Description Latest timestamp (exclusive)
Type uint64_t
Variation
Direction IN
Parameter CampaignHistory
Description The history of all actions that have been performed by UCM Master.
Type CampaignHistoryType
Variation
Direction OUT
Method GetSwClusterInfo
Description This method returns a list of SoftwareClusters that are in state kPresent.
FireAndForget false
Parameter SwInfo
Description List of installed SoftwareClusters that are in state kPresent.
Type SwClusterInfoVectorType
5
4
Variation
Direction OUT
Method GetSwPackages
Description This method returns the Software Packages that are part of current campaign handled by UCM Master.
FireAndForget false
Parameter Packages
Description List of Software Packages.
Type SwPackageInfoVectorType
Variation
Direction OUT
Method SwPackageInventory
Description
FireAndForget false
Parameter AvailableSoftwarePackages
Description List of available Software Packages in Backend corresponding to VIN.
Type SwNameVersionVectorType
Variation
Direction IN
Parameter RequiredSoftwarePackages
Description List of Software Packages to be sent to UCM Master.
Type SwNameVersionVectorType
Variation
Direction OUT
Method TransferData
Description Block-wise transfer of a Software or Vehicle Package to UCM Master.
FireAndForget false
Parameter id
Description Transfer ID.
Type TransferIdType
Variation
Direction IN
Parameter data
Description Data block of the Software or Vehicle Package.
Type ByteVectorType
Variation
Direction IN
5
4
Parameter blockCounter
Description Block counter value of the current block.
Type uint64_t
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Incorrect- The same block number is received twice.
Errors Block
Application Incorrect- The size of the block exceeds the provided block size from TransferStart or Transfer
Errors BlockSize VehiclePackage.
Application Incorrect- The size of the Software or Vehicle Package exceeds the provided size in Transfer
Errors Size Start.
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
Application Transfer- UCM cannot persist transferred block.
Errors Failed
Application BlockIncon- Consistency check for transferred block failed.
Errors sistent
Application Authentica- Package authentication failed.
Errors tionFailed
Application InvalidPack- Package manifest could not be read.
Errors ageManifest
Application Incompati- The version of the Software or Vehicle Package to be processed is not compatible
Errors blePackageV- with the current version of UCM or UCM Master.
ersion
Application PackageIn- Package integrity check failed.
Errors consistent
Application OldVersion Software Package version is too old.
Errors
Method TransferExit
Description Finish the transfer of a Software or Vehicle Package to UCM Master.
FireAndForget false
Parameter id
Description Transfer ID of the currently running request.
Type TransferIdType
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application Invalid- The Transfer ID is invalid.
Errors TransferId
Application Insuffi- TransferExit has been called but total transferred data size does not match expected
Errors cientData data size provided with TransferStart call.
Application Authentica- Package authentication failed.
Errors tionFailed
5
4
Application PackageIn- Package integrity check failed.
Errors consistent
Application Incompati- The version of the Software or Vehicle Package to be processed is not compatible
Errors blePackageV- with the current version of UCM or UCM Master.
ersion
Application InvalidPack- Package manifest could not be read.
Errors ageManifest
Application MissingDe- Activate cannot be performed because of missing dependencies.
Errors pendencies
Application OldVersion Software Package version is too old.
Errors
Method TransferStart
Description Start the transfer of a Software Package. The name of the Software Package to be transferred to UCM
Master must be provided. UCM Master will generate a Transfer ID for subsequent calls to TransferData,
TransferExit, DeleteTransfer. Size of Software Package to be used to transfer to UCM subordinate is
available in the Vehicle Package and its contained Software Package Manifests.
FireAndForget false
Parameter SoftwarePackageName
Description Software Package Short Name of the Software Package to be transferred.
Type SwNameType
Variation
Direction IN
Parameter id
Description Return TransferId.
Type TransferIdType
Variation
Direction OUT
Parameter BlockSize
Description Size of the blocks to be received with TransferData method.
Type uint32_t
Variation
Direction OUT
Application Unexpected- The Software Package name does not correspond to the RequestedPackage field
Errors Package value.
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
Method TransferVehiclePackage
Description Start the transfer of a Vehicle Package. The size of the Vehicle Package to be transferred to UCM Master
must be provided. UCM Master will generate a Transfer ID for subsequent calls to TransferData, Transfer
Exit, ProcessSwPackage, DeleteTransfer. This call starts a new campaign.
FireAndForget false
Parameter size
Description Size (in bytes) of the Vehicle Package to be transferred.
Type uint64_t
5
4
Variation
Direction IN
Parameter id
Description Return TransferId.
Type TransferIdType
Variation
Direction OUT
Parameter BlockSize
Description Size of the blocks to be received with TransferData method.
Type uint32_t
Variation
Direction OUT
Application NewCam- New campaigns are disabled, calling AllowCampaign will enable new campaigns.
Errors paignDis-
abled
Application Insuffi- Insufficient memory to perform operation.
Errors cientMemory
This chapter lists all provided service interfaces of the UCM Master to the Vehicle
Driver Adaptive Application.
Port
[SWS_UCM_00180]{DRAFT} d
Name VehicleDriverApplication
Kind ProvidedPort Interface VehicleDriverApplication
Description
Variation
c(RS_UCM_00038, RS_UCM_00043)
Service Interface
[SWS_UCM_00182]{DRAFT} d
Name VehicleDriverApplication
NameSpace ara::ucm
Field ApprovalRequired
Description Flag to inform Adaptive Application if approval from Vehicle Driver is required at current state based on
Vehicle Package Manifest.
Type bool
HasGetter true
HasNotifier true
HasSetter false
Field CampaignState
Description The current status of Campaign.
Type CampaignStateType
HasGetter true
HasNotifier true
HasSetter false
Field SafetyConditions
Description Safety conditions from the Vehicle Package computed by the Vehicle State Manager Adaptive
Application.
Type SafetyConditionsVectorType
HasGetter true
HasNotifier true
HasSetter false
Field SafetyState
Description Vehicle state computed by the Vehicle State Manager Adaptive Application.
Type SafetyStatesVectorType
HasGetter true
HasNotifier true
HasSetter false
Method CancelCampaign
Description This method aborts an ongoing campaign processing of a Vehicle Package.
FireAndForget false
Parameter DisableCampaign
Description To forbid new campaign
Type bool
Variation
Direction IN
Application Opera- The operation is not supported in the current context.
Errors tionNotPer-
mitted
Application CancelFailed Cancel failed.
Errors
Method AllowCampaign
Description To allow a new campaign to start
FireAndForget false
Method DriverApproval
Description Called by Adaptive Application to inform UCM Master of the driver’s notification resolution (approve or
reject)
FireAndForget false
Parameter Approval
Description Driver’s notification resolution
Type bool
Variation
Direction IN
Parameter SafetyStates
Description Safety states acknowledged by the Vehicle Driver Application
Type SafetyStatesVectorType
Variation
Direction IN
Method GetCampaignHistory
Description Getter method to retrieve all actions that have been performed by UCM Master.
FireAndForget false
Parameter timestampGE
Description Earliest timestamp (inclusive)
Type uint64_t
Variation
Direction IN
Parameter timestampLT
Description Latest timestamp (exclusive)
Type uint64_t
Variation
Direction IN
Parameter history
Description The history of all actions that have been performed by UCM Master.
Type CampaignHistoryType
Variation
Direction OUT
Method GetSwClusterDescription
Description This method returns the general information of the Software Clusters present in the Adaptive Platform
5
4
FireAndForget false
Parameter SoftwareClusterDescriptions
Description List of SoftwareClusters general information
Type SwDescVectorType
Variation
Direction OUT
Method GetSwPackageDescription
Description This method returns the general information of the Software Packages that are part of current campaign
handled by UCM Master.
FireAndForget false
Parameter Packages
Description List of Software Packages.
Type SwPackageDescVectorType
Variation
Direction OUT
Method GetSwProcessProgress
Description Get the progress (0 - 100%) of the currently package processing.
FireAndForget false
Parameter progress
Description The progress of the current package processing (0% - 100%). 0x00 ... 0x64, 0xFF
for "’No information available"’
Type uint8_t
Variation
Direction OUT
Method GetSwTransferProgress
Description Get the progress (0 - 100%) of the currently transferred package.
FireAndForget false
Parameter progress
Description The progress of the current package transferring (0% - 100%). 0x00 ... 0x64, 0xFF
for "’No information available"’
Type uint8_t
Variation
Direction OUT
This chapter lists all provided service interfaces of the UCM Master to the Vehicle
State Manager Adaptive Application.
Port
[SWS_UCM_00179]{DRAFT} d
Name VehicleStateManager
Kind ProvidedPort Interface VehicleStateManager
Description
Variation
c(RS_UCM_00037, RS_UCM_00043)
Service Interface
[SWS_UCM_00183]{DRAFT} d
Name VehicleStateManager
NameSpace ara::ucm
Field SafetyConditions
Description Safety conditions from the Vehicle Package to be computed by the Vehicle State Manager Adaptive
Application.
Type SafetyConditionsVectorType
HasGetter true
HasNotifier true
HasSetter false
Method SafetyState
Description Method called by Vehicle State Manager Adaptive Application when safety state is changed
FireAndForget false
Parameter SafetyStates
Description Safety conditions computed by the Vehicle State Manager Adaptive Application.
Type SafetyStatesVectorType
Variation
Direction IN
Method VehicleCheck
Description Method for Vehicle State Manager to inform UCM Master of vehicle check resolution
FireAndForget false
Parameter VehicleCheckResolution
Description Vehicle check resolution. True if check succeeded.
Type bool
5
4
Variation
Direction IN
c()
9.4.1.1 UCMErrorDomain
4
BusyWithCampaign 34 Campaign has already started.
CancelFailed 16 Cancel failed.
IncompatibleDelta 29 Delta package dependency check failed.
IncompatiblePackageVersion 24 The version of the Software or Vehicle Package to be processed is
not compatible with the current version of UCM or UCM Master.
IncorrectBlock 2 The same block number is received twice.
IncorrectBlockSize 30 The size of the block exceeds the provided block size from Transfer
Start or TransferVehiclePackage.
IncorrectSize 3 The size of the Software or Vehicle Package exceeds the provided
size in TransferStart.
InsufficientData 6 TransferExit has been called but total transferred data size does not
match expected data size provided with TransferStart call.
InsufficientMemory 1 Insufficient memory to perform operation.
InvalidChecksumDescription 35 Checksum attribute not recognised.
InvalidPackageManifest 13 Package manifest could not be read.
InvalidTransferId 4 The Transfer ID is invalid.
MissingDependencies 21 Activate cannot be performed because of missing dependencies.
NewCampaignDisabled 31 New campaigns are disabled, calling AllowCampaign will enable
new campaigns.
NotAbleToRevertPackages 15 RevertProcessedSwPackages failed.
NotAbleToRollback 18 Rollback failed.
OldVersion 9 Software Package version is too old.
OperationNotPermitted 5 The operation is not supported in the current context.
PackageInconsistent 7 Package integrity check failed.
PreActivationFailed 19 Error during preActivation step.
ProcessSwPackageCancelled 22 The processing operation has been interrupted by a Cancel() call.
ProcessedSoftwarePackageInconsistent 23 The processed Software Package integrity check has failed.
ServiceBusy 12 Another processing is already ongoing and therefore the current
processing request has to be rejected.
SoftwareClusterMissing 37 The Software Cluster is not present in the Machine.
TransferFailed 38 UCM cannot persist transferred block.
UnexpectedPackage 32 The Software Package name does not correspond to the
RequestedPackage field value.
UpdateSessionRejected 33 Start of an update session was rejected by State Management
VerificationFailed 36 State Management returned verification failure
10 Sequence diagrams
The following sequence charts are simplified examples and have no normative mean-
ing. The relevant definitions are in chapter 7 only.
sd Update
«ServiceProvider»
:UCM
Diagnostic Application (OEM
specific)
ref
Data transmission
ref
Processing
ref
Activation
«ServiceProvi...
:External Reference
D iagnostic A pplication (OEM
specific)
TransferStart(PackageSize)
:TransferId, BlockSize
:TransferD ataReturnType
TransferExit(TransferId): TransferExitReturnType
checkTransferredPackage()
:TransferExitReturnType
CurrentStatus= :IDLE
opt
GetSwPackages(): SwPackageInfoVectorType
:SwPackageInfoVectorType
CurrentStatus= :PROCESSING
opt continously
GetSwProcessProgress(TransferId): uint8
:progress
:ProcessSwPackageReturnType
CurrentStatus= :READY
10.4 Activation
A ctivating
D ependencyCheck()
StartU pdateSession()
:ReadyForU pdate
PrepareU pdate(vector<FunctionGroup>)
SetState(Off) ara::core::Deinitialize should
SIGTERM() be the last call
ara::core::D einitialize()
Close storages
& Free
:e xitstatus resources()
:Prepared
:A ctivate success
V erifying
Sym links or
A /B switch() Machine reset is optional and
defined in SWP Manifest
alt ReparseManifest
[Reset]
ResetMachine()
Reparsing is implementation specific. UCM might have to
interact with other Functional Clusters to make sure the
[N o Reset] Verify step will not fail. If no positive response is returned
Reparse from those FCs, it should be reason for UCM to trigger a
Manifests() rollback.
D ata backup()
Install and/or
update persistent
data()
:V erified
Cleaning-up
StopU pdateSession()
SetState()
N orm al()
O penXXX()
CleanUp
backup data()
A ctivating
D ependencyCheck()
StartU pdateSession()
:ReadyForU pdate
:Prepared
:A ctivate Success
V erifying
Sym links or
A /B switch()
[N o Reset]
Reparse
Manifests()
FG = Verify()
U pdatePersistency()
D ata backup()
Install and/or
update persistent
data()
:Failed
:Failed
RollingBack
PrepareRollBack(vector<FunctionGroup>)
Sym links or
A /B switch()
Finish() RolledBack
CleaningUp
StopU pdateSession()
N orm al()
O penXXX()
CampaignState = IDLE
OTA Client D river Interface V ehicle State Manager U CM m aster UCM sub 1
(from Actors) (from Actors) (from Actors) (from Actors) (from Actors)
:TransferState = SYNCING
Syncing()
:TransferState=IDLE
TransferV ehiclePackage()
:TransferState=TRANSFERRING
:Cam paignState=VEHICLEPACKAGE_TRANSFERRING
transferExit()
:SafetyConditions
SafetyState(SafetyStatesVector)
:A pprovalRequired
:SafetyConditions
transferStart()
transferStart()
transferD ata()
transferD ata()
transferExit()
transferExit()
:SafetyConditions
SafetyState(SafetyStatesVector)
:SafetyConditions
:A pprovalRequired
D riverA pproval(A pproval, SafetyStates)
:CurrentStatus=READY
:SafetyConditions
SafetyState(SafetyStatesVector)
:SafetyConditions
:A pprovalRequired
:CurrentStatus=ACTIVATED|ROLLINBACK
:Cam paignState = VEHICLE_CHECKING
4
Class Identifiable (abstract)
4
PersistencyInterfaceElement, PhmSupervision, PhysicalChannel, PortGroup, PortInterfaceMapping,
PossibleErrorReaction, ProcessToMachineMapping, Processor, ProcessorCore, PskIdentityToKeySlot
Mapping, RecoveryNotification, ResourceConsumption, ResourceGroup, RootSwClusterDesign
ComponentPrototype, RootSwComponentPrototype, RootSwCompositionPrototype, RptComponent, Rpt
Container, RptExecutableEntity, RptExecutableEntityEvent, RptExecutionContext, RptProfile, RptService
Point, RunnableEntityGroup, SdgAttribute, SdgClass, SecOcJobMapping, SecOcJobRequirement,
SecureCommunicationAuthenticationProps, SecureCommunicationDeployment, SecureCommunication
FreshnessProps, SecurityEventContextProps, ServiceEventDeployment, ServiceFieldDeployment,
ServiceInterfaceElementSecureComConfig, ServiceMethodDeployment, ServiceNeeds, SignalService
TranslationEventProps, SignalServiceTranslationProps, SocketAddress, SoftwarePackageStep, Someip
EventGroup, SomeipProvidedEventGroup, SomeipTpChannel, SpecElementReference, StackUsage,
StaticSocketConnection, StructuredReq, SupervisionCheckpoint, SupervisionMode, SupervisionMode
Condition, SwGenericAxisParamType, SwServiceArg, SwcServiceDependency, SystemMapping,
SystemMemoryUsage, TimeBaseResource, TimingCondition, TimingConstraint, TimingDescription,
TimingExtensionResource, TimingModeInstance, TlsCryptoCipherSuite, TlsCryptoCipherSuiteProps, Tls
JobMapping, Topic1, TpAddress, TraceableTable, TraceableText, TracedFailure, TransformationProps,
TransformationTechnology, Trigger, UcmDescription, UcmStep, VariableAccess, VariationPointProxy,
VehicleRolloutStep, ViewMap, VlanConfig, WaitPoint
Attribute Type Mult. Kind Note
adminData AdminData 0..1 aggr This represents the administrative data for the identifiable
object.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=adminData
xml.sequenceOffset=-40
annotation Annotation * aggr Possibility to provide additional notes while defining a
model element (e.g. the ECU Configuration Parameter
Values). These are not intended as documentation but
are mere design notes.
Tags:xml.sequenceOffset=-25
category CategoryString 0..1 attr The category is a keyword that specializes the semantics
of the Identifiable. It affects the expected existence of
attributes and the applicability of constraints.
Tags:xml.sequenceOffset=-50
desc MultiLanguageOverview 0..1 aggr This represents a general but brief (one paragraph)
Paragraph description what the object in question is about. It is only
one paragraph! Desc is intended to be collected into
overview tables. This property helps a human reader to
identify the object in question.
More elaborate documentation, (in particular how the
object is built or used) should go to "introduction".
Tags:xml.sequenceOffset=-60
introduction DocumentationBlock 0..1 aggr This represents more information about how the object in
question is built or is used. Therefore it is a
DocumentationBlock.
Tags:xml.sequenceOffset=-30
uuid String 0..1 attr The purpose of this attribute is to provide a globally
unique identifier for an instance of a meta-class. The
values of this attribute should be globally unique strings
prefixed by the type of identifier. For example, to include a
DCE UUID as defined by The Open Group, the UUID
would be preceded by "DCE:". The values of this attribute
may be used to support merging of different AUTOSAR
models. The form of the UUID (Universally Unique
Identifier) is taken from a standard defined by the Open
Group (was Open Software Foundation). This standard is
5
4
Class Identifiable (abstract)
4
widely used, including by Microsoft for COM (GUIDs) and
by many companies for DCE, which is based on CORBA.
The method for generating these 128-bit IDs is published
in the standard and the effectiveness and uniqueness of
the IDs is not in practice disputed. If the id namespace is
omitted, DCE is assumed. An example is
"DCE:2fac1234-31f8-11b4-a222-08002b34c003". The
uuid attribute has no semantic meaning for an AUTOSAR
model and there is no requirement for AUTOSAR tools to
manage the timestamp.
Tags:xml.attribute=true
Class SoftwareCluster
Package M2::AUTOSARTemplates::AdaptivePlatform::SoftwareDistribution
Note This meta-class represents the ability to define an uploadable software-package, i.e. the SoftwareCluster
shall contain all software and configuration for a given purpose.
Tags:
atp.Status=draft
atp.recommendedPackage=SoftwareClusters
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
5
4
Class SoftwareCluster
artifact ArtifactChecksum * aggr This aggregation carries the checksums for artifacts
Checksum contained in the enclosing SoftwareCluster.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=artifactChecksum.shortName, artifact
Checksum.uri
atp.Status=draft
claimed ModeDeclarationGroup * ref Each SoftwareCluster can reserve the usage of a given
FunctionGroup Prototype functionGroup such that no other SoftwareCluster is
allowed to use it
Tags:atp.Status=draft
conflictsTo SoftwareCluster 0..1 aggr This aggregation handles conflicts. If it yields true then
DependencyFormula the SoftwareCluster shall not be installed.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=conflictsTo
atp.Status=draft
contained ARElement * ref This reference represents the collection of model
ARElement elements that cannot derive from UploadablePackage
Element and that contribute to the completeness of the
definition of the SoftwareCluster.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=containedARElement
atp.Status=draft
containedFibex FibexElement * ref This allows for referencing FibexElements that need to be
Element considered in the context of a SoftwareCluster.
Tags:atp.Status=draft
contained UploadablePackage * ref This reference identifies model elements that are required
Package Element to complete the manifest content.
Element
Stereotypes: atpSplitable
Tags:
atp.Splitkey=containedPackageElement
atp.Status=draft
contained Process * ref This reference represent the processes contained in the
Process enclosing SoftwareCluster.
Tags:atp.Status=draft
dependsOn SoftwareCluster 0..1 aggr This aggregation can be taken to identify a dependency
DependencyFormula for the enclosing SoftwareCluster.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=dependsOn
atp.Status=draft
design SoftwareClusterDesign * ref This reference represents the identification of all Software
ClusterDesigns applicable for the enclosing Software
Cluster.
Stereotypes: atpUriDef
Tags:atp.Status=draft
diagnostic DiagnosticContribution 0..1 ref This reference represents the definition of the diagnostic
Extract Set extract applicable to the referencing SoftwareCluster
Tags:atp.Status=draft
diagnosticProps SoftwareCluster 0..1 aggr This aggregation represenst the diagnostic-related
DiagnosticProps configuration of a SoftwareCluster.
Tags:atp.Status=draft
5
4
Class SoftwareCluster
license Documentation * ref This attribute allows for the inclusion of the full text of a
license of the enclosing SoftwareCluster. In many cases
open source licenses require the inclusion of the full
license text to any software that is released under the
respective license.
Tags:atp.Status=draft
module AdaptiveModule * ref This reference identifies AdaptiveModuleInstantiations
Instantiation Instantiation that need to be included with the SoftwareCluster in order
to establish infrastructure required for the installation of
the SoftwareCluster.
Stereotypes: atpSplitable
Tags:
atp.Splitkey=moduleInstantiation
atp.Status=draft
releaseNotes Documentation 0..1 ref This attribute allows for the explanations of changes since
the previous version. The list of changes might require
the creation of multiple paragraphs of test.
Tags:atp.Status=draft
typeApproval String 0..1 attr This attribute carries the homologation information that
may be specific for a given country.
Tags:atp.Status=draft
vendorId PositiveInteger 1 attr Vendor ID of this Implementation according to the
AUTOSAR vendor list.
Tags:atp.Status=draft
vendor CryptoService 1 ref This reference identifies the certificate that represents the
Signature Certificate vendor’s signature.
Tags:atp.Status=draft
version StrongRevisionLabel 1 attr This attribute can be used to describe a version
String information for the enclosing SoftwareCluster.
Tags:atp.Status=draft
Class SoftwarePackage
Package M2::AUTOSARTemplates::AdaptivePlatform::SoftwareDistribution
Note This meta-class represents the ability to formalize the content of a software package.
Tags:
atp.Status=draft
atp.recommendedPackage=SoftwarePackages
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
actionType SoftwarePackageAction 1 attr This attribute defines the action to be taken in the step of
TypeEnum processing the enclosing SoftwarePackage.
Tags:atp.Status=draft
activationAction SoftwarePackage 0..1 attr This attribute governs the action to be taken after the
ActivationActionEnum installation of the SoftwareCluster completed.
Tags:atp.Status=draft
compressed PositiveInteger 1 attr This size represents the size of the compressed Software
Software Package.
PackageSize
Tags:atp.Status=draft
5
4
Class SoftwarePackage
deltaPackage StrongRevisionLabel 0..1 attr This attribute identifies the version of the included
Applicable String SoftwareCluster for which the enclosing SoftwarePackage
Version can be used as a delta update
Tags:atp.Status=draft
estimated TimeValue 0..1 attr This attribute provides an estimation about how long the
DurationOf operation of the SoftwarePackage is going to take.
Operation
Tags:atp.Status=draft
minimum RevisionLabelString 1 attr This attribute identifies the minimum supported version of
SupportedUcm the UCM for this SoftwarePackage.
Version
Tags:atp.Status=draft
packagerId PositiveInteger 1 attr This attribute identifies Id of the organization that provides
the packager generating the SoftwarePackage.
Tags:atp.Status=draft
packager CryptoService 1 ref This reference identifies the certificate that represents the
Signature Certificate packager’s signature.
Tags:atp.Status=draft
purposeOf Documentation 0..1 ref The referenced Documentation is supposed to provide a
Update description of the purpose of the update.
Tags:atp.Status=draft
softwareCluster SoftwareCluster 1 ref This reference identifies the SoftwareCluster that belongs
to the SoftwarePackage. The nature of this relation is
actually more like an aggregation than a reference. But
the relation is still modelled as a reference because two
ARElements cannot aggregate each other.
Tags:atp.Status=draft
uncompressed PositiveInteger 1 attr This attribute gives an indication about the storage that
SoftwareCluster has to be available on the target.
Size
Tags:atp.Status=draft
Primitive StrongRevisionLabelString
Package M2::AUTOSARTemplates::GenericStructure::GeneralTemplateClasses::PrimitiveTypes
Note This primitive represents a revision label which identifies an object under version control. It represents a
pattern which requires three integer numbers separated by a dot, representing from left to right Major
Version, MinorVersion, PatchVersion and additional labels for pre-release version and build metadata.
Legal patterns are for example: 1.0.0-alpha+001 1.0.0+20130313144700 1.0.0-beta+exp.sha.5114f85
Tags:
atp.Status=draft
xml.xsd.customType=STRONG-REVISION-LABEL-STRING
xml.xsd.pattern=(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-((0|[1-9]\d*|\d*[a-zA-Z-][0-9a-z
A-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?
xml.xsd.type=string
Class UcmModuleInstantiation
Package M2::AUTOSARTemplates::AdaptivePlatform::PlatformModuleDeployment::Ucm
Note This meta-class represents the ability to define a definition of a UCM instantiation.
Tags:atp.Status=draft
5
4
Class UcmModuleInstantiation
Base ARObject, AdaptiveModuleInstantiation, Identifiable, MultilanguageReferrable, NonOsModule
Instantiation, Referrable
Attribute Type Mult. Kind Note
identifier String 1 attr This represents the identification of a UCM.
Tags:atp.Status=draft
maxNumberOf PositiveInteger 0..1 attr This attribute supports the configuration of the maximum
Parallel number of parallel transfers that the Ucm on the enclosing
Transfers Machine is allowed to create.
Tags:atp.Status=draft
ucmSoftware StrongRevisionLabel 0..1 attr This attribute defines the software version of the UCM on
Version String this platform.
Note that the definition of the ucmSoftwareVersion is
required if the ability of the SoftwarePackage to require a
minimum version of the UCM is utilized.
Tags:atp.Status=draft
Class VehiclePackage
Package M2::AUTOSARTemplates::AdaptivePlatform::SoftwareDistribution
Note This meta-class represents the ability to define a vehicle package for executing an update campaign.
Tags:
atp.Status=draft
atp.recommendedPackage=VehiclePackages
Base ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, Packageable
Element, Referrable
Attribute Type Mult. Kind Note
driver VehicleDriver * aggr This aggregation provides the ability to configure the
Notification Notification necessary driver notifications.
Tags:atp.Status=draft
estimated TimeValue 0..1 attr This attribute provides an estimation about how long the
DurationOf campaign based on the VehiclePackage is going to take.
Campaign
Tags:atp.Status=draft
maximum RevisionLabelString 0..1 attr This attribute identifies the maximum supported version of
SupportedUcm the UCM Master for this VehiclePackage.
MasterVersion
Tags:atp.Status=draft
minimum RevisionLabelString 0..1 attr This attribute identifies the minimum supported version of
SupportedUcm the UCM Master for this VehiclePackage.
MasterVersion
Tags:atp.Status=draft
packager CryptoService 1 ref This reference identifies the certificate that represents the
Signature Certificate packager’s signature.
Tags:atp.Status=draft
repository UriString 0..1 attr This attribute identifies the repository where the Vehicle
Package is stored.
Tags:atp.Status=draft
rollout VehicleRolloutStep * aggr This represents the rollout qualification.
Qualification
Tags:atp.Status=draft
(ordered)
5
4
Class VehiclePackage
ucm UcmDescription * aggr This aggregation represents the UcmDescriptions to be
considered in the context of the VehiclePackage.
Tags:atp.Status=draft
ucmMaster UcmDescription * ref This reference lists the fallback order of Ucms that can
Fallback take over the master role if the master goes down.
(ordered)
Tags:atp.Status=draft
vehicle Documentation 0..1 ref This reference identifies the vehicle description.
Description
Tags:atp.Status=draft
B.1 Overview
AUTOSAR decided not to standardize interfaces which are exclusively used between
Functional Clusters (on platform-level only), to allow efficient implementations, which
might depend e.g. on the used Operating System.
This chapter provides informative guidelines how the interaction between Functional
Clusters looks like, by clustering the relevant requirements of this document. In addi-
tion, the standardized public interfaces which are accessible by user space applications
(see chapter 8) can also be used for interaction between Functional Clusters.
The goal is to provide a clear understanding of Functional Cluster boundaries and in-
teraction, without specifying syntactical details. This ensures compatibility between
documents specifying different Functional Clusters and supports parallel implementa-
tion of different Functional Clusters. Details of the interfaces are up to the platform
provider.
UCM shall provide the notification to other Functional Clusters that changes have been
done to the software. This enables other functional clusters to check if updated man-
ifests have changes relevant for the concerned Functional Cluster. This can be done
through the field CurrentStatus provided by the UCM service.
GetSw ClusterInfo()
Figure C.1: Collect information of Software Clusters present in vehicle from several
AUTOSAR Adaptive Platforms
Case where vehicle is computing the difference between Software Clusters ver-
sions that are present in vehicle and the ones available in Backend.
sd [U seCase] 2.1 Pull package from backend [2.1 Pull package from backend]
:Sw ClusterInfoVector
GetSw ClusterInfo()
Once connection is set with OTA Client,
Backend is sending its inventory based on :Sw ClusterInfoVector
VIN already communicated by OTA client
MergeSw ClusterInfoVectors()
:TransferState=IDLE
Sw PackageInventory(Sw N am eV ersionVector)
:TransferState=IDLE
TransferV ehiclePackage(Size)
:TransferState=Transferring
:transferId
:transferD ataReturn
transferExit(transferId)
Case where Backend is computing the difference between Software Clusters ver-
sions that are present in vehicle and the ones available in Backend.
GetSw ClusterInfo()
Backend is requesting installed
SW Clusters in vehicle
opt Optionnal
GetSw ClusterInfo()
:Sw ClusterInfoVector
GetSw ClusterInfo()
:Sw ClusterInfoVector
MergeSw ClusterInfoVectors()
:Sw ClusterInfoVector
transferV ehiclePackage(Size)
:TransferState=Transferring
Backend sends
:transferId Vehicle Package
loop
:transferD ataReturn
transferExit(transferId)
:transferExitReturn
A daptive platform C
A dpative platform B
A daptive Platform A
OTA Client D river Interface U CM m aster V ehicle State Manager UCM sub 1 UCM sub 2
(from Actors) (from Actors) (from Actors) (from Actors) (from Actors) (from Actors)
:TransferState = IDLE
TransferV ehiclePackage(Size)
:TransferState = Transferring
:transferId
:transferD ataReturn
transferExit(transferId)
:transferExitReturn
ManifestA uthentication(Signature)
subcribe(SafetyConditions)
SafetyState(SafetyStatesVector)
subscribe(SafetyConditions)
W aitA pproval()
par Transfers
:RequestedPackage == SWCLPackageAName
:SafetyState=True
checkA vailableMemory()
:transferId1
:transferId
loop Streaming of package A
If upgrade, Check
InstalledVersion <
transferD ata(transferId1, block, BlockCounter) NewVersion
PackageA uthentication(PackageSignature)
:transferD ataReturn
:transferD ataReturn
transferExit(transferId1)
transferExit(transferId1)
ConsistencyCheck(Checksum)
:transferExitReturn
:TransferExitReturn
GetSw TransferProgress()
:Progress
:RequestedPackage == SWCLPackageBName
TransferStart(SW CLPackageBName)
TransferStart(SW CLPackageBSize)
CheckA vailableMemory()
:transferId2
:transferId2
:transferD ataReturn
:transferD ataReturn
transferExit(transferId2)
:TransferState=Updating
:Cam paignState=Processing
Figure C.4: Stream packages blocks from backend into targeted UCM
D river Interface U CM m aster V ehicle State Manager UCM sub 1 UCM sub 2
(from Actors) (from Actors) (from Actors) (from Actors) (from Actors)
:Cam paignState = Softw arePackage_Transferring
Subscribe(CurrentStatus)
:CurrentStatus=ready
:A pprovalRequired==True
W aitA pproval()
GetSw ProcessProgress()
:Progress
subscribe(SafetyConditions)
SafetyState(SafetyStatesVector)
:SafetyStatesVector
SafetyState(SafetyStatesVector)
:SafetyStatesVector
PackageIntegrityCheck()
ManifestConsistencyCheck()
GetProcessProgress(transferId1): ProcessingStatusType
:progress=100
PackageIntegrityCheck()
ManifestConsistencyCheck()
:progress=100
D river Interface U CM m aster V ehicle State Manager UCM sub 1 UCM sub 2
(from Actors) (from Actors) (from Actors) (from Actors) (from Actors)
:Cam paignState=Processing
A pprovalRequired=True()
W aitA pproval()
:SafeToUpdate=True
:Cam paignState=kActivating
Subscribe(CurrentStatus)
:READY
Partition activation
A ctivate(A ctivationMethod)
:CurrentStatus = kActivating
D efineA ctivationMethod(Manifest or ActionMethod)
:0
:CurrentStatus = kVerifying
:V ehicleState
sw apPartitionA ndSyncThem()
Subscribe(CurrentStatus)
:READY
A ctivate(A ctivationMethod)
:CurrentStatus = kActivating
D efineA ctivationMethod
(Manifest or ActionMethod)
CheckPackageD ependencies
:0 (SW CLD ependencies)
:CurrentStatus = kVerifying
startN ew SW CLIfNeeded()
:CurrentStatus = kActivated
:Cam paignState=Vehicle_Checking
V ehicleChecks()
Finish()
:CurrentStatus = kCleaningUp
:CurrentStatus = kIdle
Finish()
:CurrentStatus = kCleaningUp
:CurrentStatus = kIdle
:Cam paignState=kIdle
OTA Client V ehicle State ManagerD river Interface U CM m aster UCM sub 1
(from Actors) (from Actors) (from Actors) (from Actors) (from Actors)
:Cam paignState=kActivating
Subscribe(CurrentStatus)
:READY
:CurrentStatus = kActivating
D efineA ctivationMethod
(Manifest or ActionMethod)
CheckPackageD ependencies
(SW CLD ependencies)
:CurrentStatus = kVerifying
alt
[U CM verify failing]
:CurrentStatus = kRollingBack
RollBack()
:Cam paignState=kCancelling
:TransferState=kCancelling
:CurrentStatus = kRolledBack
Finish()
:CurrentStatus = kCleaningUp
:Cam paignState=kIdle
:TransferState=kIdle
:IDLE
:GetH istoryReturnType
opt
Subscribe(CurrentStatus)
:IDLE
:GetH istoryReturnType
Cam paignJudgement()
Moreover, some API methods of the UCM interface returns sensitive information about
the platform. This subset (GetSwClusterInfo, GetSwClusterChangeInfo, GetHistory,
GetSwPackages) shall be protected against information disclosure and should only be
reachable over a channel that provides confidentiality.
A similar reasoning is applicable for securing the communication between UCM Master
and its clients. Regarding protection against information disclosure, GetSwClusterInfo,
SwPackageInventory and GetHistory for UCM Master shall only be called over confi-
dential channels.
be released no matter how long time it takes. At the same time, in certain cases it
may take a long time for larger software packages to be transferred to UCM or UCM
Master, especially when they are received from external sources with weak connec-
tivity on-the-fly. However, a timeout may be considered for such a transfer to prevent
attackers from mounting denial of service attacks by long term allocation of resources.
Number Heading
[SWS_UCM_00009] UCM exposing its identifier
[SWS_UCM_00105] UCM confidential information handling
[SWS_UCM_00161] Check Software Package version compatibility against UCM version
[SWS_UCM_00162] Entering the Cleaning-up state after a RevertProcessedSwPackages call
[SWS_UCM_00163] Action in Cleaning-up state
[SWS_UCM_00164] Cleaning up of Software Packages
[SWS_UCM_00165] Processing from stream
[SWS_UCM_00166] Processing from stream state
[SWS_UCM_00167] Cancelling streamed packages
[SWS_UCM_00168] Transferring while processing from stream
[SWS_UCM_00169] Finishing transfer while processing from stream
[SWS_UCM_00170] Log message retrieving
[SWS_UCM_00171] Log level changing
[SWS_UCM_00172] Log messages removing
[SWS_UCM_00173] UCMIdentifierType table
[SWS_UCM_00174] SwNameVectorType table
[SWS_UCM_00175] StrongRevisionLabelString table
[SWS_UCM_00176] SwNameVersionType table
[SWS_UCM_00177] SwNameVersionVectorType table
[SWS_UCM_00178] ProvidedPort VehiclePackageManagement
[SWS_UCM_00179] RequiredPort VehicleStateManager
[SWS_UCM_00180] RequiredPort VehicleDriverApplication
[SWS_UCM_00181] ProvidedInterface VehiclePackageManagement
[SWS_UCM_00182] RequiredInterface VehicleDriverApplication
[SWS_UCM_00183] RequiredInterface VehicleStateManager
Transferring of software packages on kProcessApproving or kProcess-
[SWS_UCM_00210]
ing state
5
4
Number Heading
[SWS_UCM_01001] UCM Master processes Vehicle Package
[SWS_UCM_01002] UCM Master shall provide UCM services
[SWS_UCM_01003] UCM Master checks states of UCM subordinates
[SWS_UCM_01004] Only one UCM Master shall be active per network domain
[SWS_UCM_01005] UCM Master is discovering UCMs in vehicle
[SWS_UCM_01006] Vehicle Package transfer to UCM Master
Start transfer of a Vehicle Package or Software Packageto UCM Mas-
[SWS_UCM_01007]
ter
[SWS_UCM_01008] Transfer data of a Vehicle Package to UCM Master
[SWS_UCM_01009] Exit the transfer of a Vehicle Package to UCM Master
[SWS_UCM_01010] Delete a Vehicle Package transferred to UCM Master
[SWS_UCM_01101] Provide information of installed Software Clusters in vehicle
[SWS_UCM_01102] Get information of available Software Clusters in Backend
[SWS_UCM_01103] Inform Backend of needed Software Clusters for an update
[SWS_UCM_01105] Interaction of UCM Master with Vehicle Driver
[SWS_UCM_01106] Exclusive use of Vehicle Driver Interface
[SWS_UCM_01107] UCM Master provides progress information to Vehicle Driver
[SWS_UCM_01108] Unsupported safety policy by Vehicle driver interface
[SWS_UCM_01109] Vehicle State Manager shall provide to UCM Master a safety state
UCM Master shall be able to set the safety policy to be computed by Vehicle
[SWS_UCM_01110]
State Manager
[SWS_UCM_01111] Exclusive use of Vehicle State Manager
[SWS_UCM_01112] Unsupported safety policy by Vehicle State Manager
[SWS_UCM_01113] Switching vehicle into update mode
[SWS_UCM_01114] SafetyPolicyType table
[SWS_UCM_01115] VehicleStateManagerErrorDomain
[SWS_UCM_01116] VehicleDriverApplicationErrorDomain
[SWS_UCM_01177] CampaignStateType table
[SWS_UCM_01201] Sequential orchestration of campaigns
[SWS_UCM_01203] CampaignState field
[SWS_UCM_01204] Initial state
[SWS_UCM_01205] UCM Master internal state persistency
[SWS_UCM_01206] Trigger on kTransferApproving state
[SWS_UCM_01207] Trigger on kTransferring state
[SWS_UCM_01208] Trigger on kProcessApproving state
[SWS_UCM_01209] Trigger on kProcessing state
[SWS_UCM_01211] Trigger on kActivateApproving state
[SWS_UCM_01212] Trigger on kActivating state
[SWS_UCM_01213] Trigger on kVehicleChecking state
5
4
Number Heading
[SWS_UCM_01214] Final action on kVehicleChecking state
[SWS_UCM_01215] Trigger on kRollingBack state
[SWS_UCM_01216] Final action on kRollingBack state
[SWS_UCM_01217] Monitoring of UCM subordinates
[SWS_UCM_01218] Transition from kIdle state to kSyncing state
[SWS_UCM_01219] Transition from kSyncing state to kIdle state
[SWS_UCM_01220] Transition from kIdle state to kVehiclePackageTransferring state
[SWS_UCM_01221] Transition from kVehiclePackageTransferring state to kIdle state
Transition from kVehiclePackageTransferring state to kTransfer-
[SWS_UCM_01222]
ring state
Transition from kVehiclePackageTransferring state to kTransferAp-
[SWS_UCM_01223]
proving state
[SWS_UCM_01224] Transition from kTransferApproving state to kTransferring state
[SWS_UCM_01225] Transition from kTransferApproving state to kIdle state
[SWS_UCM_01226] Transition from kTransferring state to kTransferApproving state
[SWS_UCM_01227] Transition from kTransferring state to kIdle state
[SWS_UCM_01228] Transition from kTransferring state to kProcessing state
[SWS_UCM_01229] SafetyPolicy while processing stream
[SWS_UCM_01230] Transition from kTransferring state to kProcessApproving state
[SWS_UCM_01231] Transition from kProcessApproving state to kProcessing state
[SWS_UCM_01232] Transition from kProcessApproving state to kIdle state
[SWS_UCM_01233] Transition from kProcessing state to kProcessApproving state
[SWS_UCM_01234] Transition from kProcessing state to kActivating state
[SWS_UCM_01235] Transition from kProcessing state to kActivateApproving state
[SWS_UCM_01236] Transition from kProcessing state to kIdle state
[SWS_UCM_01237] Transition from kActivateApproving state to kActivating state
[SWS_UCM_01238] Transition from kActivateApproving state to kIdle state
[SWS_UCM_01239] Transition from kActivating state to kRollingBack state
[SWS_UCM_01240] Transition from kActivating state to kVehicleChecking state
[SWS_UCM_01241] Transition from kVehicleChecking state to kRollingBack state
[SWS_UCM_01242] Transition from kVehicleChecking state to kIdle state
[SWS_UCM_01243] Transition from kRollingBack state to kIdle state
[SWS_UCM_01244] Cancellation of an update campaign shall be possible
[SWS_UCM_01245] Cancellation during activation shall be possible
[SWS_UCM_01246] Unreachable UCM during update campaign
[SWS_UCM_01247] Method to read History Report
[SWS_UCM_01248] Content of History Report
[SWS_UCM_01301] Vehicle Package authentication
[SWS_UCM_01302] Vehicle Package authentication failure
5
4
Number Heading
[SWS_UCM_01303] Dependencies between Software Packages
[SWS_UCM_01304] Confidential information protection
[SWS_UCM_CON-
STR_00001]
Table E.1: Added Traceables in R19-11
Number Heading
[SWS_UCM_00003] Cancelling the package processing
[SWS_UCM_00017] Sequential Software Package Processing
[SWS_UCM_00018] Providing Progress Information
[SWS_UCM_00027] Delta Package activation
[SWS_UCM_00071] SwNameType table
[SWS_UCM_00081] Processing state of Package Management
[SWS_UCM_00082] Exit from Processing state of Package Management
[SWS_UCM_00102] Update state
[SWS_UCM_00103] Update to older Software Cluster version than currently present
[SWS_UCM_00104] Consistency Check of processed Package
[SWS_UCM_00111] Entering the Rolled-back state
[SWS_UCM_00112] Software Cluster and version
[SWS_UCM_00126] Entering the RollingBack state after a Rollback call
[SWS_UCM_00130] Software Cluster and version error
[SWS_UCM_00146] Entering the Cleaning-up state after a Finish call
[SWS_UCM_00149] Return to the Idle state from Processing state
[SWS_UCM_00151] Entering the Ready state of Package Management after a Cancel call
[SWS_UCM_00155] Entering the RollingBack state after a failure in the Verifying state
Table E.2: Changed Traceables in R19-11
Number Heading
[SWS_UCM_00012] Log message retrieving
[SWS_UCM_00114] ActivateOptionType table
[SWS_UCM_00144] Log error
Table E.3: Deleted Traceables in R19-11
none
none
none
Number Heading
[SWS_UCM_00184] Persistent data clean-up after Software Cluster removal
[SWS_UCM_00185] Provide Software Cluster general information
[SWS_UCM_00186]
[SWS_UCM_00187]
[SWS_UCM_00190] Reinstallation of older Software Cluster version than previously removed
[SWS_UCM_00191] Software Cluster life-cycle state kAdded
[SWS_UCM_00192] Software Cluster life-cycle state transition from kAdded to kPresent
[SWS_UCM_00193] Software Cluster life-cycle state transition from kUpdated to kPresent
[SWS_UCM_00194] Software Cluster life-cycle state transition from kRemoved to kPresent
[SWS_UCM_00195] Software Cluster life-cycle state kUpdated
[SWS_UCM_00196] Software Cluster life-cycle state kRemoved
[SWS_UCM_00197] End of Software Cluster life-cycle state from state kAdded
[SWS_UCM_00198] End of Software Cluster life-cycle state from state kRemoved
[SWS_UCM_00199] Reporting of Software Cluster reaching end of life-cycle
[SWS_UCM_00200] Failing authentication
[SWS_UCM_00201] Delta Package dependency error
[SWS_UCM_00202] Trusted Platform compliance
[SWS_UCM_00203] TransferData InvalidTransferId
[SWS_UCM_00204] TransferData IncorrectBlock
5
4
Number Heading
[SWS_UCM_00205] TransferData IncorrectSize
[SWS_UCM_00206] TransferData InsufficientMemory
[SWS_UCM_00207] TransferData BlockInconsistent
[SWS_UCM_00208] TransferData OperationNotPermitted
[SWS_UCM_00209] TransferData PackageInconsistent
[SWS_UCM_00211] TransferData TransferInterrupted
[SWS_UCM_00212] TransferExit InvalidTransferId
[SWS_UCM_00213] TransferExit InvalidPackageManifest
[SWS_UCM_00214] DeleteTransfer InvalidTransferId
[SWS_UCM_00215] DeleteTransfer OperationNotPermitted
[SWS_UCM_00216] Validity of TransferId
[SWS_UCM_00217] ProcessSwPackage InsufficientMemory
[SWS_UCM_00218] ProcessSwPackage InvalidTransferId
[SWS_UCM_00219] ProcessSwPackage OperationNotPermitted
[SWS_UCM_00220] GetSwProcessProgress InvalidTransferId
[SWS_UCM_00230] ProcessSwPackage AuthenticationFailed
[SWS_UCM_00231] ProcessSwPackage IncompatibleDelta
[SWS_UCM_00232] ProcessSwPackage
[SWS_UCM_00233] Cancel Operation CancelFailed
[SWS_UCM_00234] Cancel OperationNotPermitted
[SWS_UCM_00235] Cancel InvalidTransferId
[SWS_UCM_00236] RevertProcessedSwPackages NotAbleToRevertPackages
[SWS_UCM_00237] RevertProcessedSwPackages OperationNotPermitted
[SWS_UCM_00238] Rollback NotAbleToRollback
[SWS_UCM_00239] Rollback OperationNotPermitted
[SWS_UCM_00240] Finish OperationNotPermitted
[SWS_UCM_00241] Activate OperationNotPermitted
[SWS_UCM_00242] Activate PreActivationFailed
[SWS_UCM_00243] Too big block size received by UCM
[SWS_UCM_00245] Software Cluster category
[SWS_UCM_00250] TransferData AuthenticationFailed
[SWS_UCM_00251]
[SWS_UCM_00252]
[SWS_UCM_00253]
[SWS_UCM_00254]
[SWS_UCM_00255]
[SWS_UCM_00256]
[SWS_UCM_00257] Update session
[SWS_UCM_00258] Update session rejected
5
4
Number Heading
[SWS_UCM_00259] Ending the update session
[SWS_UCM_00260] PrepareUpdate, VerifyUpdate and PrepareRollback orders
[SWS_UCM_00261] PrepareUpdate, VerifyUpdate and PrepareRollback synchronous calls
[SWS_UCM_00262] Update preparation rejected
[SWS_UCM_00263] Update preparation failure
[SWS_UCM_00264] Update verification rejected
[SWS_UCM_01011] TransferVehiclePackage InsufficientMemory
[SWS_UCM_01012] TransferVehiclePackage InsufficientComputationPower
[SWS_UCM_01013] Too big block size received by UCM Master
[SWS_UCM_01014] Packages transferring sequence
[SWS_UCM_01015] Invalid Vehicle Package manifest
[SWS_UCM_01016] Invalid Package Manifest
[SWS_UCM_01017] RequestedPackage field
[SWS_UCM_01117] UCM Master SafetyState field
[SWS_UCM_01118] UCM Master waiting for vehicle driver approval
[SWS_UCM_01119] Report information of Software Packages
[SWS_UCM_01120] Provide Software Packages general information
[SWS_UCM_01121] Adaptive Platform interface provided for Flashing Adapter
[SWS_UCM_01122] Supported physical layers by D-PDU API implementation
[SWS_UCM_01123] Supported application layers by D-PDU API implementation
[SWS_UCM_01124] Supported protocols by D-PDU API implementation
[SWS_UCM_01125] Separation of D-PDU API-Software with the MVCI protocol module firmware
[SWS_UCM_01126] Root description file (RDF)
[SWS_UCM_01127] Module Description File (MDF)
[SWS_UCM_01128] Symbolic names and IDs
[SWS_UCM_01129] SAE J2534-1 and RP 1210a compatibility
[SWS_UCM_01130] ComPrimitives in RawMode
[SWS_UCM_01131] PDUIoCtl(PDU_IOCTL_RESET)
PDUIoCtl(PDU_IOCTL_START_MSG_FILTER),
[SWS_UCM_01132] PDUIoCtl(PDU_IOCTL_CLEAR_MSG_FILTER),
PDUIoCtl(PDU_IOCTL_STOP_MSG_FILTER)
[SWS_UCM_01133] PDUIoCtl(PDU_IOCTL_SEND_BREAK)
[SWS_UCM_01134] Not used D-PDU API function return codes
[SWS_UCM_01178]
[SWS_UCM_01265] TransferState field
[SWS_UCM_01266] Subordinate Not Available On The Network
[SWS_UCM_01267] Vehicle State Manager Communication Error
[SWS_UCM_01268] Vehicle Driver Interface Communication Error
[SWS_UCM_01269] Campaign cancellation history
5
4
Number Heading
[SWS_UCM_01270] New campaign disabling
[SWS_UCM_01271] New campaign enabling
[SWS_UCM_01305] Vehicle Package format
[SWS_UCM_01306] TransferExit Invalid package manifest
[SWS_UCM_CON-
UCM confidential information handling
STR_00002]
[SWS_UCM_CON-
Exclusive use of Vehicle Driver Interface
STR_00003]
[SWS_UCM_CON-
Unsupported safety policy by Vehicle driver interface
STR_00004]
[SWS_UCM_CON-
Safety state change
STR_00005]
[SWS_UCM_CON-
Exclusive use of Vehicle State Manager
STR_00006]
[SWS_UCM_CON-
Unsupported safety policy by Vehicle State Manager
STR_00007]
[SWS_UCM_CON-
Switching vehicle into update mode
STR_00008]
[SWS_UCM_CON-
Safety policy change
STR_00009]
[SWS_UCM_CON-
UCM Client update sequence
STR_00010]
[SWS_UCM_CON-
Flashing Adapter provided interface
STR_00011]
Table E.4: Added Traceables in R20-11
Number Heading
[SWS_UCM_00018] Providing Progress Information
[SWS_UCM_00020] Finishing the packages activation
[SWS_UCM_00025] Activation of SoftwareClusters
[SWS_UCM_00026] Dependency Check
[SWS_UCM_00027] Delta Package activation
[SWS_UCM_00028] Software Package Authentication
[SWS_UCM_00029] Consistency Check of Manifest
[SWS_UCM_00031]
[SWS_UCM_00032]
[SWS_UCM_00038]
5
4
Number Heading
[SWS_UCM_00039]
[SWS_UCM_00040]
[SWS_UCM_00044]
[SWS_UCM_00069] Report information on Software Packages
[SWS_UCM_00071]
[SWS_UCM_00073]
[SWS_UCM_00077]
[SWS_UCM_00078]
[SWS_UCM_00079]
[SWS_UCM_00084] Entering the kActivating state of Package Management
[SWS_UCM_00085] Entering the kActivated state of Package Management
[SWS_UCM_00088] Preparation of data transfer
[SWS_UCM_00092] Software Package integrity
[SWS_UCM_00098] Software Package Authentication failure
[SWS_UCM_00107] Activated state
[SWS_UCM_00110] Rolling-back the software update
[SWS_UCM_00111] Entering the kRolled-Back state
[SWS_UCM_00112] Software Cluster and version
[SWS_UCM_00115] History
[SWS_UCM_00126] Entering the kRolling-Back state after a Rollback call
[SWS_UCM_00130] Software Cluster and version error
[SWS_UCM_00131]
[SWS_UCM_00132]
[SWS_UCM_00133]
[SWS_UCM_00134]
[SWS_UCM_00135]
[SWS_UCM_00136]
[SWS_UCM_00137] Processing several update Software Packages
[SWS_UCM_00145] Sequential order of data transfer
[SWS_UCM_00147] Return to the Idle state from Cleaning-up state
[SWS_UCM_00148] Transfer sequence order
[SWS_UCM_00149] Return to the Idle state from Processing state
[SWS_UCM_00151] Entering the Ready state of Package Management after a Cancel call
[SWS_UCM_00153] Action in kActivating state of Package Management
[SWS_UCM_00154] Entering the Verifying state of Package Management
[SWS_UCM_00155] Entering the kRolling-Back state after a failure in the kVerifying state
[SWS_UCM_00158] Cleanup of interrupted actions
[SWS_UCM_00162] Entering the Cleaning-up state after a RevertProcessedSwPackages call
[SWS_UCM_00165] Processing from stream
5
4
Number Heading
[SWS_UCM_00166] Processing from stream state
[SWS_UCM_00167] Cancelling streamed packages
[SWS_UCM_00168] Transferring while processing from stream
[SWS_UCM_00169] Finishing transfer while processing from stream
[SWS_UCM_00173]
[SWS_UCM_00174]
[SWS_UCM_00175]
[SWS_UCM_00176]
[SWS_UCM_00177]
[SWS_UCM_00178]
[SWS_UCM_00179]
[SWS_UCM_00180]
[SWS_UCM_00181]
[SWS_UCM_00182]
[SWS_UCM_00183]
[SWS_UCM_00210] Transferring of software packages on kProcessing state
[SWS_UCM_01003] UCM Master checks states of UCM subordinates
[SWS_UCM_01006] Start transfer of a Vehicle Package to UCM Master
[SWS_UCM_01007] Start transfer of a Software Package to UCM Master
Transfer data of a Vehicle Package or Software Package to UCM Mas-
[SWS_UCM_01008]
ter
Exit the transfer of a Vehicle Package or Software Package to UCM
[SWS_UCM_01009]
Master
[SWS_UCM_01010] Delete a Vehicle Package transferred to UCM Master
[SWS_UCM_01101] Provide information of installed Software Clusters in vehicle
[SWS_UCM_01102] Get information of available Software Clusters in Backend
[SWS_UCM_01103] Inform Backend of needed Software Clusters for an update
[SWS_UCM_01105] Interaction of UCM Master with Vehicle Driver
[SWS_UCM_01107] UCM Master provides progress information to Vehicle Driver
[SWS_UCM_01109] UCM Master provides a safety policy interface
[SWS_UCM_01110] UCM Master SafetyState method
[SWS_UCM_01114]
[SWS_UCM_01177]
[SWS_UCM_01203] CampaignState field
[SWS_UCM_01207] Trigger on kSoftwarePackage_Transferring state
[SWS_UCM_01221] Transition from kVehiclePackageTransferring state to kIdle state
Transition from kVehiclePackageTransferring state to kSoft-
[SWS_UCM_01222]
warePackage_Transferring state
[SWS_UCM_01227] Transition from kSoftwarePackage_Transferring state to kIdle state
5
4
Number Heading
Transition from kSoftwarePackage_Transferring state to kProcess-
[SWS_UCM_01228]
ing state
[SWS_UCM_01229] SafetyPolicy while processing stream
[SWS_UCM_01234] Transition from kProcessing state to kActivating state
[SWS_UCM_01236] Transition from kProcessing state to kIdle state
[SWS_UCM_01239] Transition from kActivating state to kCancelling state
[SWS_UCM_01240] Transition from kActivating state to kVehicleChecking state
[SWS_UCM_01244] Cancellation of an update campaign shall be possible
[SWS_UCM_01245] Cancellation during activation shall be possible
[SWS_UCM_01246] Unreachable UCM during update campaign
[SWS_UCM_01247] Method to read History Report
[SWS_UCM_01302] Vehicle Package authentication failure
[SWS_UCM_01304] Confidential information protection
[SWS_UCM_CON-
STR_00001]
Table E.5: Changed Traceables in R20-11
Number Heading
[SWS_UCM_00011] Updating persisted data
[SWS_UCM_00041] LogLevelType table
[SWS_UCM_00042] LogEntryType table
[SWS_UCM_00043] LogVectorType table
[SWS_UCM_00082] Exit from Processing state of Package Management
[SWS_UCM_00091] Successful data transfer
[SWS_UCM_00096] Entering the Rolled-back state
[SWS_UCM_00102] Update state
[SWS_UCM_00105] UCM confidential information handling
[SWS_UCM_00108] Execution of the update software
[SWS_UCM_00113] Rollback of persisted data
[SWS_UCM_00124] Verify State
[SWS_UCM_00128]
[SWS_UCM_00141] UCM insufficient memory for parallel data transfer
[SWS_UCM_00142] Prevent software from blocking the Rollback operation
[SWS_UCM_00143] Log level setting
[SWS_UCM_00156] Procurement of Checksum
5
4
Number Heading
[SWS_UCM_00170] Log message retrieving
[SWS_UCM_00171] Log level changing
[SWS_UCM_00172] Log messages removing
[SWS_UCM_01002] UCM Master shall provide UCM services
[SWS_UCM_01106] Exclusive use of Vehicle Driver Interface
[SWS_UCM_01108] Unsupported safety policy by Vehicle driver interface
[SWS_UCM_01111] Exclusive use of Vehicle State Manager
[SWS_UCM_01112] Unsupported safety policy by Vehicle State Manager
[SWS_UCM_01113] Switching vehicle into update mode
[SWS_UCM_01115] VehicleStateManagerErrorDomain
[SWS_UCM_01116] VehicleDriverApplicationErrorDomain
[SWS_UCM_01206] Trigger on kTransferApproving state
[SWS_UCM_01208] Trigger on kProcessApproving state
[SWS_UCM_01211] Trigger on kActivateApproving state
Transition from kVehiclePackageTransferring state to kTransferAp-
[SWS_UCM_01223]
proving state
[SWS_UCM_01224] Transition from kTransferApproving state to kTransferring state
[SWS_UCM_01225] Transition from kTransferApproving state to kIdle state
[SWS_UCM_01226] Transition from kTransferring state to kTransferApproving state
[SWS_UCM_01230] Transition from kTransferring state to kProcessApproving state
[SWS_UCM_01231] Transition from kProcessApproving state to kProcessing state
[SWS_UCM_01232] Transition from kProcessApproving state to kIdle state
[SWS_UCM_01233] Transition from kProcessing state to kProcessApproving state
[SWS_UCM_01235] Transition from kProcessing state to kActivateApproving state
[SWS_UCM_01237] Transition from kActivateApproving state to kActivating state
[SWS_UCM_01238] Transition from kActivateApproving state to kIdle state
Table E.6: Deleted Traceables in R20-11
none
none
none
Number Heading
[SWS_UCM_00265] state transition due to ProcessSwPackage error
[SWS_UCM_00266] OperationNotPermitted error and UCM state
[SWS_UCM_00267] Error when checksum is not recognised at processing time
[SWS_UCM_00268]
[SWS_UCM_00269]
[SWS_UCM_00270] UCM internal state persistency
[SWS_UCM_00271] Keeping history of failure error code
[SWS_UCM_00272] Transfer block size
Persistent data clean-up after Software Cluster update that removes a
[SWS_UCM_00273]
process
[SWS_UCM_00274] UCM initialization
[SWS_UCM_00275] TransferData error handling order
[SWS_UCM_00276] TransferExit error handling order
[SWS_UCM_00277] ProcessSwPackage error handling order
[SWS_UCM_00278] Cancel error handling order
[SWS_UCM_00279] RevertProcessedSwPackages error handling order
[SWS_UCM_00280] Activate VerificationFailed
[SWS_UCM_00281] Activate error handling order
[SWS_UCM_00282] Rollback error handling order
[SWS_UCM_00283] DeleteTransfer error handling order
[SWS_UCM_00285] Removing or updating a Software Cluster not existing in the Machine
Software Cluster life-cycle state transition from kRemoved to
[SWS_UCM_00286]
kPresent in case of Finish call
End of Software Cluster life-cycle state from state kAdded in case of
[SWS_UCM_00287]
Finish call
[SWS_UCM_00288]
[SWS_UCM_00289] TransferData TransferFailed
[SWS_UCM_01018] TransferVehiclePackage BusyWithCampaign
[SWS_UCM_01019] UCM Master initialization
[SWS_UCM_01135] Get Software Clusters descriptions from a vehicle
[SWS_UCM_01136]
[SWS_UCM_01137]
[SWS_UCM_01138]
[SWS_UCM_01272] VehicleCheck call not permitted
[SWS_UCM_01273] CancelCampaign CancelFailed error
5
4
Number Heading
[SWS_UCM_01274] CancelCampaign OperationNotPermitted error
[SWS_UCM_-
CONSTR_00012]
[SWS_UCM_-
Confidential information protection
CONSTR_00013]
[SWS_UCM_-
Software Package and Software Cluster shortNames
CONSTR_00014]
[SWS_UCM_-
Trigger on kVehicleChecking state
CONSTR_00015]
Table E.7: Added Traceables in R21-11
Number Heading
[SWS_UCM_00004] Report software information
[SWS_UCM_00009] UCM exposing its identifier
[SWS_UCM_00017] Sequential Software Package Processing
[SWS_UCM_00020] Finishing the packages activation
[SWS_UCM_00030] Report changes
[SWS_UCM_00039]
[SWS_UCM_00044]
[SWS_UCM_00078]
[SWS_UCM_00080] Idle state of Package Management
[SWS_UCM_00081] Processing state of Package Management
Entering the Ready state of Package Management after a successful
[SWS_UCM_00083]
processing operation
[SWS_UCM_00084] Entering the kActivating state of Package Management
[SWS_UCM_00085] Entering the kActivated state of Package Management
[SWS_UCM_00092] Software Package integrity
[SWS_UCM_00103] Update to older Software Cluster version than currently present
[SWS_UCM_00104] Integrity Check of processed Package
[SWS_UCM_00107] Activated state
[SWS_UCM_00110] Rolling-back the software update
[SWS_UCM_00111] Entering the kRollingBack state
[SWS_UCM_00115] History
[SWS_UCM_00126] Entering the kRollingBack state after a Rollback call
[SWS_UCM_00127] Finishing update sequence
[SWS_UCM_00130] Software Cluster and version error
5
4
Number Heading
[SWS_UCM_00131]
[SWS_UCM_00133]
[SWS_UCM_00134]
[SWS_UCM_00136]
[SWS_UCM_00146] Entering the Cleaning-up state after a Finish call
[SWS_UCM_00147] Return to the Idle state from Cleaning-up state
[SWS_UCM_00149] Return to the Idle state from Processing state
[SWS_UCM_00151] Entering the Ready state of Package Management after a Cancel call
Entering the Ready state of Package Management after a missing
[SWS_UCM_00152]
dependency
[SWS_UCM_00153] Action in kActivating state of Package Management
[SWS_UCM_00154] Entering the Verifying state of Package Management
[SWS_UCM_00155] Entering the kRolling-Back state after a failure in the kVerifying state
[SWS_UCM_00162] Entering the Cleaning-up state after a RevertProcessedSwPackages call
[SWS_UCM_00163] Action in Cleaning-up state
[SWS_UCM_00164] Cleaning up of Software Packages
[SWS_UCM_00166] Processing from stream state
[SWS_UCM_00167] Cancelling streamed packages
[SWS_UCM_00168] Transferring while processing from stream
[SWS_UCM_00169] Finishing transfer while processing from stream
[SWS_UCM_00176]
[SWS_UCM_00181]
[SWS_UCM_00182]
[SWS_UCM_00183]
[SWS_UCM_00185] Provide SoftwareCluster general information
[SWS_UCM_00186]
Reinstallation of older Software Cluster version than previously
[SWS_UCM_00190]
removed
[SWS_UCM_00191] Software Cluster life-cycle state kAdded
[SWS_UCM_00192] Software Cluster life-cycle state transition from kAdded to kPresent
Software Cluster life-cycle state transition from kUpdated to
[SWS_UCM_00193]
kPresent
Software Cluster life-cycle state transition from kRemoved to
[SWS_UCM_00194]
kPresent in case of RevertProcessedSwPackages call
[SWS_UCM_00195] Software Cluster life-cycle state kUpdated
[SWS_UCM_00196] Software Cluster life-cycle state kRemoved
End of Software Cluster life-cycle state from state kAdded in case of
[SWS_UCM_00197]
RevertProcessedSwPackages call
[SWS_UCM_00198] End of Software Cluster life-cycle state from state kRemoved
[SWS_UCM_00200] Failing authentication
5
4
Number Heading
[SWS_UCM_00209] TransferData PackageInconsistent
[SWS_UCM_00210] Transferring of software packages on kProcessing state
[SWS_UCM_00213] TransferExit InvalidPackageManifest
[SWS_UCM_00214] DeleteTransfer InvalidTransferId
[SWS_UCM_00215] DeleteTransfer OperationNotPermitted
[SWS_UCM_00220] GetSwProcessProgress InvalidTransferId
[SWS_UCM_00237] RevertProcessedSwPackages OperationNotPermitted
[SWS_UCM_00239] Rollback OperationNotPermitted
[SWS_UCM_00240] Finish OperationNotPermitted
[SWS_UCM_00241] Activate OperationNotPermitted
[SWS_UCM_00242] Activate PreActivationFailed
[SWS_UCM_00243] Too big block size received by UCM
[SWS_UCM_00251]
[SWS_UCM_00252]
[SWS_UCM_00253]
[SWS_UCM_00254]
[SWS_UCM_00255]
[SWS_UCM_00257] Update session
[SWS_UCM_00258] Update session rejected
[SWS_UCM_00259] Ending the update session
[SWS_UCM_00260] PrepareUpdate, VerifyUpdate and PrepareRollback orders
[SWS_UCM_00261] PrepareUpdate, VerifyUpdate and PrepareRollback synchronous calls
[SWS_UCM_00262] Update preparation rejected
[SWS_UCM_00263] Update preparation failure
[SWS_UCM_00264] Update verification rejected
[SWS_UCM_01003] UCM Master checks states of UCM subordinates
[SWS_UCM_01011] TransferVehiclePackage InsufficientMemory
[SWS_UCM_01015] Invalid Vehicle Package manifest
[SWS_UCM_01016] Invalid Package Manifest
[SWS_UCM_01103] Inform Backend of needed Software Packages for an update
[SWS_UCM_01109] UCM Master provides a safety interface
[SWS_UCM_01114]
[SWS_UCM_01117] UCM Master SafetyState field
[SWS_UCM_01118] UCM Master waiting for vehicle driver approval
PDUIoCtl(PDU_IOCTL_START_MSG_FILTER), PDUIoCtl(
[SWS_UCM_01132] PDU_IOCTL_CLEAR_MSG_FILTER), PDUIoCtl(
PDU_IOCTL_STOP_MSG_FILTER)
[SWS_UCM_01203] CampaignState field
[SWS_UCM_01204] Initial state
5
4
Number Heading
[SWS_UCM_01207] Trigger on kSoftwarePackage_Transferring state
[SWS_UCM_01209] Trigger on kProcessing state
[SWS_UCM_01212] Trigger on kActivating state
[SWS_UCM_01214] Final action on kVehicleChecking state
[SWS_UCM_01215] Trigger on kCancelling state
[SWS_UCM_01216] Final action on kCancelling state
[SWS_UCM_01217] Monitoring of UCM subordinates
[SWS_UCM_01218] Transition from kIdle state to kSyncing state
[SWS_UCM_01219] Transition from kSyncing state to kIdle state
[SWS_UCM_01220] Transition from kIdle state to kVehiclePackageTransferring state
[SWS_UCM_01221] Transition from kVehiclePackageTransferring state to kIdle state
Transition from kVehiclePackageTransferring state to
[SWS_UCM_01222]
kSoftwarePackage_Transferring state
[SWS_UCM_01227] Transition from kSoftwarePackage_Transferring state to kIdle state
Transition from kSoftwarePackage_Transferring state to
[SWS_UCM_01228]
kProcessing state
[SWS_UCM_01229] SafetyConditions while processing stream
[SWS_UCM_01234] Transition from kProcessing state to kActivating state
[SWS_UCM_01236] Transition from kProcessing state to kCancelling state
[SWS_UCM_01239] Transition from kActivating state to kCancelling state
[SWS_UCM_01240] Transition from kActivating state to kVehicleChecking state
[SWS_UCM_01241] Transition from kVehicleChecking state to kCancelling state
[SWS_UCM_01242] Transition from kVehicleChecking state to kIdle state
[SWS_UCM_01243] Transition from kCancelling state to kIdle state
[SWS_UCM_01244] Cancellation of an update campaign shall be possible
[SWS_UCM_01246] Unreachable UCM during update campaign
[SWS_UCM_01247] Method to read History Report
[SWS_UCM_01265] TransferState field
[SWS_UCM_01270] New campaign disabling
[SWS_UCM_-
UCM confidential information handling
CONSTR_00002]
[SWS_UCM_-
Unsupported safety by Vehicle driver interface
CONSTR_00004]
[SWS_UCM_-
Safety state change
CONSTR_00005]
[SWS_UCM_-
Exclusive use of Vehicle State Manager
CONSTR_00006]
[SWS_UCM_-
Unsupported safety conditions by Vehicle State Manager
CONSTR_00007]
[SWS_UCM_-
Switching vehicle into update mode
CONSTR_00008]
5
4
Number Heading
[SWS_UCM_-
Safety condition change
CONSTR_00009]
Table E.8: Changed Traceables in R21-11
Number Heading
[SWS_UCM_00093] Transfer sequence
[SWS_UCM_00201] Delta Package dependency error
[SWS_UCM_00211] TransferData TransferInterrupted
[SWS_UCM_00230] ProcessSwPackage AuthenticationFailed
[SWS_UCM_00232] ProcessSwPackage
[SWS_UCM_00233] Cancel Operation CancelFailed
[SWS_UCM_00250] TransferData AuthenticationFailed
[SWS_UCM_01001] UCM Master processes Vehicle Package
[SWS_UCM_01004] Only one UCM Master shall be active per network domain
[SWS_UCM_01006] Start transfer of a Vehicle Package to UCM Master
[SWS_UCM_01007] Start transfer of a Software Package to UCM Master
Transfer data of a Vehicle Package or Software Package to UCM
[SWS_UCM_01008]
Master
Exit the transfer of a Vehicle Package or Software Package to UCM
[SWS_UCM_01009]
Master
[SWS_UCM_01010] Delete a Vehicle Package transferred to UCM Master
[SWS_UCM_01012] TransferVehiclePackage InsufficientComputationPower
[SWS_UCM_01102] Get information of available Software Clusters in Backend
[SWS_UCM_01213] Trigger on kVehicleChecking state
[SWS_UCM_01245] Cancellation during activation shall be possible
[SWS_UCM_01304] Confidential information protection
[SWS_UCM_-
UCM Client update sequence
CONSTR_00010]
Table E.9: Deleted Traceables in R21-11
none
none
none