The simulation model
The simulation model consists of the following OMNeT++ modules:
- A number of mobile users. In the first stages of the model you can
implement two identical users, then you can consider a number of
K users, organized as an array of users.
- A scheduler. The scheduler reads the lengths of users' queues and
implements a scheduling algorithm that allocates a number of radio
channels to each user. Then it informs each users how many radio blocks to
send during the current scheduling cycle.
You can consider that the total number of radio channels is B, for
example B=30 in LTE. The scheduler is activated every TB ms (a scheduling cycle). The value
of the scheduling cycle is 1 ms in LTE.
- A sink. The sink models the destination of the data. When the data packets created by an
user arrive to the sink module, the sink simply deletes the OMNeT++ messages representing
the data packets. Also, the sink is used to collect statistics about the simulation,
statistics that can be for each user and for the entire system. This statistical information
can be: the number of data packets that arrive to the sink, the mean, minimum and maximum
delay of the data packets, etc.
A possible general model for the lte network is shown here:
A user consists of a source module (or generator) and a buffer module,
implemented as a queue. The generator generates a number of data packets
at certain time intervals. The data packets are stored in the buffer. When
the scheduler informs the user that it can send a number of, e.g. m
data packets, then the firsts m data packets from the buffer are
send to the destination (the sink module).
A possible general model for an user is shown here:
We can consider that all data packets have a fixed length.
In the OMNeT directories there is one called "samples", with different
simulation models implemented in OMNeT++. From these samples, you
can use as a starting point for your model the sources from the "fifo"
system.
A simplified scheduling algorithm:
You can first implement the simulation model described above using a fixed channel
allocation scheduling algorithm, e.g., at each scheduling cycle, each user receives a fix
number of PRBs.
In each channel a user puts a data packet (called a radio block) from its queue.
More realistic scheduling algorithms:
A good scheduling algorithm for radio networks (like LTE, 5G, etc) allocates channels to
users as long as there are remaining channels (PRBs) and there is more data in users'
queues.
Hence, the channel allocations stops when at least one of these conditions is met:
- all radio channels (PRBs) have been allocated
- all packets from all queues have been transmitted (all queues are empty).
Implement other scheduling algorithms and compare their performance.
- Control the network load and represent graphically, for each of the implemented
algorithms, the mean delay of the data packets of the users as a function of the network
load, e.g. for network load of 30%, 50%, 70% and 90%.
- Compare the performance of the users (the mean delay here) when the users have different
weights W[i]. For example, you have two high priority (HP) users with W[i]=6 or 8, 5 medium
priority users (MP) with W[i]=2 and 3 low priority users (LP) with W[i]=1.
More information about scheduling algorithms can be found here