feat(control): reserve ControlService.PingTarget RPC (FJB-97 Phase A skeleton)#115
Open
hstern wants to merge 1 commit into
Open
feat(control): reserve ControlService.PingTarget RPC (FJB-97 Phase A skeleton)#115hstern wants to merge 1 commit into
hstern wants to merge 1 commit into
Conversation
…skeleton) Proto definition + generated stubs for the orchestrator-side ICMP probe. The handler embeds UnimplementedControlServiceHandler so PingTarget returns CodeUnimplemented on the wire today; the actual implementation (orchestrator probe driver, wg.Tunnel.ListenPingAddr integration, event stream wiring) lands in a follow-up commit so this PR stays focused on the interface contract. Wire shape (matches the FJB-97 design doc): - PingTargetRequest: target, count, interval, timeout - PingTargetEvent oneof Resolved | Echo | Summary - Resolved is the first event (target, remote_ip, source_ip) - Echo is one attempt's outcome (seq, rtt_ms, timeout bool) - Summary is the terminal event (transmitted, received, rtt stats) Phase B will add the gRPC probe layer (agent.Health) and the fjbctl ping CLI (with --wait / --probe modes per the design doc). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Proto-only skeleton for FJB-97. Reserves the
ControlService.PingTargetRPC and ships the generated stubs. The handler embedsUnimplementedControlServiceHandler, so calls returnCodeUnimplementedon the wire today.Why split this from the implementation? The actual probe driver needs to inject
wg.Tunnelinto the orchestrator (multi-file plumbing: orchestrator.New signature, Backend interface, main.go wiring, mock backends, …). Landing the interface contract first gives Phase B'sfjbctl pingCLI a stable shape to build against and keeps PRs focused.What's in
ControlService.PingTarget(PingTargetRequest) returns (stream PingTargetEvent)— server-streaming.PingTargetRequest: target name, count, interval, timeout.PingTargetEventoneof:Resolved(first frame),Echo(per-attempt, success or timeout),Summary(terminal).Next steps
A follow-up PR adds: ICMP probe driver via
wg.Tunnel.ListenPingAddr, Backend interface method, orchestrator wiring, handler implementation, tests. Then Phase B adds the gRPC probe layer +fjbctl pingCLI.🤖 Generated with Claude Code