--- a/src/lte/bindings/modulegen__gcc_ILP32.py Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/bindings/modulegen__gcc_ILP32.py Tue Dec 23 16:17:53 2014 +0530
@@ -12845,9 +12845,9 @@
cls.add_constructor([param('ns3::EpcHelper const &', 'arg0')])
## epc-helper.h (module 'lte'): ns3::EpcHelper::EpcHelper() [constructor]
cls.add_constructor([])
- ## epc-helper.h (module 'lte'): void ns3::EpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
+ ## epc-helper.h (module 'lte'): uint8_t ns3::EpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
cls.add_method('ActivateEpsBearer',
- 'void',
+ 'uint8_t',
[param('ns3::Ptr< ns3::NetDevice >', 'ueLteDevice'), param('uint64_t', 'imsi'), param('ns3::Ptr< ns3::EpcTft >', 'tft'), param('ns3::EpsBearer', 'bearer')],
is_pure_virtual=True, is_virtual=True)
## epc-helper.h (module 'lte'): void ns3::EpcHelper::AddEnb(ns3::Ptr<ns3::Node> enbNode, ns3::Ptr<ns3::NetDevice> lteEnbNetDevice, uint16_t cellId) [member function]
@@ -15979,13 +15979,13 @@
cls.add_method('ActivateDataRadioBearer',
'void',
[param('ns3::Ptr< ns3::NetDevice >', 'ueDevice'), param('ns3::EpsBearer', 'bearer')])
- ## lte-helper.h (module 'lte'): void ns3::LteHelper::ActivateDedicatedEpsBearer(ns3::NetDeviceContainer ueDevices, ns3::EpsBearer bearer, ns3::Ptr<ns3::EpcTft> tft) [member function]
+ ## lte-helper.h (module 'lte'): uint8_t ns3::LteHelper::ActivateDedicatedEpsBearer(ns3::NetDeviceContainer ueDevices, ns3::EpsBearer bearer, ns3::Ptr<ns3::EpcTft> tft) [member function]
cls.add_method('ActivateDedicatedEpsBearer',
- 'void',
+ 'uint8_t',
[param('ns3::NetDeviceContainer', 'ueDevices'), param('ns3::EpsBearer', 'bearer'), param('ns3::Ptr< ns3::EpcTft >', 'tft')])
- ## lte-helper.h (module 'lte'): void ns3::LteHelper::ActivateDedicatedEpsBearer(ns3::Ptr<ns3::NetDevice> ueDevice, ns3::EpsBearer bearer, ns3::Ptr<ns3::EpcTft> tft) [member function]
+ ## lte-helper.h (module 'lte'): uint8_t ns3::LteHelper::ActivateDedicatedEpsBearer(ns3::Ptr<ns3::NetDevice> ueDevice, ns3::EpsBearer bearer, ns3::Ptr<ns3::EpcTft> tft) [member function]
cls.add_method('ActivateDedicatedEpsBearer',
- 'void',
+ 'uint8_t',
[param('ns3::Ptr< ns3::NetDevice >', 'ueDevice'), param('ns3::EpsBearer', 'bearer'), param('ns3::Ptr< ns3::EpcTft >', 'tft')])
## lte-helper.h (module 'lte'): void ns3::LteHelper::AddX2Interface(ns3::NodeContainer enbNodes) [member function]
cls.add_method('AddX2Interface',
@@ -18512,9 +18512,9 @@
cls.add_constructor([param('ns3::PointToPointEpcHelper const &', 'arg0')])
## point-to-point-epc-helper.h (module 'lte'): ns3::PointToPointEpcHelper::PointToPointEpcHelper() [constructor]
cls.add_constructor([])
- ## point-to-point-epc-helper.h (module 'lte'): void ns3::PointToPointEpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
+ ## point-to-point-epc-helper.h (module 'lte'): uint8_t ns3::PointToPointEpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
cls.add_method('ActivateEpsBearer',
- 'void',
+ 'uint8_t',
[param('ns3::Ptr< ns3::NetDevice >', 'ueLteDevice'), param('uint64_t', 'imsi'), param('ns3::Ptr< ns3::EpcTft >', 'tft'), param('ns3::EpsBearer', 'bearer')],
is_virtual=True)
## point-to-point-epc-helper.h (module 'lte'): void ns3::PointToPointEpcHelper::AddEnb(ns3::Ptr<ns3::Node> enbNode, ns3::Ptr<ns3::NetDevice> lteEnbNetDevice, uint16_t cellId) [member function]
@@ -20202,9 +20202,9 @@
cls.add_constructor([param('ns3::EmuEpcHelper const &', 'arg0')])
## emu-epc-helper.h (module 'lte'): ns3::EmuEpcHelper::EmuEpcHelper() [constructor]
cls.add_constructor([])
- ## emu-epc-helper.h (module 'lte'): void ns3::EmuEpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
+ ## emu-epc-helper.h (module 'lte'): uint8_t ns3::EmuEpcHelper::ActivateEpsBearer(ns3::Ptr<ns3::NetDevice> ueLteDevice, uint64_t imsi, ns3::Ptr<ns3::EpcTft> tft, ns3::EpsBearer bearer) [member function]
cls.add_method('ActivateEpsBearer',
- 'void',
+ 'uint8_t',
[param('ns3::Ptr< ns3::NetDevice >', 'ueLteDevice'), param('uint64_t', 'imsi'), param('ns3::Ptr< ns3::EpcTft >', 'tft'), param('ns3::EpsBearer', 'bearer')],
is_virtual=True)
## emu-epc-helper.h (module 'lte'): void ns3::EmuEpcHelper::AddEnb(ns3::Ptr<ns3::Node> enbNode, ns3::Ptr<ns3::NetDevice> lteEnbNetDevice, uint16_t cellId) [member function]
--- a/src/lte/doc/source/lte-testing.rst Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/doc/source/lte-testing.rst Tue Dec 23 16:17:53 2014 +0530
@@ -122,6 +122,34 @@
System Tests
~~~~~~~~~~~~
+Dedicated Bearer Deactivation Tests
+-----------------------------------
+The test suite ‘lte-test-deactivate-bearer’ creates test case with single EnodeB and Three UE’s.
+Each UE consists of one Default and one Dedicated EPS bearer with same bearer specification but with different ARP.
+Test Case Flow is as follows:
+Attach UE -> Create Default+Dedicated Bearer -> Deactivate one of the Dedicated bearer
+
+Test case further deactivates dedicated bearer having bearer ID 2(LCID=BearerId+2) of First UE (UE_ID=1)
+User can schedule bearer deactivation after specific time delay using Simulator::Schedule () method.
+
+Once the test case execution ends it will create DlRlcStats.txt and UlRlcStats.txt.
+Key fields that need to be checked in statistics are:
+|Start | end | Cell ID | IMSI | RNTI | LCID | TxBytes | RxBytes |
+
+Test case executes in three epoch’s.
+1) In first Epoch (0.04s-1.04s) All UE’s and corresponding bearers gets attached
+ and packet flow over the dedicated bearers activated.
+2) In second Epoch (1.04s-2.04s), bearer deactivation is instantiated, hence User can see
+ relatively less number of TxBytes on UE_ID=1 and LCID=4 as compared to other bearers.
+3) In third Epoch (2.04s-3.04s) since bearer deactivation of UE_ID=1 and LCID=4 is completed,
+ user will not see any logging related to LCID=4.
+
+Test case passes if and only if
+1) IMSI=1 and LCID=4 completely removed in third epoch
+2) No packets seen in TxBytes and RxBytes corresponding to IMSI=1 and LCID=4
+If above criterion does not match test case considered to be failed
+
+
.. _sec-lte-amc-tests:
Adaptive Modulation and Coding Tests
--- a/src/lte/examples/lena-deactivate-bearer.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/examples/lena-deactivate-bearer.cc Tue Dec 23 16:17:53 2014 +0530
@@ -213,12 +213,16 @@
rlcStats->SetAttribute ("StartTime", TimeValue (Seconds (statsStartTime)));
rlcStats->SetAttribute ("EpochDuration", TimeValue (Seconds (statsDuration)));
+ //get ue device pointer for UE-ID 0 IMSI 1 and enb device pointer
+ Ptr<NetDevice> ueDevice = ueLteDevs.Get (0);
+ Ptr<NetDevice> enbDevice = enbLteDevs.Get (0);
+
/*
- * Schedule dedicated bearer de-activation at 'deActivateTime'
- * Instantiate De-activation in sequence (Time deActivateTime, Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice, uint8_t bearerId)
+ * Instantiate De-activation using Simulator::Schedule() method which will initiate bearer de-activation after deActivateTime
+ * Instantiate De-activation in sequence (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3)
*/
Time deActivateTime (Seconds (1.5));
- lteHelper->DeActivateDedicatedEpsBearer (deActivateTime,ueLteDevs.Get (0),enbLteDevs.Get (0), 2);
+ Simulator::Schedule (deActivateTime, &LteHelper::DeActivateDedicatedEpsBearer, lteHelper, ueDevice, enbDevice, 2);
//stop simulation after 3 seconds
Simulator::Stop (Seconds (3.0));
--- a/src/lte/helper/emu-epc-helper.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/emu-epc-helper.cc Tue Dec 23 16:17:53 2014 +0530
@@ -311,7 +311,7 @@
}
-void
+uint8_t
EmuEpcHelper::ActivateEpsBearer (Ptr<NetDevice> ueDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer)
{
NS_LOG_FUNCTION (this << ueDevice << imsi);
@@ -328,12 +328,13 @@
Ipv4Address ueAddr = ueIpv4->GetAddress (interface, 0).GetLocal ();
NS_LOG_LOGIC (" UE IP address: " << ueAddr); m_sgwPgwApp->SetUeAddress (imsi, ueAddr);
- m_mme->AddBearer (imsi, tft, bearer);
+ uint8_t bearerId = m_mme->AddBearer (imsi, tft, bearer);
Ptr<LteUeNetDevice> ueLteDevice = ueDevice->GetObject<LteUeNetDevice> ();
if (ueLteDevice)
{
Simulator::ScheduleNow (&EpcUeNas::ActivateEpsBearer, ueLteDevice->GetNas (), bearer, tft);
}
+ return bearerId;
}
--- a/src/lte/helper/emu-epc-helper.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/emu-epc-helper.h Tue Dec 23 16:17:53 2014 +0530
@@ -71,7 +71,7 @@
virtual void AddEnb (Ptr<Node> enbNode, Ptr<NetDevice> lteEnbNetDevice, uint16_t cellId);
virtual void AddUe (Ptr<NetDevice> ueLteDevice, uint64_t imsi);
virtual void AddX2Interface (Ptr<Node> enbNode1, Ptr<Node> enbNode2);
- virtual void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
+ virtual uint8_t ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
virtual Ptr<Node> GetPgwNode ();
virtual Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices);
virtual Ipv4Address GetUeDefaultGatewayAddress ();
--- a/src/lte/helper/epc-helper.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/epc-helper.h Tue Dec 23 16:17:53 2014 +0530
@@ -101,7 +101,7 @@
* \param tft the Traffic Flow Template of the new bearer
* \param bearer struct describing the characteristics of the EPS bearer to be activated
*/
- virtual void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer) = 0;
+ virtual uint8_t ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer) = 0;
/**
--- a/src/lte/helper/lte-helper.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/lte-helper.cc Tue Dec 23 16:17:53 2014 +0530
@@ -813,18 +813,20 @@
Attach (ueDevice, closestEnbDevice);
}
-void
+uint8_t
LteHelper::ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft)
{
NS_LOG_FUNCTION (this);
for (NetDeviceContainer::Iterator i = ueDevices.Begin (); i != ueDevices.End (); ++i)
{
- ActivateDedicatedEpsBearer (*i, bearer, tft);
+ uint8_t bearerId = ActivateDedicatedEpsBearer (*i, bearer, tft);
+ return bearerId;
}
+ return 0;
}
-void
+uint8_t
LteHelper::ActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft)
{
NS_LOG_FUNCTION (this);
@@ -832,7 +834,8 @@
NS_ASSERT_MSG (m_epcHelper != 0, "dedicated EPS bearers cannot be set up when the EPC is not used");
uint64_t imsi = ueDevice->GetObject<LteUeNetDevice> ()->GetImsi ();
- m_epcHelper->ActivateEpsBearer (ueDevice, imsi, tft, bearer);
+ uint8_t bearerId = m_epcHelper->ActivateEpsBearer (ueDevice, imsi, tft, bearer);
+ return bearerId;
}
class DrbActivator : public SimpleRefCount<DrbActivator>
@@ -956,13 +959,13 @@
}
void
-LteHelper::DeActivateDedicatedEpsBearer (Time deActivateTime, Ptr<NetDevice> ueDevice,Ptr<NetDevice> enbDevice, uint8_t bearerId)
+LteHelper::DeActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice,Ptr<NetDevice> enbDevice, uint8_t bearerId)
{
NS_LOG_FUNCTION (this << ueDevice << bearerId);
NS_ASSERT_MSG (m_epcHelper != 0, "Dedicated EPS bearers cannot be de-activated when the EPC is not used");
NS_ASSERT_MSG (bearerId != 1, "Default bearer cannot be de-activated until and unless and UE is released");
- Simulator::Schedule (deActivateTime, &LteHelper::DoDeActivateDedicatedEpsBearer, this, ueDevice, enbDevice, bearerId);
+ DoDeActivateDedicatedEpsBearer (ueDevice, enbDevice, bearerId);
}
void
--- a/src/lte/helper/lte-helper.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/lte-helper.h Tue Dec 23 16:17:53 2014 +0530
@@ -397,7 +397,7 @@
* \param bearer the characteristics of the bearer to be activated
* \param tft the Traffic Flow Template that identifies the traffic to go on this bearer
*/
- void ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft);
+ uint8_t ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft);
/**
* Activate a dedicated EPS bearer on a given UE device.
@@ -406,11 +406,10 @@
* \param bearer the characteristics of the bearer to be activated
* \param tft the Traffic Flow Template that identifies the traffic to go on this bearer.
*/
- void ActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft);
+ uint8_t ActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft);
/**
* \brief Manually trigger dedicated bearer de-activation at specific simulation time
- * \param deActivateTime when the dedicated bearer de-activation to be initiated
* \param ueDevice the UE on which dedicated bearer to be de-activated must be of the type LteUeNetDevice
* \param enbDevice eNB, must be of the type LteEnbNetDevice
* \param bearerId Bearer Identity which is to be de-activated
@@ -418,7 +417,7 @@
* \warning Requires the use of EPC mode. See SetEpcHelper() method.
*/
- void DeActivateDedicatedEpsBearer (Time deActivateTime, Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice, uint8_t bearerId);
+ void DeActivateDedicatedEpsBearer (Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice, uint8_t bearerId);
/**
* Create an X2 interface between all the eNBs in a given set.
*
--- a/src/lte/helper/point-to-point-epc-helper.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/point-to-point-epc-helper.cc Tue Dec 23 16:17:53 2014 +0530
@@ -292,7 +292,7 @@
}
-void
+uint8_t
PointToPointEpcHelper::ActivateEpsBearer (Ptr<NetDevice> ueDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer)
{
NS_LOG_FUNCTION (this << ueDevice << imsi);
@@ -309,12 +309,13 @@
Ipv4Address ueAddr = ueIpv4->GetAddress (interface, 0).GetLocal ();
NS_LOG_LOGIC (" UE IP address: " << ueAddr); m_sgwPgwApp->SetUeAddress (imsi, ueAddr);
- m_mme->AddBearer (imsi, tft, bearer);
+ uint8_t bearerId = m_mme->AddBearer (imsi, tft, bearer);
Ptr<LteUeNetDevice> ueLteDevice = ueDevice->GetObject<LteUeNetDevice> ();
if (ueLteDevice)
{
ueLteDevice->GetNas ()->ActivateEpsBearer (bearer, tft);
}
+ return bearerId;
}
--- a/src/lte/helper/point-to-point-epc-helper.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/helper/point-to-point-epc-helper.h Tue Dec 23 16:17:53 2014 +0530
@@ -69,7 +69,7 @@
virtual void AddEnb (Ptr<Node> enbNode, Ptr<NetDevice> lteEnbNetDevice, uint16_t cellId);
virtual void AddUe (Ptr<NetDevice> ueLteDevice, uint64_t imsi);
virtual void AddX2Interface (Ptr<Node> enbNode1, Ptr<Node> enbNode2);
- virtual void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
+ virtual uint8_t ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
virtual Ptr<Node> GetPgwNode ();
virtual Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices);
virtual Ipv4Address GetUeDefaultGatewayAddress ();
--- a/src/lte/model/epc-mme.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/model/epc-mme.cc Tue Dec 23 16:17:53 2014 +0530
@@ -104,7 +104,7 @@
ueInfo->bearerCounter = 0;
}
-void
+uint8_t
EpcMme::AddBearer (uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer)
{
NS_LOG_FUNCTION (this << imsi);
@@ -116,6 +116,7 @@
bearerInfo.tft = tft;
bearerInfo.bearer = bearer;
it->second->bearersToBeActivated.push_back (bearerInfo);
+ return bearerInfo.bearerId;
}
--- a/src/lte/model/epc-mme.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/model/epc-mme.h Tue Dec 23 16:17:53 2014 +0530
@@ -106,7 +106,7 @@
* \param tft traffic flow template of the bearer
* \param bearer QoS characteristics of the bearer
*/
- void AddBearer (uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
+ uint8_t AddBearer (uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
private:
--- a/src/lte/model/epc-s1ap-sap.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/model/epc-s1ap-sap.h Tue Dec 23 16:17:53 2014 +0530
@@ -71,6 +71,7 @@
/**
* \brief As per 3GPP TS 23.401 Release 9 V9.5.0 Figure 5.4.4.2-1 eNB sends indication of Bearer Release to MME
+ * \brief As per 3GPP TS version 9.8.0 section 8.2.3.2.2, the eNB initiates the procedure by sending an E-RAB RELEASE INDICATION message towards MME
* \param mmeUeS1Id in practice, we use the IMSI
* \param enbUeS1Id in practice, we use the RNTI
* \param erabToBeReleaseIndication, List of bearers to be deactivated
--- a/src/lte/test/lte-test-deactivate-bearer.cc Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/test/lte-test-deactivate-bearer.cc Tue Dec 23 16:17:53 2014 +0530
@@ -91,7 +91,7 @@
estThrPssDl_1.push_back (132000); // User 1 estimated TTI throughput from PSS
estThrPssDl_1.push_back (132000); // User 2 estimated TTI throughput from PSS
- AddTestCase (new LenaDeactivateBearerTestCase (dist_1,estThrPssDl_1,packetSize_1,1,errorModel), TestCase::QUICK);
+ AddTestCase (new LenaDeactivateBearerTestCase (dist_1,estThrPssDl_1,packetSize_1,1,errorModel,true), TestCase::QUICK);
}
static LenaTestBearerDeactivateSuite lenaTestBearerDeactivateSuite;
@@ -110,14 +110,15 @@
return oss.str ();
}
-LenaDeactivateBearerTestCase::LenaDeactivateBearerTestCase (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
+LenaDeactivateBearerTestCase::LenaDeactivateBearerTestCase (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled, bool useIdealRrc)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
m_packetSize (packetSize),
m_interval (interval),
m_estThrPssDl (estThrPssDl),
- m_errorModelEnabled (errorModelEnabled)
+ m_errorModelEnabled (errorModelEnabled),
+ m_useIdealRrc (useIdealRrc)
{
}
@@ -292,16 +293,16 @@
rlcStats->SetAttribute ("EpochDuration", TimeValue (Seconds (statsDuration)));
- //get ue device pointer for UE-ID 0 IMSI 1
+ //get ue device pointer for UE-ID 0 IMSI 1 and enb device pointer
Ptr<NetDevice> ueDevice = ueDevs.Get (0);
- Time deActivateTime (Seconds (1.5));
+ Ptr<NetDevice> enbDevice = enbDevs.Get (0);
/*
- * Schedule dedicated bearer de-activation at 'deActivateTime'
- * Instantiate De-activation in sequence (Time deActivateTime, Ptr<NetDevice> ueDevice, Ptr<NetDevice> enbDevice, uint8_t bearerId)
+ * Instantiate De-activation using Simulator::Schedule() method which will initiate bearer de-activation after deActivateTime
+ * Instantiate De-activation in sequence (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3)
*/
-
- lteHelper->DeActivateDedicatedEpsBearer (deActivateTime,ueDevice,enbDevs.Get (0), 2);
+ Time deActivateTime (Seconds (1.5));
+ Simulator::Schedule (deActivateTime, &LteHelper::DeActivateDedicatedEpsBearer, lteHelper, ueDevice, enbDevice, 2);
//stop simulation after 3 seconds
Simulator::Stop (Seconds (3.0));
--- a/src/lte/test/lte-test-deactivate-bearer.h Fri Nov 28 17:10:09 2014 +0100
+++ b/src/lte/test/lte-test-deactivate-bearer.h Tue Dec 23 16:17:53 2014 +0530
@@ -10,7 +10,7 @@
class LenaDeactivateBearerTestCase : public TestCase
{
public:
- LenaDeactivateBearerTestCase (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaDeactivateBearerTestCase (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled, bool useIdealRrc);
virtual ~LenaDeactivateBearerTestCase ();
private:
@@ -22,6 +22,7 @@
uint16_t m_interval; // ms
std::vector<uint32_t> m_estThrPssDl;
bool m_errorModelEnabled;
+ bool m_useIdealRrc;
};