diff --git a/score/time_slave/docs/index.rst b/score/time_slave/docs/index.rst index 9955d543..62f731a8 100644 --- a/score/time_slave/docs/index.rst +++ b/score/time_slave/docs/index.rst @@ -15,65 +15,46 @@ .. _time_slave: Time Slave -##################### - -.. note:: Document header +########## .. document:: Time Slave :id: doc__time_slave - :status: draft + :status: valid :version: 1 - :safety: ASIL_B + :safety: QM :security: NO :realizes: wp__cmpt_request :tags: time_slave -.. note:: - Work in progress: structure, titles, and needs IDs only. Content and req/comp/feat traceability links to follow in later PRs. - -.. code-block:: rst - - .. comp:: Time Slave - :id: comp__time_slave_template - :security: YES - :safety: ASIL_B - :status: invalid - :implements: logic_arc_int__feature_name__interface_name1 - :consists_of: comp__component_name_internal_1, comp__component_name_internal_2, comp__component_name_internal_3 - :belongs_to: feat__feature_name - -.. attention:: - The above directives must be updated according to your Component. +.. comp:: Time Slave + :id: comp__time_slave + :security: NO + :safety: QM + :status: valid + :version: 1 + :belongs_to: feat__time[version==1] - - Adjust ``status`` to be ``valid`` - - Adjust ``safety`` and ``tags`` according to your needs Abstract ======== -[A short (~200 word) description of the component.] - +This component implements a gPTP (IEEE 802.1AS) time synchronization slave daemon that receives time synchronization data from network and publishes it to IPC for client applications. Specification ============= -[Describe the requirements, architecture of any component.] or - - -How to Teach This -================= +The component provides gPTP slave functionality with network message processing and IPC publishing: -[How to teach users, new and experienced, how to apply the CR to their work.] - -.. note:: - For a CR that adds new functionality or changes behaviour, it is helpful to include a section on how to teach users, new and experienced, how to apply the CR to their work. +* :need:`comp_req__time_slave__gptp_slave` +* :need:`comp_req__time_slave__time_publishing` +* :need:`comp_req__time_slave__sync_state` +* :need:`comp_req__time_slave__phc_sync` +* :need:`comp_req__time_slave__error_reporting` +* :need:`comp_req__time_slave__efficient_access` Footnotes ========= -[A collection of footnotes cited in the CR, and a place to list non-inline hyperlink targets.] - - Further Documentation of the component can be found in the following sections: Component Detail Information diff --git a/score/time_slave/docs/requirements/chklst_req_inspection.rst b/score/time_slave/docs/requirements/chklst_req_inspection.rst index bd9edfe4..1e4ae13b 100644 --- a/score/time_slave/docs/requirements/chklst_req_inspection.rst +++ b/score/time_slave/docs/requirements/chklst_req_inspection.rst @@ -16,21 +16,12 @@ .. document:: Time Slave Requirements Inspection Checklist :id: doc__time_slave_req_inspection :status: draft - :version: 2 - :safety: ASIL_B - :security: YES + :version: 1 + :safety: QM + :security: NO :realizes: wp__requirements_inspect :tags: time_slave -.. note:: - Work in progress: structure, titles, and needs IDs only. Content and req/comp/feat traceability links to follow in later PRs. - -.. attention:: - The above directive must be updated according to your Component. - - - Adjust ``status`` to be ``valid`` - - Adjust ``safety``, ``security`` and ``tags`` according to your needs - Requirement Inspection Checklist ================================ @@ -166,7 +157,7 @@ See also :need:`doc_concept__wp_inspections` for further information about revie .. attention:: The above checklist entries must be filled according to your component requirements in scope. -Note: If a Review ID is not applicable for your requirement, then state ""n/a" in status and comment accordingly in remarks. +Note: If a Review ID is not applicable for your requirement, then state "n/a" in status and comment accordingly in remarks. The following requirements in "valid" state and with "inspected" tag set are in the scope of this inspection: @@ -189,6 +180,3 @@ And also the following AoUs in "valid" state and with "inspected" tag set (for t :columns: id;status;tags :colwidths: 25,25,25 :sort: title - -.. attention:: - The above tables filtering must be updated according to your Component. diff --git a/score/time_slave/docs/requirements/index.rst b/score/time_slave/docs/requirements/index.rst index 400d1d03..266005ac 100644 --- a/score/time_slave/docs/requirements/index.rst +++ b/score/time_slave/docs/requirements/index.rst @@ -12,13 +12,160 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -Requirements -############ +Component Time Slave Requirements +################################## + +.. document:: Time Slave Requirements + :id: doc__time_slave_requirements + :status: draft + :version: 1 + :safety: QM + :security: NO + :realizes: wp__requirements_comp[version==1] + :tags: requirements, time_slave + +Functional Requirements +----------------------- + +.. comp_req:: gPTP Slave Protocol + :id: comp_req__time_slave__gptp_slave + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall receive and process gPTP (IEEE 802.1AS) protocol messages as a slave endpoint when connected to a network with a gPTP master. + +.. comp_req:: Time Data Publishing + :id: comp_req__time_slave__time_publishing + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall publish synchronized time data to IPC after each successful synchronization update from the gPTP master. + +.. comp_req:: Synchronization State Tracking + :id: comp_req__time_slave__sync_state + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall track synchronization state and report loss of synchronization when no valid gPTP messages are received within the configured timeout period. + +.. comp_req:: Hardware Clock Synchronization + :id: comp_req__time_slave__phc_sync + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall support synchronization of the PTP hardware clock with the gPTP master when hardware timestamping is available. + +.. comp_req:: Error Reporting + :id: comp_req__time_slave__error_reporting + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall report initialization failures and protocol errors via the logging interface when they occur. + +.. comp_req:: Lifecycle Management + :id: comp_req__time_slave__lifecycle + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall support lifecycle management including initialization, runtime execution, and graceful shutdown. + +.. comp_req:: Peer Delay Measurement + :id: comp_req__time_slave__peer_delay + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall measure network peer delay via IEEE 802.1AS PDelayReq/PDelayResp exchange and include it in published time data. + +.. comp_req:: Platform Portability + :id: comp_req__time_slave__platform_portability + :reqtype: Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_sync[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall support deployment on multiple target platforms (Linux, QNX) with platform-specific network and hardware clock adaptations. + +Non-Functional Requirements +--------------------------- + +.. comp_req:: Efficient Time Access + :id: comp_req__time_slave__efficient_access + :reqtype: Non-Functional + :security: NO + :safety: QM + :derived_from: feat_req__time__vehicle_time_ctrl_flow[version==1] + :status: valid + :version: 1 + :satisfied_by: comp__time_slave + + The component shall publish time data via shared memory to enable fast client access without kernel calls. + +Assumption of Use Requirements +------------------------------ + +.. aou_req:: Network Interface Availability + :id: aou_req__time_slave__network_available + :reqtype: Process + :security: NO + :safety: QM + :status: valid + :version: 1 + + The user shall ensure the configured network interface is available and supports hardware timestamping before starting the component. + +.. aou_req:: Single Instance Per Interface + :id: aou_req__time_slave__single_instance + :reqtype: Process + :security: NO + :safety: QM + :status: valid + :version: 1 + + The user shall run only one time_slave instance per network interface to avoid protocol conflicts. + +.. needextend:: is_external == False and "time_slave" in id + :+tags: time_slave -.. note:: - Work in progress: page structure only, content to follow in later PRs. .. toctree:: + :maxdepth: 1 - requirements chklst_req_inspection diff --git a/score/time_slave/docs/requirements/requirements.rst b/score/time_slave/docs/requirements/requirements.rst deleted file mode 100644 index 13752848..00000000 --- a/score/time_slave/docs/requirements/requirements.rst +++ /dev/null @@ -1,112 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2026 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -Component Time Slave Requirements -################################### - -.. document:: Time Slave Requirements - :id: doc__time_slave_requirements - :status: draft - :version: 1 - :safety: ASIL_B - :security: YES - :realizes: wp__requirements_comp[version==1] - :tags: time_slave - -.. note:: - Work in progress: structure, titles, and needs IDs only. Content and req/comp/feat traceability links to follow in later PRs. - -.. attention:: - The above directive must be updated according to your Component. - - - Adjust ``status`` to be ``valid`` - - Adjust ``safety``, ``security`` and ``tags`` according to your needs - - -=================================================================== - -Functional Requirements ------------------------ - -.. code-block:: rst - - .. comp_req:: Some Title - :id: comp_req__time_slave__some_title - :reqtype: Process - :security: YES - :safety: ASIL_B - :derived_from: feat_req__example_feature__example_req - :status: invalid - :version: 1 - :satisfied_by: comp__time_slave - - The Component shall do xyz to another component to bring it to this condition at this time - - Note: (optional, not to be verified) - -.. attention:: - The above directive must be updated according to your component requirements. - - - Replace the example content by the real content for your first requirement - - Set ``derived_from`` with links to Feature requirements - - Set ``satisfied_by`` with a link to the right Component id - - Set ``safety`` and ``security`` to the right value - - Set the status to valid and start the review/merge process - - Add other needed requirements for your component - -Assumption of Use Requirements ------------------------------- - -.. code-block:: rst - - .. aou_req:: Next Title - :id: aou_req__time_slave__next_title - :reqtype: Process - :security: YES - :safety: ASIL_B - :status: invalid - :version: 1 - - The Component User shall do xyz to use the component safely/securely - -Environmental Requirements --------------------------- - -.. code-block:: rst - - .. aou_req:: Another Title - :id: aou_req__time_slave__another - :reqtype: Process - :security: YES - :safety: ASIL_B - :status: invalid - :version: 1 - :tags: environment - - The Component shall only be used in a xyz environment to ensure its proper functioning. - -Hints ------ - -.. attention:: - The above directives must be updated according to your feature requirements. - - - Replace the example content by the real content for your first requirement (according to :need:`gd_guidl__req_engineering`) - - Set ``safety`` and ``security`` to the right value (ASIL B/QM; YES/NO) - - Set ``reqtype`` with a link to the right value () - - Add other needed requirements for your feature - - Set ``status`` to ``valid`` and start the review/merge process - -.. needextend:: is_external == False and "time_slave" in id - :+tags: time_slave