A Discrete-Event Network Simulator
API
LteInterferenceTestCase Class Reference

Test that SINR calculation and MCS selection works fine in a multi-cell interference scenario. More...

#include "lte-test-interference.h"

+ Inheritance diagram for LteInterferenceTestCase:
+ Collaboration diagram for LteInterferenceTestCase:

Public Member Functions

 LteInterferenceTestCase (std::string name, double d1, double d2, double dlSinr, double ulSinr, double dlSe, double ulSe, uint16_t dlMcs, uint16_t ulMcs)
 Constructor. More...
 
 ~LteInterferenceTestCase () override
 
void DlScheduling (DlSchedulingCallbackInfo dlInfo)
 DL scheduling function. More...
 
void UlScheduling (uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
 UL scheduling function. More...
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

void DoRun () override
 Implementation to actually run this TestCase. More...
 

Private Attributes

double m_d1
 distance between UE and ENB More...
 
double m_d2
 distance between UE and other ENB More...
 
uint16_t m_dlMcs
 the DL MCS More...
 
double m_expectedDlSinrDb
 expected DL SINR in dB More...
 
double m_expectedUlSinrDb
 expected UL SINR in dB More...
 
uint16_t m_ulMcs
 the UL MCS More...
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () const
 Get the parent of this TestCase. More...
 
bool IsStatusFailure () const
 Check if any tests failed. More...
 
bool IsStatusSuccess () const
 Check if all tests passed. More...
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found. More...
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase. More...
 
bool MustAssertOnFailure () const
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure () const
 Check if this run should continue on failure. More...
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory. More...
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory. More...
 

Detailed Description

Test that SINR calculation and MCS selection works fine in a multi-cell interference scenario.

Definition at line 46 of file lte-test-interference.h.

Constructor & Destructor Documentation

◆ LteInterferenceTestCase()

LteInterferenceTestCase::LteInterferenceTestCase ( std::string  name,
double  d1,
double  d2,
double  dlSinr,
double  ulSinr,
double  dlSe,
double  ulSe,
uint16_t  dlMcs,
uint16_t  ulMcs 
)

Constructor.

TestCase.

Parameters
namethe reference name
d1distance between ENB and UE
d2distance between ENB and other UE
dlSinrthe DL SINR
ulSinrthe UL SINR
dlSethe DL se
ulSethe UL se
dlMcsthe DL MCS
ulMcsthe UL MCS

Definition at line 200 of file lte-test-interference.cc.

◆ ~LteInterferenceTestCase()

LteInterferenceTestCase::~LteInterferenceTestCase ( )
override

Definition at line 219 of file lte-test-interference.cc.

Member Function Documentation

◆ DlScheduling()

void LteInterferenceTestCase::DlScheduling ( DlSchedulingCallbackInfo  dlInfo)

◆ DoRun()

◆ UlScheduling()

void LteInterferenceTestCase::UlScheduling ( uint32_t  frameNo,
uint32_t  subframeNo,
uint16_t  rnti,
uint8_t  mcs,
uint16_t  sizeTb 
)

UL scheduling function.

Parameters
frameNothe frame number
subframeNothe subframe number
rntithe RNTI
mcsthe MCS
sizeTb

Definition at line 380 of file lte-test-interference.cc.

References m_ulMcs, ns3::MilliSeconds(), ns3::Now(), NS_LOG_FUNCTION, and NS_TEST_ASSERT_MSG_EQ.

Referenced by LteTestUlSchedulingCallback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_d1

double LteInterferenceTestCase::m_d1
private

distance between UE and ENB

Definition at line 96 of file lte-test-interference.h.

Referenced by DoRun().

◆ m_d2

double LteInterferenceTestCase::m_d2
private

distance between UE and other ENB

Definition at line 97 of file lte-test-interference.h.

Referenced by DoRun().

◆ m_dlMcs

uint16_t LteInterferenceTestCase::m_dlMcs
private

the DL MCS

Definition at line 100 of file lte-test-interference.h.

Referenced by DlScheduling(), and DoRun().

◆ m_expectedDlSinrDb

double LteInterferenceTestCase::m_expectedDlSinrDb
private

expected DL SINR in dB

Definition at line 98 of file lte-test-interference.h.

Referenced by DoRun().

◆ m_expectedUlSinrDb

double LteInterferenceTestCase::m_expectedUlSinrDb
private

expected UL SINR in dB

Definition at line 99 of file lte-test-interference.h.

Referenced by DoRun().

◆ m_ulMcs

uint16_t LteInterferenceTestCase::m_ulMcs
private

the UL MCS

Definition at line 101 of file lte-test-interference.h.

Referenced by DoRun(), and UlScheduling().


The documentation for this class was generated from the following files: