1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 /* 3 * Copyright (c) 2011 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: Nicola Baldo <nbaldo@cttc.es> 19 * Modified by Marco Miozzo <mmiozzo@cttc.es> (add data and ctrl diversity) 20 */ 21 22 #ifndef LTE_SPECTRUM_SIGNAL_PARAMETERS_H 23 #define LTE_SPECTRUM_SIGNAL_PARAMETERS_H 24 25 26 #include <ns3/spectrum-signal-parameters.h> 27 28 namespace ns3 { 29 30 class PacketBurst; 31 class LteControlMessage; 32 33 34 /** 35 * \ingroup lte 36 * 37 * Signal parameters for Lte 38 */ 39 struct LteSpectrumSignalParameters : public SpectrumSignalParameters 40 { 41 42 // inherited from SpectrumSignalParameters 43 virtual Ptr<SpectrumSignalParameters> Copy (); 44 45 /** 46 * default constructor 47 */ 48 LteSpectrumSignalParameters (); 49 50 /** 51 * copy constructor 52 * \param p the LteSpectrumSignalParameters to copy 53 */ 54 LteSpectrumSignalParameters (const LteSpectrumSignalParameters& p); 55 56 /** 57 * The packet burst being transmitted with this signal 58 */ 59 Ptr<PacketBurst> packetBurst; 60 }; 61 62 63 /** 64 * \ingroup lte 65 * 66 * Signal parameters for Lte Data Frame (PDSCH), and eventually after some 67 * control messages through other control channel embedded in PDSCH 68 * (i.e. PBCH) 69 */ 70 struct LteSpectrumSignalParametersDataFrame : public SpectrumSignalParameters 71 { 72 73 // inherited from SpectrumSignalParameters 74 virtual Ptr<SpectrumSignalParameters> Copy (); 75 76 /** 77 * default constructor 78 */ 79 LteSpectrumSignalParametersDataFrame (); 80 81 /** 82 * copy constructor 83 * \param p the LteSpectrumSignalParametersDataFrame to copy 84 */ 85 LteSpectrumSignalParametersDataFrame (const LteSpectrumSignalParametersDataFrame& p); 86 87 /** 88 * The packet burst being transmitted with this signal 89 */ 90 Ptr<PacketBurst> packetBurst; 91 92 std::list<Ptr<LteControlMessage> > ctrlMsgList; ///< the control message list 93 94 uint16_t cellId; ///< cell ID 95 }; 96 97 98 /** 99 * \ingroup lte 100 * 101 * Signal parameters for Lte DL Ctrl Frame (RS, PCFICH and PDCCH) 102 */ 103 struct LteSpectrumSignalParametersDlCtrlFrame : public SpectrumSignalParameters 104 { 105 106 // inherited from SpectrumSignalParameters 107 virtual Ptr<SpectrumSignalParameters> Copy (); 108 109 /** 110 * default constructor 111 */ 112 LteSpectrumSignalParametersDlCtrlFrame (); 113 114 /** 115 * copy constructor 116 * \param p the LteSpectrumSignalParametersDlCtrlFrame to copy 117 */ 118 LteSpectrumSignalParametersDlCtrlFrame (const LteSpectrumSignalParametersDlCtrlFrame& p); 119 120 121 std::list<Ptr<LteControlMessage> > ctrlMsgList; ///< control message list 122 123 uint16_t cellId; ///< cell ID 124 bool pss; ///< primary synchronization signal 125 }; 126 127 128 129 /** 130 * \ingroup lte 131 * 132 * Signal parameters for Lte SRS Frame 133 */ 134 struct LteSpectrumSignalParametersUlSrsFrame : public SpectrumSignalParameters 135 { 136 137 // inherited from SpectrumSignalParameters 138 virtual Ptr<SpectrumSignalParameters> Copy (); 139 140 /** 141 * default constructor 142 */ 143 LteSpectrumSignalParametersUlSrsFrame (); 144 145 /** 146 * copy constructor 147 * \param p the LteSpectrumSignalParametersUlSrsFrame to copy 148 */ 149 LteSpectrumSignalParametersUlSrsFrame (const LteSpectrumSignalParametersUlSrsFrame& p); 150 151 uint16_t cellId; ///< cell ID 152 }; 153 154 155 } // namespace ns3 156 157 158 #endif /* LTE_SPECTRUM_SIGNAL_PARAMETERS_H */ 159