A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lte-control-messages.h
Go to the documentation of this file.
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  * Author: Marco Miozzo <marco.miozzo@cttc.es>
20  */
21 
22 #ifndef LTE_CONTROL_MESSAGES_H
23 #define LTE_CONTROL_MESSAGES_H
24 
25 #include "ns3/ptr.h"
26 #include "ns3/simple-ref-count.h"
27 #include <list>
28 
29 namespace ns3 {
30 
31 class LteNetDevice;
32 
33 
41 class LteControlMessage : public SimpleRefCount<LteControlMessage>
42 {
43 public:
53  {
54  DL_DCI, UL_DCI, // Downlink/Uplink Data Control Indicator
55  DL_CQI, UL_CQI, // Downlink/Uplink Channel Quality Indicator
56  BSR, // Buffer Status Report
57  DL_HARQ, // UL HARQ feedback
58  RACH_PREAMBLE, // Random Access Preamble
59  RAR, // Random Access Response
60  MIB, // Master Information Block
61  };
62 
63  LteControlMessage (void);
64  virtual ~LteControlMessage (void);
65 
70  void SetMessageType (MessageType type);
76 
77 private:
79 };
80 } // namespace ns3
81 
82 #endif /* LTE_CONTROL_MESSAGES_H */
83 
84 
85 
86 
87 // -----------------------------------------------------------------------
88 
89 
90 #ifndef DL_DCI_LTE_CONTROL_MESSAGES_H
91 #define DL_DCI_LTE_CONTROL_MESSAGES_H
92 
93 #include <ns3/object.h>
94 #include <ns3/ff-mac-common.h>
95 
96 namespace ns3 {
97 
104 {
105 public:
106  DlDciLteControlMessage (void);
107  virtual ~DlDciLteControlMessage (void);
108 
113  void SetDci (DlDciListElement_s dci);
114 
119  DlDciListElement_s GetDci (void);
120 
121 
122 private:
124 };
125 } // namespace ns3
126 
127 #endif /* DL_DCI_LTE_CONTROL_MESSAGES_H */
128 
129 
130 // ---------------------------------------------------------------------------
131 
132 
133 #ifndef UL_DCI_LTE_CONTROL_MESSAGES_H
134 #define UL_DCI_LTE_CONTROL_MESSAGES_H
135 
136 #include <ns3/object.h>
137 #include <ns3/ff-mac-common.h>
138 
139 namespace ns3 {
140 
147 {
148 public:
149  UlDciLteControlMessage (void);
150  virtual ~UlDciLteControlMessage (void);
151 
156  void SetDci (UlDciListElement_s dci);
157 
162  UlDciListElement_s GetDci (void);
163 
164 
165 private:
167 };
168 } // namespace ns3
169 
170 #endif /* UL_DCI_LTE_CONTROL_MESSAGES_H */
171 
172 
173 
174 // ---------------------------------------------------------------------------
175 
176 
177 
178 #ifndef DLCQI_LTE_CONTROL_MESSAGES_H
179 #define DLCQI_LTE_CONTROL_MESSAGES_H
180 
181 #include <ns3/object.h>
182 #include <ns3/ff-mac-common.h>
183 
184 namespace ns3 {
185 
186 class LteNetDevice;
187 
194 {
195 public:
196  DlCqiLteControlMessage (void);
197  virtual ~DlCqiLteControlMessage (void);
198 
203  void SetDlCqi (CqiListElement_s dlcqi);
204 
209  CqiListElement_s GetDlCqi (void);
210 
211 
212 private:
214 };
215 } // namespace ns3
216 
217 #endif /* DLCQI_LTE_CONTROL_MESSAGES_H */
218 
219 
220 // ---------------------------------------------------------------------------
221 
222 #ifndef BSR_LTE_CONTROL_MESSAGES_H
223 #define BSR_LTE_CONTROL_MESSAGES_H
224 
225 #include <ns3/object.h>
226 #include <ns3/ff-mac-common.h>
227 
228 namespace ns3 {
229 
230 class LteNetDevice;
231 
238 {
239 public:
240  BsrLteControlMessage (void);
241  virtual ~BsrLteControlMessage (void);
242 
247  void SetBsr (MacCeListElement_s ulcqi);
248 
253  MacCeListElement_s GetBsr (void);
254 
255 
256 private:
258 
259 
260 };
261 
262 } // namespace ns3
263 
264 #endif /* BSR_LTE_CONTROL_MESSAGES_H */
265 
266 
267 // ---------------------------------------------------------------------------
268 
269 #ifndef DL_HARQ_LTE_CONTROL_MESSAGES_H
270 #define DL_HARQ_LTE_CONTROL_MESSAGES_H
271 
272 #include <ns3/object.h>
273 #include <ns3/ff-mac-common.h>
274 
275 namespace ns3 {
276 
283 {
284 public:
286  virtual ~DlHarqFeedbackLteControlMessage (void);
287 
293 
299 
300 
301 private:
303 
304 
305 };
306 } // namespace ns3
307 
308 #endif /* DL_HARQ_LTE_CONTROL_MESSAGES_H */
309 
310 
311 #ifndef RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
312 #define RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
313 
314 #include <ns3/object.h>
315 #include <ns3/ff-mac-common.h>
316 
317 namespace ns3 {
318 
319 class LteNetDevice;
320 
327 {
328 public:
330 
331 
337  void SetRapId (uint32_t rapid);
338 
343  uint32_t GetRapId () const;
344 
345 private:
346 
347  uint32_t m_rapId;
348 
349 
350 };
351 
352 } // namespace ns3
353 
354 #endif // RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
355 
356 
357 #ifndef RAR_LTE_CONTROL_MESSAGES_H
358 #define RAR_LTE_CONTROL_MESSAGES_H
359 
360 #include <ns3/object.h>
361 #include <ns3/ff-mac-common.h>
362 
363 namespace ns3 {
364 
365 class LteNetDevice;
366 
373 {
374 public:
375  RarLteControlMessage (void);
376 
381  void SetRaRnti (uint16_t raRnti);
382 
387  uint16_t GetRaRnti () const;
388 
393  struct Rar
394  {
395  uint8_t rapId;
397  };
398 
404  void AddRar (Rar rar);
405 
410  std::list<Rar>::const_iterator RarListBegin () const;
411 
416  std::list<Rar>::const_iterator RarListEnd () const;
417 
418 
419 private:
420 
421  std::list<Rar> m_rarList;
422  uint16_t m_raRnti;
423 
424 };
425 
426 } // namespace ns3
427 
428 #endif // RAR_LTE_CONTROL_MESSAGES_H
429 
430 
431 
432 
433 #ifndef MIB_LTE_CONTROL_MESSAGES_H
434 #define MIB_LTE_CONTROL_MESSAGES_H
435 
436 #include <ns3/object.h>
437 #include <ns3/ff-mac-common.h>
438 #include <ns3/lte-rrc-sap.h>
439 
440 namespace ns3 {
441 
442 class LteNetDevice;
443 
450 {
451 public:
452 
453  MibLteControlMessage (void);
454 
456 
458 
459 private:
460 
462 
463 };
464 
465 } // namespace ns3
466 
467 #endif // MIB_LTE_CONTROL_MESSAGES_H
See section 4.3.1 dlDciListElement.
Definition: ff-mac-common.h:88
LteRrcSap::MasterInformationBlock m_mib
void SetBsr(MacCeListElement_s ulcqi)
add a BSR feedback record into the message.
See section 4.3.2 ulDciListElement.
See section 4.3.24 cqiListElement.
See section 4.3.10 buildRARListElement.
void SetRaRnti(uint16_t raRnti)
DlInfoListElement_s GetDlHarqFeedback(void)
Get DL HARQ informations.
std::list< Rar >::const_iterator RarListEnd() const
LteRrcSap::MasterInformationBlock GetMib() 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 SetMib(LteRrcSap::MasterInformationBlock mib)
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.
A template-based reference counting class.