Skip to content

CNF-19182, CNF-25637, CNF-26625, CNF-26630, CNF-26636, CNF-26676, CNF-26945, OCPBUGS-122242: Sync from upstream (17-Sep-2026) - #638

Open
jzding wants to merge 22 commits into
openshift:mainfrom
jzding:upstream-sync-2026-09-17
Open

jzding wants to merge 22 commits into
openshift:mainfrom
jzding:upstream-sync-2026-09-17

Conversation

@jzding

@jzding jzding commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Upstream PRs included

  • #278 OCPBUGS-122242: resolve e810 interconnections npN names and harden clock chain init (OCPBUGS-122242)
  • #277 Bump google.golang.org/grpc from 1.83.1 to 1.83.2
  • #276 CNF-26945: Add servo state to ptp4l parser (CNF-26676,CNF-26945)
  • #275 CNF-26625: Add i2c-tools to the daemon image (CNF-26625)
  • #270 Bump google.golang.org/grpc from 1.82.1 to 1.83.1
  • #269 Fix delayed phc2sys process_status published under the wrong config label
  • #267 CNF-26636: Deprecate minOffsetThreshold and use absolute offset comparison (CNF-25637,CNF-26630,CNF-26636)
  • #257 CNF-19182: Add PTP sync status reporting to NodePtpDevice CR (CNF-19182)
  • #235 Introduce clock objects and CEPv2 IPC sending

Merge conflicts

The following files have merge conflicts that need manual resolution:

  • addons/redhat/Dockerfile.ocp

To resolve, clone the fork and fix conflicts locally:

git clone https://github.com/jzding/linuxptp-daemon.git
cd linuxptp-daemon
git checkout upstream-sync-2026-09-17
git merge ocp/main
# resolve conflicts, then:
git push

edcdavid and others added 22 commits August 21, 2026 17:06
…un uses.

/emit-logs was tagging phc2sys with the on-disk phc2sys.N.config name while
startup is delayed, so CEP kept a sticky process_status=0 next to the live
ptp4l.N.config series that never flipped on start or SIGTERM.
ptp-operator main still clones unpinned openshift/kube-rbac-proxy HEAD
with golang:1.25.7 and GOTOOLCHAIN=local, which fails after the
v0.22.1 merge (go >= 1.26.3). Patch Dockerfile.krp after clone so
ptp-images can build until ptp-operator main is updated.
Assisted by OpenCode, Claude and Gemini
…s-config-race

Fix delayed phc2sys process_status published under the wrong config label
…et-threshold

CNF-26636: Deprecate minOffsetThreshold and use absolute offset comparison
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.82.1 to 1.83.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.82.1...v1.83.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.83.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Refactors the EventHandler to manage Clock objects which contain state
decisions specific to the type of clock.

Moves state logic out of EventHandler, having it serve as a dispatcher
of events that come in, serving only relevant events to each clock.

Each clock object will calculate its new state after an event and send
any change in state as an IPC event to send to cloud event proxy v2.
Introduce clock objects and CEPv2 IPC sending
Vendor github.com/k8snetworkplumbingwg/ptp-operator@cfc3d527 so the
daemon can compile against SyncStatus, NodeProfileStatus, and Conditions.
Write NodePtpDevice.status.sync.profiles and the Ready condition so
controllers can see which profile is applied on each node.

clockType is T-GM, T-BC, BC, or OC. A GM role from PopulatePtp4lConf
is reported as T-GM.

Status is written after apply and on clock-state transitions.
Event-driven writes skip while applyNodePTPProfiles is in progress,
and a mutex serializes updates so apply and events cannot overlap.

Jira: https://issues.redhat.com/browse/CNF-19182
Drop the per-config clockStates map on ClockManager and detect
transitions by comparing GetState() before and after AddEvent.
i2c-tools are required to read the OCXO model
…/go_modules/google.golang.org/grpc-1.83.1

Bump google.golang.org/grpc from 1.82.1 to 1.83.1
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.83.1 to 1.83.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.83.1...v1.83.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.83.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…/go_modules/google.golang.org/grpc-1.83.2

Bump google.golang.org/grpc from 1.83.1 to 1.83.2
Assisted by Opencode
…ock chain init

On RHEL 10 (predictable npN interface names), resolvePluginDevices rewrote the
e810 plugin devices array and the pins/frequencies/phaseOffsetPins map keys to
the npN name but never touched interconnections[].id or [].upstreamPort. The
clock ID was therefore stored under the resolved name (clockId[ens3f0np0]) but
looked up under the unresolved interconnection id (clockId[ens3f0]). The lookup
failed, resolveInterconnections returned an error, and InitClockChain fell
through and passed a nil compensation slice into SendDelayCompensation, which
dereferenced it and crash-looped the daemon with a SIGSEGV.

Fix (Option C):
- pkg/network/resolve.go: extend resolvePluginDevices to resolve
  interconnections[].id and the comma-separated interconnections[].upstreamPort,
  mirroring the existing PtpSettings["upstreamPort"] handling.
- addons/intel/clock-chain.go: return the error from InitClockChain when
  resolveInterconnections fails instead of falling through with nil comps.
- addons/intel/phaseAdjust.go: guard sendDelayCompensation against a nil
  compensation slice so a config error can never panic the daemon.

Adds TestResolveProfileInterfaces_PluginInterconnections,
TestInitClockChain_ResolveError_NoPanic and TestSendDelayCompensation_NilNoPanic.

Signed-off-by: Jack Ding <jacding@redhat.com>
Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GolangCI-Lint (goconst) flagged the newly added "E810-XXVDA4T" literal in
TestInitClockChain_ResolveError_NoPanic (clock-chain_test.go:230) because the
string already appears >= min-occurrences times across the intel package. The
config's new-from-rev only reports the PR's new occurrence, so introduce a
package-level partE810XXVDA4T constant and use it on that line. Pre-existing
occurrences are on unchanged code and remain out of scope.

Signed-off-by: Jack Ding <jacding@redhat.com>
Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CNF-26625: Add i2c-tools to the daemon image
…122242-e810-interconnections-npn-resolution

OCPBUGS-122242: resolve e810 interconnections npN names and harden clock chain init
…-phase1

CNF-19182: Add PTP sync status reporting to NodePtpDevice CR
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Sep 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

@jzding: This pull request references CNF-19182 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

This pull request references CNF-25637 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "5.1.0" version, but no target version was set.

This pull request references CNF-26625 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

This pull request references CNF-26630 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

This pull request references CNF-26636 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the sub-task to target the "5.1.0" version, but no target version was set.

This pull request references CNF-26676 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

This pull request references CNF-26945 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

This pull request references Jira Issue OCPBUGS-122242, which is invalid:

  • expected the bug to target the "5.1.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Upstream PRs included

Merge conflicts

The following files have merge conflicts that need manual resolution:

  • addons/redhat/Dockerfile.ocp

To resolve, clone the fork and fix conflicts locally:

git clone https://github.com/jzding/linuxptp-daemon.git
cd linuxptp-daemon
git checkout upstream-sync-2026-09-17
git merge ocp/main
# resolve conflicts, then:
git push

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 17, 2026
@openshift-ci

openshift-ci Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci

openshift-ci Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

@jzding: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/images 7539e0a link true /test images
ci/prow/unit-test 7539e0a link true /test unit-test
ci/prow/security 7539e0a link false /test security
ci/prow/gofmt 7539e0a link true /test gofmt
ci/prow/verify-deps 7539e0a link true /test verify-deps

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-ci
openshift-ci Bot requested review from sebsoto and vitus133 September 17, 2026 17:07
@openshift-ci

openshift-ci Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jzding

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants