Skip to content

Add time slave component requirements - #151

Open
ryan-steel wants to merge 6 commits into
eclipse-score:mainfrom
etas-contrib:add-time_slave-component-requirements
Open

Add time slave component requirements#151
ryan-steel wants to merge 6 commits into
eclipse-score:mainfrom
etas-contrib:add-time_slave-component-requirements

Conversation

@ryan-steel

@ryan-steel ryan-steel commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Improvement

Description

Add initial component requirements for time_slave following S-CORE process.

Related ticket

Part of #65

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: b00664cc-2c79-41ce-b1a0-3bf964b27d8d
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'platforms', the root module requires module version platforms@1.0.0, but got platforms@1.1.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'rules_oci', the root module requires module version rules_oci@2.2.7, but got rules_oci@2.3.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)

Analyzing: target //:license-check (63 packages loaded, 10 targets configured)

Analyzing: target //:license-check (143 packages loaded, 994 targets configured)

Analyzing: target //:license-check (160 packages loaded, 4627 targets configured)

Analyzing: target //:license-check (164 packages loaded, 8057 targets configured)

Analyzing: target //:license-check (171 packages loaded, 9409 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (175 packages loaded, 11305 targets configured)

Analyzing: target //:license-check (176 packages loaded, 11429 targets configured)

INFO: Analyzed target //:license-check (177 packages loaded, 11555 targets configured).
[4 / 15] Creating runfiles tree bazel-out/k8-fastbuild/bin/license.check.license_check.runfiles; 0s local
[12 / 16] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 0s disk-cache, processwrapper-sandbox ... (2 actions running)
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 2 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[14 / 16] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar; 0s disk-cache, processwrapper-sandbox
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 29.253s, Critical Path: 2.63s
INFO: 16 processes: 12 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 16 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@ryan-steel
ryan-steel marked this pull request as ready for review August 5, 2026 13:29
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds initial S-CORE process documentation scaffolding for the score/time_slave component, introducing draft requirements and architecture artefacts to establish traceable needs for future work.

Changes:

  • Added initial component requirements (comp_req / aou_req) and a requirements inspection checklist.
  • Added architecture boilerplate (static/dynamic views) and an architecture inspection checklist.
  • Updated the component documentation landing page to reference the new sections.

Reviewed changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
score/time_slave/docs/index.rst Reworked component landing page and toctree to point at requirements/architecture.
score/time_slave/docs/requirements/index.rst Introduces requirements section toctree.
score/time_slave/docs/requirements/requirements.rst Adds initial component requirements and AoU needs for time_slave.
score/time_slave/docs/requirements/chklst_req_inspection.rst Adds requirements inspection checklist template for the component.
score/time_slave/docs/requirements/.gitkeep Placeholder file for requirements directory.
score/time_slave/docs/architecture/index.rst Introduces architecture section toctree.
score/time_slave/docs/architecture/component_architecture.rst Adds architecture boilerplate including comp, static view, and dynamic view needs.
score/time_slave/docs/architecture/chklst_arc_inspection.rst Adds architecture inspection checklist template for the component.
score/time_slave/docs/architecture/.gitkeep Placeholder file for architecture directory.
Suppressed comments (2)

score/time_slave/docs/architecture/chklst_arc_inspection.rst:181

  • Typo in quoted string: ""n/a" has an extra quote, which reads oddly in the rendered docs.
Note: If a Review ID is not applicable for your architecture, then state ""n/a" in status and comment accordingly in remarks.

score/time_slave/docs/architecture/component_architecture.rst:74

  • The :belongs_to: target feat__time is not defined anywhere in this repository (search only finds this reference). If the feature need lives in an external bundle, please make sure it’s available when building these docs; otherwise update this link to an existing feature need ID.
   :belongs_to: feat__time

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread score/time_slave/docs/index.rst
Comment thread score/time_slave/docs/requirements/chklst_req_inspection.rst
Comment thread score/time_slave/docs/architecture/chklst_arc_inspection.rst Outdated
Comment thread score/time_slave/docs/requirements/requirements.rst Outdated
Comment thread score/time_slave/docs/architecture/component_architecture.rst Outdated
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 42e1e86 to 1a9f07d Compare August 13, 2026 10:25
@ryan-steel
ryan-steel marked this pull request as draft August 13, 2026 11:57
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 1a9f07d to f5b6dc1 Compare August 14, 2026 12:56
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 8a7e005 to dc32e15 Compare August 17, 2026 12:44
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 8340059 to d2d59b2 Compare August 24, 2026 12:39
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 8d2ff6c to 6e3358e Compare August 25, 2026 09:02
@ryan-steel
ryan-steel marked this pull request as ready for review August 31, 2026 11:05
@ryan-steel
ryan-steel force-pushed the add-time_slave-component-requirements branch from 2b656d0 to 28c592a Compare August 31, 2026 12:12
Comment thread score/time_slave/docs/index.rst Outdated
Comment thread score/time_slave/docs/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst Outdated

@BjoernAtBosch BjoernAtBosch left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some more ...

Comment thread score/time_slave/docs/requirements/index.rst Outdated
Comment thread score/time_slave/docs/requirements/index.rst
Comment thread score/time_slave/docs/requirements/index.rst Outdated
:version: 1
:satisfied_by: comp__time_slave

The time_slave component shall receive IEEE 802.1AS event messages (Sync, Follow_Up, Pdelay_Resp, Pdelay_Resp_Follow_Up) sent to the Ethernet address specified in the IEEE 801.1AS standard. It shall send event messages (Pdelay_Req) to the same address.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry - needs an update

Suggested change
The time_slave component shall receive IEEE 802.1AS event messages (Sync, Follow_Up, Pdelay_Resp, Pdelay_Resp_Follow_Up) sent to the Ethernet address specified in the IEEE 801.1AS standard. It shall send event messages (Pdelay_Req) to the same address.
The time_slave component shall receive the IEEE 802.1AS messages Sync, Follow_Up, PdelayReq, Pdelay_Resp, and Pdelay_Resp_Follow_Up sent to the Ethernet address specified in the IEEE 801.1AS standard. It shall send outgoing Pdelay messages (Pdelay_Req, Pdelay_Resp, and Pdelay_Resp_Follow_Up) to the same address.

:version: 1
:satisfied_by: comp__time_slave

The time_slave component shall transmit IEEE 802.1AS PDelayReq messages at the configured interval (configurable, default 1000 milliseconds) and record the transmit timestamp.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The time_slave component shall transmit IEEE 802.1AS PDelayReq messages at the configured interval (configurable, default 1000 milliseconds) and record the transmit timestamp.
After the configured initial warmup delay (default: 2000 milliseconds), the time_slave component shall periodically transmit IEEE 802.1AS PDelayReq messages at the configured interval (default: 1000 milliseconds) and record the transmit timestamp.

:status: valid
:version: 1

The user shall run exactly one time_slave instance per network interface to prevent gPTP protocol conflicts. Multiple instances binding to the same interface will cause raw socket binding failures or multicast group membership conflicts.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The user shall run exactly one time_slave instance per network interface to prevent gPTP protocol conflicts. Multiple instances binding to the same interface will cause raw socket binding failures or multicast group membership conflicts.
The user shall run exactly one time_slave instance only. Multiple instances are not supported and will cause failures or conflicts on the single IPC interface to the TimeDaemon.

:version: 1

The user shall run exactly one time_slave instance per network interface to prevent gPTP protocol conflicts. Multiple instances binding to the same interface will cause raw socket binding failures or multicast group membership conflicts.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. aou_req:: Hardware Timestamping Support
:id: aou_req__time_slave__hw_timestamping
:reqtype: Process
:security: NO
:safety: QM
:status: valid
:version: 1
If the user has high demands regarding the synchronization accuracy and precision, they must configure a NIC providing hardware timestamping and driver software support.

:version: 1
:satisfied_by: comp__time_slave

According to IEEE 802.1AS, the time_slave component shall only process received gPTP Sync and FollowUp messages matching the configured domain number (0-127 per IEEE 802.1AS). The time_slave component shall only process received gPTP Pdelay messages matching the domain number 0. It shall use the domain number 0 in send gPTP Pdelay messages.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry - some details found recently

Suggested change
According to IEEE 802.1AS, the time_slave component shall only process received gPTP Sync and FollowUp messages matching the configured domain number (0-127 per IEEE 802.1AS). The time_slave component shall only process received gPTP Pdelay messages matching the domain number 0. It shall use the domain number 0 in send gPTP Pdelay messages.
According to IEEE 802.1AS, the time_slave component shall only process received gPTP Sync and FollowUp messages matching the configured domain number (0-127 per IEEE 802.1AS). The time_slave component shall ignore the domain number contained in received gPTP Pdelay messages. It shall set the domain number to 0 in sent gPTP Pdelay messages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants