Giter VIP home page Giter VIP logo

wmediumd's Introduction

This folder contains:

mac80211_hwsim/ -> Modified mac80211_hwsim module to support userspace frame tx.
rawsocket/ 	-> Raw socket based ping-pong application to test stability and loss probability behaviour. 
wmediumd/ 	-> User space application to apply loss probability per link.
wconfig/	-> Java based tool to create advanced config files for wmediumd.
Dependencies:

[rawsocket] -> libpthread 
[wmediumd]  -> libnl 2.0, libconfig
[wconfig] -> Java JRE 6.0

***Compilation of applications***

Once all dependencies are satisfied, just execute make on the main folder, binaries and modules will be created on each folder.

***Execution of applications***

[mac80211_hwsim]

Modified mac80211_hwsim module starts in no wmediumd mode, so there is not loss probability applied to the tx frames, it just registers the custom generic netlink family, and waits until an user application is registered. When an application registers, all transmited frames will be handled by this user space application. When the registered application stops listening to the kernel module, the module will return to NO wmediumd mode automatically, and will not apply any loss probability.

- To load the module and setup a simple mesh containing two nodes:

 $ cd mac80211_hwsim
 $ ./script.sh (It will ask for superuser permission )
 
- To unload the module just execute sudo rmmod mac80211_hwsim

[wmediumd]

The user application is responsible for handling the frames sent from the kernel space, this sample application creates a simple probability matrix with the same probability values per link. 

- To launch the application in configuration mode:

 $ cd wmediumd
 $ ./wmediumd -o [FILE]

It will create a new FILE with the a sample configuration schema.

- To launch the application in simulation mode (superuser is required):

 $ cd wmediumd
 $ sudo ./wmediumd -c [FILE]

Once launch it will show all the probability matrix and the transmission counters.

NOTE: It is necessary to provide a configuration file to start the simulation.
      Inside wmediumd/cfg-examples you can find multiple config file samples.


[rawsocket]

This a very simple Raw socket ping-pong application, developed to test the stability and behaviour of the mac80211_hwsim module. The application is composed from a server and a client. Server shows a counter of answered packets and clients shows sent and received back.


	CLIENT  ===========================================   SERVER
	
	FRAME sent ---------------- wmediumd ------------->   FRAME rcvd 
								  +
	FRAME rcvd <--------------- wmediumd---------------   FRAME sent (ACK)
								
								

 SERVER

 $ cd rawsocket
 $ sudo ./server [listening interface]

 CLIENT

 $ cd rawsocket
 $ sudo ./client [listening interface] [destination interface] [msec between frames]

[wconfig]

This is an extra tool based on JUNG framework to support the generation of advanced topologies for wireless medium daemon.

To launch the application:

 $ cd wconfig
 $ java - jar wconfig.jar 

Enjoy!


wmediumd's People

Contributors

bcavgnolo avatar bcopeland avatar jlopex avatar twpedersen avatar

Watchers

 avatar  avatar  avatar

Forkers

jn7163

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.