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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Piotr Gawlowicz <gawlowicz.p@gmail.com>
7 *
8 */
9
10#ifndef LTE_TEST_CQI_GENERATION_H
11#define LTE_TEST_CQI_GENERATION_H
12
13#include "ns3/lte-common.h"
14#include "ns3/test.h"
15
16using namespace ns3;
17
18/**
19 * \ingroup lte-test
20 *
21 * \brief Lte Cqi Generation Test Suite
22 */
23
25{
26 public:
28};
29
30/**
31 * \ingroup lte-test
32 *
33 * \brief This is the test case for testing different configuration of CQI generation.
34 * The topology consists of the two UEs and two eNbs. UEs have the same position,
35 * while eNodeBs are at the same distance from both UEs. The checking whether CQI is
36 * generated properly for two different cases: when PDCCH is used for the CQI
37 * estimation and when PDSCH is used for CQI estimation.
38 */
39
41{
42 public:
43 /**
44 * Constructor
45 *
46 * \param name reference name
47 * \param usePdcchForCqiGeneration use PDCCH for CQI generation
48 * \param dlMcs DL MCS
49 * \param ulMcs UL MCS
50 */
51 LteCqiGenerationTestCase(std::string name,
52 bool usePdcchForCqiGeneration,
53 uint16_t dlMcs,
54 uint16_t ulMcs);
56
57 /**
58 * \brief DL Scheduling function
59 * \param dlInfo DL info
60 */
62
63 /**
64 * \brief UL Scheduling function
65 * \param frameNo frame number
66 * \param subframeNo subframe number
67 * \param rnti the RNTI
68 * \param mcs the MCS
69 * \param sizeTb size
70 */
71 void UlScheduling(uint32_t frameNo,
72 uint32_t subframeNo,
73 uint16_t rnti,
74 uint8_t mcs,
75 uint16_t sizeTb);
76
77 private:
78 void DoRun() override;
79
80 bool m_usePdschForCqiGeneration; ///< use PDCCH for CQI generation
81 uint16_t m_dlMcs; ///< the DL MCS
82 uint16_t m_ulMcs; ///< the UL MCS
83};
84
85/**
86 * \ingroup lte-test
87 *
88 * \brief This test is very similar to LteCqiGenerationTestCase. The difference is that in this
89 * test is enabled the downlink power control.
90 */
91
93{
94 public:
95 /**
96 * Constructor
97 *
98 * \param name reference name
99 * \param cell0Pa cell # 0 PA
100 * \param cell1Pa cell # 1 PA
101 * \param dlMcs DL MCS
102 * \param ulMcs UL MCS
103 */
105 uint8_t cell0Pa,
106 uint8_t cell1Pa,
107 uint16_t dlMcs,
108 uint16_t ulMcs);
110
111 /**
112 * \brief DL Scheduling function
113 * \param dlInfo DL info
114 */
116
117 /**
118 * \brief UL Scheduling function
119 * \param frameNo frame number
120 * \param subframeNo subframe number
121 * \param rnti the RNTI
122 * \param mcs the MCS
123 * \param sizeTb size
124 */
125 void UlScheduling(uint32_t frameNo,
126 uint32_t subframeNo,
127 uint16_t rnti,
128 uint8_t mcs,
129 uint16_t sizeTb);
130
131 private:
132 void DoRun() override;
133
134 uint8_t m_cell0Pa; ///< cell #0 PA
135 uint8_t m_cell1Pa; ///< cell #1 PA
136
137 uint16_t m_dlMcs; ///< the DL MCS
138 uint16_t m_ulMcs; ///< the UL MCS
139};
140
141#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.
LteCqiGenerationDlPowerControlTestCase(std::string name, uint8_t cell0Pa, uint8_t cell1Pa, uint16_t dlMcs, uint16_t ulMcs)
Constructor.
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.
LteCqiGenerationTestCase(std::string name, bool usePdcchForCqiGeneration, uint16_t dlMcs, uint16_t ulMcs)
Constructor.
Lte Cqi Generation Test Suite.
encapsulates test code
Definition test.h:1050
A suite of tests to run.
Definition test.h:1267
Every class exported by the ns3 library is enclosed in the ns3 namespace.
DlSchedulingCallbackInfo structure.
Definition lte-common.h:226