1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ 2 /* 3 * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari 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: Giuseppe Piro <g.piro@poliba.it> 19 * Marco Miozzo <marco.miozzo@cttc.es> 20 */ 21 22 #include "lte-control-messages.h" 23 #include "ns3/address-utils.h" 24 #include "ns3/uinteger.h" 25 #include "ns3/log.h" 26 #include "lte-net-device.h" 27 #include "lte-ue-net-device.h" 28 29 namespace ns3 { 30 31 NS_LOG_COMPONENT_DEFINE ("LteControlMessage"); 32 LteControlMessage(void)33LteControlMessage::LteControlMessage (void) 34 { 35 } 36 37 ~LteControlMessage(void)38LteControlMessage::~LteControlMessage (void) 39 { 40 } 41 42 43 void SetMessageType(LteControlMessage::MessageType type)44LteControlMessage::SetMessageType (LteControlMessage::MessageType type) 45 { 46 m_type = type; 47 } 48 49 50 LteControlMessage::MessageType GetMessageType(void)51LteControlMessage::GetMessageType (void) 52 { 53 return m_type; 54 } 55 56 57 // ---------------------------------------------------------------------------------------------------------- 58 59 DlDciLteControlMessage(void)60DlDciLteControlMessage::DlDciLteControlMessage (void) 61 { 62 SetMessageType (LteControlMessage::DL_DCI); 63 } 64 65 ~DlDciLteControlMessage(void)66DlDciLteControlMessage::~DlDciLteControlMessage (void) 67 { 68 69 } 70 71 void SetDci(DlDciListElement_s dci)72DlDciLteControlMessage::SetDci (DlDciListElement_s dci) 73 { 74 m_dci = dci; 75 76 } 77 78 79 DlDciListElement_s GetDci(void)80DlDciLteControlMessage::GetDci (void) 81 { 82 return m_dci; 83 } 84 85 86 // ---------------------------------------------------------------------------------------------------------- 87 88 UlDciLteControlMessage(void)89UlDciLteControlMessage::UlDciLteControlMessage (void) 90 { 91 SetMessageType (LteControlMessage::UL_DCI); 92 } 93 94 ~UlDciLteControlMessage(void)95UlDciLteControlMessage::~UlDciLteControlMessage (void) 96 { 97 98 } 99 100 void SetDci(UlDciListElement_s dci)101UlDciLteControlMessage::SetDci (UlDciListElement_s dci) 102 { 103 m_dci = dci; 104 105 } 106 107 108 UlDciListElement_s GetDci(void)109UlDciLteControlMessage::GetDci (void) 110 { 111 return m_dci; 112 } 113 114 115 // ---------------------------------------------------------------------------------------------------------- 116 117 DlCqiLteControlMessage(void)118DlCqiLteControlMessage::DlCqiLteControlMessage (void) 119 { 120 SetMessageType (LteControlMessage::DL_CQI); 121 } 122 123 ~DlCqiLteControlMessage(void)124DlCqiLteControlMessage::~DlCqiLteControlMessage (void) 125 { 126 127 } 128 129 void SetDlCqi(CqiListElement_s dlcqi)130DlCqiLteControlMessage::SetDlCqi (CqiListElement_s dlcqi) 131 { 132 m_dlCqi = dlcqi; 133 134 } 135 136 137 CqiListElement_s GetDlCqi(void)138DlCqiLteControlMessage::GetDlCqi (void) 139 { 140 return m_dlCqi; 141 } 142 143 144 145 // ---------------------------------------------------------------------------------------------------------- 146 147 BsrLteControlMessage(void)148BsrLteControlMessage::BsrLteControlMessage (void) 149 { 150 SetMessageType (LteControlMessage::BSR); 151 } 152 153 ~BsrLteControlMessage(void)154BsrLteControlMessage::~BsrLteControlMessage (void) 155 { 156 157 } 158 159 void SetBsr(MacCeListElement_s bsr)160BsrLteControlMessage::SetBsr (MacCeListElement_s bsr) 161 { 162 m_bsr = bsr; 163 164 } 165 166 167 MacCeListElement_s GetBsr(void)168BsrLteControlMessage::GetBsr (void) 169 { 170 return m_bsr; 171 } 172 173 174 175 // ---------------------------------------------------------------------------------------------------------- 176 177 RachPreambleLteControlMessage(void)178RachPreambleLteControlMessage::RachPreambleLteControlMessage (void) 179 { 180 SetMessageType (LteControlMessage::RACH_PREAMBLE); 181 } 182 183 void SetRapId(uint32_t rapId)184RachPreambleLteControlMessage::SetRapId (uint32_t rapId) 185 { 186 m_rapId = rapId; 187 } 188 189 uint32_t GetRapId() const190RachPreambleLteControlMessage::GetRapId () const 191 { 192 return m_rapId; 193 } 194 195 196 // ---------------------------------------------------------------------------------------------------------- 197 198 RarLteControlMessage(void)199RarLteControlMessage::RarLteControlMessage (void) 200 { 201 SetMessageType (LteControlMessage::RAR); 202 } 203 204 205 void SetRaRnti(uint16_t raRnti)206RarLteControlMessage::SetRaRnti (uint16_t raRnti) 207 { 208 m_raRnti = raRnti; 209 } 210 211 uint16_t GetRaRnti() const212RarLteControlMessage::GetRaRnti () const 213 { 214 return m_raRnti; 215 } 216 217 218 void AddRar(Rar rar)219RarLteControlMessage::AddRar (Rar rar) 220 { 221 m_rarList.push_back (rar); 222 } 223 224 std::list<RarLteControlMessage::Rar>::const_iterator RarListBegin() const225RarLteControlMessage::RarListBegin () const 226 { 227 return m_rarList.begin (); 228 } 229 230 std::list<RarLteControlMessage::Rar>::const_iterator RarListEnd() const231RarLteControlMessage::RarListEnd () const 232 { 233 return m_rarList.end (); 234 } 235 236 237 // ---------------------------------------------------------------------------------------------------------- 238 239 240 MibLteControlMessage(void)241MibLteControlMessage::MibLteControlMessage (void) 242 { 243 SetMessageType (LteControlMessage::MIB); 244 } 245 246 247 void SetMib(LteRrcSap::MasterInformationBlock mib)248MibLteControlMessage::SetMib (LteRrcSap::MasterInformationBlock mib) 249 { 250 m_mib = mib; 251 } 252 253 LteRrcSap::MasterInformationBlock GetMib() const254MibLteControlMessage::GetMib () const 255 { 256 return m_mib; 257 } 258 259 260 // ---------------------------------------------------------------------------------------------------------- 261 262 263 Sib1LteControlMessage(void)264Sib1LteControlMessage::Sib1LteControlMessage (void) 265 { 266 SetMessageType (LteControlMessage::SIB1); 267 } 268 269 270 void SetSib1(LteRrcSap::SystemInformationBlockType1 sib1)271Sib1LteControlMessage::SetSib1 (LteRrcSap::SystemInformationBlockType1 sib1) 272 { 273 m_sib1 = sib1; 274 } 275 276 LteRrcSap::SystemInformationBlockType1 GetSib1() const277Sib1LteControlMessage::GetSib1 () const 278 { 279 return m_sib1; 280 } 281 282 283 // --------------------------------------------------------------------------- 284 285 286 DlHarqFeedbackLteControlMessage(void)287DlHarqFeedbackLteControlMessage::DlHarqFeedbackLteControlMessage (void) 288 { 289 SetMessageType (LteControlMessage::DL_HARQ); 290 } 291 292 ~DlHarqFeedbackLteControlMessage(void)293DlHarqFeedbackLteControlMessage::~DlHarqFeedbackLteControlMessage (void) 294 { 295 296 } 297 298 void SetDlHarqFeedback(DlInfoListElement_s m)299DlHarqFeedbackLteControlMessage::SetDlHarqFeedback (DlInfoListElement_s m) 300 { 301 m_dlInfoListElement = m; 302 } 303 304 305 DlInfoListElement_s GetDlHarqFeedback(void)306DlHarqFeedbackLteControlMessage::GetDlHarqFeedback (void) 307 { 308 return m_dlInfoListElement; 309 } 310 311 312 } // namespace ns3 313 314