Skip to content

geolocation: add geoprobe identity to signed TWAMP replies, make verify interval configurable#3168

Merged
ben-dz merged 2 commits intomainfrom
bdz/signed-twamp-updates
Mar 5, 2026
Merged

geolocation: add geoprobe identity to signed TWAMP replies, make verify interval configurable#3168
ben-dz merged 2 commits intomainfrom
bdz/signed-twamp-updates

Conversation

@ben-dz
Copy link
Contributor

@ben-dz ben-dz commented Mar 4, 2026

Resolves: #3166

Summary of Changes

  • Add GeoprobePubkey field to signed TWAMP reply packets so targets can distinguish which physical probe responded, even when multiple probes share the same signing authority
  • Rename ReflectorPubkeyAuthorityPubkey for clarity (reply now carries both the authority and geoprobe identities)
  • Replace the package-level VerifyInterval global with a per-reflector constructor argument, exposed as --verify-interval CLI flag on geoprobe-agent (default 29s)
  • Lower default probe interval for geoprobe-target-sender from 60s to 30s to fit within the verify window

Diff Breakdown

Category Files Lines (+/-) Net
Core logic 4 +44 / -33 +11
Scaffolding 2 +30 / -20 +10
Tests 4 +85 / -45 +40
Docs 1 +7 / -4 +3

Most change is in tests and packet structure; core logic is a small net addition.

Key files (click to expand)
  • tools/twamp/pkg/signed/packet.go — add GeoprobePubkey field, rename ReflectorPubkey → AuthorityPubkey, update reply size (204→236 bytes)
  • tools/twamp/pkg/signed/reflector_linux.go — store verifyInterval and geoprobePubkey as struct fields, use per-instance interval
  • tools/twamp/pkg/signed/reflector.go — remove global VerifyInterval var, add verifyInterval param to constructor
  • controlplane/telemetry/cmd/geoprobe-agent/main.go — add --verify-interval flag (default 29s), pass geoprobePubkey + interval to reflector
  • controlplane/telemetry/cmd/geoprobe-target-sender/main.go — lower default interval to 30s, adapt to renamed reply fields
  • rfcs/rfc16-geolocation-verification.md — update reply packet layout to reflect new GeoprobePubkey field

Testing Verification

  • All tools/twamp/pkg/signed tests pass (packet round-trip, byte layout, rate-limit, concurrent clients, signature verification)
  • geoprobe-target-sender unit tests pass
  • Lint clean across all changed packages

ben-dz added 2 commits March 4, 2026 09:19
…ratble and defaults to 29s instead of 55s. Default geprobe-target-sender interval is 30s.
@ben-dz
Copy link
Contributor Author

ben-dz commented Mar 4, 2026

Skip-changelog is because this is updates to something already in the changelog.

@ben-dz ben-dz marked this pull request as ready for review March 4, 2026 16:18
@ben-dz ben-dz requested a review from nikw9944 March 4, 2026 16:18
@ben-dz ben-dz merged commit dd584e5 into main Mar 5, 2026
36 of 38 checks passed
@ben-dz ben-dz deleted the bdz/signed-twamp-updates branch March 5, 2026 16:45
@nikw9944 nikw9944 added this to the Geo Location milestone Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

geolocation: signed TWAMP should include Probe PK, in addition to Signing Authority PK

2 participants