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-carrier-aggregation.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Biljana Bojovic <biljana.bojovic@cttc.es>
18
*
19
*/
20
21
#ifndef TEST_CARRIER_AGGREGATION_H
22
#define TEST_CARRIER_AGGREGATION_H
23
24
#include "fcntl.h"
25
26
#include "ns3/lte-common.h"
27
#include "ns3/simulator.h"
28
#include "ns3/test.h"
29
30
#include <map>
31
32
using namespace
ns3
;
33
34
/**
35
* \ingroup lte-test
36
*
37
* \brief This system test program creates different test cases with a single eNB and
38
* several UEs, all having the same Radio Bearer specification. In each test
39
* case, the UEs see the same SINR from the eNB; different test cases are
40
* implemented obtained by using different SINR values and different numbers of
41
* UEs. eNb and UEs are configured to use the secondary carrier and the component
42
* carrier manager is configured to split the data equally between primary and
43
* secondary carrier. The test consists of checking that the throughput
44
* obtained over different carriers are equal within a given tolerance.
45
*/
46
class
CarrierAggregationTestCase
:
public
TestCase
47
{
48
public
:
49
static
bool
s_writeResults
;
///< write results flag, determines whether to write results to
50
///< outoput files
51
52
/**
53
* Constructor of test case
54
*
55
* \param nUser number of users
56
* \param dist the distance
57
* \param dlbandwidth the DL bandwidth
58
* \param ulBandwidth the UL badnwidth
59
* \param numberOfComponentCarriers number of component carriers to be used in test
60
* configuration
61
*/
62
CarrierAggregationTestCase
(uint16_t nUser,
63
uint16_t dist,
64
uint32_t
dlbandwidth,
65
uint32_t
ulBandwidth,
66
uint32_t
numberOfComponentCarriers);
67
~CarrierAggregationTestCase
()
override
;
68
/**
69
* DL Scheduling function that is used in this test as callback function of DL scheduling trace
70
* \param dlInfo the DL scheduling callback info
71
*/
72
void
DlScheduling
(
DlSchedulingCallbackInfo
dlInfo);
73
/**
74
* UL Scheduling function that is used in this test as callback function of UL scheduling trace
75
* \param frameNo the frame number
76
* \param subframeNo the subframe number
77
* \param rnti the RNTI
78
* \param mcs the MCS
79
* \param sizeTb
80
* \param componentCarrierId the component carrier ID
81
*/
82
void
UlScheduling
(
uint32_t
frameNo,
83
uint32_t
subframeNo,
84
uint16_t rnti,
85
uint8_t mcs,
86
uint16_t sizeTb,
87
uint8_t componentCarrierId);
88
/// Write result to file function
89
void
WriteResultToFile
()
const
;
90
91
private
:
92
void
DoRun
()
override
;
93
/**
94
* Builds the test name string based on provided parameter values
95
* \param nUser number of users
96
* \param dist the distance
97
* \param dlBandwidth the DL bandwidth
98
* \param ulBandwidth the UL badnwidth
99
* \param numberOfComponentCarriers number of component carriers
100
* \returns the test name
101
*/
102
static
std::string
BuildNameString
(uint16_t nUser,
103
uint16_t dist,
104
uint32_t
dlBandwidth,
105
uint32_t
ulBandwidth,
106
uint32_t
numberOfComponentCarriers);
107
108
uint16_t
m_nUser
;
///< the number of users
109
uint16_t
m_dist
;
///< the distance
110
uint16_t
m_dlBandwidth
;
///< DL bandwidth
111
uint16_t
m_ulBandwidth
;
///< UL bandwidth
112
uint32_t
m_numberOfComponentCarriers
;
///< number of component carriers
113
114
std::map<uint8_t, uint32_t>
m_ccDownlinkTraffic
;
///< CC DL traffic
115
std::map<uint8_t, uint32_t>
m_ccUplinkTraffic
;
///< CC UL traffic
116
uint64_t
m_dlThroughput
;
///< DL throughput
117
uint64_t
m_ulThroughput
;
///< UL throughput
118
double
m_statsDuration
;
///< stats duration
119
};
120
121
/**
122
* \ingroup lte-test
123
*
124
* \brief Test Carrier Aggregation Suite
125
*/
126
class
TestCarrierAggregationSuite
:
public
TestSuite
127
{
128
public
:
129
TestCarrierAggregationSuite
();
130
};
131
132
#endif
/* TEST_CARRIER_AGGREGATION_H */
CarrierAggregationTestCase
This system test program creates different test cases with a single eNB and several UEs,...
Definition:
lte-test-carrier-aggregation.h:47
CarrierAggregationTestCase::DoRun
void DoRun() override
Implementation to actually run this TestCase.
Definition:
lte-test-carrier-aggregation.cc:371
CarrierAggregationTestCase::m_numberOfComponentCarriers
uint32_t m_numberOfComponentCarriers
number of component carriers
Definition:
lte-test-carrier-aggregation.h:112
CarrierAggregationTestCase::~CarrierAggregationTestCase
~CarrierAggregationTestCase() override
Definition:
lte-test-carrier-aggregation.cc:366
CarrierAggregationTestCase::DlScheduling
void DlScheduling(DlSchedulingCallbackInfo dlInfo)
DL Scheduling function that is used in this test as callback function of DL scheduling trace.
Definition:
lte-test-carrier-aggregation.cc:559
CarrierAggregationTestCase::s_writeResults
static bool s_writeResults
write results flag, determines whether to write results to outoput files
Definition:
lte-test-carrier-aggregation.h:49
CarrierAggregationTestCase::m_dlThroughput
uint64_t m_dlThroughput
DL throughput.
Definition:
lte-test-carrier-aggregation.h:116
CarrierAggregationTestCase::m_statsDuration
double m_statsDuration
stats duration
Definition:
lte-test-carrier-aggregation.h:118
CarrierAggregationTestCase::m_nUser
uint16_t m_nUser
the number of users
Definition:
lte-test-carrier-aggregation.h:108
CarrierAggregationTestCase::m_ccDownlinkTraffic
std::map< uint8_t, uint32_t > m_ccDownlinkTraffic
CC DL traffic.
Definition:
lte-test-carrier-aggregation.h:114
CarrierAggregationTestCase::UlScheduling
void UlScheduling(uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb, uint8_t componentCarrierId)
UL Scheduling function that is used in this test as callback function of UL scheduling trace.
Definition:
lte-test-carrier-aggregation.cc:584
CarrierAggregationTestCase::WriteResultToFile
void WriteResultToFile() const
Write result to file function.
Definition:
lte-test-carrier-aggregation.cc:609
CarrierAggregationTestCase::m_ulBandwidth
uint16_t m_ulBandwidth
UL bandwidth.
Definition:
lte-test-carrier-aggregation.h:111
CarrierAggregationTestCase::m_ulThroughput
uint64_t m_ulThroughput
UL throughput.
Definition:
lte-test-carrier-aggregation.h:117
CarrierAggregationTestCase::m_dlBandwidth
uint16_t m_dlBandwidth
DL bandwidth.
Definition:
lte-test-carrier-aggregation.h:110
CarrierAggregationTestCase::BuildNameString
static std::string BuildNameString(uint16_t nUser, uint16_t dist, uint32_t dlBandwidth, uint32_t ulBandwidth, uint32_t numberOfComponentCarriers)
Builds the test name string based on provided parameter values.
Definition:
lte-test-carrier-aggregation.cc:337
CarrierAggregationTestCase::m_ccUplinkTraffic
std::map< uint8_t, uint32_t > m_ccUplinkTraffic
CC UL traffic.
Definition:
lte-test-carrier-aggregation.h:115
CarrierAggregationTestCase::m_dist
uint16_t m_dist
the distance
Definition:
lte-test-carrier-aggregation.h:109
TestCarrierAggregationSuite
Test Carrier Aggregation Suite.
Definition:
lte-test-carrier-aggregation.h:127
TestCarrierAggregationSuite::TestCarrierAggregationSuite
TestCarrierAggregationSuite()
Definition:
lte-test-carrier-aggregation.cc:82
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-carrier-aggregation.h
Generated on Tue May 28 2024 23:37:45 for ns-3 by
1.9.6