A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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.
 
 ~LteInterferenceTestCase () override
 
void DlScheduling (DlSchedulingCallbackInfo dlInfo)
 DL scheduling function.
 
void UlScheduling (uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
 UL scheduling function.
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor.
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

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

Private Attributes

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

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum class  Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
using instead = Duration
 
- Static Public Attributes inherited from ns3::TestCase
static constexpr auto EXTENSIVE = Duration::EXTENSIVE
 
static constexpr auto QUICK = Duration::QUICK
 
static constexpr auto TAKES_FOREVER
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor.
 
void AddTestCase (TestCase *testCase, Duration duration=Duration::QUICK)
 Add an individual child TestCase to this test suite.
 
TestCaseGetParent () const
 Get the parent of this TestCase.
 
bool IsStatusFailure () const
 Check if any tests failed.
 
bool IsStatusSuccess () const
 Check if all tests passed.
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found.
 
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.
 
bool MustAssertOnFailure () const
 Check if this run should assert on failure.
 
bool MustContinueOnFailure () const
 Check if this run should continue on failure.
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory.
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory.
 

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)

DL scheduling function.

Parameters
dlInfothe DL info

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

References ns3::DlSchedulingCallbackInfo::frameNo, m_dlMcs, ns3::DlSchedulingCallbackInfo::mcsTb1, ns3::DlSchedulingCallbackInfo::mcsTb2, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_TEST_ASSERT_MSG_EQ, ns3::DlSchedulingCallbackInfo::rnti, ns3::DlSchedulingCallbackInfo::sizeTb1, ns3::DlSchedulingCallbackInfo::sizeTb2, and ns3::DlSchedulingCallbackInfo::subframeNo.

Referenced by LteTestDlSchedulingCallback().

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

◆ DoRun()

void LteInterferenceTestCase::DoRun ( )
overrideprivatevirtual

◆ 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::Simulator::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: