21 #include <ns3/object.h>
22 #include <ns3/spectrum-interference.h>
23 #include <ns3/spectrum-error-model.h>
26 #include <ns3/simulator.h>
27 #include <ns3/packet.h>
31 #include <ns3/radio-bearer-stats-calculator.h>
32 #include <ns3/mobility-building-info.h>
33 #include <ns3/hybrid-buildings-propagation-loss-model.h>
34 #include <ns3/eps-bearer.h>
35 #include <ns3/node-container.h>
36 #include <ns3/mobility-helper.h>
37 #include <ns3/net-device-container.h>
38 #include <ns3/lte-ue-net-device.h>
39 #include <ns3/lte-enb-net-device.h>
40 #include <ns3/lte-ue-rrc.h>
41 #include <ns3/lte-helper.h>
42 #include <ns3/string.h>
43 #include <ns3/double.h>
44 #include <ns3/lte-enb-phy.h>
45 #include <ns3/lte-ue-phy.h>
46 #include <ns3/config.h>
47 #include <ns3/boolean.h>
49 #include <ns3/unused.h>
50 #include <ns3/ff-mac-scheduler.h>
51 #include <ns3/buildings-helper.h>
87 std::ostringstream oss;
88 oss << nUser <<
" UEs, distance " << dist <<
" m, TB size " << tbSize;
93 :
TestCase (BuildNameString (nUser, dist, tbSize)),
97 m_throughputRef (thrRef)
183 lena->SetAttribute (
"PathlossModel",
StringValue (
"ns3::HybridBuildingsPropagationLossModel"));
184 lena->SetPathlossModelAttribute (
"ShadowSigmaOutdoor",
DoubleValue (0.0));
185 lena->SetPathlossModelAttribute (
"ShadowSigmaIndoor",
DoubleValue (0.0));
186 lena->SetPathlossModelAttribute (
"ShadowSigmaExtWalls",
DoubleValue (0.0));
191 lena->SetSchedulerType (
"ns3::RrFfMacScheduler");
194 enbDevs = lena->InstallEnbDevice (enbNodes);
195 ueDevs = lena->InstallUeDevice (ueNodes);
198 lena->Attach (ueDevs, enbDevs.
Get (0));
203 lena->ActivateDataRadioBearer (ueDevs, bearer);
208 enbPhy->SetAttribute (
"TxPower",
DoubleValue (43.0));
209 enbPhy->SetAttribute (
"NoiseFigure",
DoubleValue (5.0));
215 for (
int i = 0; i <
m_nUser; i++)
221 uePhy->SetAttribute (
"TxPower",
DoubleValue (23.0));
222 uePhy->SetAttribute (
"NoiseFigure",
DoubleValue (9.0));
226 double statsStartTime = 0.050;
227 double statsDuration = 2.0;
230 lena->EnableRlcTraces ();
232 rlcStats->SetAttribute (
"StartTime",
TimeValue (Seconds (statsStartTime)));
233 rlcStats->SetAttribute (
"EpochDuration",
TimeValue (Seconds (statsDuration)));
236 lena->EnableMacTraces ();
243 NS_LOG_INFO (
"\tTest on downlink data shared channels (PDSCH)");
245 for (
int i = 0; i <
m_nUser; i++)
250 double txed = rlcStats->GetDlTxData (imsi, lcId);
251 double rxed = rlcStats->GetDlRxData (imsi, lcId);
252 double tolerance = 0.1;
smart pointer class similar to boost::intrusive_ptr
hold variables of type string
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr stored in this container at a given index.
#define NS_TEST_ASSERT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report and...
Keep track of the current position and velocity of an object.
void Install(Ptr< Node > node) const
"Layout" a single node according to the current position allocator type.
hold variables of type 'enum'
hold objects of type ns3::Time
holds a vector of ns3::NetDevice pointers
static void Destroy(void)
LenaHarqTestCase(uint16_t nUser, uint16_t dist, uint16_t tbSize, double amcBer, double thrRef)
void SetDefault(std::string name, const AttributeValue &value)
keep track of a set of node pointers.
void SetMobilityModel(std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
static LenaTestHarqSuite lenaTestHarqSuite
virtual void DoRun(void)
Implementation to actually run this TestCase.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
void SetPosition(const Vector &position)
Helper class used to assign positions and mobility models to nodes.
Ptr< Node > Get(uint32_t i) const
Get the Ptr stored in this container at a given index.
static std::string BuildNameString(uint16_t nUser, uint16_t dist, uint16_t tbSize)
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
NS_LOG_COMPONENT_DEFINE("LenaTestHarq")
Hold an floating point type.
Ptr< T > GetObject(void) const
virtual ~LenaHarqTestCase()
static void Install(Ptr< Node > node)