Skip to content

Commit 4940c86

Browse files
Safety Stakeholder req and AoU addition
Resolves: #1882
1 parent 03063ae commit 4940c86

File tree

2 files changed

+177
-31
lines changed

2 files changed

+177
-31
lines changed

docs/requirements/platform_assumptions/index.rst

Lines changed: 112 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
1515
.. _platform_assumptions:
1616

17-
SW Platform Assumptions
17+
SW-platform Assumptions
1818
=======================
1919

20-
.. document:: SW Platform Assumptions
20+
.. document:: SW-platform Assumptions
2121
:id: doc__platform_assumptions
2222
:status: draft
2323
:security: YES
@@ -27,13 +27,13 @@ SW Platform Assumptions
2727
Assumptions on Environment
2828
--------------------------
2929

30-
In this section assumptions are described which need to be fulfilled by the architecture level below the SW platform,
30+
In this section assumptions are described which need to be fulfilled by the architecture level below the SW-platform,
3131
i.e. by the elements or organizations outside of S-CORE, but used by S-CORE platform components. These include elements like
3232
the operating system, programming language libraries, hypervisor or processing hardware.
3333
For "organizations" two roles are used in the AoU text:
3434

35-
- Supplier: is the provider of an element the S-CORE SW platform is using but which is developed and maintained externally.
36-
- System Integrator: uses the S-CORE SW platform as a part of a system he provides to a customer. The system integrator can be for example a Tier1 providing an electronic control unit to a OEM or an OEM providing a car to his end-customer. S-CORE does not know which.
35+
- Supplier: is the provider of an element the S-CORE SW-platform is using but which is developed and maintained externally.
36+
- System Integrator: uses the S-CORE SW-platform as a part of a system he provides to a customer. The system integrator can be for example a Tier1 providing an electronic control unit to a OEM or an OEM providing a car to his end-customer. S-CORE does not know which.
3737

3838
To fulfill these assumptions is the responsibility of the mentioned roles.
3939

@@ -83,7 +83,7 @@ Assumptions on the external SW element integration - Functional Level
8383
---------------------------------------------------------------------
8484

8585
This is the middle level of integraton, the higher level will build on this.
86-
It is the level where the S-CORE SW platform will functionally "work" with the external SW element.
86+
It is the level where the S-CORE SW-platform will functionally "work" with the external SW element.
8787

8888
.. aou_req:: bazel tooling
8989
:id: aou_req__platform__bazel_tooling
@@ -92,8 +92,8 @@ It is the level where the S-CORE SW platform will functionally "work" with the e
9292
:safety: QM
9393
:status: valid
9494

95-
The supplier shall provide tools for Bazel to be able to build the S-CORE SW platform with the external SW element
96-
and support the run and test of the S-CORE SW platform.
95+
The supplier shall provide tools for Bazel to be able to build the S-CORE SW-platform with the external SW element
96+
and support the run and test of the S-CORE SW-platform.
9797

9898
.. aou_req:: bug fixing
9999
:id: aou_req__platform__bug_fixing
@@ -106,7 +106,7 @@ It is the level where the S-CORE SW platform will functionally "work" with the e
106106

107107
Note: For OSS community providing an external SW element this requirement could be covered by analyzing how bugs were treated in the past. For companies by the definition of a service level process.
108108

109-
.. aou_req:: SW platform testing
109+
.. aou_req:: SW-platform testing
110110
:id: aou_req__platform__testing
111111
:reqtype: Non-Functional
112112
:security: YES
@@ -116,23 +116,23 @@ It is the level where the S-CORE SW platform will functionally "work" with the e
116116
The system integrator shall run the tests provided by S-CORE (platform, feature, component and Unit level for his selected S-CORE modules) on his selected OS/Hypervisor/HW combination,
117117
or provide equivalent argumentation.
118118

119-
Note1: S-CORE will run these tests for one or more reference OS/Hypervisor/HW combination, if not all passing, remaining issues are documented in release notes. In case the selected combination is equal to a S-CORE reference and the complete S-CORE SW platform is used, this AoU may be skipped.
119+
Note1: S-CORE will run these tests for one or more reference OS/Hypervisor/HW combination, if not all passing, remaining issues are documented in release notes. In case the selected combination is equal to a S-CORE reference and the complete S-CORE SW-platform is used, this AoU may be skipped.
120120

121121
Note2: Equivalent argumentation could be for example that the test environments for unit tests would be sufficiently equal in S-CORE project and at the integrator.
122122

123-
.. aou_req:: SW platform integration bug reporting
123+
.. aou_req:: SW-platform integration bug reporting
124124
:id: aou_req__platform__bug_report
125125
:reqtype: Non-Functional
126126
:security: YES
127127
:safety: QM
128128
:status: valid
129129

130-
The system integrator shall report the bugs found during integration of the S-CORE SW Platform on his selected OS/Hypervisor/HW combination to the external SW element supplier and S-CORE for analysis.
130+
The system integrator shall report the bugs found during integration of the S-CORE SW-platform on his selected OS/Hypervisor/HW combination to the external SW element supplier and S-CORE for analysis.
131131

132132
Assumptions on the external SW element integration - Certifiable Level
133133
----------------------------------------------------------------------
134134

135-
This is the highest level of integraton. This is the level where the S-CORE SW platform will be certifiable with an external SW element.
135+
This is the highest level of integraton. This is the level where the S-CORE SW-platform will be certifiable with an external SW element.
136136

137137
.. aou_req:: integration levels
138138
:id: aou_req__platform__levels
@@ -165,8 +165,8 @@ This is the highest level of integraton. This is the level where the S-CORE SW p
165165

166166
The supplier shall provide a list of safe external SW element functions.
167167

168-
.. aou_req:: OS safety anomaly reporting
169-
:id: aou_req__platform__os_safety_anomaly
168+
.. aou_req:: safety anomaly reporting
169+
:id: aou_req__platform__safety_anomaly
170170
:reqtype: Non-Functional
171171
:security: YES
172172
:safety: ASIL_B
@@ -183,29 +183,29 @@ This is the highest level of integraton. This is the level where the S-CORE SW p
183183
:safety: ASIL_B
184184
:status: valid
185185

186-
If the system using the SW platform has safety goals, the system integrator shall integrate the SW platform with external SW elements providing safety functions.
187-
This includes to make sure that the safety functions S-CORE SW platform requires match with the ones provided by these external SW elements (as in :need:`aou_req__platform__safety_functions`).
186+
If the system using the SW-platform has safety goals, the system integrator shall integrate the SW-platform with external SW elements providing safety functions.
187+
This includes to make sure that the safety functions S-CORE SW-platform requires match with the ones provided by these external SW elements (as in :need:`aou_req__platform__safety_functions`).
188188

189189
Note1: A list of safety functions needed from external SW elements is compiled by the S-CORE project here (TBD).
190190

191-
Note2: The integrator can expect that for the safe S-CORE reference integration (incl. OS and other external SW elements) this AoU is fulfilled by S-CORE SW Platform already, but without guarantee.
191+
Note2: The integrator can expect that for the safe S-CORE reference integration (incl. OS and other external SW elements) this AoU is fulfilled by S-CORE SW-platform already, but without guarantee.
192192

193-
Note3: This applies also if the system integrator would replace a S-CORE SW platform element with another SW element which is external to S-CORE.
193+
Note3: This applies also if the system integrator would replace a S-CORE SW-platform element with another SW element which is external to S-CORE.
194194

195195
.. aou_req:: safety integration
196-
:id: aou_req__platform__os_safety_integration
196+
:id: aou_req__platform__safety_integration
197197
:reqtype: Non-Functional
198198
:security: YES
199199
:safety: ASIL_B
200200
:status: valid
201201

202-
If the system using the SW platform has safety goals, the system integrator shall make sure that the AoUs relevant for external SW element safety functions (as in :need:`aou_req__platform__safety_aou`) are fulfilled by the S-CORE SW platform.
202+
If the system using the SW-platform has safety goals, the system integrator shall make sure that the AoUs relevant for external SW element safety functions (as in :need:`aou_req__platform__safety_aou`) are fulfilled by the S-CORE SW-platform.
203203

204204
Note1: This could be done by contributing the required updates to the S-CORE project if S-CORE elements are affected.
205205

206-
Note2: The system integrator can expect that for the safe S-CORE reference integration (incl. OS and other external SW elements) this AoU is fulfilled by S-CORE SW Platform already, but without guarantee.
206+
Note2: The system integrator can expect that for the safe S-CORE reference integration (incl. OS and other external SW elements) this AoU is fulfilled by S-CORE SW-platform already, but without guarantee.
207207

208-
Note3: This applies also if the system integrator would replace a S-CORE SW platform element with another SW element which is external to S-CORE.
208+
Note3: This applies also if the system integrator would replace a S-CORE SW-platform element with another SW element which is external to S-CORE.
209209

210210
.. aou_req:: Integrator safety anomaly reporting
211211
:id: aou_req__platform__integration_safety_anomaly
@@ -214,12 +214,96 @@ This is the highest level of integraton. This is the level where the S-CORE SW p
214214
:safety: ASIL_B
215215
:status: valid
216216

217-
If the system using the SW platform has safety goals, the system integrator shall perform safety anomaly reporting taking into account also the reporting of all the components he integrates.
217+
If the system using the SW-platform has safety goals, the system integrator shall perform safety anomaly reporting taking into account also the reporting of all the components he integrates.
218218

219-
Assumptions of Use
220-
------------------
221219

222-
In this section assumptions are described which need to be fulfilled by the applications running on top of the SW platform.
220+
Assumptions on Applications
221+
---------------------------
223222

223+
In this section assumptions are described which need to be fulfilled by the applications running on top of the SW-platform.
224224

225-
TBD: more detailed functional AoUs
225+
.. aou_req:: Avoidance of Exceptions
226+
:id: aou_req__platform__no_exceptions
227+
:reqtype: Functional
228+
:security: YES
229+
:safety: ASIL_B
230+
:status: valid
231+
232+
All applications using the SW-platform shall not handle exceptions.
233+
234+
Note: Exceptions create additional overhead which may be a safety risk. Therefore all exceptions are expected to lead directly to a terminate of the application.
235+
This is supported by a library supplied by S-CORE.
236+
237+
.. aou_req:: Error Reaction
238+
:id: aou_req__platform__error_reaction
239+
:reqtype: Functional
240+
:security: YES
241+
:safety: ASIL_B
242+
:status: valid
243+
244+
Safety applications using the SW-platform shall read error information from the requested S-CORE functions and perform an appropriate reaction.
245+
246+
Note: For many errors detected by SW-platform elements there could be mitigation actions to be applied by the user application.
247+
So the SW-platform attempts to report the errors and does not stop execution as a standard reaction.
248+
249+
.. aou_req:: No mixed ASIL
250+
:id: aou_req__platform__no_mixed_asil
251+
:reqtype: Functional
252+
:security: YES
253+
:safety: ASIL_B
254+
:status: valid
255+
256+
Safety application components running in one POSIX process shall implement the highest ASIL of their assigned requirements.
257+
258+
.. aou_req:: Program Flow Monitoring
259+
:id: aou_req__platform__flow_monitoring
260+
:reqtype: Functional
261+
:security: YES
262+
:safety: ASIL_B
263+
:status: valid
264+
265+
Safety applications using the SW-platform shall use program flow monitoring to detect run time errors or explain in their safety concept why they do not need this.
266+
267+
Note1: Reasons for not needing program flow monitoring could be an OS scheduler with timing and execution guarantees.
268+
Or that the non/late execution of the application keeps the system in a safe state.
269+
270+
Note2: The SW-Platform supports this - see :need:`stkh_req__dependability__safety_features` "live, deadline, logical supervision"
271+
272+
Assumptions on Safety System
273+
----------------------------
274+
275+
In this section assumptions are described which need to be fulfilled by the system or system integrator.
276+
277+
.. aou_req:: Safe HW platform
278+
:id: aou_req__platform__hardware_safety
279+
:reqtype: Functional
280+
:security: YES
281+
:safety: ASIL_B
282+
:status: valid
283+
284+
If the system using the SW-platform has safety goals, the system shall provide state-of-the art hardware safety mechanisms.
285+
286+
Note1: A selection of hardware safety mechanisms is collected in :need:`stkh_req__dependability__safety_features`
287+
288+
Note2: These safety mechanisms are mostly OS/Hypervisor/HW specific, so the system integrator can only expect S-CORE support for the reference OS/Hypervisor/HW combination.
289+
290+
.. aou_req:: External Health Management
291+
:id: aou_req__platform__external_health_management
292+
:reqtype: Functional
293+
:security: YES
294+
:safety: ASIL_B
295+
:status: valid
296+
297+
If the system using the SW-platform has safety goals, the system shall provide an external health management element which is able to initiate a safe system state.
298+
299+
Note: This can be an "External Hardware Watchdog"
300+
301+
.. aou_req:: Process Isolation
302+
:id: aou_req__platform__process_isolation
303+
:reqtype: Functional
304+
:security: YES
305+
:safety: ASIL_B
306+
:status: valid
307+
308+
If the system using the SW-platform has safety goals, the used operating system shall offer POSIX processes isolation.
309+
This shall cover memory isolation. Timing isolation may be covered.

docs/requirements/stakeholder/index.rst

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ Dependability
248248
:reqtype: Functional
249249
:security: NO
250250
:safety: ASIL_B
251-
:rationale: tbd
251+
:rationale: There are state-of-the-art safety mechanisms to check HW and SW errors. These are expected to be supported either by the SW-platform alone or by using HW or OS provided safety features.
252252
:status: valid
253253
:tags: safety_mechanism
254254

@@ -264,9 +264,71 @@ Dependability
264264
* ECC Memory
265265
* Software Lockstep
266266
* Power management integrated circuit (PMIC), external watchdog and voltage monitoring
267-
* Safe switch from engineering for field mode and back
267+
* Safe switch from engineering to field mode and back
268268

269-
Note: This is part of 0.5 release and therefore can only support ASIL_B. Goal is ASIL_D.
269+
270+
.. stkh_req:: Safe SW-platform state
271+
:id: stkh_req__dependability__safe_state
272+
:reqtype: Functional
273+
:security: NO
274+
:safety: ASIL_B
275+
:rationale: A safe state definition is expected by every safety standard.
276+
:status: valid
277+
:tags: safety_mechanism
278+
279+
The SW-platform shall react in the following way on errors:
280+
281+
- in case of an unrecoverable error (e.g. access violations), not reporting healty status to the external health monitor
282+
- in all other cases, report the error (incl. details if available) to the calling user function
283+
284+
Note1: So the "safe state" of the SW-platform can be described as "error reported".
285+
286+
Note2: The healthy state needs an active SW-platform reaction (e.g. triggering an exteranl watchdog), but the unrecoverable error case not.
287+
288+
289+
.. stkh_req:: Error report timing
290+
:id: stkh_req__dependability__error_report_timing
291+
:reqtype: Functional
292+
:security: NO
293+
:safety: ASIL_B
294+
:rationale: It is assumed that there is a need to know how much time is allowed between the ocurrence of an error and the reporting, so we define a feasible time span.
295+
:status: valid
296+
:tags: safety_mechanism
297+
298+
The SW-platform shall react on errors (as described in :need:`stkh_req__dependability__safe_state`) within 1 millisecond. If this is not feasible a special component AoU needs to be defined.
299+
300+
Note1: The time span mentioned is the SW reaction time and not the time between the error happening and the reporting.
301+
For example if there is a alive supervision configured with 10ms cycle time and 5ms allowed delay,
302+
the error could happen in the first millisecond but will be reported earliest after 10+5ms plus the SW reaction time.
303+
304+
If a user application calls a SW-platform function the (error) return is required latest after the reaction time, so there could be a timeout used by the application considering this.
305+
306+
307+
.. stkh_req:: No mixed ASIL
308+
:id: stkh_req__dependability__no_mixed_asil
309+
:reqtype: Functional
310+
:security: YES
311+
:safety: ASIL_B
312+
:rationale: It is assumed that POSIX processes as implemented by the OS provide isolation from memory and timing errors of other processes but not within.
313+
:status: valid
314+
315+
The SW-platform safety components running in one POSIX process shall implement the highest ASIL of their assigned requirements.
316+
317+
318+
.. stkh_req:: Program Flow Monitoring
319+
:id: stkh_req__dependability__flow_monitoring
320+
:reqtype: Functional
321+
:security: YES
322+
:safety: ASIL_B
323+
:rationale: Not all POSIX operating systems provide protection of POSIX processes from timing errors (e.g. delayed execution, deadlocks)
324+
:status: valid
325+
326+
The SW-platform safety components shall use program flow monitoring to detect run time errors or explain in their safety concept why they do not need this.
327+
328+
Note1: Reasons for not needing program flow monitoring could be an OS scheduler with timing and execution guarantees.
329+
Or that the non/late execution of the application keeps the system in a safe state.
330+
331+
Note2: The SW-Platform supports this - see :need:`stkh_req__dependability__safety_features` "live, deadline, logical supervision"
270332

271333

272334
.. stkh_req:: Availability

0 commit comments

Comments
 (0)