renamed several LTE files and classes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
namespace ns3 {
|
||||
|
||||
|
||||
class UeLtePhy;
|
||||
class EnbLtePhy;
|
||||
class LteUePhy;
|
||||
class LteEnbPhy;
|
||||
class SpectrumChannel;
|
||||
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
namespace ns3 {
|
||||
|
||||
class LteNetDevice;
|
||||
class EnbNetDevice;
|
||||
class LteEnbNetDevice;
|
||||
|
||||
/**
|
||||
* The EnbLteSpectrumPhy models the UL/DL physical layer for the eNodeB device
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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,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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 */
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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 */
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
@@ -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;
|
||||
@@ -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 */
|
||||
@@ -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;
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user