diff --git a/src/lte/test/lte-simple-helper.cc b/src/lte/test/lte-simple-helper.cc index 1fc3786e2..1831a3509 100644 --- a/src/lte/test/lte-simple-helper.cc +++ b/src/lte/test/lte-simple-helper.cc @@ -150,6 +150,8 @@ LteSimpleHelper::InstallSingleEnbDevice (Ptr n) m_enbMac = CreateObject (); m_enbMac->SetDevice (enbDev); + m_enbRrc->SetDevice (enbDev); + enbDev->SetReceiveCallback (MakeCallback (&LteTestMac::Receive, m_enbMac)); // Connect SAPs: RRC <-> PDCP <-> RLC <-> MAC diff --git a/src/lte/test/lte-test-entities.cc b/src/lte/test/lte-test-entities.cc index c1a06dc69..ef079f28e 100644 --- a/src/lte/test/lte-test-entities.cc +++ b/src/lte/test/lte-test-entities.cc @@ -20,6 +20,7 @@ #include "ns3/simulator.h" #include "ns3/log.h" +#include "ns3/node.h" #include "ns3/lte-rlc-header.h" #include "ns3/lte-rlc-am-header.h" @@ -72,6 +73,12 @@ LteTestRrc::DoDispose () delete m_pdcpSapUser; } +void +LteTestRrc::SetDevice (Ptr device) +{ + m_device = device; +} + void LteTestRrc::SetLtePdcpSapProvider (LtePdcpSapProvider* s) { @@ -198,7 +205,7 @@ LteTestRrc::Start () p.lcid = 222; p.pdcpSdu = Create (m_pduSize); - Simulator::ScheduleNow (&LtePdcpSapProvider::TransmitPdcpSdu, m_pdcpSapProvider, p); + Simulator::ScheduleWithContext (m_device->GetNode ()->GetId (), Seconds (0), &LtePdcpSapProvider::TransmitPdcpSdu, m_pdcpSapProvider, p); m_nextPdu = Simulator::Schedule (m_arrivalTime, &LteTestRrc::Start, this); // Simulator::Run (); } @@ -450,7 +457,7 @@ void LteTestMac::SendTxOpportunity (Time time, uint32_t bytes) { NS_LOG_FUNCTION (this << time << bytes); - Simulator::Schedule (time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0); + Simulator::ScheduleWithContext (m_device->GetNode ()->GetId (), time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0); if (m_txOpportunityMode == RANDOM_MODE) { if (m_txOppTime != Seconds (0)) diff --git a/src/lte/test/lte-test-entities.h b/src/lte/test/lte-test-entities.h index 54a32007c..e0229355d 100644 --- a/src/lte/test/lte-test-entities.h +++ b/src/lte/test/lte-test-entities.h @@ -82,6 +82,8 @@ class LteTestRrc : public Object void SetArrivalTime (Time arrivalTime); void SetPduSize (uint32_t pduSize); + void SetDevice (Ptr device); + private: // Interface forwarded by LtePdcpSapUser virtual void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params); @@ -101,6 +103,8 @@ class LteTestRrc : public Object EventId m_nextPdu; Time m_arrivalTime; uint32_t m_pduSize; + + Ptr m_device; }; /////////////////////////////////////////////////////////////////////