diff -r 7fdad61b88f1 -r 8f1a53d3f6ca src/lte/model/ue-phy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lte/model/ue-phy.h Fri Mar 04 01:26:54 2011 +0000 @@ -0,0 +1,109 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Giuseppe Piro + */ + +#ifndef UE_PHY_H +#define UE_PHY_H + + +#include "lte-phy.h" + +namespace ns3 { + +class PacketBurst; +class LteNetDevice; + +/** + * The LteSpectrumPhy models the physical layer of LTE + */ +class UeLtePhy : public LtePhy +{ + +public: + UeLtePhy (); + + /** + * \brief Create the physical layer + * \param d the device where the physical layer is attached + */ + UeLtePhy (Ptr d); + + virtual ~UeLtePhy (); + static TypeId GetTypeId (void); + + /** + * \brief Send the packet to the channel + * \param pb the burst of packet to send + * \return true if + */ + virtual bool SendPacket (Ptr pb); + + /** + * \brief Create the PSD for the TX + * \return the pointer to the PSD + */ + virtual Ptr CreateTxPowerSpectralDensity (); + + /** + * \brief Update available channel for TX + */ + virtual void DoSetUplinkSubChannels (); + + /** + * \brief Set a list of sub channels to use in TX + * \param mask a list of sub channels + */ + void SetSubChannelsForTransmission (std::vector mask); + /** + * \brief Get a list of sub channels to use in RX + * \return a list of sub channels + */ + std::vector GetSubChannelsForTransmission (void); + + /** + * \brief Get a list of sub channels to use in RX + * \param mask list of sub channels + */ + void SetSubChannelsForReception (std::vector mask); + /** + * \brief Get a list of sub channels to use in RX + * \return a list of sub channels + */ + std::vector GetSubChannelsForReception (void); + + + /** + * \brief Create CQI feedbacks from SINR values. SINR values are + * computed at the physical layer when is received a signal from the eNB + * \param sinr list of SINR values + */ + void CreateCqiFeedbacks (std::vector sinr); + + virtual void SendIdealControlMessage (Ptr msg); + virtual void ReceiveIdealControlMessage (Ptr msg); + +private: + std::vector m_subChannelsForTransmission; + std::vector m_subChannelsForReception; +}; + + +} + +#endif /* UE_PHY_H */