Browse Source

renamed several LTE files and classes

ndnSIM-v1
CTTC 15 years ago
parent
commit
365394dff1
  1. 44
      src/lte/helper/lena-helper.cc
  2. 4
      src/lte/helper/lena-helper.h
  3. 2
      src/lte/model/enb-lte-spectrum-phy.cc
  4. 2
      src/lte/model/enb-lte-spectrum-phy.h
  5. 2
      src/lte/model/ideal-control-messages.cc
  6. 16
      src/lte/model/lte-amc.cc
  7. 4
      src/lte/model/lte-amc.h
  8. 24
      src/lte/model/lte-enb-mac.cc
  9. 4
      src/lte/model/lte-enb-mac.h
  10. 58
      src/lte/model/lte-enb-net-device.cc
  11. 22
      src/lte/model/lte-enb-net-device.h
  12. 80
      src/lte/model/lte-enb-phy.cc
  13. 18
      src/lte/model/lte-enb-phy.h
  14. 2
      src/lte/model/lte-net-device.cc
  15. 16
      src/lte/model/lte-ue-mac.cc
  16. 2
      src/lte/model/lte-ue-mac.h
  17. 48
      src/lte/model/lte-ue-net-device.cc
  18. 32
      src/lte/model/lte-ue-net-device.h
  19. 88
      src/lte/model/lte-ue-phy.cc
  20. 22
      src/lte/model/lte-ue-phy.h
  21. 8
      src/lte/model/rr-ff-mac-scheduler.cc
  22. 20
      src/lte/wscript

44
src/lte/helper/lena-helper.cc

@ -27,15 +27,15 @@
#include <ns3/lte-ue-mac.h>
#include <ns3/lte-enb-mac.h>
#include <ns3/enb-phy.h>
#include <ns3/ue-phy.h>
#include <ns3/lte-enb-phy.h>
#include <ns3/lte-ue-phy.h>
#include <ns3/lte-spectrum-phy.h>
#include <ns3/lte-sinr-chunk-processor.h>
#include <ns3/single-model-spectrum-channel.h>
#include <ns3/friis-spectrum-propagation-loss.h>
#include <ns3/enb-net-device.h>
#include <ns3/ue-net-device.h>
#include <ns3/lte-enb-net-device.h>
#include <ns3/lte-ue-net-device.h>
#include <ns3/lte-spectrum-value-helper.h>
@ -102,7 +102,7 @@ LenaHelper::SetUeDeviceAttribute (std::string name, const AttributeValue &value)
Ptr<NetDevice>
LenaHelper::InstallSingleEnbDevice (Ptr<Node> n)
{
Ptr<EnbLtePhy> phy = CreateObject<EnbLtePhy> ();
Ptr<LteEnbPhy> phy = CreateObject<LteEnbPhy> ();
Ptr<LteSpectrumPhy> dlPhy = CreateObject<LteSpectrumPhy> ();
Ptr<LteSpectrumPhy> ulPhy = CreateObject<LteSpectrumPhy> ();
@ -123,14 +123,14 @@ LenaHelper::InstallSingleEnbDevice (Ptr<Node> n)
m_uplinkChannel->AddRx (ulPhy);
Ptr<EnbNetDevice> dev = CreateObject<EnbNetDevice> (n, phy);
Ptr<LteEnbNetDevice> dev = CreateObject<LteEnbNetDevice> (n, phy);
phy->SetDevice (dev);
dlPhy->SetDevice (dev);
ulPhy->SetDevice (dev);
n->AddDevice (dev);
Ptr<LteEnbMac> mac = dev->GetMac ();
ulPhy->SetPhyMacRxEndOkCallback (MakeCallback (&EnbLtePhy::PhyPduReceived, phy));
ulPhy->SetPhyMacRxEndOkCallback (MakeCallback (&LteEnbPhy::PhyPduReceived, phy));
dev->Start ();
return dev;
@ -139,7 +139,7 @@ LenaHelper::InstallSingleEnbDevice (Ptr<Node> n)
Ptr<NetDevice>
LenaHelper::InstallSingleUeDevice (Ptr<Node> n)
{
Ptr<UeLtePhy> phy = CreateObject<UeLtePhy> ();
Ptr<LteUePhy> phy = CreateObject<LteUePhy> ();
Ptr<LteSpectrumPhy> dlPhy = CreateObject<LteSpectrumPhy> ();
Ptr<LteSpectrumPhy> ulPhy = CreateObject<LteSpectrumPhy> ();
@ -163,14 +163,14 @@ LenaHelper::InstallSingleUeDevice (Ptr<Node> n)
m_downlinkChannel->AddRx (dlPhy);
Ptr<UeNetDevice> dev = CreateObject<UeNetDevice> (n, phy);
Ptr<LteUeNetDevice> dev = CreateObject<LteUeNetDevice> (n, phy);
phy->SetDevice (dev);
dlPhy->SetDevice (dev);
ulPhy->SetDevice (dev);
n->AddDevice (dev);
Ptr<LteUeMac> mac = dev->GetMac ();
dlPhy->SetPhyMacRxEndOkCallback (MakeCallback (&UeLtePhy::PhyPduReceived, phy));
dlPhy->SetPhyMacRxEndOkCallback (MakeCallback (&LteUePhy::PhyPduReceived, phy));
dev->Start ();
return dev;
@ -190,19 +190,19 @@ void
LenaHelper::Attach (Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice)
{
// setup RRC connection
Ptr<LteEnbRrc> enbRrc = enbDevice->GetObject<EnbNetDevice> ()->GetRrc ();
Ptr<LteEnbRrc> enbRrc = enbDevice->GetObject<LteEnbNetDevice> ()->GetRrc ();
uint16_t rnti = enbRrc->AddUe ();
Ptr<LteUeRrc> ueRrc = ueDevice->GetObject<UeNetDevice> ()->GetRrc ();
Ptr<LteUeRrc> ueRrc = ueDevice->GetObject<LteUeNetDevice> ()->GetRrc ();
ueRrc->ConfigureUe (rnti);
// attach UE PHY to eNB
ueDevice->GetObject<UeNetDevice> ()->SetTargetEnb (enbDevice->GetObject<EnbNetDevice> ());
ueDevice->GetObject<LteUeNetDevice> ()->SetTargetEnb (enbDevice->GetObject<LteEnbNetDevice> ());
// WILD HACK - should be done through PHY SAP, probably passing by RRC
Ptr<UeLtePhy> uePhy = ueDevice->GetObject<UeNetDevice> ()->GetPhy ();
Ptr<LteUePhy> uePhy = ueDevice->GetObject<LteUeNetDevice> ()->GetPhy ();
uePhy->SetRnti (rnti);
Ptr<EnbLtePhy> enbPhy = enbDevice->GetObject<EnbNetDevice> ()->GetPhy ();
Ptr<LteEnbPhy> enbPhy = enbDevice->GetObject<LteEnbNetDevice> ()->GetPhy ();
enbPhy->AddUePhy (rnti, uePhy);
}
@ -220,9 +220,9 @@ LenaHelper::ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer)
void
LenaHelper::ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer)
{
Ptr<EnbNetDevice> enbDevice = ueDevice->GetObject<UeNetDevice> ()->GetTargetEnb ();
Ptr<LteEnbRrc> enbRrc = enbDevice->GetObject<EnbNetDevice> ()->GetRrc ();
Ptr<LteUeRrc> ueRrc = ueDevice->GetObject<UeNetDevice> ()->GetRrc ();
Ptr<LteEnbNetDevice> enbDevice = ueDevice->GetObject<LteUeNetDevice> ()->GetTargetEnb ();
Ptr<LteEnbRrc> enbRrc = enbDevice->GetObject<LteEnbNetDevice> ()->GetRrc ();
Ptr<LteUeRrc> ueRrc = ueDevice->GetObject<LteUeNetDevice> ()->GetRrc ();
uint16_t rnti = ueRrc->GetRnti ();
uint8_t lcid = enbRrc->SetupRadioBearer (rnti, bearer);
ueRrc->SetupRadioBearer (rnti, bearer, lcid);
@ -240,8 +240,8 @@ LenaHelper::EnableLogComponents (void)
LogComponentEnable ("RrPacketScheduler", LOG_LEVEL_ALL);
LogComponentEnable ("LtePhy", LOG_LEVEL_ALL);
LogComponentEnable ("EnbLtePhy", LOG_LEVEL_ALL);
LogComponentEnable ("UeLtePhy", LOG_LEVEL_ALL);
LogComponentEnable ("LteEnbPhy", LOG_LEVEL_ALL);
LogComponentEnable ("LteUePhy", LOG_LEVEL_ALL);
LogComponentEnable ("LteSpectrumPhy", LOG_LEVEL_ALL);
LogComponentEnable ("LteInterference", LOG_LEVEL_ALL);
@ -255,8 +255,8 @@ LenaHelper::EnableLogComponents (void)
LogComponentEnable ("PathLossModel", LOG_LEVEL_ALL);
LogComponentEnable ("LteNetDevice", LOG_LEVEL_ALL);
LogComponentEnable ("UeNetDevice", LOG_LEVEL_ALL);
LogComponentEnable ("EnbNetDevice", LOG_LEVEL_ALL);
LogComponentEnable ("LteUeNetDevice", LOG_LEVEL_ALL);
LogComponentEnable ("LteEnbNetDevice", LOG_LEVEL_ALL);
}

4
src/lte/helper/lena-helper.h

@ -34,8 +34,8 @@
namespace ns3 {
class UeLtePhy;
class EnbLtePhy;
class LteUePhy;
class LteEnbPhy;
class SpectrumChannel;

2
src/lte/model/enb-lte-spectrum-phy.cc

@ -80,7 +80,7 @@ EnbLteSpectrumPhy::CalcSinrValues (Ptr <const SpectrumValue> rxPsd,Ptr <const Sp
*
* Downlink:
* the UE receives the signal from the eNB. It computes the SINR and tranfers
* it to the UeNetDevice. The UeNetDevice, receiving SINR values, uses the AMC module to convert
* it to the LteUeNetDevice. The LteUeNetDevice, receiving SINR values, uses the AMC module to convert
* SINR to CQI. Then, it will send CQI feedback to the eNB.
*
* Uplink:

2
src/lte/model/enb-lte-spectrum-phy.h

@ -27,7 +27,7 @@
namespace ns3 {
class LteNetDevice;
class EnbNetDevice;
class LteEnbNetDevice;
/**
* The EnbLteSpectrumPhy models the UL/DL physical layer for the eNodeB device

2
src/lte/model/ideal-control-messages.cc

@ -24,7 +24,7 @@
#include "ns3/uinteger.h"
#include "ns3/log.h"
#include "lte-net-device.h"
#include "ue-net-device.h"
#include "lte-ue-net-device.h"
NS_LOG_COMPONENT_DEFINE ("IdealControlMessage");

16
src/lte/model/amc-module.cc → src/lte/model/lte-amc.cc

@ -21,13 +21,13 @@
*/
#include "amc-module.h"
#include "lte-amc.h"
#include <ns3/log.h>
#include <ns3/assert.h>
#include <math.h>
#include <ns3/spectrum-value.h>
NS_LOG_COMPONENT_DEFINE ("AmcModule");
NS_LOG_COMPONENT_DEFINE ("LteAmc");
namespace ns3 {
@ -226,7 +226,7 @@ int TransportBlockSizeTable [110][27] = {
int
AmcModule::GetCqiFromSpectralEfficiency (double s)
LteAmc::GetCqiFromSpectralEfficiency (double s)
{
NS_LOG_FUNCTION (s);
int cqi = 1; // == CqiIndex[0]
@ -240,7 +240,7 @@ AmcModule::GetCqiFromSpectralEfficiency (double s)
int
AmcModule::GetMcsFromCqi (int cqi)
LteAmc::GetMcsFromCqi (int cqi)
{
NS_LOG_FUNCTION (cqi);
double spectralEfficiency = SpectralEfficiencyForCqiIndex[cqi - 1];
@ -255,7 +255,7 @@ AmcModule::GetMcsFromCqi (int cqi)
int
AmcModule::GetTbSizeFromMcs (int mcs)
LteAmc::GetTbSizeFromMcs (int mcs)
{
NS_LOG_FUNCTION (mcs);
NS_LOG_FUNCTION (mcs << TransportBlockSize[mcs]);
@ -263,7 +263,7 @@ AmcModule::GetTbSizeFromMcs (int mcs)
}
int
AmcModule::GetTbSizeFromMcs (int mcs, int nprb)
LteAmc::GetTbSizeFromMcs (int mcs, int nprb)
{
NS_LOG_FUNCTION (mcs);
NS_LOG_FUNCTION (mcs << TransportBlockSize[mcs]);
@ -277,7 +277,7 @@ AmcModule::GetTbSizeFromMcs (int mcs, int nprb)
double
AmcModule::GetSpectralEfficiencyFromCqi (int cqi)
LteAmc::GetSpectralEfficiencyFromCqi (int cqi)
{
NS_LOG_FUNCTION (cqi);
NS_LOG_FUNCTION (cqi << SpectralEfficiencyForCqiIndex[cqi - 1]);
@ -286,7 +286,7 @@ AmcModule::GetSpectralEfficiencyFromCqi (int cqi)
std::vector<int>
AmcModule::CreateCqiFeedbacks (const SpectrumValue& sinr)
LteAmc::CreateCqiFeedbacks (const SpectrumValue& sinr)
{
NS_LOG_FUNCTION_NOARGS ();

4
src/lte/model/amc-module.h → src/lte/model/lte-amc.h

@ -30,14 +30,14 @@ namespace ns3 {
class SpectrumValue;
/**
* \brief The AmcModule class implements the Adaptive Modulation And Coding Scheme
* \brief The LteAmc class implements the Adaptive Modulation And Coding Scheme
* as proposed in 3GPP TSG-RAN WG1 - R1-081483
* http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_52b/Docs/R1-081483.zip
*
* \note All the methods of this class are static, so you'll never
* need to create and manage instances of this class.
*/
class AmcModule
class LteAmc
{
public:

24
src/lte/model/lte-enb-mac.cc

@ -24,14 +24,14 @@
#include <ns3/pointer.h>
#include <ns3/packet.h>
#include "amc-module.h"
#include "lte-amc.h"
#include "ideal-control-messages.h"
#include "enb-net-device.h"
#include "ue-net-device.h"
#include "lte-enb-net-device.h"
#include "lte-ue-net-device.h"
#include <ns3/lte-enb-mac.h>
#include <ns3/lte-mac-tag.h>
#include <ns3/ue-phy.h>
#include <ns3/lte-ue-phy.h>
NS_LOG_COMPONENT_DEFINE ("LteEnbMac");
@ -255,12 +255,12 @@ EnbMemberFfMacCschedSapUser::CschedCellConfigUpdateInd (const struct CschedCellC
// ---------- PHY-SAP
class EnbMemberEnbLtePhySapUser : public LteEnbPhySapUser
class EnbMemberLteEnbPhySapUser : public LteEnbPhySapUser
{
public:
EnbMemberEnbLtePhySapUser (LteEnbMac* mac);
EnbMemberLteEnbPhySapUser (LteEnbMac* mac);
// inherited from EnbLtePhySapUser
// inherited from LteEnbPhySapUser
virtual void ReceivePhyPdu (Ptr<Packet> p);
virtual void SubframeIndication (uint32_t frameNo, uint32_t subframeNo);
virtual void ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg);
@ -269,25 +269,25 @@ private:
LteEnbMac* m_mac;
};
EnbMemberEnbLtePhySapUser::EnbMemberEnbLtePhySapUser (LteEnbMac* mac) : m_mac (mac)
EnbMemberLteEnbPhySapUser::EnbMemberLteEnbPhySapUser (LteEnbMac* mac) : m_mac (mac)
{
}
void
EnbMemberEnbLtePhySapUser::ReceivePhyPdu (Ptr<Packet> p)
EnbMemberLteEnbPhySapUser::ReceivePhyPdu (Ptr<Packet> p)
{
m_mac->DoReceivePhyPdu (p);
}
void
EnbMemberEnbLtePhySapUser::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
EnbMemberLteEnbPhySapUser::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
{
m_mac->DoSubframeIndication (frameNo, subframeNo);
}
void
EnbMemberEnbLtePhySapUser::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
EnbMemberLteEnbPhySapUser::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
{
m_mac->DoReceiveIdealControlMessage (msg);
}
@ -316,7 +316,7 @@ LteEnbMac::LteEnbMac ()
m_schedSapUser = new EnbMemberFfMacSchedSapUser (this);
m_cschedSapUser = new EnbMemberFfMacCschedSapUser (this);
m_enbPhySapUser = new EnbMemberEnbLtePhySapUser (this);
m_enbPhySapUser = new EnbMemberLteEnbPhySapUser (this);
}

4
src/lte/model/lte-enb-mac.h

@ -55,7 +55,7 @@ class LteEnbMac : public Object
friend class EnbMemberLteMacSapProvider;
friend class EnbMemberFfMacSchedSapUser;
friend class EnbMemberFfMacCschedSapUser;
friend class EnbMemberEnbLtePhySapUser;
friend class EnbMemberLteEnbPhySapUser;
public:
static TypeId GetTypeId (void);
@ -165,7 +165,7 @@ private:
void DoSchedUlConfigInd (FfMacSchedSapUser::SchedUlConfigIndParameters params);
/**
* \brief Forwarded from EnbLtePhySapUser: trigger the start from a new frame
* \brief Forwarded from LteEnbPhySapUser: trigger the start from a new frame
*
* \param frameNo frame number
* \param subframeNo subframe number

58
src/lte/model/enb-net-device.cc → src/lte/model/lte-enb-net-device.cc

@ -31,53 +31,53 @@
#include "ns3/trace-source-accessor.h"
#include "ns3/pointer.h"
#include "ns3/enum.h"
#include "amc-module.h"
#include "lte-amc.h"
#include "lte-enb-mac.h"
#include "enb-net-device.h"
#include "lte-enb-net-device.h"
#include "lte-enb-rrc.h"
#include "ue-net-device.h"
#include "enb-phy.h"
#include "lte-ue-net-device.h"
#include "lte-enb-phy.h"
#include "rr-ff-mac-scheduler.h"
NS_LOG_COMPONENT_DEFINE ("EnbNetDevice");
NS_LOG_COMPONENT_DEFINE ("LteEnbNetDevice");
namespace ns3 {
NS_OBJECT_ENSURE_REGISTERED ( EnbNetDevice);
NS_OBJECT_ENSURE_REGISTERED ( LteEnbNetDevice);
uint16_t EnbNetDevice::m_cellIdCounter = 0;
uint16_t LteEnbNetDevice::m_cellIdCounter = 0;
TypeId EnbNetDevice::GetTypeId (void)
TypeId LteEnbNetDevice::GetTypeId (void)
{
static TypeId
tid =
TypeId ("ns3::EnbNetDevice")
TypeId ("ns3::LteEnbNetDevice")
.SetParent<LteNetDevice> ();
return tid;
}
EnbNetDevice::EnbNetDevice (void)
LteEnbNetDevice::LteEnbNetDevice (void)
{
NS_LOG_FUNCTION (this);
NS_FATAL_ERROR ("This constructor should not be called");
InitEnbNetDevice ();
InitLteEnbNetDevice ();
}
EnbNetDevice::EnbNetDevice (Ptr<Node> node, Ptr<EnbLtePhy> phy)
LteEnbNetDevice::LteEnbNetDevice (Ptr<Node> node, Ptr<LteEnbPhy> phy)
: m_phy (phy)
{
NS_LOG_FUNCTION (this);
InitEnbNetDevice ();
InitLteEnbNetDevice ();
SetNode (node);
}
EnbNetDevice::~EnbNetDevice (void)
LteEnbNetDevice::~LteEnbNetDevice (void)
{
NS_LOG_FUNCTION (this);
}
void
EnbNetDevice::DoDispose ()
LteEnbNetDevice::DoDispose ()
{
NS_LOG_FUNCTION (this);
@ -95,7 +95,7 @@ EnbNetDevice::DoDispose ()
void
EnbNetDevice::InitEnbNetDevice (void)
LteEnbNetDevice::InitLteEnbNetDevice (void)
{
NS_LOG_FUNCTION (this);
@ -122,31 +122,31 @@ EnbNetDevice::InitEnbNetDevice (void)
m_scheduler->SetFfMacSchedSapUser (m_mac->GetFfMacSchedSapUser ());
m_scheduler->SetFfMacCschedSapUser (m_mac->GetFfMacCschedSapUser ());
GetPhy ()->GetObject<EnbLtePhy> ()->SetLteEnbPhySapUser (m_mac->GetLteEnbPhySapUser ());
m_mac->SetLteEnbPhySapProvider (GetPhy ()->GetObject<EnbLtePhy> ()->GetLteEnbPhySapProvider ());
GetPhy ()->GetObject<LteEnbPhy> ()->SetLteEnbPhySapUser (m_mac->GetLteEnbPhySapUser ());
m_mac->SetLteEnbPhySapProvider (GetPhy ()->GetObject<LteEnbPhy> ()->GetLteEnbPhySapProvider ());
m_rrc->ConfigureCell (25, 25);
NS_ASSERT_MSG (m_cellIdCounter < 65535, "max num eNBs exceeded");
m_cellId = ++m_cellIdCounter;
// WILD HACK - should use the PHY SAP instead. Probably should handle this through the RRC
GetPhy ()->GetObject<EnbLtePhy> ()->DoSetBandwidth (25,25);
GetPhy ()->GetObject<EnbLtePhy> ()->DoSetCellId (m_cellId);
GetPhy ()->GetObject<LteEnbPhy> ()->DoSetBandwidth (25,25);
GetPhy ()->GetObject<LteEnbPhy> ()->DoSetCellId (m_cellId);
Simulator::ScheduleNow (&EnbLtePhy::StartFrame, GetPhy ()->GetObject<EnbLtePhy> ());
Simulator::ScheduleNow (&LteEnbPhy::StartFrame, GetPhy ()->GetObject<LteEnbPhy> ());
}
Ptr<LteEnbMac>
EnbNetDevice::GetMac (void)
LteEnbNetDevice::GetMac (void)
{
NS_LOG_FUNCTION (this);
return m_mac;
}
Ptr<EnbLtePhy>
EnbNetDevice::GetPhy (void) const
Ptr<LteEnbPhy>
LteEnbNetDevice::GetPhy (void) const
{
NS_LOG_FUNCTION (this);
return m_phy;
@ -154,7 +154,7 @@ EnbNetDevice::GetPhy (void) const
bool
EnbNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
LteEnbNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
const Mac48Address& dest, uint16_t protocolNumber)
{
NS_LOG_FUNCTION (this << source << dest << protocolNumber);
@ -184,7 +184,7 @@ EnbNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
void
EnbNetDevice::DoReceive (Ptr<Packet> p)
LteEnbNetDevice::DoReceive (Ptr<Packet> p)
{
NS_LOG_FUNCTION (this << p);
ForwardUp (p->Copy ());
@ -192,7 +192,7 @@ EnbNetDevice::DoReceive (Ptr<Packet> p)
void
EnbNetDevice::SendIdealPdcchMessage (void)
LteEnbNetDevice::SendIdealPdcchMessage (void)
{
NS_LOG_FUNCTION (this);
/*
@ -203,13 +203,13 @@ EnbNetDevice::SendIdealPdcchMessage (void)
}
Ptr<LteEnbRrc>
EnbNetDevice::GetRrc ()
LteEnbNetDevice::GetRrc ()
{
return m_rrc;
}
uint16_t
EnbNetDevice::GetCellId ()
LteEnbNetDevice::GetCellId ()
{
return m_cellId;
}

22
src/lte/model/enb-net-device.h → src/lte/model/lte-enb-net-device.h

@ -19,8 +19,8 @@
* Author: Marco Miozzo <marco.miozzo@cttc.es> : Update to FF API Architecture
*/
#ifndef ENB_NET_DEVICE_H
#define ENB_NET_DEVICE_H
#ifndef LTE_ENB_NET_DEVICE_H
#define LTE_ENB_NET_DEVICE_H
#include "lte-net-device.h"
#include "ns3/event-id.h"
@ -37,7 +37,7 @@ class Packet;
class PacketBurst;
class Node;
class LtePhy;
class EnbLtePhy;
class LteEnbPhy;
class LteEnbMac;
class LteEnbRrc;
class RrFfMacScheduler;
@ -46,26 +46,26 @@ class RrFfMacScheduler;
/**
* The eNodeB device implementation
*/
class EnbNetDevice : public LteNetDevice
class LteEnbNetDevice : public LteNetDevice
{
public:
static TypeId GetTypeId (void);
EnbNetDevice (void);
LteEnbNetDevice (void);
/**
* \brief Create eNB net device
* \param node the network node
* \param phy the physical object attache dto it
*/
EnbNetDevice (Ptr<Node> node, Ptr<EnbLtePhy> phy);
LteEnbNetDevice (Ptr<Node> node, Ptr<LteEnbPhy> phy);
virtual ~EnbNetDevice (void);
virtual ~LteEnbNetDevice (void);
virtual void DoDispose (void);
/**
* \brief Initialize all parameters of this device
*/
void InitEnbNetDevice (void);
void InitLteEnbNetDevice (void);
/**
* \return a pointer to the MAC
@ -75,7 +75,7 @@ public:
/**
* \return a pointer to the physical layer.
*/
Ptr<EnbLtePhy> GetPhy (void) const;
Ptr<LteEnbPhy> GetPhy (void) const;
@ -106,7 +106,7 @@ private:
Ptr<LteEnbMac> m_mac;
Ptr<EnbLtePhy> m_phy;
Ptr<LteEnbPhy> m_phy;
Ptr<LteEnbRrc> m_rrc;
@ -119,4 +119,4 @@ private:
} // namespace ns3
#endif /* ENB_NET_DEVICE_H */
#endif /* LTE_ENB_NET_DEVICE_H */

80
src/lte/model/enb-phy.cc → src/lte/model/lte-enb-phy.cc

@ -24,15 +24,15 @@
#include <math.h>
#include <ns3/simulator.h>
#include "ns3/spectrum-error-model.h"
#include "enb-phy.h"
#include "lte-enb-phy.h"
#include "lte-net-device.h"
#include "lte-spectrum-value-helper.h"
#include "ideal-control-messages.h"
#include "enb-net-device.h"
#include "lte-enb-net-device.h"
#include "lte-enb-mac.h"
NS_LOG_COMPONENT_DEFINE ("EnbLtePhy");
NS_LOG_COMPONENT_DEFINE ("LteEnbPhy");
namespace ns3 {
@ -45,7 +45,7 @@ namespace ns3 {
class EnbMemberLteEnbPhySapProvider : public LteEnbPhySapProvider
{
public:
EnbMemberLteEnbPhySapProvider (EnbLtePhy* phy);
EnbMemberLteEnbPhySapProvider (LteEnbPhy* phy);
// inherited from LteEnbPhySapProvider
virtual void SendMacPdu (Ptr<Packet> p);
@ -54,10 +54,10 @@ public:
virtual void SendIdealControlMessage (Ptr<IdealControlMessage> msg);
private:
EnbLtePhy* m_phy;
LteEnbPhy* m_phy;
};
EnbMemberLteEnbPhySapProvider::EnbMemberLteEnbPhySapProvider (EnbLtePhy* phy) : m_phy (phy)
EnbMemberLteEnbPhySapProvider::EnbMemberLteEnbPhySapProvider (LteEnbPhy* phy) : m_phy (phy)
{
}
@ -89,15 +89,15 @@ EnbMemberLteEnbPhySapProvider::SendIdealControlMessage (Ptr<IdealControlMessage>
////////////////////////////////////////
// generic EnbLtePhy methods
// generic LteEnbPhy methods
////////////////////////////////////////
NS_OBJECT_ENSURE_REGISTERED (EnbLtePhy);
NS_OBJECT_ENSURE_REGISTERED (LteEnbPhy);
EnbLtePhy::EnbLtePhy ()
LteEnbPhy::LteEnbPhy ()
: m_nrFrames (0),
m_nrSubFrames (0)
{
@ -106,28 +106,28 @@ EnbLtePhy::EnbLtePhy ()
TypeId
EnbLtePhy::GetTypeId (void)
LteEnbPhy::GetTypeId (void)
{
static TypeId tid = TypeId ("ns3::EnbLtePhy")
static TypeId tid = TypeId ("ns3::LteEnbPhy")
.SetParent<LtePhy> ()
.AddConstructor<EnbLtePhy> ()
.AddConstructor<LteEnbPhy> ()
;
return tid;
}
EnbLtePhy::~EnbLtePhy ()
LteEnbPhy::~LteEnbPhy ()
{
}
void
EnbLtePhy::SetLteEnbPhySapUser (LteEnbPhySapUser* s)
LteEnbPhy::SetLteEnbPhySapUser (LteEnbPhySapUser* s)
{
m_enbPhySapUser = s;
}
LteEnbPhySapProvider*
EnbLtePhy::GetLteEnbPhySapProvider ()
LteEnbPhy::GetLteEnbPhySapProvider ()
{
return (m_enbPhySapProvider);
}
@ -135,13 +135,13 @@ EnbLtePhy::GetLteEnbPhySapProvider ()
bool
EnbLtePhy::AddUePhy (uint8_t rnti, Ptr<UeLtePhy> phy)
LteEnbPhy::AddUePhy (uint8_t rnti, Ptr<LteUePhy> phy)
{
std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
std::map <uint8_t, Ptr<LteUePhy> >::iterator it;
it = m_ueAttached.find (rnti);
if (it == m_ueAttached.end ())
{
m_ueAttached.insert (std::pair<uint8_t, Ptr<UeLtePhy> > (rnti, phy));
m_ueAttached.insert (std::pair<uint8_t, Ptr<LteUePhy> > (rnti, phy));
return (true);
}
else
@ -152,9 +152,9 @@ EnbLtePhy::AddUePhy (uint8_t rnti, Ptr<UeLtePhy> phy)
}
bool
EnbLtePhy::DeleteUePhy (uint8_t rnti)
LteEnbPhy::DeleteUePhy (uint8_t rnti)
{
std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
std::map <uint8_t, Ptr<LteUePhy> >::iterator it;
it = m_ueAttached.find (rnti);
if (it == m_ueAttached.end ())
{
@ -171,7 +171,7 @@ EnbLtePhy::DeleteUePhy (uint8_t rnti)
void
EnbLtePhy::DoSendMacPdu (Ptr<Packet> p)
LteEnbPhy::DoSendMacPdu (Ptr<Packet> p)
{
// NS_LOG_FUNCTION (this << pb->GetNPackets () << pb->GetSize ());
// return GetDownlinkSpectrumPhy ()->StartTx (pb);
@ -182,14 +182,14 @@ EnbLtePhy::DoSendMacPdu (Ptr<Packet> p)
void
EnbLtePhy::PhyPduReceived (Ptr<Packet> p)
LteEnbPhy::PhyPduReceived (Ptr<Packet> p)
{
NS_LOG_FUNCTION (this);
m_enbPhySapUser->ReceivePhyPdu (p);
}
void
EnbLtePhy::DoSetDownlinkSubChannels ()
LteEnbPhy::DoSetDownlinkSubChannels ()
{
NS_LOG_FUNCTION (this);
Ptr<SpectrumValue> txPsd = CreateTxPowerSpectralDensity ();
@ -198,7 +198,7 @@ EnbLtePhy::DoSetDownlinkSubChannels ()
Ptr<SpectrumValue>
EnbLtePhy::CreateTxPowerSpectralDensity ()
LteEnbPhy::CreateTxPowerSpectralDensity ()
{
NS_LOG_FUNCTION (this);
@ -210,14 +210,14 @@ EnbLtePhy::CreateTxPowerSpectralDensity ()
void
EnbLtePhy::CalcChannelQualityForUe (std::vector <double> sinr, Ptr<LteSpectrumPhy> ue)
LteEnbPhy::CalcChannelQualityForUe (std::vector <double> sinr, Ptr<LteSpectrumPhy> ue)
{
NS_LOG_FUNCTION (this);
}
void
EnbLtePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
LteEnbPhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
{
NS_LOG_FUNCTION (this << msg);
// queues the message (wait for MAC-PHY delay)
@ -227,7 +227,7 @@ EnbLtePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
void
EnbLtePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
LteEnbPhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
{
NS_LOG_FUNCTION (this << msg);
m_enbPhySapUser->ReceiveIdealControlMessage (msg);
@ -236,7 +236,7 @@ EnbLtePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
void
EnbLtePhy::StartFrame (void)
LteEnbPhy::StartFrame (void)
{
NS_LOG_FUNCTION (this);
@ -248,7 +248,7 @@ EnbLtePhy::StartFrame (void)
void
EnbLtePhy::StartSubFrame (void)
LteEnbPhy::StartSubFrame (void)
{
NS_LOG_FUNCTION (this);
@ -267,7 +267,7 @@ EnbLtePhy::StartSubFrame (void)
Ptr<IdealControlMessage> msg = (*it);
if (msg->GetMessageType () == IdealControlMessage::DL_DCI)
{
std::map <uint8_t, Ptr<UeLtePhy> >::iterator it2;
std::map <uint8_t, Ptr<LteUePhy> >::iterator it2;
Ptr<DlDciIdealControlMessage> dci = DynamicCast<DlDciIdealControlMessage> (msg);
it2 = m_ueAttached.find (dci->GetDci ().m_rnti);
@ -297,7 +297,7 @@ EnbLtePhy::StartSubFrame (void)
}
else if (msg->GetMessageType () == IdealControlMessage::UL_DCI)
{
std::map <uint8_t, Ptr<UeLtePhy> >::iterator it2;
std::map <uint8_t, Ptr<LteUePhy> >::iterator it2;
Ptr<UlDciIdealControlMessage> dci = DynamicCast<UlDciIdealControlMessage> (msg);
it2 = m_ueAttached.find (dci->GetDci ().m_rnti);
@ -324,50 +324,50 @@ EnbLtePhy::StartSubFrame (void)
}
// trigger the MAC
Ptr<LteEnbMac> macEntity = GetDevice ()->GetObject<EnbNetDevice> ()->GetMac ();
Ptr<LteEnbMac> macEntity = GetDevice ()->GetObject<LteEnbNetDevice> ()->GetMac ();
m_enbPhySapUser->SubframeIndication (m_nrFrames, m_nrSubFrames);
// trigger the UE(s)
std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
std::map <uint8_t, Ptr<LteUePhy> >::iterator it;
for (it = m_ueAttached.begin (); it != m_ueAttached.end (); it++)
{
(*it).second->SubframeIndication (m_nrFrames, m_nrSubFrames);
}
Simulator::Schedule (Seconds (GetTti ()),
&EnbLtePhy::EndSubFrame,
&LteEnbPhy::EndSubFrame,
this);
}
void
EnbLtePhy::EndSubFrame (void)
LteEnbPhy::EndSubFrame (void)
{
NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ());
if (m_nrSubFrames == 10)
{
Simulator::ScheduleNow (&EnbLtePhy::EndFrame, this);
Simulator::ScheduleNow (&LteEnbPhy::EndFrame, this);
}
else
{
Simulator::ScheduleNow (&EnbLtePhy::StartSubFrame, this);
Simulator::ScheduleNow (&LteEnbPhy::StartSubFrame, this);
}
}
void
EnbLtePhy::EndFrame (void)
LteEnbPhy::EndFrame (void)
{
NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ());
Simulator::ScheduleNow (&EnbLtePhy::StartFrame, this);
Simulator::ScheduleNow (&LteEnbPhy::StartFrame, this);
}
void
EnbLtePhy::GenerateCqiFeedback (const SpectrumValue& sinr)
LteEnbPhy::GenerateCqiFeedback (const SpectrumValue& sinr)
{
NS_LOG_FUNCTION (this << sinr);
}

18
src/lte/model/enb-phy.h → src/lte/model/lte-enb-phy.h

@ -26,7 +26,7 @@
#include "lte-phy.h"
#include <ns3/lte-enb-phy-sap.h>
#include <map>
#include <ns3/ue-phy.h>
#include <ns3/lte-ue-phy.h>
namespace ns3 {
@ -34,22 +34,22 @@ class PacketBurst;
class LteNetDevice;
/**
* EnbLtePhy models the physical layer for the eNodeB
* LteEnbPhy models the physical layer for the eNodeB
*/
class EnbLtePhy : public LtePhy
class LteEnbPhy : public LtePhy
{
friend class EnbMemberLteEnbPhySapProvider;
public:
EnbLtePhy ();
LteEnbPhy ();
/**
* \brief Create the eNB phy layer
* \param d the device where the phy layer is attached
*/
EnbLtePhy (Ptr<LteNetDevice> d);
virtual ~EnbLtePhy ();
LteEnbPhy (Ptr<LteNetDevice> d);
virtual ~LteEnbPhy ();
static TypeId GetTypeId (void);
@ -102,7 +102,7 @@ public:
void DoSendIdealControlMessage (Ptr<IdealControlMessage> msg);
bool AddUePhy (uint8_t rnti, Ptr<UeLtePhy> phy);
bool AddUePhy (uint8_t rnti, Ptr<LteUePhy> phy);
bool DeleteUePhy (uint8_t rnti);
@ -134,7 +134,7 @@ public:
private:
std::map <uint8_t, Ptr<UeLtePhy> > m_ueAttached;
std::map <uint8_t, Ptr<LteUePhy> > m_ueAttached;
LteEnbPhySapProvider* m_enbPhySapProvider;
LteEnbPhySapUser* m_enbPhySapUser;
@ -146,4 +146,4 @@ private:
}
#endif /* ENB_PHY_H */
#endif /* LTE_ENB_PHY_H */

2
src/lte/model/lte-net-device.cc

@ -30,7 +30,7 @@
#include "ns3/trace-source-accessor.h"
#include "ns3/pointer.h"
#include "ns3/enum.h"
#include "amc-module.h"
#include "lte-amc.h"
#include "ns3/ipv4-header.h"
#include <ns3/lte-mac-tag.h>

16
src/lte/model/lte-ue-mac.cc

@ -27,7 +27,7 @@
#include <ns3/packet-burst.h>
#include "lte-ue-mac.h"
#include "ue-net-device.h"
#include "lte-ue-net-device.h"
#include "lte-mac-tag.h"
#include <ns3/ff-mac-common.h>
#include <ns3/ideal-control-messages.h>
@ -132,10 +132,10 @@ UeMemberLteMacSapProvider::ReportBufferStatus (ReportBufferStatusParameters para
class UeMemberUeLtePhySapUser : public LteUePhySapUser
class UeMemberLteUePhySapUser : public LteUePhySapUser
{
public:
UeMemberUeLtePhySapUser (LteUeMac* mac);
UeMemberLteUePhySapUser (LteUeMac* mac);
// inherited from LtePhySapUser
virtual void ReceivePhyPdu (Ptr<Packet> p);
@ -146,26 +146,26 @@ private:
LteUeMac* m_mac;
};
UeMemberUeLtePhySapUser::UeMemberUeLtePhySapUser (LteUeMac* mac) : m_mac (mac)
UeMemberLteUePhySapUser::UeMemberLteUePhySapUser (LteUeMac* mac) : m_mac (mac)
{
}
void
UeMemberUeLtePhySapUser::ReceivePhyPdu (Ptr<Packet> p)
UeMemberLteUePhySapUser::ReceivePhyPdu (Ptr<Packet> p)
{
m_mac->DoReceivePhyPdu (p);
}
void
UeMemberUeLtePhySapUser::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
UeMemberLteUePhySapUser::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
{
NS_LOG_LOGIC (this << " UE-MAC does not yet support this primitive");
}
void
UeMemberUeLtePhySapUser::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
UeMemberLteUePhySapUser::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
{
m_mac->DoReceiveIdealControlMessage (msg);
}
@ -192,7 +192,7 @@ LteUeMac::LteUeMac ()
{
m_macSapProvider = new UeMemberLteMacSapProvider (this);
m_cmacSapProvider = new UeMemberLteUeCmacSapProvider (this);
m_uePhySapUser = new UeMemberUeLtePhySapUser (this);
m_uePhySapUser = new UeMemberLteUePhySapUser (this);
}

2
src/lte/model/lte-ue-mac.h

@ -38,7 +38,7 @@ class LteUeMac : public Object
{
friend class UeMemberLteUeCmacSapProvider;
friend class UeMemberLteMacSapProvider;
friend class UeMemberUeLtePhySapUser;
friend class UeMemberLteUePhySapUser;
public:
static TypeId GetTypeId (void);

48
src/lte/model/ue-net-device.cc → src/lte/model/lte-ue-net-device.cc

@ -31,46 +31,46 @@
#include "ns3/trace-source-accessor.h"
#include "ns3/pointer.h"
#include "ns3/enum.h"
#include "enb-net-device.h"
#include "ue-net-device.h"
#include "lte-enb-net-device.h"
#include "lte-ue-net-device.h"
#include "lte-ue-mac.h"
#include "lte-ue-rrc.h"
#include "ns3/ipv4-header.h"
#include "ns3/ipv4.h"
#include "amc-module.h"
#include "lte-amc.h"
// #include "ideal-control-messages.h"
#include <ns3/ue-phy.h>
#include <ns3/lte-ue-phy.h>
NS_LOG_COMPONENT_DEFINE ("UeNetDevice");
NS_LOG_COMPONENT_DEFINE ("LteUeNetDevice");
namespace ns3 {
NS_OBJECT_ENSURE_REGISTERED ( UeNetDevice);
NS_OBJECT_ENSURE_REGISTERED ( LteUeNetDevice);
TypeId UeNetDevice::GetTypeId (void)
TypeId LteUeNetDevice::GetTypeId (void)
{
static TypeId
tid =
TypeId ("ns3::UeNetDevice")
TypeId ("ns3::LteUeNetDevice")
.SetParent<LteNetDevice> ();
return tid;
}
UeNetDevice::UeNetDevice (void)
LteUeNetDevice::LteUeNetDevice (void)
{
NS_LOG_FUNCTION (this);
NS_FATAL_ERROR ("This constructor should not be called");
InitUeNetDevice ();
InitLteUeNetDevice ();
}
UeNetDevice::UeNetDevice (Ptr<Node> node, Ptr<UeLtePhy> phy)
LteUeNetDevice::LteUeNetDevice (Ptr<Node> node, Ptr<LteUePhy> phy)
: m_phy (phy)
{
NS_LOG_FUNCTION (this);
InitUeNetDevice ();
InitLteUeNetDevice ();
SetNode (node);
/**
@ -80,13 +80,13 @@ UeNetDevice::UeNetDevice (Ptr<Node> node, Ptr<UeLtePhy> phy)
phy->DoSetBandwidth (25,25);
}
UeNetDevice::~UeNetDevice (void)
LteUeNetDevice::~LteUeNetDevice (void)
{
NS_LOG_FUNCTION (this);
}
void
UeNetDevice::DoDispose (void)
LteUeNetDevice::DoDispose (void)
{
NS_LOG_FUNCTION (this);
m_targetEnb = 0;
@ -100,7 +100,7 @@ UeNetDevice::DoDispose (void)
}
void
UeNetDevice::InitUeNetDevice (void)
LteUeNetDevice::InitLteUeNetDevice (void)
{
NS_LOG_FUNCTION (this);
m_targetEnb = 0;
@ -117,7 +117,7 @@ UeNetDevice::InitUeNetDevice (void)
Ptr<LteUeMac>
UeNetDevice::GetMac (void)
LteUeNetDevice::GetMac (void)
{
NS_LOG_FUNCTION (this);
return m_mac;
@ -125,30 +125,30 @@ UeNetDevice::GetMac (void)
Ptr<LteUeRrc>
UeNetDevice::GetRrc (void)
LteUeNetDevice::GetRrc (void)
{
NS_LOG_FUNCTION (this);
return m_rrc;
}
Ptr<UeLtePhy>
UeNetDevice::GetPhy (void) const
Ptr<LteUePhy>
LteUeNetDevice::GetPhy (void) const
{
NS_LOG_FUNCTION (this);
return m_phy;
}
void
UeNetDevice::SetTargetEnb (Ptr<EnbNetDevice> enb)
LteUeNetDevice::SetTargetEnb (Ptr<LteEnbNetDevice> enb)
{
NS_LOG_FUNCTION (this << enb);
m_targetEnb = enb;
}
Ptr<EnbNetDevice>
UeNetDevice::GetTargetEnb (void)
Ptr<LteEnbNetDevice>
LteUeNetDevice::GetTargetEnb (void)
{
NS_LOG_FUNCTION (this);
return m_targetEnb;
@ -156,7 +156,7 @@ UeNetDevice::GetTargetEnb (void)
bool
UeNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
LteUeNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
const Mac48Address& dest, uint16_t protocolNumber)
{
NS_LOG_FUNCTION (this);
@ -168,7 +168,7 @@ UeNetDevice::DoSend (Ptr<Packet> packet, const Mac48Address& source,
void
UeNetDevice::DoReceive (Ptr<Packet> p)
LteUeNetDevice::DoReceive (Ptr<Packet> p)
{
NS_LOG_FUNCTION (this << p);

32
src/lte/model/ue-net-device.h → src/lte/model/lte-ue-net-device.h

@ -19,8 +19,8 @@
* Nicola Baldo <nbaldo@cttc.es>
*/
#ifndef UE_NET_DEVICE_H
#define UE_NET_DEVICE_H
#ifndef LTE_UE_NET_DEVICE_H
#define LTE_UE_NET_DEVICE_H
#include "lte-net-device.h"
#include "ns3/event-id.h"
@ -38,28 +38,28 @@ class Packet;
class PacketBurst;
class Node;
class LtePhy;
class UeLtePhy;
class EnbNetDevice;
class LteUePhy;
class LteEnbNetDevice;
class LteUeMac;
class LteUeRrc;
/**
* The UeNetDevice class implements the UE net device
* The LteUeNetDevice class implements the UE net device
*/
class UeNetDevice : public LteNetDevice
class LteUeNetDevice : public LteNetDevice
{
public:
static TypeId GetTypeId (void);
UeNetDevice (void);
LteUeNetDevice (void);
/**
* \brief Create an UE net device
* \param node
* \param phy
*/
UeNetDevice (Ptr<Node> node, Ptr<UeLtePhy> phy);
LteUeNetDevice (Ptr<Node> node, Ptr<LteUePhy> phy);
virtual ~UeNetDevice (void);
virtual ~LteUeNetDevice (void);
virtual void DoDispose ();
@ -67,24 +67,24 @@ public:
Ptr<LteUeRrc> GetRrc ();
Ptr<UeLtePhy> GetPhy (void) const;
Ptr<LteUePhy> GetPhy (void) const;
/**
* \brief Initialize the UE
*/
void InitUeNetDevice (void);
void InitLteUeNetDevice (void);
/**
* \brief Set the targer eNB where the UE is registered
* \param enb
*/
void SetTargetEnb (Ptr<EnbNetDevice> enb);
void SetTargetEnb (Ptr<LteEnbNetDevice> enb);
/**
* \brief Get the targer eNB where the UE is registered
* \return the pointer to the enb
*/
Ptr<EnbNetDevice> GetTargetEnb (void);
Ptr<LteEnbNetDevice> GetTargetEnb (void);
private:
@ -95,13 +95,13 @@ private:
void DoReceive (Ptr<Packet> p);
Ptr<EnbNetDevice> m_targetEnb;
Ptr<LteEnbNetDevice> m_targetEnb;
Ptr<LteUeMac> m_mac;
Ptr<UeLtePhy> m_phy;
Ptr<LteUePhy> m_phy;
Ptr<LteUeRrc> m_rrc;
};
} // namespace ns3
#endif /* UE_NET_DEVICE_H */
#endif /* LTE_UE_NET_DEVICE_H */

88
src/lte/model/ue-phy.cc → src/lte/model/lte-ue-phy.cc

@ -25,19 +25,19 @@
#include <math.h>
#include <ns3/simulator.h>
#include <ns3/spectrum-error-model.h>
#include "ue-phy.h"
#include "enb-phy.h"
#include "lte-ue-phy.h"
#include "lte-enb-phy.h"
#include "lte-net-device.h"
#include "ue-net-device.h"
#include "enb-net-device.h"
#include "lte-ue-net-device.h"
#include "lte-enb-net-device.h"
#include "lte-spectrum-value-helper.h"
#include "amc-module.h"
#include "lte-amc.h"
#include "lte-ue-mac.h"
#include "ff-mac-common.h"
#include "lte-sinr-chunk-processor.h"
NS_LOG_COMPONENT_DEFINE ("UeLtePhy");
NS_LOG_COMPONENT_DEFINE ("LteUePhy");
namespace ns3 {
@ -46,10 +46,10 @@ namespace ns3 {
////////////////////////////////////////
class UeMemberUeLtePhySapProvider : public LteUePhySapProvider
class UeMemberLteUePhySapProvider : public LteUePhySapProvider
{
public:
UeMemberUeLtePhySapProvider (UeLtePhy* phy);
UeMemberLteUePhySapProvider (LteUePhy* phy);
// inherited from LtePhySapProvider
virtual void SendMacPdu (Ptr<Packet> p);
@ -57,29 +57,29 @@ public:
virtual void SendIdealControlMessage (Ptr<IdealControlMessage> msg);
private:
UeLtePhy* m_phy;
LteUePhy* m_phy;
};
UeMemberUeLtePhySapProvider::UeMemberUeLtePhySapProvider (UeLtePhy* phy) : m_phy (phy)
UeMemberLteUePhySapProvider::UeMemberLteUePhySapProvider (LteUePhy* phy) : m_phy (phy)
{
}
void
UeMemberUeLtePhySapProvider::SendMacPdu (Ptr<Packet> p)
UeMemberLteUePhySapProvider::SendMacPdu (Ptr<Packet> p)
{
m_phy->DoSendMacPdu (p);
}
void
UeMemberUeLtePhySapProvider::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
UeMemberLteUePhySapProvider::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
{
m_phy->DoSetBandwidth (ulBandwidth, dlBandwidth);
}
void
UeMemberUeLtePhySapProvider::SendIdealControlMessage (Ptr<IdealControlMessage> msg)
UeMemberLteUePhySapProvider::SendIdealControlMessage (Ptr<IdealControlMessage> msg)
{
m_phy->DoSendIdealControlMessage (msg);
}
@ -87,58 +87,58 @@ UeMemberUeLtePhySapProvider::SendIdealControlMessage (Ptr<IdealControlMessage> m
////////////////////////////////////////
// generic UeLtePhy methods
// generic LteUePhy methods
////////////////////////////////////////
NS_OBJECT_ENSURE_REGISTERED (UeLtePhy);
NS_OBJECT_ENSURE_REGISTERED (LteUePhy);
UeLtePhy::UeLtePhy ()
LteUePhy::LteUePhy ()
: m_p10CqiPeriocity (MilliSeconds (2)),
m_p10CqiLast (MilliSeconds (0))
{
m_uePhySapProvider = new UeMemberUeLtePhySapProvider (this);
m_uePhySapProvider = new UeMemberLteUePhySapProvider (this);
}
UeLtePhy::~UeLtePhy ()
LteUePhy::~LteUePhy ()
{
}
void
UeLtePhy::DoDispose ()
LteUePhy::DoDispose ()
{
}
TypeId
UeLtePhy::GetTypeId (void)
LteUePhy::GetTypeId (void)
{
static TypeId tid = TypeId ("ns3::UeLtePhy")
static TypeId tid = TypeId ("ns3::LteUePhy")
.SetParent<LtePhy> ()
.AddConstructor<UeLtePhy> ()
.AddConstructor<LteUePhy> ()
;
return tid;
}
void
UeLtePhy::SetLteUePhySapUser (LteUePhySapUser* s)
LteUePhy::SetLteUePhySapUser (LteUePhySapUser* s)
{
m_uePhySapUser = s;
}
LteUePhySapProvider*
UeLtePhy::GetLteUePhySapProvider ()
LteUePhy::GetLteUePhySapProvider ()
{
return (m_uePhySapProvider);
}
void
UeLtePhy::DoSendMacPdu (Ptr<Packet> p)
LteUePhy::DoSendMacPdu (Ptr<Packet> p)
{
NS_LOG_FUNCTION (this);
@ -147,13 +147,13 @@ UeLtePhy::DoSendMacPdu (Ptr<Packet> p)
void
UeLtePhy::PhyPduReceived (Ptr<Packet> p)
LteUePhy::PhyPduReceived (Ptr<Packet> p)
{
m_uePhySapUser->ReceivePhyPdu (p);
}
void
UeLtePhy::DoSetUplinkSubChannels ()
LteUePhy::DoSetUplinkSubChannels ()
{
NS_LOG_FUNCTION (this);
@ -166,7 +166,7 @@ UeLtePhy::DoSetUplinkSubChannels ()
void
UeLtePhy::SetSubChannelsForTransmission (std::vector <int> mask)
LteUePhy::SetSubChannelsForTransmission (std::vector <int> mask)
{
NS_LOG_FUNCTION (this);
@ -178,7 +178,7 @@ UeLtePhy::SetSubChannelsForTransmission (std::vector <int> mask)
void
UeLtePhy::SetSubChannelsForReception (std::vector <int> mask)
LteUePhy::SetSubChannelsForReception (std::vector <int> mask)
{
NS_LOG_FUNCTION (this);
m_subChannelsForReception = mask;
@ -186,7 +186,7 @@ UeLtePhy::SetSubChannelsForReception (std::vector <int> mask)
std::vector <int>
UeLtePhy::GetSubChannelsForTransmission ()
LteUePhy::GetSubChannelsForTransmission ()
{
NS_LOG_FUNCTION (this);
return m_subChannelsForTransmission;
@ -194,7 +194,7 @@ UeLtePhy::GetSubChannelsForTransmission ()
std::vector <int>
UeLtePhy::GetSubChannelsForReception ()
LteUePhy::GetSubChannelsForReception ()
{
NS_LOG_FUNCTION (this);
return m_subChannelsForReception;
@ -202,7 +202,7 @@ UeLtePhy::GetSubChannelsForReception ()
Ptr<SpectrumValue>
UeLtePhy::CreateTxPowerSpectralDensity ()
LteUePhy::CreateTxPowerSpectralDensity ()
{
NS_LOG_FUNCTION (this);
LteSpectrumValueHelper psdHelper;
@ -212,12 +212,12 @@ UeLtePhy::CreateTxPowerSpectralDensity ()
}
void
UeLtePhy::GenerateCqiFeedback (const SpectrumValue& sinr)
LteUePhy::GenerateCqiFeedback (const SpectrumValue& sinr)
{
NS_LOG_FUNCTION (this);
if (Simulator::Now () > m_p10CqiLast + m_p10CqiPeriocity)
{
Ptr<UeNetDevice> thisDevice = GetDevice ()->GetObject<UeNetDevice> ();
Ptr<LteUeNetDevice> thisDevice = GetDevice ()->GetObject<LteUeNetDevice> ();
Ptr<DlCqiIdealControlMessage> msg = CreateDlCqiFeedbackMessage (sinr);
DoSendIdealControlMessage (msg);
m_p10CqiLast = Simulator::Now ();
@ -227,11 +227,11 @@ UeLtePhy::GenerateCqiFeedback (const SpectrumValue& sinr)
Ptr<DlCqiIdealControlMessage>
UeLtePhy::CreateDlCqiFeedbackMessage (const SpectrumValue& sinr)
LteUePhy::CreateDlCqiFeedbackMessage (const SpectrumValue& sinr)
{
NS_LOG_FUNCTION (this);
std::vector<int> cqi = AmcModule::CreateCqiFeedbacks (sinr);
std::vector<int> cqi = LteAmc::CreateCqiFeedbacks (sinr);
// CREATE CqiIdealControlMessage
Ptr<DlCqiIdealControlMessage> msg = Create<DlCqiIdealControlMessage> ();
@ -257,11 +257,11 @@ UeLtePhy::CreateDlCqiFeedbackMessage (const SpectrumValue& sinr)
void
UeLtePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
LteUePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
{
NS_LOG_FUNCTION (this << msg);
Ptr<UeNetDevice> thisDevice = GetDevice ()->GetObject<UeNetDevice> ();
Ptr<EnbNetDevice> remoteDevice = thisDevice->GetTargetEnb ();
Ptr<LteUeNetDevice> thisDevice = GetDevice ()->GetObject<LteUeNetDevice> ();
Ptr<LteEnbNetDevice> remoteDevice = thisDevice->GetTargetEnb ();
msg->SetSourceDevice (thisDevice);
msg->SetDestinationDevice (remoteDevice);
SetControlMessages (msg);
@ -271,7 +271,7 @@ UeLtePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
void
UeLtePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
LteUePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
{
NS_LOG_FUNCTION (this << msg);
@ -333,7 +333,7 @@ UeLtePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
void
UeLtePhy::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
LteUePhy::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
{
// trigger from eNB
@ -341,7 +341,7 @@ UeLtePhy::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
std::list<Ptr<IdealControlMessage> > ctrlMsg = GetControlMessages ();
if (ctrlMsg.size () > 0)
{
Ptr<LtePhy> phy = GetDevice ()->GetObject<UeNetDevice> ()->GetTargetEnb ()->GetPhy ();
Ptr<LtePhy> phy = GetDevice ()->GetObject<LteUeNetDevice> ()->GetTargetEnb ()->GetPhy ();
std::list<Ptr<IdealControlMessage> >::iterator it;
it = ctrlMsg.begin ();
while (it != ctrlMsg.end ())
@ -365,7 +365,7 @@ UeLtePhy::SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
void
UeLtePhy::SetTargetEnb (Ptr<EnbLtePhy> enbPhy)
LteUePhy::SetTargetEnb (Ptr<LteEnbPhy> enbPhy)
{
m_targetEnbPhy = enbPhy;
}
@ -373,7 +373,7 @@ UeLtePhy::SetTargetEnb (Ptr<EnbLtePhy> enbPhy)
void
UeLtePhy::SetRnti (uint16_t rnti)
LteUePhy::SetRnti (uint16_t rnti)
{
NS_LOG_FUNCTION (this << rnti);
m_rnti = rnti;

22
src/lte/model/ue-phy.h → src/lte/model/lte-ue-phy.h

@ -19,15 +19,15 @@
* Author: Marco Miozzo <mmiozzo@cttc.es>
*/
#ifndef UE_PHY_H
#define UE_PHY_H
#ifndef LTE_UE_PHY_H
#define LTE_UE_PHY_H
#include <ns3/lte-phy.h>
#include <ns3/ff-mac-common.h>
#include <ns3/ideal-control-messages.h>
#include <ns3/amc-module.h>
#include <ns3/lte-amc.h>
#include <ns3/lte-ue-phy-sap.h>
#include <ns3/ptr.h>
@ -36,20 +36,20 @@ namespace ns3 {
class PacketBurst;
class LteNetDevice;
class EnbLtePhy;
class LteEnbPhy;
/**
* The LteSpectrumPhy models the physical layer of LTE
*/
class UeLtePhy : public LtePhy
class LteUePhy : public LtePhy
{
friend class UeMemberUeLtePhySapProvider;
friend class UeMemberLteUePhySapProvider;
public:
UeLtePhy ();
virtual ~UeLtePhy ();
LteUePhy ();
virtual ~LteUePhy ();
virtual void DoDispose ();
static TypeId GetTypeId (void);
@ -150,7 +150,7 @@ public:
* \param enbPhy a pointer to the PHY of the eNB, used for exchanging control messages
* \param cellId the cell identifier of the eNB
*/
void SetTargetEnb (Ptr<EnbLtePhy> enbPhy);
void SetTargetEnb (Ptr<LteEnbPhy> enbPhy);
private:
@ -165,7 +165,7 @@ private:
uint16_t m_rnti;
Ptr<EnbLtePhy> m_targetEnbPhy;
Ptr<LteEnbPhy> m_targetEnbPhy;
uint16_t m_cellId;
};
@ -173,4 +173,4 @@ private:
}
#endif /* UE_PHY_H */
#endif /* LTE_UE_PHY_H */

8
src/lte/model/rr-ff-mac-scheduler.cc

@ -21,7 +21,7 @@
#include <ns3/log.h>
#include <ns3/pointer.h>
#include "amc-module.h"
#include "lte-amc.h"
#include "rr-ff-mac-scheduler.h"
NS_LOG_COMPONENT_DEFINE ("RrPacketScheduler");
@ -430,10 +430,10 @@ RrFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sched
}
else
{
newDci.m_mcs.push_back ( AmcModule::GetMcsFromCqi ((*it).second) );
newDci.m_mcs.push_back ( LteAmc::GetMcsFromCqi ((*it).second) );
}
int nPRB = rbgSize * rbgPerFlow;
newDci.m_tbsSize.push_back ( (AmcModule::GetTbSizeFromMcs (newDci.m_mcs.at (i), nPRB) / 8) ); // (size of TB in bytes according to table 7.1.7.2.1-1 of 36.213)
newDci.m_tbsSize.push_back ( (LteAmc::GetTbSizeFromMcs (newDci.m_mcs.at (i), nPRB) / 8) ); // (size of TB in bytes according to table 7.1.7.2.1-1 of 36.213)
newDci.m_ndi.push_back (1); // TBD (new data indicator)
newDci.m_rv.push_back (0); // TBD (redundancy version)
@ -549,7 +549,7 @@ RrFfMacScheduler::DoSchedUlTriggerReq (const struct FfMacSchedSapProvider::Sched
uldci.m_rbLen = rbPerFlow;
rbAllocated += rbPerFlow;
uldci.m_mcs = 0; // MCS 0 -> UL-AMC TBD
uldci.m_tbSize = (AmcModule::GetTbSizeFromMcs (uldci.m_mcs, rbPerFlow) / 8); // MCS 0 -> UL-AMC TBD
uldci.m_tbSize = (LteAmc::GetTbSizeFromMcs (uldci.m_mcs, rbPerFlow) / 8); // MCS 0 -> UL-AMC TBD
uldci.m_ndi = 1;
uldci.m_cceIndex = 0;
uldci.m_aggrLevel = 1;

20
src/lte/wscript

@ -6,8 +6,8 @@ def build(bld):
module.source = [
'model/lte-spectrum-phy.cc',
'model/lte-phy.cc',
'model/enb-phy.cc',
'model/ue-phy.cc',
'model/lte-enb-phy.cc',
'model/lte-ue-phy.cc',
'model/lte-spectrum-value-helper.cc',
'model/lte-propagation-loss-model.cc',
'model/discrete-time-loss-model.cc',
@ -16,14 +16,14 @@ def build(bld):
'model/path-loss-model.cc',
'model/jakes-fading-loss-model.cc',
'model/channel-realization.cc',
'model/amc-module.cc',
'model/lte-amc.cc',
'model/lte-enb-rrc.cc',
'model/lte-ue-rrc.cc',
'model/lte-rlc.cc',
'model/eps-bearer.cc',
'model/lte-net-device.cc',
'model/enb-net-device.cc',
'model/ue-net-device.cc',
'model/lte-enb-net-device.cc',
'model/lte-ue-net-device.cc',
'model/ideal-control-messages.cc',
'helper/lena-helper.cc',
'model/ff-mac-csched-sap.cc',
@ -45,8 +45,8 @@ def build(bld):
headers.source = [
'model/lte-spectrum-phy.h',
'model/lte-phy.h',
'model/enb-phy.h',
'model/ue-phy.h',
'model/lte-enb-phy.h',
'model/lte-ue-phy.h',
'model/lte-spectrum-value-helper.h',
'model/lte-propagation-loss-model.h',
'model/discrete-time-loss-model.h',
@ -55,14 +55,14 @@ def build(bld):
'model/path-loss-model.h',
'model/jakes-fading-loss-model.h',
'model/channel-realization.h',
'model/amc-module.h',
'model/lte-amc.h',
'model/lte-enb-rrc.h',
'model/lte-ue-rrc.h',
'model/lte-rlc.h',
'model/eps-bearer.h',
'model/lte-net-device.h',
'model/enb-net-device.h',
'model/ue-net-device.h',
'model/lte-enb-net-device.h',
'model/lte-ue-net-device.h',
'model/ideal-control-messages.h',
'helper/lena-helper.h',
'model/ff-mac-common.h',

Loading…
Cancel
Save