Skip to content
ursoid-techPublic

About

multipath packet allocator

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

pathflow CI

pathflow will determine the optimum set of packets to send via a collection of paths with known characteristics:

  • Throughput (packets/s)
  • Latency
  • Loss rate
  • Packets enqueued

The problem is defined in the problem.txt file, in the following format:

N: <number of paths>
K: <number of packets in payload>
Ps: <probability of success from 0.0 to 1.0>

Followed by N lines in the format:

<packets/s> <latency> <loss rate> <packets in queue>

Build & Usage

To build the project, simply run make. This will generate the pathflow CLI executable and a libpathflow.a static library for use in your own applications.

You can verify the algorithms are working correctly by running make test.

The CLI uses the exact greedy minimax solver by default. Set PATHFLOW_SOLVER to de, sa, pso, ga, aco, or ts to exercise one of the stochastic solvers.

Dynamic Dashboard

You can watch the algorithm react to simulated network conditions in real-time by running the interactive ncurses dashboard:

make demo
./demo

The simulator creates a Markov "weather" model where links occasionally experience catastrophic drops or miraculous recoveries. The algorithm uses an EWMA filter to smooth out continuous random jitter and seamlessly redirects packet allocations on the fly. Press q to quit the dashboard.

About

multipath packet allocator

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages