Safety Manual#

Note

Document header

[Your Module Name] Safety Manual
status: draft
security: YES
safety: ASIL_B
tags: template
version: 1

Attention

The above directive must be updated according to your Module.

  • Modify Your Module Name to be your Module Name or put “Platform”

  • Modify id to be your Module Name in upper snake case preceded by doc__ and succeeded by safety_manual

  • Adjust status to be valid

  • Adjust safety and tags according to your needs

Introduction/Scope#

<Describe here which module (or the platform) is covered by this manual.>

Assumed Platform Safety Requirements#

For the <Project platform / module name> the following safety related stakeholder requirements are assumed to define the top level functionality (purpose) of the <Project platform / module name>. I.e. from these all the feature and component requirements implemented are derived.
<List here all the stakeholder requirements, with safety not equal to QM, the module’s components requirements are derived from. For the platform all are relevant.>

Assumptions of Use#

Assumptions on the Environment#

Generally the assumption of the project platform SEooC is that it is integrated in a safe system, i.e. the POSIX OS it runs on is qualified and also the HW related failures are taken into account by the system integrator, if not otherwise stated in the module’s safety concept.
<List here all the OS calls the project platform resp. module expects to be safe.>

List of AoUs expected from the environment the platform / module runs on:

Title

ID

Status

Another Title

aou_req__mod_temp_crypto__sec_another

invalid

Build environment supports Rust 2021

aou_req__iav_primula__rust2021_build_env

valid

Crypto Environmental Requirement Example

aou_req__crypto__crypto_env_req_ex

invalid

External Health Management

valid

OS safety functions

valid

pkcs11_dynload: Integrity and authenticity of the pkcs11 module

aou_req__crypto__sec_integ_auth_pkcs11_mod

valid

pkcs11_dynload: No use of ALLOW_PKCS11_LIB_OVERRIDE

aou_req__crypto__sec_no_pkcs11_lib_override

valid

POSIX Operating System

valid

Process Isolation

valid

Safe HW platform

valid

Vehicle time end-to-end integrity

valid

Attention

Make sure these AoU are here for a safety reason, i.e. every one “mitigates” a safety analysis entry.

Assumptions on the User#

As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety package.
Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: <link to add>. Assumptions from components to their users can be fulfilled in two ways:
1. There are assumption which need to be fulfilled by all SW components, e.g. “every user of an IPC mechanism needs to make sure that he provides correct data (including appropriate ASIL level)” - in this case the AoU is marked as “platform”.
2. There are assumption which can be fulfilled by a safety mechanism realized by some other project platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module SEooC stand-alone - in this case the AoU is marked as “module”. An example would be the “JSON read” which requires “The user shall provide a string as input which is not corrupted due to HW or QM SW errors.” - which is covered when using together with safe project platform persistency feature.

List of AoUs on the user of the platform or the module of this safety manual:

Note: Platform safety manual collects all platform wide AoU (have to be fulfilled by the user for any feature). Module safety manual collects all AoUs specific to a feature and its realizing components. This means for every feature the user selects, the platform safety manual and the related module manual has to be considered.

Title

ID

Status

aragen not safe

valid

Avoidance of Exceptions

valid

Avoidance of heap allocations after initialization

valid

Bazel tooling

valid

Bug fixing

valid

Bug interface

valid

C++ Library Preference

valid

Check for nullptr on Allocate()

valid

Checking for possible message overflow

valid

Config on a safe filesystem

valid

Correctly configured ASIL Level

valid

Correctly configured events/fields per service type

valid

Correctly configured maximum number of maximum elements per subscriber

valid

Correctly Configured Maximum Number of Subscribers

valid

Crypto AoU Requirement Example

aou_req__crypto_aou__next_title

valid

Different user for ASIL and QM processes

valid

Error Reaction

valid

Event or Field reception via GenericProxy needs specific care

valid

Event Subscription active while holding SamplePtr

valid

FEO something

invalid

FEO something

invalid

Integrate as Rust library API

aou_req__iav_primula__rust_lib_api

valid

Integration assistance

valid

Integration levels

valid

Integration manual

valid

Integrator safety anomaly reporting

valid

LoLa Memory only accessed through LoLa

valid

LoLa specific QNX Messaging End-Points only accessed through LoLa

valid

Minimal Process Privileges

valid

Monotonic Semi-Dynamic Memory Allocation

valid

Next Title

aou_req__mod_temp_crypto__sec_next_title

invalid

No APIs from Implementation Namespace

valid

No Copy-Send() while holding AllocateePtr.

valid

No guarantee in availability of services

valid

No guarantee on execution time

valid

No guarantees for notifications

valid

No mixed ASIL

valid

No notification on termination of producer

valid

No Root Privileges

valid

No shared memory allocation in namespace lola

valid

No static context support

valid

Non-Terminating callbacks

valid

None reentrant methods per event instance

valid

on_target_crates

invalid

One producer only one AllocateePtr

valid

Only LoLa supported types

valid

OS Public API Use

valid

pkcs11_dynload: pkcs11.h compatiblity

aou_req__crypto__sec_pkcs11_h_compatibility

valid

Program Flow Monitoring

valid

Quality of data is dependent on producer

valid

RST-0001

valid

RST-0002

invalid

rust_core_lib

valid

rust_std_lib_modules

invalid

Safe OS Function Use

valid

Safety anomaly reporting

valid

Safety AoU

valid

Safety functions

valid

Safety integration

valid

Safety matching

valid

Same compiler settings for provider and consumer side

valid

Skeleton alive while its AllocateePtr being used

valid

Success Expected

valid

SW-platform integration bug reporting

valid

SW-platform test completion

valid

SW-platform testing

valid

unsupported data-types

valid

Usage of configuration "oversubscription"

valid

Valid callbacks while proxy alive

valid

Validity of pointer on LoLa pointer

valid

Vehicle time end-to-end integrity

valid

Attention

Make sure these AoU are here for a safety reason, i.e. every one “mitigates” a safety analysis entry.

Safety concept of the SEooC#

<Describe here the safety concept incl. which faults are taken care of, reactions of the implemented functions under anomalous operating conditions … if this is not already documented sufficiently in the feature documentation “safety impact” section of all the features the module is used in.>

Safety Anomalies#

Anomalies (bugs in ASIL SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes <add link to release note>.

References#

<link to the user manual>
<other links>