-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Milestone
Description
RFC Reference: rfc16-geolocation-verification.md — Phase 1, item 1 (Telemetry agent extensions)
Tracking issue: #2893
Goal
Extend the existing telemetry agent to measure RTT to child geoProbes via TWAMP, generate signed Offset structures, and deliver them via UDP.
Scope
- New CLI flag
--additional-child-probes(comma-separatedhost:portlist) on the telemetry agent binary (controlplane/telemetry/cmd/telemetry/main.go) - New module
controlplane/telemetry/internal/geoprobe/pinger.go: periodic TWAMP measurement to configured probes, reusing existingtwamplight.Senderinterface fromtools/twamp/pkg/light/ - New module
controlplane/telemetry/internal/geoprobe/publisher.go: generates signed Offset (using DZD'smetrics_publisher_pkkeypair, lat/lng from device config) and sends via UDP to each probe - Integration into
collector.go: add a new goroutine alongside the existing pinger/submitter goroutines, gated on--additional-child-probesbeing non-empty - Unit tests for the probe pinger and publisher modules
Integration points
collector.go(lines ~83-168): Add goroutine for geoprobe measurement loop, similar to existing pinger goroutine patterncmd/telemetry/main.go: Add CLI flags, pass config to collector- Reuses
twamplight.NewSenderfor TWAMP probing (same interface as existing device probing) - Reuses existing
solana.PrivateKey(loaded from--keypair) for offset signing
Files to change
controlplane/telemetry/cmd/telemetry/main.go— new flags, wire up geoprobe configcontrolplane/telemetry/internal/telemetry/collector.go— new goroutine for probe measurementcontrolplane/telemetry/internal/telemetry/config.go— new config fields
Files to create
controlplane/telemetry/internal/geoprobe/pinger.gocontrolplane/telemetry/internal/geoprobe/publisher.gocontrolplane/telemetry/internal/geoprobe/pinger_test.gocontrolplane/telemetry/internal/geoprobe/publisher_test.go
Estimated scope
Medium (~300–500 lines)
Dependencies
Depends on #2898 (shared geoprobe library).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels