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