Skip to content

api,web: add service-aware path visualization (RFC-18)#618

Open
ben-malbeclabs wants to merge 1 commit into
mainfrom
bc/service-aware-paths
Open

api,web: add service-aware path visualization (RFC-18)#618
ben-malbeclabs wants to merge 1 commit into
mainfrom
bc/service-aware-paths

Conversation

@ben-malbeclabs

Copy link
Copy Markdown
Contributor

Summary

  • Add service query parameter (unicast | multicast) to all path-finding API endpoints (/api/topology/paths, metro path latency, metro path detail, metro paths, metro device paths) — unicast excludes links with empty link_topologies and drained links (flex-algo 128 constrained topology), multicast includes all links (algo 0)
  • Add unicast/multicast toggle to the path calculator page, topology map, globe, and graph path panels
  • Default to unicast, which reflects the real forwarding plane for VPN traffic post RFC-18

Closes malbeclabs/doublezero#3358

Testing Verification

  • go build ./api/... and go vet ./api/... pass
  • bun tsc --noEmit passes for web (pre-existing radix-ui errors unrelated)
  • Verified production ClickHouse has 165 links tagged UNICAST-DEFAULT and 2 untagged — unicast mode will exclude the 2 untagged links, producing different paths when those links are on the route
  • URL params (service, path_service) persist across navigation and "View in graph" deep links

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

🔗 Preview: https://pr-618.data.malbeclabs.com

@ben-malbeclabs ben-malbeclabs marked this pull request as ready for review June 3, 2026 13:57
@ben-malbeclabs ben-malbeclabs force-pushed the bc/service-aware-paths branch from 5a95506 to bb87f04 Compare July 1, 2026 17:04
Resolve traced paths through the IS-IS topology that matches the
selected traffic type. Unicast uses flex-algo 128 (topology-tagged,
non-drained links only); multicast uses algo 0 (all links). The same
node pair can therefore show different paths per service.

- api: loadTopologyGraph / findKShortestPaths / FetchMetroPathLatencyData
  take a service param; unicast filters out untagged and drained links
- web: Unicast/Multicast toggle on the path calculator, the device-path
  panel, and the metro-path ("Find Paths") tool, with the selection
  persisted in the URL

Closes malbeclabs/doublezero#3358
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Service-aware path visualization

1 participant