AUTOSAR Requirements on Persistency

Requirement: The layout of persistent data shall be configurable RS_PER_00010 ../../_images/arrow-right-circle.svg
status: draft
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description: Persistency shall support configuration of provided key-value storage and file storage.

Rationale: Generation of interfaces

Use Case: An Adaptive Application or a functional cluster needs access to persistent data and expects a dedicated interface for each set of data.

Supporting Material:

Requirement: Persistency shall support storage of persistent data RS_PER_00001 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description:

Persistency shall support persistent storage of data of an Adaptive Application. In case of direct storage to flash memory or other storage hardware that has a limited number of write cycles, the implementation of Persistency shall take care of wear leveling.

Rationale: Applications need to preserve data from one run-time to the next.

Use Case: Applications have data like settings, diagnostic data, calibration data, or error logs that they want to store on a file system or in a database.

Supporting Material:

Requirement: Persistency shall support to retrieve data that has been persistently stored on a platform instance RS_PER_00002 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description:

Persistency shall provide the functionality to load data which is persistently stored.

Rationale: Load of persistently stored data

Use Case: An Adaptive Application or functional cluster which stores persistent data needs to restore it after a restart of the Adaptive Application or the platform.

Supporting Material:

Requirement: Persistency shall support identification of data using a unique identifier RS_PER_00003 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description:

Data shall be stored in way that it can be accessed from an Adaptive Application or a functional cluster by using a unique identifier e.g. identify a value by a key.

Rationale: Load of persistently stored data

Use Case: Storage of a variety of different data objects that can be accessed individually for loading.

Supporting Material:

Requirement: Persistency shall support access to file-like structures RS_PER_00004 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description:

Persistency shall provide a standardized way to access file-like structures. Adaptive Applications and the other functional clusters shall be able to read and write data from file-like structures, and read associated meta data (e.g. access time). Persistent data can be represented in multiple ways, e.g. human-readable format or binary. Every format of data needs to be accessible by Persistency.

Rationale: Persistency shall emulate the basic features of a file system, because PSE51 does not contain file system support.

Dependencies: -

Use Case: Store information that is not structured as key-value pairs.

Supporting Material:

Requirement: Persistency shall support encryption/decryption of persistent data RS_PER_00005 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00514

Description:

Persistency shall provide a standardized way to encrypt/decrypt persistent data.

Rationale: Support of data encryption

Use Case: Storage of persistent data that shall be encrypted for security reasons.

Supporting Material:

Requirement: Persistency shall support detection of data corruption in persistent memory RS_PER_00008 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
has_dead_links: True
has_forbidden_dead_links: True
satisfies: RS_Main_00011, RS_SAF_10039

Description:

Persistency shall support detection of data corruption in persistently stored data. The corruption may be caused by systematic or random failures. To be able to detect corrupted data, some redundancy is needed, which can be anything from a checksum to a full copy. The actual mechanisms and the granularity of redundancy are subject to configuration.

Rationale: Applications need to be sure to read valid data.

Use Case: Notification to an Adaptive Application or functional cluster in case of corrupted data in persistent memory, which is essential for safety use cases. The detection of data corruption is also necessary to support data recovery mechanisms.

Supporting Material:

Requirement: Persistency shall support data recovery mechanisms if persistent data was corrupted RS_PER_00009 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
has_dead_links: True
has_forbidden_dead_links: True
satisfies: RS_Main_00011, RS_SAF_10040

Description:

Persistency shall support a recovery mechanism if corruption of persistently stored data was detected. To be able to recover corrupted data, a redundant copy of the data is needed. The actual mechanisms and the granularity of redundancy are subject to configuration. Persistency shall also support a notification of the application in case recovery took place.

Rationale: Applications want to recover corrupted data.

Use Case: If corruption of persistent data was detected it shall be possible to recover corrupted data.

Supporting Material:

Requirement: Persistency shall support installation of persistent data RS_PER_00012 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency

Description:

Persistency shall allow for installation of pre-configured values in key-value storages and pre-configured files in a file storage. The pre-configured data is provided by the manifest.

Rationale: It shall be possible to install an application with a preset.

Use Case: Providing initial or fixed content for key-value storages and file storages.

Supporting Material:

Requirement: Persistency shall support update of persistent data RS_PER_00013 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency

Description:

Persistency shall allow for an update of values in key-value storages and of files in a file storage. The update strategy and updated data is provided by the manifest.

Rationale: It shall be possible to update an application and set a new preset.

Use Case: Providing updated content for key-value storages and file storages.

Supporting Material:

Requirement: Persistency shall support roll-back of persistent data RS_PER_00014 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency

Description:

Persistency shall allow for a roll-back of values in key-value storages and files in a file storage to the state before an update.

Rationale: It shall be possible to roll back an application and return persisted data to its previous state.

Use Case: Reverting the content of key-value storages and file storages.

Supporting Material:

Requirement: Persistency shall support finalization of an update of persistent data RS_PER_00016 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency

Description:

Persistency shall allow for a finalization of an update of values in key-value storages and files in a file storage.

Rationale: It shall be possible to finalize an update of an application and its persisted data.

Use Case: Finalizing the update of key-value storages and file storages.

Supporting Material:

Requirement: Persistency shall be able to ensure and limit the amount of storage used by persisted data RS_PER_00011 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00011

Description:

Persistency shall support monitoring of the storage space allocated by persistently stored data. It shall ensure that a configurable amount of storage space is always available for stored data, and that the stored data never surpasses a configurable limit.

Rationale: Avoid situations where applications cannot run reliably because they cannot access the required amount of storage, or because another application uses too much storage.

Use Case: Ensuring reliability of the access to the persistently stored data of a single process, and ensuring overall reliability of applications regarding access to persistently stored data.

Supporting Material:

Requirement: Persistency shall be able to report the amount of currently used storage RS_PER_00017 ../../_images/arrow-right-circle.svg
status: open
tags: autosar, autosar_persistency
satisfies: RS_Main_00440

Description:

Persistency shall support querying the amount of storage currently allocated by persisted data.

Rationale: It shall be possible to acquire information about persistent storage.

Use Case: Polling of the current size of persisted data using a diagnostic service.

Supporting Material:

Traceability

ID

Title

Status

Type

Outgoing

Tags

RS_PER_00001

Persistency shall support storage of persistent data

open

req

autosar; autosar_persistency

RS_PER_00002

Persistency shall support to retrieve data that has been persistently stored on a platform instance

open

req

autosar; autosar_persistency

RS_PER_00003

Persistency shall support identification of data using a unique identifier

open

req

autosar; autosar_persistency

RS_PER_00004

Persistency shall support access to file-like structures

open

req

autosar; autosar_persistency

RS_PER_00005

Persistency shall support encryption/decryption of persistent data

open

req

autosar; autosar_persistency

RS_PER_00008

Persistency shall support detection of data corruption in persistent memory

open

req

autosar; autosar_persistency

RS_PER_00009

Persistency shall support data recovery mechanisms if persistent data was corrupted

open

req

autosar; autosar_persistency

RS_PER_00010

The layout of persistent data shall be configurable

draft

req

autosar; autosar_persistency

RS_PER_00011

Persistency shall be able to ensure and limit the amount of storage used by persisted data

open

req

autosar; autosar_persistency

RS_PER_00012

Persistency shall support installation of persistent data

open

req

autosar; autosar_persistency

RS_PER_00013

Persistency shall support update of persistent data

open

req

autosar; autosar_persistency

RS_PER_00014

Persistency shall support roll-back of persistent data

open

req

autosar; autosar_persistency

RS_PER_00016

Persistency shall support finalization of an update of persistent data

open

req

autosar; autosar_persistency

RS_PER_00017

Persistency shall be able to report the amount of currently used storage

open

req

autosar; autosar_persistency

@startuml

' Nodes definition 

node "<size:12>Requirement</size>\n**The layout of**\n**persistent data**\n**shall be**\n**configurable**\n<size:10>RS_PER_00010</size>" as RS_PER_00010 [[../reqs/autosar/autosar_persistency.html#RS_PER_00010]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**storage of**\n**persistent data**\n<size:10>RS_PER_00001</size>" as RS_PER_00001 [[../reqs/autosar/autosar_persistency.html#RS_PER_00001]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**to retrieve**\n**data that has**\n**been**\n**persistently**\n**stored on a**\n**platform**\n**instance**\n<size:10>RS_PER_00002</size>" as RS_PER_00002 [[../reqs/autosar/autosar_persistency.html#RS_PER_00002]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**identification**\n**of data using a**\n**unique**\n**identifier**\n<size:10>RS_PER_00003</size>" as RS_PER_00003 [[../reqs/autosar/autosar_persistency.html#RS_PER_00003]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**access to file-**\n**like structures**\n<size:10>RS_PER_00004</size>" as RS_PER_00004 [[../reqs/autosar/autosar_persistency.html#RS_PER_00004]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support e**\n**ncryption/decry**\n**ption of**\n**persistent data**\n<size:10>RS_PER_00005</size>" as RS_PER_00005 [[../reqs/autosar/autosar_persistency.html#RS_PER_00005]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**detection of**\n**data corruption**\n**in persistent**\n**memory**\n<size:10>RS_PER_00008</size>" as RS_PER_00008 [[../reqs/autosar/autosar_persistency.html#RS_PER_00008]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**data recovery**\n**mechanisms if**\n**persistent data**\n**was corrupted**\n<size:10>RS_PER_00009</size>" as RS_PER_00009 [[../reqs/autosar/autosar_persistency.html#RS_PER_00009]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**installation of**\n**persistent data**\n<size:10>RS_PER_00012</size>" as RS_PER_00012 [[../reqs/autosar/autosar_persistency.html#RS_PER_00012]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**update of**\n**persistent data**\n<size:10>RS_PER_00013</size>" as RS_PER_00013 [[../reqs/autosar/autosar_persistency.html#RS_PER_00013]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**roll-back of**\n**persistent data**\n<size:10>RS_PER_00014</size>" as RS_PER_00014 [[../reqs/autosar/autosar_persistency.html#RS_PER_00014]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall support**\n**finalization of**\n**an update of**\n**persistent data**\n<size:10>RS_PER_00016</size>" as RS_PER_00016 [[../reqs/autosar/autosar_persistency.html#RS_PER_00016]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall be able**\n**to ensure and**\n**limit the**\n**amount of**\n**storage used by**\n**persisted data**\n<size:10>RS_PER_00011</size>" as RS_PER_00011 [[../reqs/autosar/autosar_persistency.html#RS_PER_00011]] #BFD8D2
node "<size:12>Requirement</size>\n**Persistency**\n**shall be able**\n**to report the**\n**amount of**\n**currently used**\n**storage**\n<size:10>RS_PER_00017</size>" as RS_PER_00017 [[../reqs/autosar/autosar_persistency.html#RS_PER_00017]] #BFD8D2

' Connection definition 


@enduml

AUTOSAR Persistency