Safety Manual#
Orchestrator Safety Manual
|
status: draft
security: YES
safety: ASIL_B
|
||||
Introduction/Scope#
This safety manual covers the orchestrator module.
Assumed Platform Safety Requirements#
For the orchestrator module name the following safety related stakeholder requirements are assumed to define the top level functionality (purpose) of the module. I.e. from these all the feature and component requirements implemented are derived.
Processes and thread manage... (stkh_req__execution_model__processes) - this requirement is QM and not fully covered as ASIL, only combined with the following requirements
Automotive Safety Integrity... (stkh_req__dependability__automotive_safety)
Support for Time-based Arch... (stkh_req__app_architectures__support_time)
The user needs to check orchestration feature level requirements to see which functionalities are provided as ASIL B.
Assumptions of Use#
Assumptions on the Environment#
List of AoUs expected from the environment the platform / module runs on:
Title |
ID |
Status |
|---|---|---|
Application execution |
valid |
|
External Health Management |
valid |
|
OS safety functions |
valid |
|
Persistency Error handling |
valid |
|
POSIX Operating System |
valid |
|
Process Isolation |
valid |
|
Safe HW platform |
valid |
Assumptions on the User#
List of AoUs on the user of the platform features or the module of this safety manual:
Title |
ID |
Status |
|---|---|---|
Access control |
valid |
|
aragen not safe |
valid |
|
Avoidance of Exceptions |
valid |
|
Avoidance of heap allocations after initialization |
valid |
|
Bazel tooling |
valid |
|
Bitmask Enum Value Constraints |
valid |
|
Bug fixing |
valid |
|
Bug interface |
valid |
|
C++ Library Preference |
valid |
|
Check Capacity |
valid |
|
Check for nullptr on Allocate() |
valid |
|
Checking for possible message overflow |
valid |
|
Config on a safe filesystem |
valid |
|
Container State Verification |
valid |
|
Cooperative Cancellation Handling |
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 |
|
Different user for ASIL and QM processes |
valid |
|
Element Lifetime and Ownership |
valid |
|
Element Type Requirements |
valid |
|
Error Domain Implementation |
valid |
|
Error Handling |
valid |
|
Error Reaction |
valid |
|
Error Reaction and Safe State |
valid |
|
Event or Field reception via GenericProxy needs specific care |
valid |
|
Event Subscription active while holding SamplePtr |
valid |
|
External Synchronization Required for Concurrent Access |
valid |
|
FEO something |
invalid |
|
FEO something |
invalid |
|
FlatBuffers access control |
valid |
|
FlatBuffers buffer verification before access |
valid |
|
FlatBuffers buffer version check before access |
valid |
|
FlatBuffers data integrity |
valid |
|
Index Bounds Checking |
valid |
|
Integral Type Constraints |
valid |
|
Integration assistance |
valid |
|
Integration levels |
valid |
|
Integration manual |
valid |
|
Integrator safety anomaly reporting |
valid |
|
Iterator Validity |
valid |
|
JSON data integrity |
valid |
|
LoLa Memory only accessed through LoLa |
valid |
|
LoLa specific QNX Messaging End-Points only accessed through LoLa |
valid |
|
Low-Level Use Only |
valid |
|
Memory Management on Task Submission Failure |
valid |
|
Memory Resource Management |
valid |
|
Minimal Process Privileges |
valid |
|
Monotonic Semi-Dynamic Memory Allocation |
valid |
|
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 |
|
Path Validation |
valid |
|
Performance |
valid |
|
Program Flow Monitoring |
valid |
|
Quality of data is dependent on producer |
valid |
|
Resource Lifetime |
valid |
|
Result Value Handling |
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 |
|
Supported Path Formats |
valid |
|
SW-platform integration bug reporting |
valid |
|
SW-platform test completion |
valid |
|
SW-platform testing |
valid |
|
Thread Pool Sizing |
valid |
|
Thread Safety |
valid |
|
Thread Safety |
valid |
|
Thread Safety |
valid |
|
Thread Safety |
valid |
|
unsupported data-types |
valid |
|
Usage of configuration "oversubscription" |
valid |
|
Valid callbacks while proxy alive |
valid |
|
Validity of pointer on LoLa pointer |
valid |