merge
This commit is contained in:
@@ -30,13 +30,13 @@ int main (int argc, char *argv[])
|
||||
{
|
||||
LenaHelper lena;
|
||||
|
||||
//lena.EnableLogComponents ();
|
||||
lena.EnableLogComponents ();
|
||||
|
||||
// Create Nodes: eNodeB and UE
|
||||
NodeContainer enbNodes;
|
||||
NodeContainer ueNodes;
|
||||
enbNodes.Create (1);
|
||||
ueNodes.Create (4);
|
||||
ueNodes.Create (1);
|
||||
|
||||
// Install Mobility Model
|
||||
MobilityHelper mobility;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "ns3/rlc-stats-calculator.h"
|
||||
|
||||
|
||||
#include "ns3/gtk-config-store.h"
|
||||
//#include "ns3/gtk-config-store.h"
|
||||
|
||||
using namespace ns3;
|
||||
|
||||
|
||||
@@ -264,6 +264,7 @@ public:
|
||||
virtual void ReceivePhyPdu (Ptr<Packet> p);
|
||||
virtual void SubframeIndication (uint32_t frameNo, uint32_t subframeNo);
|
||||
virtual void ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg);
|
||||
virtual void UlCqiReport (UlCqi_s ulcqi);
|
||||
|
||||
private:
|
||||
LteEnbMac* m_mac;
|
||||
@@ -292,6 +293,12 @@ EnbMacMemberLteEnbPhySapUser::ReceiveIdealControlMessage (Ptr<IdealControlMessag
|
||||
m_mac->DoReceiveIdealControlMessage (msg);
|
||||
}
|
||||
|
||||
void
|
||||
EnbMacMemberLteEnbPhySapUser::UlCqiReport (UlCqi_s ulcqi)
|
||||
{
|
||||
m_mac->DoUlCqiReport (ulcqi);
|
||||
}
|
||||
|
||||
|
||||
// //////////////////////////////////////
|
||||
// generic LteEnbMac methods
|
||||
@@ -473,11 +480,6 @@ LteEnbMac::DoReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
|
||||
Ptr<DlCqiIdealControlMessage> dlcqi = DynamicCast<DlCqiIdealControlMessage> (msg);
|
||||
ReceiveDlCqiIdealControlMessage (dlcqi);
|
||||
}
|
||||
else if (msg->GetMessageType () == IdealControlMessage::UL_CQI)
|
||||
{
|
||||
Ptr<UlCqiIdealControlMessage> ulcqi = DynamicCast<UlCqiIdealControlMessage> (msg);
|
||||
ReceiveUlCqiIdealControlMessage (ulcqi);
|
||||
}
|
||||
else if (msg->GetMessageType () == IdealControlMessage::BSR)
|
||||
{
|
||||
Ptr<BsrIdealControlMessage> bsr = DynamicCast<BsrIdealControlMessage> (msg);
|
||||
@@ -489,6 +491,14 @@ LteEnbMac::DoReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
LteEnbMac::DoUlCqiReport (UlCqi_s ulcqi)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << " eNB UL-CQI received");
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
LteEnbMac::ReceiveDlCqiIdealControlMessage (Ptr<DlCqiIdealControlMessage> msg)
|
||||
{
|
||||
|
||||
@@ -141,6 +141,8 @@ public:
|
||||
* \param msg the BSR message
|
||||
*/
|
||||
void ReceiveBsrMessage (MacCeListElement_s bsr);
|
||||
|
||||
void DoUlCqiReport (UlCqi_s ulcqi);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#define LTE_ENB_PHY_SAP_H
|
||||
|
||||
#include <ns3/packet.h>
|
||||
#include <ns3/ff-mac-common.h>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
@@ -101,6 +102,12 @@ public:
|
||||
* \param msg the Ideal Control Message to receive
|
||||
*/
|
||||
virtual void ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg) = 0;
|
||||
|
||||
/**
|
||||
* \brief Returns to MAC level the UL-CQI evaluated
|
||||
* \param ulcqi the UL-CQI (see FF MAC API 4.3.29)
|
||||
*/
|
||||
virtual void UlCqiReport (UlCqi_s ulcqi) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -380,15 +380,15 @@ LteEnbPhy::GenerateCqiFeedback (const SpectrumValue& sinr)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << sinr);
|
||||
Ptr<LteEnbNetDevice> thisDevice = GetDevice ()->GetObject<LteEnbNetDevice> ();
|
||||
Ptr<UlCqiIdealControlMessage> msg = CreateUlCqiFeedbackMessage (sinr);
|
||||
m_enbPhySapUser->ReceiveIdealControlMessage (msg);
|
||||
|
||||
m_enbPhySapUser->UlCqiReport (CreateUlCqiReport (sinr));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Ptr<UlCqiIdealControlMessage>
|
||||
LteEnbPhy::CreateUlCqiFeedbackMessage (const SpectrumValue& sinr)
|
||||
UlCqi_s
|
||||
LteEnbPhy::CreateUlCqiReport (const SpectrumValue& sinr)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << sinr);
|
||||
Values::const_iterator it;
|
||||
@@ -401,9 +401,7 @@ LteEnbPhy::CreateUlCqiFeedbackMessage (const SpectrumValue& sinr)
|
||||
NS_LOG_DEBUG(this << " RB " << i << " SINR " << (*it));
|
||||
i++;
|
||||
}
|
||||
Ptr<UlCqiIdealControlMessage> msg = Create<UlCqiIdealControlMessage> ();
|
||||
msg->SetUlCqi (ulcqi);
|
||||
return (msg);
|
||||
return (ulcqi);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ public:
|
||||
* the physical layer with the signal received from eNB
|
||||
* \param sinr SINR values vector
|
||||
*/
|
||||
Ptr<UlCqiIdealControlMessage> CreateUlCqiFeedbackMessage (const SpectrumValue& sinr);
|
||||
UlCqi_s CreateUlCqiReport (const SpectrumValue& sinr);
|
||||
|
||||
|
||||
void DoSendIdealControlMessage (Ptr<IdealControlMessage> msg);
|
||||
|
||||
@@ -40,6 +40,20 @@ int PfType0AllocationRbg[4] = {
|
||||
NS_OBJECT_ENSURE_REGISTERED (PfFfMacScheduler);
|
||||
|
||||
|
||||
bool
|
||||
operator< (const pfsFlowId_t& lhs, const pfsFlowId_t& rhs)
|
||||
{
|
||||
if (lhs.m_rnti == rhs.m_rnti)
|
||||
{
|
||||
return (lhs.m_lcId < rhs.m_lcId);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (lhs.m_rnti < rhs.m_rnti);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PfSchedulerMemberCschedSapProvider : public FfMacCschedSapProvider
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -36,11 +36,10 @@ struct pfsFlowId_t
|
||||
{
|
||||
uint16_t m_rnti;
|
||||
uint8_t m_lcId;
|
||||
|
||||
bool operator<(const pfsFlowId_t& A) const
|
||||
{ return m_rnti<A.m_rnti; }
|
||||
};
|
||||
|
||||
bool operator< (const pfsFlowId_t& lhs, const pfsFlowId_t& rhs);
|
||||
|
||||
struct pfsFlowPerf_t
|
||||
{
|
||||
Time flowStart;
|
||||
|
||||
Reference in New Issue
Block a user