Do you have any examples of their mobility event handling? I'm reading the documentation for Pinecone and don't see much. Even Pinecone says Yggdrasil's spanning tree isn't good enough: "However, the spanning tree topology alone is not a suitable routing scheme for highly dynamic networks." [0]
I'm reading that as why Pinecone has the virtual snake topology. But they define that as a public key-based routing, which doesn't take into account optimal routing in the network. Nodes are ordered by public key [1]. It's good for P2P mesh, not wireless offgrid meshes.
And their SNEK routing does prefer the internet over Bluetooth [2]:
> we can further refine the path to use either the faster or lower latency link type to route to that peer:
> If the Best candidate has a slower peer connection type (Multicast > Remote > Bluetooth) than the connected peer
Most of the mobility testing has been performed either in the meshnet-lab[1] or the pineconesim[2].
As the original author of that documentation, it's quite entertaining to have it quoted back to me. :-) In any case the routing "prefers" links labelled as the internet when there is a tiebreak between two peerings between the same pair of nodes, i.e. you are connected to some other device via Wi-Fi and Bluetooth simultaneously.
And while it is true that Pinecone cannot necessarily always make the best routing decision based on public keys alone, aggressive queue management attempts to provide the best QoS for all flows and it scales very well because nodes maintain only a small amount of state about their position in the spanning tree and their position in the SNEK. Importantly, shortcuts can and often are taken when Pinecone switches to tree-based routing as the geometric distance to the destination on the tree is evaluated at each hop. Routing "by the SNEK" is used primarily to find the remote node and as a fallback in case the tree routing fails.
I'm reading that as why Pinecone has the virtual snake topology. But they define that as a public key-based routing, which doesn't take into account optimal routing in the network. Nodes are ordered by public key [1]. It's good for P2P mesh, not wireless offgrid meshes.
And their SNEK routing does prefer the internet over Bluetooth [2]:
> we can further refine the path to use either the faster or lower latency link type to route to that peer:
> If the Best candidate has a slower peer connection type (Multicast > Remote > Bluetooth) than the connected peer
[0] https://github.com/matrix-org/pinecone#does-pinecone-work-on...
[1] https://matrix-org.github.io/pinecone/snake
[2] https://matrix-org.github.io/pinecone/virtual_snake/nexthop