A Discrete-Event Network Simulator
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
27using namespace ns3;
28
29/**
30 * \ingroup lte-test
31 *
32 * \brief Lte Cqi Generation Test Suite
33 */
34
36{
37 public:
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
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);
67
68 /**
69 * \brief DL Scheduling function
70 * \param dlInfo DL info
71 */
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
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 */
116 uint8_t cell0Pa,
117 uint8_t cell1Pa,
118 uint16_t dlMcs,
119 uint16_t ulMcs);
121
122 /**
123 * \brief DL Scheduling function
124 * \param dlInfo DL info
125 */
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 */
This test is very similar to LteCqiGenerationTestCase.
void DoRun() override
Implementation to actually run this TestCase.
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.
This is the test case for testing different configuration of CQI generation.
void UlScheduling(uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
UL Scheduling function.
void DoRun() override
Implementation to actually run this TestCase.
bool m_usePdschForCqiGeneration
use PDCCH for CQI generation
void DlScheduling(DlSchedulingCallbackInfo dlInfo)
DL Scheduling function.
Lte Cqi Generation Test Suite.
encapsulates test code
Definition: test.h:1061
A suite of tests to run.
Definition: test.h:1268
Every class exported by the ns3 library is enclosed in the ns3 namespace.
DlSchedulingCallbackInfo structure.
Definition: lte-common.h:237