Skip to content

crond-jaist/topology-generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Random Topology Generator

This python tool generates random network topologies consisting of routers, clients, and servers. Input parameters can be specified in a configuration file. The generated topologies are written into JSON output files and optionally plotted in PDF format.

Running topo-gen

To run topo-gen use the following command:

$ ./topo-gen.py -c <configFile> -o <outputFile>

where <configFile> is the configuration file path and <outputFile> is the output file name without the extension. topo-gen will create two output files: <outputFile>.json and <outputFile>.pdf, if requested.

Configuration

The following is a sample configuration file:

{
	"topologies": "number of generated topologoes",
	"plot": "True/False, plot topology to pdf",
	"dimensions": "e.g. 10x10",
	"routers": "number of routers",
	"router-links": "routers links, e.g. 2 or 1-2",
	"clients": "number of clients",
	"client-links": "number of each client links, e.g. 2 or 1-2",
	"servers": "number of producers",
	"server-links": "number of each server links, e.g. 2 or 1-2",
	"channels": "number of channels",
	"channel-rates": "list of channel rate, e.g. 10,100,1000"
}

All parameters are required and explained below:

  • topologies -- the number of topologies to be generated. The output files are appended with the topology index. For instance, <outputFile>_1.json, <outputFile>_2.json, etc.
  • plot -- True to plot the generated topologies into PDF files, False otherwise.
  • dimensions -- the dimensions of the topology area.
  • routers -- the number of routers in the topology.
  • router-links -- the number of links each router can have when connecting to neighboring routers. This parameter can specify an exact number of link or a range of the format min-max, e.g., 2-5.
  • clients -- the number of clients in the topology.
  • client-links -- the number of links each client can have when connecting to neighboring routers. This parameter can specify an exact number of link or a range of the format min-max, e.g., 2-5.
  • servers -- the number of servers in the topology.
  • server-links -- the number of links each server can have when connecting to neighboring routers. This parameter can specify an exact number of link or a range of the format min-max, e.g., 2-5.
  • channels -- the number of channels used to connect the topology nodes. Each channel can have a different data rate.
  • channel-rates -- a list of channel rates. The size of this list should match the value of the channel parameter.

Acknowledgement

This tool was implemented as part of the ICNSimulator project, a work done with the collaboration of Christopher Wood.

About

Random Network Topology Generator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%