Print
Category: Uncategorised
Hits: 3256

Channel Allocation in Substitution Networks

 

The code here corresponds to the following paper:

Anthony Busson, Isabelle Guérin-Lassous, Ha Pham The Anh. Channel Assignment in IEEE 802.11-based Substitution Networks. BalkanCom 2018. Podgorica. Montenegro. June 2018. [pdf]

 

The code gives the channel allocation according to different algorithms:

The output consists in two files:

The topology consists in a source and a destination connected through a mesh wireless networks composed of 1, 2, or 3 paths. The routers location can be completely static (topology 0) or lightly random. For the later, we move routers a little bit around their original location to have different transmission rates on the links but the path is the same as the other topology. 

It has been coded for Linux but may work on other OS.

Compile and test:

       make

To obtain the usage just type:

             ./simulator

Usage: ./simulator topology nbOfNodes nbOfRadios maxFreq nbOfSamples nbOfRoutes algorithm
-----------------------------------------------------------------
-- topology: 0-> pathTopology 1-> pathTopologyRandom
-- nbOfNodes: number of nodes
-- nbOfRadios: number of radios
-- maxFreq: number of available frequencies
-- nbOfSamples: number of NS3 file to simulate the capacity
-- nbOfRoutes: number of routes between the source and the destination
-- algorithm: One frequency=0 Minimize the conflict graph (optimal)=1  Throughput_Heuristic=2 Throughput_Optimal=3
-----------------------------------------------------------------

For example, the command for a channel assignment given by our heuristic with 2 routes, 8 nodes, 2 radios per router, 8 available channels and random routers location, is:

             ./simulator 1 8 2 3 1 2 2

A script is given in the archive that allows you to test the execution time of the heuristic with 1, 2 and 3 paths (scriptExecSpeed.sh). It generates three files (1path.out, 2path.out and 3path.out) that contains the execution time for 100 tests. To test it:

         ./scriptExecSpeed.sh