Closed ykxian closed 5 months ago
Hi @ykxian, you can find the core of the update logic starting in pkg/orchestrator/orchestrator.go:208
. There are methods for BlockLink
, UnblockLink
, SetLatency
, and SetBandwidth
, all pertaining to a link between to nodes (i.e., satellites). If you follow this through pkg/orchestrator/virt.go
and pkg/virt
, you will end up in our emulation backend, which currently is in pkg/ebpfem
. Here the methods are implemented using our eBPF-based network emulation. Hope that helps!
Hi @pfandzelter , thanks for your reply! What I meant to ask is whether the data is forwarded along the shortest path when using ping. If so, how is it implemented? It seems like the next-hop matrix isn't being used. This matrix is only used during queries.
These four methods are just for adjusting link connectivity, bandwidth, and latency, right?
BlockLink
, UnblockLink
, SetLatency
, and SetBandwidth
That's right, the matrix is only used during queries to the info API. The normal routing uses simply the IP forwarding capabilities of the host. There is no further routing, every to microVMs connect directly to each other.
Okay, I understand. Thank you!
Hi @pfandzelter , I noticed that the platform can query the shortest path between nodes, and the ping results indicate that the latency seems to match the calculated path delay. However, after checking the code, it seems there is no routing implementation for this part, only inter-host routing. How is the routing in Celestial implemented?
Thank you!