Advertise health-aware peer cache ranking

This commit is contained in:
2026-05-16 11:29:12 +03:00
parent 6817d150f8
commit dbbdaa63f3
3 changed files with 7 additions and 0 deletions
@@ -2980,6 +2980,7 @@ func heartbeatPayload(cfg config.Config, identity state.Identity, meshState *syn
payload.Metadata["mesh_peer_recovery_report"] = meshPeerRecoveryReport(meshState, observedAt) payload.Metadata["mesh_peer_recovery_report"] = meshPeerRecoveryReport(meshState, observedAt)
payload.Metadata["mesh_peer_connection_intent_report"] = meshPeerConnectionIntentReport(meshState, observedAt) payload.Metadata["mesh_peer_connection_intent_report"] = meshPeerConnectionIntentReport(meshState, observedAt)
payload.Metadata["mesh_peer_connection_manager_report"] = meshPeerConnectionManagerReport(meshState, observedAt) payload.Metadata["mesh_peer_connection_manager_report"] = meshPeerConnectionManagerReport(meshState, observedAt)
payload.Capabilities["mesh_peer_cache_endpoint_health_ranking"] = true
payload.Metadata["mesh_rendezvous_lease_report"] = meshRendezvousLeaseReport(meshState, identity, observedAt) payload.Metadata["mesh_rendezvous_lease_report"] = meshRendezvousLeaseReport(meshState, identity, observedAt)
payload.Metadata["mesh_route_path_decision_report"] = meshRoutePathDecisionReport(meshState, identity, observedAt) payload.Metadata["mesh_route_path_decision_report"] = meshRoutePathDecisionReport(meshState, identity, observedAt)
payload.Metadata["mesh_route_generation_report"] = meshRouteGenerationReport(meshState, identity, observedAt) payload.Metadata["mesh_route_generation_report"] = meshRouteGenerationReport(meshState, identity, observedAt)
@@ -1302,6 +1302,9 @@ func TestHeartbeatPayloadIncludesPeerRecoveryReportWithoutAdvertisedEndpoint(t *
if payload.Capabilities["mesh_peer_connection_intent_planning"] != true { if payload.Capabilities["mesh_peer_connection_intent_planning"] != true {
t.Fatalf("connection intent capability missing: %+v", payload.Capabilities) t.Fatalf("connection intent capability missing: %+v", payload.Capabilities)
} }
if payload.Capabilities["mesh_peer_cache_endpoint_health_ranking"] != true {
t.Fatalf("peer cache endpoint health capability missing: %+v", payload.Capabilities)
}
if _, ok := payload.Metadata["mesh_endpoint_report"]; ok { if _, ok := payload.Metadata["mesh_endpoint_report"]; ok {
t.Fatalf("endpoint report should not be emitted without advertised endpoint: %+v", payload.Metadata) t.Fatalf("endpoint report should not be emitted without advertised endpoint: %+v", payload.Metadata)
} }
@@ -353,6 +353,9 @@ degraded-path feedback as VPN fabric-session dialing.
Peer cache snapshots expose best-candidate score reasons, giving diagnostics a Peer cache snapshots expose best-candidate score reasons, giving diagnostics a
direct explanation for why a QUIC, WebSocket, relay, or fallback endpoint was direct explanation for why a QUIC, WebSocket, relay, or fallback endpoint was
chosen. chosen.
Heartbeat capabilities now advertise that peer-cache endpoint ranking consumes
health observations, allowing control plane and UI diagnostics to detect nodes
running the health-aware peer selection path.
Deliverables: Deliverables: