This commit is contained in:
Lluis Parcerisa
2012-12-18 18:31:47 +01:00
5 changed files with 39 additions and 31 deletions

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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)