FEO Module Safety Manual
|
status: draft
security: NO
safety: ASIL_B
|
||||
FEO Module Safety Manual#
Introduction/Scope#
This is a first partial draft version of the FEO (Fixed Order Execution Environment) module safety manual. For now it only contains Assumptions of Use related to the use of Rust libraries.
Assumed Platform Safety Requirements#
For <S-CORE platform / FEO> the following safety related stakeholder requirements are assumed to define the top level functionality (purpose)>. 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.>
Assumptions of Use#
Assumptions on the Environment#
on_target_crates
|
status: invalid
security: YES
safety: ASIL_B
|
||||
Only the following crates of the FEO module shall be used to build code that runs on targets in release builds.
|
|||||
rust_core_lib
|
status: valid
security: YES
safety: ASIL_B
|
||||
The Rust core lib used to build FEO shall be qualified according to the same ASIL level as the FEO framework. |
|||||
rust_std_lib_modules
|
status: invalid
security: YES
safety: ASIL_B
|
||||
The following items from the Rust std library shall be safety qualified:
Note: The above list is not yet complete. It needs to be refined based on a final implementation. At the moment, it covers approximately 95% of std library usages. An accurate list could be determined by switching feo to #![no_std] and looking at the compilation errors, but it gets quickly out of date with a changing codebase. |
|||||
List of AoUs expected from the environment the platform / module runs on:
Title |
ID |
Status |
|---|---|---|
Application deadlock |
valid |
|
Application execution |
valid |
|
Persistency Error handling |
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 |
|
bazel tooling |
valid |
|
bug fixing |
valid |
|
bug interface |
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 |
|
Different user for ASIL and QM processes |
valid |
|
Error Domain Implementation |
valid |
|
Error Reaction |
valid |
|
Event or Field reception via GenericProxy needs specific care |
valid |
|
Event Subscription active while holding SamplePtr |
valid |
|
External Health Management |
valid |
|
FEO something |
valid |
|
FEO something |
valid |
|
integration assistance |
valid |
|
integration levels |
valid |
|
integration manual |
valid |
|
Integrator safety anomaly reporting |
valid |
|
JSON data integrity |
valid |
|
LoLa Memory only accessed through LoLa |
valid |
|
LoLa specific QNX Messaging End-Points only accessed through LoLa |
valid |
|
Monotonic Semi-Dynamic Memory Allocation |
valid |
|
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 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 |
|
Process Isolation |
valid |
|
Program Flow Monitoring |
valid |
|
Quality of data is dependent on producer |
valid |
|
Resource Lifetime |
valid |
|
Result Value Handling |
valid |
|
rust_core_lib |
valid |
|
rust_std_lib_modules |
invalid |
|
Safe HW platform |
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 |
|
Some Other Title |
invalid |
|
SW-platform integration bug reporting |
valid |
|
SW-platform testing |
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 |