[PR #2940] [CLOSED] feat: add ping scheduler for node liveness checks #2947

Closed
opened 2025-12-29 04:19:46 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/juanfont/headscale/pull/2940
Author: @roganlynch
Created: 12/6/2025
Status: Closed

Base: mainHead: pr3-ping-scheduler


📝 Commits (3)

  • 3b8bad4 feat(mapper): add SendDirectUpdate method for direct MapResponse delivery
  • 27e7d10 feat(ping): add core PingRequest/Response implementation
  • e4f6362 Add ping scheduler for node liveness checks

📊 Changes

9 files changed (+845 additions, -0 deletions)

View changed files

📝 config-example.yaml (+29 -0)
📝 hscontrol/app.go (+15 -0)
📝 hscontrol/mapper/batcher.go (+1 -0)
📝 hscontrol/mapper/batcher_lockfree.go (+32 -0)
📝 hscontrol/noise.go (+75 -0)
hscontrol/ping.go (+280 -0)
hscontrol/ping_scheduler.go (+281 -0)
hscontrol/ping_scheduler_test.go (+111 -0)
📝 hscontrol/types/config.go (+21 -0)

📄 Description

Adds a ping scheduler for automated node liveness checks.

Changes

  • PingScheduler: Manages periodic ping operations for node health monitoring
  • Configurable intervals: Supports customizable ping schedules per node
  • Automatic cleanup: Handles timeout and response cleanup
  • Integration with PingManager: Uses the core ping infrastructure for execution

Implementation Details

The scheduler maintains a registry of nodes requiring periodic health checks and coordinates ping request timing. It integrates with the PingManager to execute pings and process responses, providing automated liveness monitoring for the network.

Context

Part of the work discussed in #2902 to add ping functionality to headscale.

Dependencies

  • Requires PR #2939 (core ping implementation)

Note: This code was generated with assistance from Claude Sonnet 4.5 via cline.bot


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/juanfont/headscale/pull/2940 **Author:** [@roganlynch](https://github.com/roganlynch) **Created:** 12/6/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `pr3-ping-scheduler` --- ### 📝 Commits (3) - [`3b8bad4`](https://github.com/juanfont/headscale/commit/3b8bad4252652995d5b95467d39befc79a1a26db) feat(mapper): add SendDirectUpdate method for direct MapResponse delivery - [`27e7d10`](https://github.com/juanfont/headscale/commit/27e7d10285d373c26fc389f20deab4c1458924bb) feat(ping): add core PingRequest/Response implementation - [`e4f6362`](https://github.com/juanfont/headscale/commit/e4f6362853ca2334cc5cec49f32e7d18e3139977) Add ping scheduler for node liveness checks ### 📊 Changes **9 files changed** (+845 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `config-example.yaml` (+29 -0) 📝 `hscontrol/app.go` (+15 -0) 📝 `hscontrol/mapper/batcher.go` (+1 -0) 📝 `hscontrol/mapper/batcher_lockfree.go` (+32 -0) 📝 `hscontrol/noise.go` (+75 -0) ➕ `hscontrol/ping.go` (+280 -0) ➕ `hscontrol/ping_scheduler.go` (+281 -0) ➕ `hscontrol/ping_scheduler_test.go` (+111 -0) 📝 `hscontrol/types/config.go` (+21 -0) </details> ### 📄 Description Adds a ping scheduler for automated node liveness checks. ## Changes - **PingScheduler**: Manages periodic ping operations for node health monitoring - **Configurable intervals**: Supports customizable ping schedules per node - **Automatic cleanup**: Handles timeout and response cleanup - **Integration with PingManager**: Uses the core ping infrastructure for execution ## Implementation Details The scheduler maintains a registry of nodes requiring periodic health checks and coordinates ping request timing. It integrates with the PingManager to execute pings and process responses, providing automated liveness monitoring for the network. ## Context Part of the work discussed in #2902 to add ping functionality to headscale. ## Dependencies - Requires PR #2939 (core ping implementation) --- *Note: This code was generated with assistance from Claude Sonnet 4.5 via cline.bot* --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 04:19:46 +01:00
adam closed this issue 2025-12-29 04:19:46 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#2947