Fake mininet, use for experiments and education.
maketo build the executable file../mnto enter fake-mn's CLI.- Then you can use the supported commands to create your own fake network topology.
- Enter CLI directly (manual):
./mn - Using script (mininet-like):
./mn -f <your script> - API usage: run
make libfirst, and seeExamplepart for other details.
You can see the example:
| Scenario | Description | Command | Result |
|---|---|---|---|
| CLI: Network Flow | Generate the simple graph, and export it's dotfile. And using graphviz to generate png from this dotfile. | [1] | |
| API: Example (build & demo) | Using make lib to generate library of fake-mininet - libfakemn.a, and use it within your program. |
[2] | api example code |
| API: Path between 2 vertices | Using API (NetworkManager, Path) to create network topology, and get the available paths between 2 selected vertices. |
[2] | find-path example code |
| API: Find Max-Flow | Apply Ford-Fulkerson Labeling Algorithm on simplest graph, which present in the first demo. | [2] | max-flow example code |
| API: Plot the Network Topology | Using Gplot class to generate dotfile from your current network topology. (Export a dotfile, will need graphviz dependency to generate figure from this file.) |
x | |
| API: DFS | Apply depth-first search algorithm on the network present in the previous plotting example. ( Start point: "b" ) |
x | |
| API: BFS | Apply breadth-first search algorithm on the network present in the previous plotting example. ( Start point: "b" ) |
x | |
| API: Single Source Shortest Path | Apply single-source shortest path algorithm on the network topology: |
x |
Command References:
[1]
$ make && ./mn < example/stdin/simple_graph.txt
$ dot -Tpng example/stdin/simple_graph.dot -o example/stdin/simple_graph.png[2]
$ make lib && cp libfakemn.a example/api
$ cd example/api && make- Output dot file for current topology.
- Add more information/operation on edge. (For graph theory)
- Create real virtual device that support real network functions.
Kevin Cyu, kevinbird61@gmail.com