A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
lte-test-cqi-generation.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014 Piotr Gawlowicz
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Piotr Gawlowicz <gawlowicz.p@gmail.com>
18
*
19
*/
20
21
#ifndef LTE_TEST_CQI_GENERATION_H
22
#define LTE_TEST_CQI_GENERATION_H
23
24
#include "ns3/lte-common.h"
25
#include "ns3/test.h"
26
27
using namespace
ns3
;
28
29
/**
30
* \ingroup lte-test
31
*
32
* \brief Lte Cqi Generation Test Suite
33
*/
34
35
class
LteCqiGenerationTestSuite
:
public
TestSuite
36
{
37
public
:
38
LteCqiGenerationTestSuite
();
39
};
40
41
/**
42
* \ingroup lte-test
43
*
44
* \brief This is the test case for testing different configuration of CQI generation.
45
* The topology consists of the two UEs and two eNbs. UEs have the same position,
46
* while eNodeBs are at the same distance from both UEs. The checking whether CQI is
47
* generated properly for two different cases: when PDCCH is used for the CQI
48
* estimation and when PDSCH is used for CQI estimation.
49
*/
50
51
class
LteCqiGenerationTestCase
:
public
TestCase
52
{
53
public
:
54
/**
55
* Constructor
56
*
57
* \param name reference name
58
* \param usePdcchForCqiGeneration use PDCCH for CQI generation
59
* \param dlMcs DL MCS
60
* \param ulMcs UL MCS
61
*/
62
LteCqiGenerationTestCase
(std::string name,
63
bool
usePdcchForCqiGeneration,
64
uint16_t dlMcs,
65
uint16_t ulMcs);
66
~LteCqiGenerationTestCase
()
override
;
67
68
/**
69
* \brief DL Scheduling function
70
* \param dlInfo DL info
71
*/
72
void
DlScheduling
(
DlSchedulingCallbackInfo
dlInfo);
73
74
/**
75
* \brief UL Scheduling function
76
* \param frameNo frame number
77
* \param subframeNo subframe number
78
* \param rnti the RNTI
79
* \param mcs the MCS
80
* \param sizeTb size
81
*/
82
void
UlScheduling
(
uint32_t
frameNo,
83
uint32_t
subframeNo,
84
uint16_t rnti,
85
uint8_t mcs,
86
uint16_t sizeTb);
87
88
private
:
89
void
DoRun
()
override
;
90
91
bool
m_usePdschForCqiGeneration
;
///< use PDCCH for CQI generation
92
uint16_t
m_dlMcs
;
///< the DL MCS
93
uint16_t
m_ulMcs
;
///< the UL MCS
94
};
95
96
/**
97
* \ingroup lte-test
98
*
99
* \brief This test is very similar to LteCqiGenerationTestCase. The difference is that in this
100
* test is enabled the downlink power control.
101
*/
102
103
class
LteCqiGenerationDlPowerControlTestCase
:
public
TestCase
104
{
105
public
:
106
/**
107
* Constructor
108
*
109
* \param name reference name
110
* \param cell0Pa cell # 0 PA
111
* \param cell1Pa cell # 1 PA
112
* \param dlMcs DL MCS
113
* \param ulMcs UL MCS
114
*/
115
LteCqiGenerationDlPowerControlTestCase
(std::string name,
116
uint8_t cell0Pa,
117
uint8_t cell1Pa,
118
uint16_t dlMcs,
119
uint16_t ulMcs);
120
~LteCqiGenerationDlPowerControlTestCase
()
override
;
121
122
/**
123
* \brief DL Scheduling function
124
* \param dlInfo DL info
125
*/
126
void
DlScheduling
(
DlSchedulingCallbackInfo
dlInfo);
127
128
/**
129
* \brief UL Scheduling function
130
* \param frameNo frame number
131
* \param subframeNo subframe number
132
* \param rnti the RNTI
133
* \param mcs the MCS
134
* \param sizeTb size
135
*/
136
void
UlScheduling
(
uint32_t
frameNo,
137
uint32_t
subframeNo,
138
uint16_t rnti,
139
uint8_t mcs,
140
uint16_t sizeTb);
141
142
private
:
143
void
DoRun
()
override
;
144
145
uint8_t
m_cell0Pa
;
///< cell #0 PA
146
uint8_t
m_cell1Pa
;
///< cell #1 PA
147
148
uint16_t
m_dlMcs
;
///< the DL MCS
149
uint16_t
m_ulMcs
;
///< the UL MCS
150
};
151
152
#endif
/* LTE_TEST_CQI_GENERATION_H */
LteCqiGenerationDlPowerControlTestCase
This test is very similar to LteCqiGenerationTestCase.
Definition:
lte-test-cqi-generation.h:104
LteCqiGenerationDlPowerControlTestCase::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
lte-test-cqi-generation.cc:340
LteCqiGenerationDlPowerControlTestCase::m_cell0Pa
uint8_t m_cell0Pa
cell #0 PA
Definition:
lte-test-cqi-generation.h:145
LteCqiGenerationDlPowerControlTestCase::DlScheduling
void DlScheduling(DlSchedulingCallbackInfo dlInfo)
DL Scheduling function.
Definition:
lte-test-cqi-generation.cc:312
LteCqiGenerationDlPowerControlTestCase::~LteCqiGenerationDlPowerControlTestCase
~LteCqiGenerationDlPowerControlTestCase() override
Definition:
lte-test-cqi-generation.cc:307
LteCqiGenerationDlPowerControlTestCase::m_ulMcs
uint16_t m_ulMcs
the UL MCS
Definition:
lte-test-cqi-generation.h:149
LteCqiGenerationDlPowerControlTestCase::UlScheduling
void UlScheduling(uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
UL Scheduling function.
Definition:
lte-test-cqi-generation.cc:324
LteCqiGenerationDlPowerControlTestCase::m_dlMcs
uint16_t m_dlMcs
the DL MCS
Definition:
lte-test-cqi-generation.h:148
LteCqiGenerationDlPowerControlTestCase::m_cell1Pa
uint8_t m_cell1Pa
cell #1 PA
Definition:
lte-test-cqi-generation.h:146
LteCqiGenerationTestCase
This is the test case for testing different configuration of CQI generation.
Definition:
lte-test-cqi-generation.h:52
LteCqiGenerationTestCase::UlScheduling
void UlScheduling(uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
UL Scheduling function.
Definition:
lte-test-cqi-generation.cc:182
LteCqiGenerationTestCase::~LteCqiGenerationTestCase
~LteCqiGenerationTestCase() override
Definition:
lte-test-cqi-generation.cc:165
LteCqiGenerationTestCase::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
lte-test-cqi-generation.cc:198
LteCqiGenerationTestCase::m_ulMcs
uint16_t m_ulMcs
the UL MCS
Definition:
lte-test-cqi-generation.h:93
LteCqiGenerationTestCase::m_usePdschForCqiGeneration
bool m_usePdschForCqiGeneration
use PDCCH for CQI generation
Definition:
lte-test-cqi-generation.h:91
LteCqiGenerationTestCase::DlScheduling
void DlScheduling(DlSchedulingCallbackInfo dlInfo)
DL Scheduling function.
Definition:
lte-test-cqi-generation.cc:170
LteCqiGenerationTestCase::m_dlMcs
uint16_t m_dlMcs
the DL MCS
Definition:
lte-test-cqi-generation.h:92
LteCqiGenerationTestSuite
Lte Cqi Generation Test Suite.
Definition:
lte-test-cqi-generation.h:36
LteCqiGenerationTestSuite::LteCqiGenerationTestSuite
LteCqiGenerationTestSuite()
TestSuite.
Definition:
lte-test-cqi-generation.cc:91
ns3::TestCase
encapsulates test code
Definition:
test.h:1061
ns3::TestSuite
A suite of tests to run.
Definition:
test.h:1273
uint32_t
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::DlSchedulingCallbackInfo
DlSchedulingCallbackInfo structure.
Definition:
lte-common.h:237
src
lte
test
lte-test-cqi-generation.h
Generated on Tue May 28 2024 23:37:46 for ns-3 by
1.9.6