Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ component_requirements(
deps = [
"//score/mw/com/dependability/assumed_system:assumed_system_requirements",
"//score/mw/com/dependability/requirements/feature_requirements:feature_requirements_ipc",
"//score/mw/com/dependability/safety_analysis:mw_com_safety_analysis",
],
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
package Communication

import ScoreReq
import mw_com_fta

section "com" {

Expand Down Expand Up @@ -676,6 +677,17 @@ section "com" {
version = 1
}

ScoreReq.CompReq FreeSampleCountHandling {
description = '''The number of free samples ({{GetFreeSampleCount()}}) shall be decreased with the creation of a SamplePtr and increased with a destruction of a SamplePtr.'''
safety = ScoreReq.Asil.B
derived_from = [
Communication.FEAT_ProducerConsumerPattern@1,
// By ensuring a correct behavior of the SamplePtr, this fault can be omitted.
mw_com_fta.SlotReferenceCountNotDecremented@1
]
version = 1
}

/* broken_link_c/issue/21294278 */
ScoreReq.CompReq BehaviourOfGetNumNewSamplesAvailable {
description = '''{{GetNumNewSamplesAvailable}} queries the number of new data samples that are available since the last time {{GetNewSamples}} was called on the class instance that {{GetNumNewSamplesAvailable}} was called on.
Expand Down Expand Up @@ -1099,6 +1111,14 @@ section "com" {
version = 1
}

// TODO This should be moved to the requirements of lib shared memory
ScoreReq.CompReq SharedMemoryShallBeAllocatedAccordingToCpuArchitectureAlignment {
description = '''SharedMemoryResource shall allocate memory in accordance to the alignment of that CPU architecture.'''
safety = ScoreReq.Asil.B
derived_from = [Communication.FEAT_SupportForTimeBasedArchitecture@1, mw_com_fta.RootCauseWronglyAlignedMemoryAllocated@1]
version = 1
}

/* broken_link_c/issue/5899175 */
ScoreReq.CompReq SharedMemorySegmentsShallNotBeMappedToAFixedVirtualAddress {
description = '''Shared Memory segments shall not be mapped to a fixed virtual address.'''
Expand All @@ -1123,6 +1143,53 @@ section "com" {
version = 1
}

/* broken_link_c/issue/6225206 */
ScoreReq.CompReq SlotAllocationAndSynchronizationShallBeDoneAccordingToAlgorithm {
description = '''Slot allocation algorithm and its synchronization shall follow the appended Flowcharts, which formally describe the algorithm:
1. to allocate a slot from the provider side in a pure ASIL-B setup (ASIL-B provider, ASIL-B consumer)
2. to allocate a slot from the provider side in a mixed critically setup (ASIL-B provider, ASIL-B consumer and ASIL-QM consumer)
3. to access/block samples for Read-access by the consumer.'''
note = '''Flow charts can be found here: score/mw/com/impl/dependability/proxy_and_service_elements/get_new_samples_activity.puml,
score/mw/com/impl/bindings/lola/dependability/event_data_control/lola_event_allocate_activity.puml,
score/mw/com/impl/bindings/lola/dependability/event_data_control/lola_event_allocate_mixed_critical_activity.puml,
score/mw/com/impl/bindings/lola/dependability/event_data_control/lola_coherent_set_writing_activity.puml,
score/mw/com/impl/bindings/lola/dependability/event_data_control/lola_reference_next_event_activity.puml'''
safety = ScoreReq.Asil.B
derived_from = [Communication.FEAT_SupportForTimeBasedArchitecture@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.ChangingStateFails@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.IncreasingDecreasingRefCountFails@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.SlotReferenceBrokenEGNonValid@1,
// Similar to handling of events, this root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.DoesNotFreeMethodSignatureElement@1,
// Similar to handling of events, this root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.OverwriteOfElementInUse@1
]
version = 1
}

/* broken_link_c/issue/6367235 */
ScoreReq.CompReq SampleAllocateePtrAndSamplePtrShallReferenceValidAndCorrectSlot {
description = '''A valid SampleAllocateePtr and SamplePtr shall reference a valid and correct slot.'''
safety = ScoreReq.Asil.B
derived_from = [
Communication.FEAT_SupportForTimeBasedArchitecture@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.ChangingStateFails@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.IncreasingDecreasingRefCountFails@1,
// This root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.SlotReferenceBrokenEGNonValid@1,
// Similar to handling of events, this root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.DoesNotFreeMethodSignatureElement@1,
// Similar to handling of events, this root cause can be avoided by ensuring an always valid slot and ensuring a correct slot-change logic.
mw_com_fta.OverwriteOfElementInUse@1
]
version = 1
}

/* broken_link_c/issue/5899238 */
ScoreReq.CompReq PerformActiveBoundCheckingOnDereferencingOfOffsetPointer {
description = '''Any dereferenciation of an offset pointer shall be subject to active bound checking.
Expand Down
Loading