Component Requirements

Coverage: 100.0% (47 of 47 items OK)

[OK] TRLC Compreq ConfigDaemon.StorageAccessibility
[OK] TRLC Compreq ConfigDaemon.StorageFailure

In case file system is not accessible for ConfigDaemon application at startup or any other failure leads to parameter data model populated incompletely, ConfigDaemon application shall not offer any services.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:29:22

[OK] TRLC Compreq ConfigDaemon.Lifecycle

{{ConfigDaemon}} shall implement {{Initialize()}} and {{Run()}} functions in order to be managed by {{LifecycleManager}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:36:22

[OK] TRLC Compreq ConfigDaemon.InitializePlugins

The {{ConfigDaemon}} shall setup {{Plugins}} during the execution of {{ConfigDaemon::Initialize()}}. The setup consists of the following steps: * Create {{Plugins}} by using {{PluginCollector}}. * Store created {{Plugins}} in internall collection. * Call the {{Initialize()}} function exactly once for each {{Plugin}} in the collection.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:45:26

[OK] TRLC Compreq ConfigDaemon.InitializeService

The {{ConfigDaemon}} shall create and initialize {{InternalConfigProviderService}} service during the execution of {{ConfigDaemon::Initialize()}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:55:26

[OK] TRLC Compreq ConfigDaemon.RunPlugins

The {{ConfigDaemon}} shall call the {{Run()}} function exactly once for each {{Plugin}} in the collection during the execution of {{ConfigDaemon::Run()}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:62:26

[OK] TRLC Compreq ConfigDaemon.RunService

The {{ConfigDaemon}} shall offer {{InternalConfigProviderService}} service during the execution of {{ConfigDaemon::Run()}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:69:26

[OK] TRLC Compreq ConfigDaemon.RunIdle

Following Run activity finalization, {{ConfigDaemon}} shall remain locked in an idle state until {{stop_token}} is modified.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:76:26

[OK] TRLC Compreq ConfigDaemon.RunShutdown

{{ConfigDaemon}} shall process {{stop_token}} to interrupt any waiting and initiate the application shutdown.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:83:26

[OK] TRLC Compreq ConfigDaemon.ShutdownPlugins

The {{ConfigDaemon}} shall call the {{Deinitialize()}} function exactly once for each {{Plugin}} in the collection during the execution of {{ConfigDaemon}} shutdown.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:90:26

[OK] TRLC Compreq ConfigDaemon.ShutdownService

The {{ConfigDaemon}} shall stop offering {{InternalConfigProviderService}} during the execution of {{ConfigDaemon}} shutdown.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:97:26

[OK] TRLC Compreq ConfigDaemon.ParameterSetServiceOffering
[OK] TRLC Compreq ConfigDaemon.ReservePayloadRetValueBuffer

User specific largest parameter set payload size shall be reserved exactly once as memory buffer for the {{parameter set payload}} as method’s return value on the first invocation of its registered handler for {{GetParameterSet()}} method.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:128:22

[OK] TRLC Compreq ConfigDaemon.GuardPayloadRetValueBuffer

Parameter set payload shall only be passed as return value if it’s smaller or equal to the user specific largest parameter set payload size. Otherwise, method call shall be replied with an empty return value, and an error shall be raised.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:135:22

[OK] TRLC Compreq ConfigDaemon.DataModel
[OK] TRLC Compreq ConfigDaemon.ParameterSets
[OK] TRLC Compreq ConfigDaemon.DefaultDataModelLoading

When {{ConfigDaemon}} is initialized, it shall load the Data Model from {{Default Parameter Set Collection file}} if {{Parameter Set Collection file}} is not available or its integrity is not successfully verified.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:165:26

[OK] TRLC Compreq ConfigDaemon.ActualDataModelLoading

When {{ConfigDaemon}} is initialized, it shall load the Data Model from {{Parameter Set Collection file}} if available and its integrity is verified.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:173:26

[OK] TRLC Compreq ConfigDaemon.FileAccess

Files persisted by {{ConfigDaemon}} shall be readable by {{ConfigDaemon}} and priviledged user applications and writable by {{ConfigDaemon}} only.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:181:26

[OK] TRLC Compreq ConfigDaemon.DataModelChecksum

A checksum shall be calculated for the content of {{Parameter Set Collection file}} stored persistently to protect it from corruption.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:189:26

[OK] TRLC Compreq ConfigDaemon.DataModelVerification

The checksum protecting {{Parameter Set Collection file}} shall be evaluated during startup of {{ConfigDaemon}} prior to loading of {{Parameter Set Collection file}} contents into the {{Data Model}} to ensure that no corruption of data has occurred.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:197:26

[OK] TRLC Compreq ConfigDaemon.StoredQualifier

Every {{Parameter Set Qualifier}} loaded from the {{Parameter Set Collection file}} shall have the value {{QUALIFYING}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:204:26

[OK] TRLC Compreq ConfigDaemon.PrimitiveTypes

Following primitive parameter types shall be supported: * {{bool}} * {{sint8}} * {{sint16}} * {{sint32}} * {{sint64}} * {{uint8}} * {{uint16}} * {{uint32}} * {{uint64}} * {{float32}} * {{float64}}

Note: This only applies to the Daemon Application. Plugins may also only support a subset of the types.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:216:26

[OK] TRLC Compreq ConfigDaemon.ComplexTypes

Following complex parameter types shall be supported: * One dimensional arrays of {{SupportedParameterTypes::PrimitiveTypes}} * Two dimensional arrays of {{SupportedParameterTypes::PrimitiveTypes}}

Note: This only applies to the Daemon Application. Plugins may also only support a subset of the types.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:237:26

[OK] TRLC Compreq ConfigDaemon.ParameterSetQualifier

The ParameterSet qualifier shall be restricted to one of the following states: {{DEFAULT}},{{QUALIFYING}}, {{QUALIFIED}}, {{UNQUALIFIED}} or {{MODIFIED}}. Any other value is invalid.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:251:22

[OK] TRLC Compreq ConfigDaemon.PluginResponsibility

{{Plugin}} components are responsible for populating or modifing the contents of the {{ParameterSetCollection}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:262:22

[OK] TRLC Compreq ConfigDaemon.PluginSingleParametersType

{{Plugin}} shall process parameters of only one kind, e.g. coding or calibration or custom type of parameters.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:269:22

[OK] TRLC Compreq ConfigDaemon.PluginCreation

{{Plugin}} shall register its own {{PluginCreator}} in {{PluginCollector}} in order to be created.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:276:22

[OK] TRLC Compreq ConfigDaemon.PluginInitialization
[OK] TRLC Compreq ConfigDaemon.PluginRun

{{Plugin}} recieves handles to the {{ParameterSetCollection}} and to the {{InternalConfigProviderService}} within {{Run}} method. This handles should be used to update the database and notify clients about parameter and qualifier changes.


Traces to:


Derived from:


Source: requirements/component_requirements/config_daemon/component_requirements.trlc:290:22

[OK] TRLC Compreq ConfigProvider.CallbackTriggeredOnServiceAvailable

{{ConfigProvider}} shall notify the user application once {{InternalConfigProviderService}} is available.

Note: The callback indicates that: * The service has been found * ConfigProvider is ready to access ParameterSets


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:25:30

[OK] TRLC Compreq ConfigProvider.OnChangedParameterSetNotInvokedForSameData
[OK] TRLC Compreq ConfigProvider.ParameterSetRetrievalWithTimeout

{{ConfigProvider}} shall support a timeout parameter when retrieving a Parameter Set to limit the maximum waiting time.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:50:30

[OK] TRLC Compreq ConfigProvider.BatchParameterSetRetrieval
[OK] TRLC Compreq ConfigProvider.WaitUntilServiceConnected

{{ConfigProvider}} shall provide a mechanism to wait until the service connection is available, with timeout and cancellation support.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:68:30

[OK] TRLC Compreq ConfigProvider.InitialQualifierStateUndefined
[OK] TRLC Compreq ConfigProvider.GetInitialQualifierStateWithTimeout
[OK] TRLC Compreq ConfigProvider.InitialQualifierStateChangeNotification
[OK] TRLC Compreq ConfigProvider.OperationErrorReporting

{{ConfigProvider}} operations related to {{InitialQualifierState}} shall indicate success or failure with error information so that the caller can react safely in case of failure.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:104:30

[OK] TRLC Compreq ConfigProvider.ParameterSetGetQualifier

{{ConfigProvider}} shall enable a user application to request a Parameter Set with its {{ParameterSetQualifier}} from the {{InternalConfigProviderService}}.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:118:26

[OK] TRLC Compreq ConfigProvider.GetInitialQualifierState
[OK] TRLC Compreq ConfigProvider.DefinitionMaxArgument

User specific maximal parameter set name length to be used as method argument shall be determined according to the parameter set list provided by user application. A parameter set name shall only be considered if it’s contained in the buffer needs configuration `buffer_size_needs.json`. If there is no valid input for parameter set list provided, maximal length shall be the one of the overall longest parameter set name from the buffer needs configuration.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:141:30

[OK] TRLC Compreq ConfigProvider.DefinitionUserSpecificMaxRetValue

User specific largest parameter set payload to be used as maximal method return value shall be determined according to the parameter set list provided by user application. A parameter set name shall only be considered if it’s contained in the buffer needs configuration `buffer_size_needs.json`. If there is no valid input for parameter set list provided, largest parameter set payload size shall be the one of the overall largest parameter set payload from the buffer needs configuration.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:148:30

[OK] TRLC Compreq ConfigProvider.AdditionalProxyNeedsRegistration

Memory buffer needs shall be passed as `additional_shm_size` argument to proxy construction method. The needs are equal to the sum of: * User specific maximal parameter set name length, and * User specific largest parameter set payload size.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:155:30

[OK] TRLC Compreq ConfigProvider.ReservePsNameArgumentBuffer

User specific maximal parameter set name length shall be reserved exactly once as memory buffer for the `parameter set name` method’s argument.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:164:30

[OK] TRLC Compreq ConfigProvider.GuardPsNameArgumentBuffer

Parameter set name shall only be passed as argument if it’s smaller or equal to the user specific maximal parameter set name length. Otherwise, no method calls with this parameter set name shall take place and an error shall be raised.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:171:30

[OK] TRLC Compreq ConfigProvider.PassMaxPayloadSizeArg

Client shall pass the user specific largest parameter set payload size to server as argument of GetParameterSet() method of InternalConfigProvider service.


Traces to:


Derived from:


Source: requirements/component_requirements/config_provider/component_requirements.trlc:178:30