Here there is the mid term report of activities carried out during the first period of the GSoC 2010.
During the first period of the GSoC, both of PHY and LTE Devices have been developed. However, before this implementation, a complete API structure of the module has been defines.
Channel and PHY layer implementation for the LTE
The module supports two types of LTE device: the UE and the eNB. For each of them, dedicated classes have been implemented to handle physical and mac functionalities.
As described into the wiki page (), the physical layer and the channel model of LTE has been created extending the Spectrum Framework. In particular, the LTE physical layer has been obtained as a couple of half-duplex PHY, one for the downlink and one for the uplink. For the channel model, instead, the SingleModelSpectrumChannel class has been used for both the downlink and the uplink.
The LTE Physical Leyer
The PHY layer has been designed as in the following.
All functionalities (send/receive packets to/from the channel; compute the SINR of the received signal etc ...) of the LTE physical layer have been developed into the LteSpectrumPhy class.
In order to implement a FDD channel access, each device use a couple of LteSpectrumPhy; one for the downlink and one for the uplink.
For each LTE device the LtePhy object is defined to store both downlink and uplink LteSpectrumPhy elements. Moreover, in LtePhy class are stored other informations about the physical layer (such as list of uplink and downlink sub channels for both UE and eNB and a list of sub channel to use for the uplink for only the UE).
It is important to note that both UE and eNB devices work differently. For this reason, it is necessary to customize all functionalities for each of these devices. To this aim, dedicated classes are inherited from ones described before. In particular, both UePhy and EnbPhy classes are inherited from the LtePhy to implement the complete physical layer for UE and eNB, respectively. In the same way, UeLteSpectrumPhy and EnbLteSpectrumPhy classes are inherited from the LteSpectrumPhy in order to implement the functionalities of the physical layer for both UE and eNB respectively.
How different physical layers can exchange packets through the channel ? The following figure shows this issue.
We note that in the LTE Module there are two channel: the downlink channel and the upplink channel. Both UE and eNB are attached to one of this channels with a proper LteSpectrumPhy object.
For the downlink, when the eNB want to send a packet, it calls StartTx function to send a packet or a burst of packets intop the downlink channel. Then, the downlink channel delivers the burst of packet to all the UeLteSpectrumPhy attached to it, handling the StartRx function. When the UE receives packets, it executes the following tasks:
- compute the SINR for all the sub channel used in the downlink
- delives the computed SINRs to the device (these values will be used to obtaine CQI feedbacks)
- forward the packet to the device
For the uplink, the packet transmission is similar. Furthermore, in this case, only the eNB receives packets sent by an UE.
Two example has been developed to show how the packet transmission/reception work into the LTE module.
./waf --run lte-phy-downlink
./waf --run lte-phy-uplink