1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ 2 /* 3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation; 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * 18 * Author: Marco Miozzo <marco.miozzo@cttc.es>, 19 * Nicola Baldo <nbaldo@cttc.es> 20 * Dizhi Zhou <dizhi.zhou@gmail.com> 21 */ 22 23 #ifndef LENA_TEST_TTA_FF_MAC_SCHEDULER_H 24 #define LENA_TEST_TTA_FF_MAC_SCHEDULER_H 25 26 #include "ns3/simulator.h" 27 #include "ns3/test.h" 28 29 30 using namespace ns3; 31 32 33 /** 34 * \ingroup lte-test 35 * \ingroup tests 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. The test consists on checking that the obtained throughput performance 42 * is consistent with the definition of throughput to average 43 * scheduling 44 */ 45 class LenaTtaFfMacSchedulerTestCase : public TestCase 46 { 47 public: 48 /** 49 * Constructor 50 * 51 * \param nUser the number of UE nodes 52 * \param dist the distance between nodes 53 * \param thrRefDl the DL throughput reference 54 * \param thrRefUl the UL throughput reference 55 * \param errorModelEnabled if true the error model is enabled 56 */ 57 LenaTtaFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled); 58 virtual ~LenaTtaFfMacSchedulerTestCase (); 59 60 private: 61 /** 62 * Build name string 63 * \param nUser the number of UE nodes 64 * \param dist the distnace between nodes 65 * \returns the name string 66 */ 67 static std::string BuildNameString (uint16_t nUser, double dist); 68 virtual void DoRun (void); 69 uint16_t m_nUser; ///< number of UE nodes 70 double m_dist; ///< the distance between nodes 71 double m_thrRefDl; ///< the DL throughput reference 72 double m_thrRefUl; ///< the UL throughput reference 73 bool m_errorModelEnabled; ///< is error model enabled? 74 }; 75 76 /** 77 * \ingroup lte-test 78 * \ingroup tests 79 * 80 * \brief Lena Test Tta Ff Mac Scheduler Suite 81 */ 82 class LenaTestTtaFfMacSchedulerSuite : public TestSuite 83 { 84 public: 85 LenaTestTtaFfMacSchedulerSuite (); 86 }; 87 88 89 90 91 #endif /* LENA_TEST_TTA_FF_MAC_SCHEDULER_H */ 92