OMNET++

OMNeT++ is an extensible, modular, component-based C++ simulation library and framework, primarily for building network simulators. OMNeT++ provides infrastructure for parallel distributed simulation.

Core components of OMNET++:

  • Compound module.
  • Channel.
  • Gate.
  • Simple module.
  • Links.

Simulation class libraries in OMNET++:

  • Refection support for C++.
  • User interface (GUI can even change the variable on-the-fly, cmd UI support batch execution).
  • Statistic and distribution estimation class.
  • Message, packet.
  • Container classes for xample array, queue.
  • Data collection classes.
  • Transient detection and result accuracy detection classes.
  • Module, gate, parameter, channel.

Sample code for OMNET++:

This is the sample code of how to define simple module.

simple Queue
{
parameters:
	int capacity;
	@class (mylib:Queue);
	@display(“i=block/queue”);
gates;
	input in;
	outpu out;
}
Simple BoundedQueue extends Queue
{
    capacity =10;
}
Simple PriorityQueue extends Queue
{
@class(PriorityQueue);
}