ACCEPTED - IEEE TRANS. VEH. TECHNOL., OCT. 2010 4
TABLE I
MAIN COMPONENTS OF THE LTE-SIM
Component Functionalities Important Methods Method description
Simulator - Creates/Handles/Ends Schedule() Creates a new event and insert it into the calendar.
an event RunOneEvent() Executes an event.
Run() / Stop() Starts / ends the simulation.
FrameManager - Defines LTE frame StartFrame() and Handles the start and the end
structure StopFrame() of the LTE frame.
- Schedules frames StartSubFrame() and Handles the start and the end
and sub-frames StopSubFrame() of the LTE sub-frame.
FlowsManager - Handles applications CreateApplication() Creates an application
NetworkManager - Creates devices CreateUserEquipment() Creates an UE device
- Handles UE position CreateCell() Creates a LTE Cell
- Manages the hand over UpdateUserPosition() Updates the UE position
- Implements frequency HandOverProcedure() Handles the hand over procedure
reuse techniques RunFrequecyReuse() Implements frequency reuse techniques
A. Basic Network Topology
Both single-cell and multi-cell simulations can be run (see
Figs. 2-3).
Fig. 2. Single-cell/multi-user simulation environment.
Fig. 3. Multi-cell/multi-users simulation environment.
The network topology is composed by a set of cells and
network nodes (including eNBs, one or more MME/GW, and
UEs), distributed among cells. All the methods for the creation
and the management of the network topology are provided by
the NetworkManager component (see Fig. 1 for details).
A LTE cell, implemented by the Cell class, is identified by
a unique identifier (ID). Its attributes are the radius and the
position defined in a Cartesian system.
For each kind of LTE network node, a dedicated class
has been developed, extending the basic NetworkNode class
(i.e., ENodeB, UserEquipment, and MME-GW classes). Each
network node is identified by an unique ID and its position in
a Cartesian system is also defined.
Support for several functionalities of both user and control
plane protocol stacks is provided by the ProtocolStack class,
developed as a container of RRC (Radio Resource Control),
PDCP (Packet Data Control Protocol), and MAC entities.
The eNB performs radio resource management for the
evolved radio access. Both downlink and uplink schedul-
ing strategies are defined into its MAC entity. In partic-
ular, downlink and uplink schedulers are defined into the
m downlikScheduler and m uplinkScheduler variables,
respectively. In Sec. V, scheduling strategies that LTE-Sim
provides are described.
As previously mentioned, for eNB and UE devices, an
instance of a PHY object, namely m phy, has been defined.
PHY objects, moreover, are attached to a LTE channel, mod-
eled by the Channel class. This class manages the transmission
through the physical channel of the actual packet among the
attached physical entities, implementing also a propagation
loss model. The PHY object has been developed: for providing
an interface between the LTE device and the channel; for
storing and managing information about the radio channel
(such as bandwidth, list of available sub-channels for both
downlink and uplink); and for offering an access to the radio
channel to simulate the packet transmission and reception.
Further details about the implemented channel and physical
models are provided in Sec. V.
CQI reporting is another important feature performed by the
UE . In particular, LTE-Sim supports also the CQI reporting
feature [16], i.e., the UE estimates channel quality and converts
it in a set of CQI feedbacks reported to the eNB. Our simulator
supports both periodical and aperiodical CQI reporting and
both full band and wide band reporting modes. During the
simulation, each eNB maintains the list of UEs associated to it,
storing, for each of them, the ID and the latest CQI feedbacks.
Furthermore, eNBs and UEs are aware of the LTE cell they
belong to. In fact, each UE keeps up to date the ID of the cell
it belongs to and the ID of the eNB it is registered to.
B. Users Mobility
In order to support user mobility, a system level inter-
cell handover procedure has been implemented. Two types
of mobility models are supported: Random Direction and
Random Walk [17]. For each of them, a dedicated class has