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); }