merge
This commit is contained in:
@@ -254,11 +254,17 @@ EpcEnbApplication::RecvFromLteSocket (Ptr<Socket> socket)
|
||||
uint8_t bid = tag.GetBid ();
|
||||
NS_LOG_LOGIC ("received packet with RNTI=" << (uint32_t) rnti << ", BID=" << (uint32_t) bid);
|
||||
std::map<uint16_t, std::map<uint8_t, uint32_t> >::iterator rntiIt = m_rbidTeidMap.find (rnti);
|
||||
NS_ASSERT (rntiIt != m_rbidTeidMap.end ());
|
||||
std::map<uint8_t, uint32_t>::iterator bidIt = rntiIt->second.find (bid);
|
||||
NS_ASSERT (bidIt != rntiIt->second.end ());
|
||||
uint32_t teid = bidIt->second;
|
||||
SendToS1uSocket (packet, teid);
|
||||
if (rntiIt == m_rbidTeidMap.end ())
|
||||
{
|
||||
NS_LOG_WARN ("UE context not found, discarding packet");
|
||||
}
|
||||
else
|
||||
{
|
||||
std::map<uint8_t, uint32_t>::iterator bidIt = rntiIt->second.find (bid);
|
||||
NS_ASSERT (bidIt != rntiIt->second.end ());
|
||||
uint32_t teid = bidIt->second;
|
||||
SendToS1uSocket (packet, teid);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <list>
|
||||
|
||||
#include <ns3/ptr.h>
|
||||
#include <ns3/simulator.h>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
@@ -594,63 +595,63 @@ template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvMasterInformationBlock (MasterInformationBlock msg)
|
||||
{
|
||||
m_owner->DoRecvMasterInformationBlock (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvMasterInformationBlock, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvSystemInformationBlockType1 (SystemInformationBlockType1 msg)
|
||||
{
|
||||
m_owner->DoRecvSystemInformationBlockType1 (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvSystemInformationBlockType1, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvSystemInformation (SystemInformation msg)
|
||||
{
|
||||
m_owner->DoRecvSystemInformation (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvSystemInformation, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionSetup (RrcConnectionSetup msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionSetup (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionSetup, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionReconfiguration (RrcConnectionReconfiguration msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReconfiguration (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReconfiguration, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionReestablishment (RrcConnectionReestablishment msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReestablishment (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReestablishment, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionReestablishmentReject (RrcConnectionReestablishmentReject msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReestablishmentReject (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReestablishmentReject, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionRelease (RrcConnectionRelease msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionRelease (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionRelease, m_owner, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteUeRrcSapProvider<C>::RecvRrcConnectionReject (RrcConnectionReject msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReject (msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReject, m_owner, msg);
|
||||
}
|
||||
|
||||
|
||||
@@ -852,35 +853,35 @@ template <class C>
|
||||
void
|
||||
MemberLteEnbRrcSapProvider<C>::RecvRrcConnectionRequest (uint16_t rnti, RrcConnectionRequest msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionRequest (rnti, msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionRequest, m_owner, rnti, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteEnbRrcSapProvider<C>::RecvRrcConnectionSetupCompleted (uint16_t rnti, RrcConnectionSetupCompleted msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionSetupCompleted (rnti, msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionSetupCompleted, m_owner, rnti, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteEnbRrcSapProvider<C>::RecvRrcConnectionReconfigurationCompleted (uint16_t rnti, RrcConnectionReconfigurationCompleted msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReconfigurationCompleted (rnti, msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReconfigurationCompleted, m_owner, rnti, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteEnbRrcSapProvider<C>::RecvRrcConnectionReestablishmentRequest (uint16_t rnti, RrcConnectionReestablishmentRequest msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReestablishmentRequest (rnti, msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReestablishmentRequest, m_owner, rnti, msg);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
void
|
||||
MemberLteEnbRrcSapProvider<C>::RecvRrcConnectionReestablishmentComplete (uint16_t rnti, RrcConnectionReestablishmentComplete msg)
|
||||
{
|
||||
m_owner->DoRecvRrcConnectionReestablishmentComplete (rnti, msg);
|
||||
Simulator::ScheduleNow (&C::DoRecvRrcConnectionReestablishmentComplete, m_owner, rnti, msg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -307,6 +307,12 @@ LteSpectrumPhy::Reset ()
|
||||
m_endRxDataEvent.Cancel ();
|
||||
m_endRxDlCtrlEvent.Cancel ();
|
||||
m_endRxUlSrsEvent.Cancel ();
|
||||
m_rxControlMessageList.clear ();
|
||||
m_expectedTbs.clear ();
|
||||
m_txControlMessageList.clear ();
|
||||
m_rxPacketBurstList.clear ();
|
||||
m_txPacketBurst = 0;
|
||||
m_rxSpectrumModel = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -155,9 +155,11 @@ LteLinkAdaptationTestCase::~LteLinkAdaptationTestCase ()
|
||||
void
|
||||
LteLinkAdaptationTestCase::DoRun (void)
|
||||
{
|
||||
|
||||
Config::Reset ();
|
||||
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
|
||||
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005));
|
||||
Config::SetDefault ("ns3::LteEnbRrc::SrsPeriodicity", UintegerValue (2));
|
||||
|
||||
/**
|
||||
* Simulation Topology
|
||||
*/
|
||||
@@ -206,7 +208,7 @@ LteLinkAdaptationTestCase::DoRun (void)
|
||||
Config::Connect ("/NodeList/0/DeviceList/0/LteEnbMac/DlScheduling",
|
||||
MakeBoundCallback (&LteTestDlSchedulingCallback, this));
|
||||
|
||||
Simulator::Stop (Seconds (0.026));
|
||||
Simulator::Stop (Seconds (0.040));
|
||||
Simulator::Run ();
|
||||
|
||||
double calculatedSinrDb = 10.0 * log10 (testSinr->GetSinr ()->operator[] (0));
|
||||
@@ -233,7 +235,7 @@ LteLinkAdaptationTestCase::DlScheduling (uint32_t frameNo, uint32_t subframeNo,
|
||||
* RRC connection has been completed and
|
||||
* CQI feedback is available at the eNB.
|
||||
*/
|
||||
if (Simulator::Now ().GetSeconds () > 0.024)
|
||||
if (Simulator::Now ().GetSeconds () > 0.030)
|
||||
{
|
||||
NS_LOG_INFO (m_snrDb << "\t" << m_mcsIndex << "\t" << (uint16_t)mcsTb1);
|
||||
|
||||
|
||||
@@ -432,7 +432,6 @@ LteX2HandoverTestCase::DoRun ()
|
||||
void
|
||||
LteX2HandoverTestCase::CheckConnected (Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
Ptr<LteUeNetDevice> ueLteDevice = ueDevice->GetObject<LteUeNetDevice> ();
|
||||
Ptr<LteUeRrc> ueRrc = ueLteDevice->GetRrc ();
|
||||
NS_TEST_ASSERT_MSG_EQ (ueRrc->GetState (), LteUeRrc::CONNECTED_NORMALLY, "Wrong LteUeRrc state!");
|
||||
@@ -500,7 +499,6 @@ LteX2HandoverTestCase::CheckConnected (Ptr<NetDevice> ueDevice, Ptr<NetDevice> e
|
||||
void
|
||||
LteX2HandoverTestCase::SaveStatsAfterHandover (uint32_t ueIndex)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << ueIndex);
|
||||
for (std::list<BearerData>::iterator it = m_ueDataVector.at (ueIndex).bearerDataList.begin ();
|
||||
it != m_ueDataVector.at (ueIndex).bearerDataList.end ();
|
||||
++it)
|
||||
@@ -512,8 +510,7 @@ LteX2HandoverTestCase::SaveStatsAfterHandover (uint32_t ueIndex)
|
||||
|
||||
void
|
||||
LteX2HandoverTestCase::CheckStatsAWhileAfterHandover (uint32_t ueIndex)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << ueIndex);
|
||||
{
|
||||
uint32_t b = 1;
|
||||
for (std::list<BearerData>::iterator it = m_ueDataVector.at (ueIndex).bearerDataList.begin ();
|
||||
it != m_ueDataVector.at (ueIndex).bearerDataList.end ();
|
||||
@@ -541,8 +538,6 @@ public:
|
||||
LteX2HandoverTestSuite::LteX2HandoverTestSuite ()
|
||||
: TestSuite ("lte-x2-handover", SYSTEM)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
|
||||
// in the following:
|
||||
// fwd means handover from enb 0 to enb 1
|
||||
// bwd means handover from enb 1 to enb 0
|
||||
@@ -616,11 +611,9 @@ LteX2HandoverTestSuite::LteX2HandoverTestSuite ()
|
||||
hel7.push_back (ue2fwd);
|
||||
hel7.push_back (ue2bwd);
|
||||
|
||||
AddTestCase (new LteX2HandoverTestCase ( 2, 0, hel1, hel1name, true, "ns3::RrFfMacScheduler", true, false));
|
||||
|
||||
std::vector<std::string> schedulers;
|
||||
schedulers.push_back ("ns3::RrFfMacScheduler");
|
||||
schedulers.push_back ("ns3::PfrFfMacScheduler");
|
||||
schedulers.push_back ("ns3::PfFfMacScheduler");
|
||||
for (std::vector<std::string>::iterator schedIt = schedulers.begin (); schedIt != schedulers.end (); ++schedIt)
|
||||
{
|
||||
for (int32_t useIdealRrc = 1; useIdealRrc >= 0; --useIdealRrc)
|
||||
|
||||
Reference in New Issue
Block a user