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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);
}