Component Requirements#
mw::log Backend Component Requirements
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log#
Inactive LogStream Behavior
|
status: valid
security: NO
safety: QM
|
||||
|
|||||
Avoid Signal Processing
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall not register any signal handler. |
|||||
File Descriptor Flags
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall ensure that file descriptors it owns are not inherited by processes started by the application. Note This requirement can be satisfied in unit-test, by checking
|
|||||
DLT Verbose Mode
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall generate log messages in DLT verbose mode format, so that Datarouter can send them without additional reprocessing. |
|||||
AUTOSAR Log and Trace Specification
|
status: valid
security: YES
safety: QM
|
||||
mw::log shall implement “Specification of Log and Trace for Adaptive Platform”. Release of specification used shall be in agreement with the rest of Adaptive AUTOSAR stack. |
|||||
Shared Memory File Permissions
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall ensure that the shared-memory files it creates are not writable by group and others. Note mw::log creates a shared memory file for each app. |
|||||
Remote Backend#
Send Messages to Datarouter
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall hand over the log messages to the Datarouter process for forwarding when the remote backend is used. mw::log shall not transmit log messages to the network itself. |
|||||
Remote Backend Activation
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall enable the file backend if and only if the log mode contains “kRemote”. |
|||||
System Backend#
System logger backend shall forward the logs to the native system logger.
Forward to System Logger
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall forward the logs to the native system logger mechanism when the system logger backend is used. Note mw::log shall use slogger2 on QNX and syslog(3) on Linux. |
|||||
System Backend Activation
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall enable the system logger backend if and only if the log mode contains “kSystem”. |
|||||
File Backend#
File backend shall write the logs to the local file system.
Write to Local File
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall write the logs to a file on the local file system when the file backend is used. |
|||||
File Backend Activation
|
status: valid
security: NO
safety: QM
|
||||
mw::log shall enable the file backend if and only if the log mode contains “kFile”. |
|||||
Non-Functional Requirements#
Heap Allocation Only During Initialization
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall allocate heap memory only during the initialization phase of the application lifecycle, and shall therefore satisfy any memory needs after that phase from pre-allocated, bounded memory resources. |
|||||
Avoid Locks
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall be free of time-unbound locks and shall implement strategies to limit wait time. Time limit shall be defined based on requirements from functions on individual ECU. Mutual exclusion mechanisms shall include priority inversion protection. |
|||||
Cross-Locking Prevention
|
status: valid
security: YES
safety: ASIL_B
|
||||
Cross-application and cross-thread dependencies shall be avoided. A thread logging in a loop shall not block other thread’s execution. |
|||||
Index and Size Checking
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall check indices in data structures and sizes of data accessed or copied for plausibility, to avoid high runtime utilization through long iterations or data corruption. If a check fails, mw::log shall discard the affected log message without performing the access. |
|||||
Memory Bound Checking
|
status: valid
security: YES
safety: ASIL_B
|
||||
mw::log shall check memory boundaries before writing to shared memory. If a check fails, mw::log shall discard the affected log message without performing the write. |
|||||