nix-vector-routing: there is no caching for failed routes.
I did notice this while debugging #448 (closed).
Suppose that you have a "bad" network, were there is no path from SRC to DST.
SRC sends a packet to DST. In a normal condition (a path exist) this packet will fire BFS, a route will be found and it will be cached. Hence, the next packet will not fire BFS.
The problem is that if there is no route at all, also the second packet will fire BFS, and the third, and so on.
Since BFS is the computational-intensive section of Nix, the result is a super-slow simulation.
Thanks also to @Gabrielcarvfer for profiling the code.