A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-interference.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Manuel Requena <manuel.requena@cttc.es>
7 * Nicola Baldo <nbaldo@cttc.es>
8 */
9
10#ifndef LTE_TEST_INTERFERENCE_H
11#define LTE_TEST_INTERFERENCE_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 Test suite for interference test.
22 */
24{
25 public:
27};
28
29/**
30 * \ingroup lte-test
31 *
32 * \brief Test that SINR calculation and MCS selection works fine in a
33 * multi-cell interference scenario.
34 */
36{
37 public:
38 /**
39 * Constructor
40 *
41 * \param name the reference name
42 * \param d1 distance between ENB and UE
43 * \param d2 distance between ENB and other UE
44 * \param dlSinr the DL SINR
45 * \param ulSinr the UL SINR
46 * \param dlSe the DL se
47 * \param ulSe the UL se
48 * \param dlMcs the DL MCS
49 * \param ulMcs the UL MCS
50 */
51 LteInterferenceTestCase(std::string name,
52 double d1,
53 double d2,
54 double dlSinr,
55 double ulSinr,
56 double dlSe,
57 double ulSe,
58 uint16_t dlMcs,
59 uint16_t ulMcs);
60 ~LteInterferenceTestCase() override;
61
62 /**
63 * DL scheduling function
64 * \param dlInfo the DL info
65 */
67
68 /**
69 * UL scheduling function
70 * \param frameNo the frame number
71 * \param subframeNo the subframe number
72 * \param rnti the RNTI
73 * \param mcs the MCS
74 * \param sizeTb
75 */
76 void UlScheduling(uint32_t frameNo,
77 uint32_t subframeNo,
78 uint16_t rnti,
79 uint8_t mcs,
80 uint16_t sizeTb);
81
82 private:
83 void DoRun() override;
84
85 double m_d1; ///< distance between UE and ENB
86 double m_d2; ///< distance between UE and other ENB
87 double m_expectedDlSinrDb; ///< expected DL SINR in dB
88 double m_expectedUlSinrDb; ///< expected UL SINR in dB
89 uint16_t m_dlMcs; ///< the DL MCS
90 uint16_t m_ulMcs; ///< the UL MCS
91};
92
93#endif /* LTE_TEST_INTERFERENCE_H */
Test that SINR calculation and MCS selection works fine in a multi-cell interference scenario.
LteInterferenceTestCase(std::string name, double d1, double d2, double dlSinr, double ulSinr, double dlSe, double ulSe, uint16_t dlMcs, uint16_t ulMcs)
Constructor.
void DoRun() override
Implementation to actually run this TestCase.
double m_expectedDlSinrDb
expected DL SINR in dB
void UlScheduling(uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t sizeTb)
UL scheduling function.
double m_expectedUlSinrDb
expected UL SINR in dB
void DlScheduling(DlSchedulingCallbackInfo dlInfo)
DL scheduling function.
double m_d2
distance between UE and other ENB
double m_d1
distance between UE and ENB
Test suite for interference test.
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