A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
lte-control-messages.cc
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 NS_LOG_COMPONENT_DEFINE ("LteControlMessage");
30 
31 
32 namespace ns3 {
33 
34 LteControlMessage::LteControlMessage (void)
35 {
36 }
37 
38 
39 LteControlMessage::~LteControlMessage (void)
40 {
41 }
42 
43 
44 void
46 {
47  m_type = type;
48 }
49 
50 
53 {
54  return m_type;
55 }
56 
57 
58 // ----------------------------------------------------------------------------------------------------------
59 
60 
61 DlDciLteControlMessage::DlDciLteControlMessage (void)
62 {
63  SetMessageType (LteControlMessage::DL_DCI);
64 }
65 
66 
67 DlDciLteControlMessage::~DlDciLteControlMessage (void)
68 {
69 
70 }
71 
72 void
74 {
75  m_dci = dci;
76 
77 }
78 
79 
82 {
83  return m_dci;
84 }
85 
86 
87 // ----------------------------------------------------------------------------------------------------------
88 
89 
90 UlDciLteControlMessage::UlDciLteControlMessage (void)
91 {
92  SetMessageType (LteControlMessage::UL_DCI);
93 }
94 
95 
96 UlDciLteControlMessage::~UlDciLteControlMessage (void)
97 {
98 
99 }
100 
101 void
103 {
104  m_dci = dci;
105 
106 }
107 
108 
111 {
112  return m_dci;
113 }
114 
115 
116 // ----------------------------------------------------------------------------------------------------------
117 
118 
119 DlCqiLteControlMessage::DlCqiLteControlMessage (void)
120 {
121  SetMessageType (LteControlMessage::DL_CQI);
122 }
123 
124 
125 DlCqiLteControlMessage::~DlCqiLteControlMessage (void)
126 {
127 
128 }
129 
130 void
132 {
133  m_dlCqi = dlcqi;
134 
135 }
136 
137 
140 {
141  return m_dlCqi;
142 }
143 
144 
145 
146 // ----------------------------------------------------------------------------------------------------------
147 
148 
149 BsrLteControlMessage::BsrLteControlMessage (void)
150 {
151  SetMessageType (LteControlMessage::BSR);
152 }
153 
154 
155 BsrLteControlMessage::~BsrLteControlMessage (void)
156 {
157 
158 }
159 
160 void
162 {
163  m_bsr = bsr;
164 
165 }
166 
167 
170 {
171  return m_bsr;
172 }
173 
174 
175 
176 // ----------------------------------------------------------------------------------------------------------
177 
178 
179 RachPreambleLteControlMessage::RachPreambleLteControlMessage (void)
180 {
181  SetMessageType (LteControlMessage::RACH_PREAMBLE);
182 }
183 
184 void
186 {
187  m_rapId = rapId;
188 }
189 
190 uint32_t
192 {
193  return m_rapId;
194 }
195 
196 
197 // ----------------------------------------------------------------------------------------------------------
198 
199 
200 RarLteControlMessage::RarLteControlMessage (void)
201 {
202  SetMessageType (LteControlMessage::RAR);
203 }
204 
205 
206 void
208 {
209  m_raRnti = raRnti;
210 }
211 
212 uint16_t
214 {
215  return m_raRnti;
216 }
217 
218 
219 void
221 {
222  m_rarList.push_back (rar);
223 }
224 
225 std::list<RarLteControlMessage::Rar>::const_iterator
227 {
228  return m_rarList.begin ();
229 }
230 
231 std::list<RarLteControlMessage::Rar>::const_iterator
233 {
234  return m_rarList.end ();
235 }
236 
237 
238 // ----------------------------------------------------------------------------------------------------------
239 
240 
241 
242 MibLteControlMessage::MibLteControlMessage (void)
243 {
244  SetMessageType (LteControlMessage::MIB);
245 }
246 
247 
248 void
249 MibLteControlMessage::SetMib (LteRrcSap::MasterInformationBlock mib)
250 {
251  m_mib = mib;
252 }
253 
254 LteRrcSap::MasterInformationBlock
255 MibLteControlMessage::GetMib () const
256 {
257  return m_mib;
258 }
259 
260 
261 
262 
263 // ---------------------------------------------------------------------------
264 
265 
266 DlHarqFeedbackLteControlMessage::DlHarqFeedbackLteControlMessage (void)
267 {
268  SetMessageType (LteControlMessage::DL_HARQ);
269 }
270 
271 
272 DlHarqFeedbackLteControlMessage::~DlHarqFeedbackLteControlMessage (void)
273 {
274 
275 }
276 
277 void
279 {
280  m_dlInfoListElement = m;
281 }
282 
283 
286 {
287  return m_dlInfoListElement;
288 }
289 
290 
291 } // namespace ns3
292 
See section 4.3.1 dlDciListElement.
Definition: ff-mac-common.h:88
void SetBsr(MacCeListElement_s ulcqi)
add a BSR feedback record into the message.
#define NS_LOG_COMPONENT_DEFINE(name)
Definition: log.h:122
See section 4.3.2 ulDciListElement.
See section 4.3.24 cqiListElement.
void SetRaRnti(uint16_t raRnti)
DlInfoListElement_s GetDlHarqFeedback(void)
Get DL HARQ informations.
std::list< Rar >::const_iterator RarListEnd() const
CqiListElement_s GetDlCqi(void)
Get DL cqi informations.
UlDciListElement_s GetDci(void)
Get dic informations.
void SetDlCqi(CqiListElement_s dlcqi)
add a DL-CQI feedback record into the message.
See section 4.3.23 dlInfoListElement.
See section 4.3.14 macCEListElement.
MessageType GetMessageType(void)
Get the type of the message.
std::list< Rar >::const_iterator RarListBegin() const
void SetDci(UlDciListElement_s dci)
add a DCI into the message
void SetDci(DlDciListElement_s dci)
add a DCI into the message
DlDciListElement_s GetDci(void)
Get dic informations.
void SetDlHarqFeedback(DlInfoListElement_s m)
add a DL HARQ feedback record into the message.
MacCeListElement_s GetBsr(void)
Get BSR informations.
void SetMessageType(MessageType type)
Set the type of the message.