A Discrete-Event Network Simulator
API
dl-mac-messages.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008,2009 INRIA, UDcast
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  * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
20  * <amine.ismail@UDcast.com>
21  */
22 
23 #ifndef DCD_CHANNEL_ENCODINGS_H
24 #define DCD_CHANNEL_ENCODINGS_H
25 
26 #include <stdint.h>
27 #include "ns3/buffer.h"
28 #include <list>
29 
30 namespace ns3 {
31 
39 {
40 public:
41  DcdChannelEncodings (void);
42  virtual ~DcdChannelEncodings (void);
43 
48  void SetBsEirp (uint16_t bs_eirp);
53  void SetEirxPIrMax (uint16_t rss_ir_max);
58  void SetFrequency (uint32_t frequency);
59 
64  uint16_t GetBsEirp (void) const;
69  uint16_t GetEirxPIrMax (void) const;
74  uint32_t GetFrequency (void) const;
75 
80  uint16_t GetSize (void) const;
81 
94 private:
107 
108  uint16_t m_bsEirp;
109  uint16_t m_eirXPIrMax;
110  uint32_t m_frequency;
111 
112 };
113 
114 } // namespace ns3
115 
116 #endif /* DCD_CHANNEL_ENCODINGS_H */
117 
118 // ----------------------------------------------------------------------------------------------------------
119 
120 #ifndef OFDM_DCD_CHANNEL_ENCODINGS_H
121 #define OFDM_DCD_CHANNEL_ENCODINGS_H
122 
123 #include <stdint.h>
124 #include "ns3/mac48-address.h"
125 
126 namespace ns3 {
127 
133 {
134 public:
137 
142  void SetChannelNr (uint8_t channelNr);
147  void SetTtg (uint8_t ttg);
152  void SetRtg (uint8_t rtg);
153 
158  void SetBaseStationId (Mac48Address baseStationId);
163  void SetFrameDurationCode (uint8_t frameDurationCode);
168  void SetFrameNumber (uint32_t frameNumber);
169 
174  uint8_t GetChannelNr (void) const;
179  uint8_t GetTtg (void) const;
184  uint8_t GetRtg (void) const;
185 
190  Mac48Address GetBaseStationId (void) const;
195  uint8_t GetFrameDurationCode (void) const;
200  uint32_t GetFrameNumber (void) const;
201 
206  uint16_t GetSize (void) const;
207 private:
220 
221  uint8_t m_channelNr;
222  uint8_t m_ttg;
223  uint8_t m_rtg;
224 
227  uint32_t m_frameNumber;
228 };
229 
230 } // namespace ns3
231 
232 #endif /* OFDM_DCD_CHANNEL_ENCODINGS_H */
233 
234 // ----------------------------------------------------------------------------------------------------------
235 
236 #ifndef OFDM_DL_BURST_PROFILE_H
237 #define OFDM_DL_BURST_PROFILE_H
238 
239 #include <stdint.h>
240 #include "ns3/buffer.h"
241 
242 namespace ns3 {
243 
251 {
252 public:
254  enum Diuc
255  {
268  // 12 is reserved
269  DIUC_GAP = 13,
271  };
272 
273  OfdmDlBurstProfile (void);
274  ~OfdmDlBurstProfile (void);
275 
280  void SetType (uint8_t type);
285  void SetLength (uint8_t length);
290  void SetDiuc (uint8_t diuc);
291 
296  void SetFecCodeType (uint8_t fecCodeType);
297 
302  uint8_t GetType (void) const;
304  uint8_t GetLength (void) const;
306  uint8_t GetDiuc (void) const;
307 
309  uint8_t GetFecCodeType (void) const;
310 
312  uint16_t GetSize (void) const;
313 
326 private:
327  uint8_t m_type;
328  uint8_t m_length;
329  uint8_t m_diuc;
330 
331  // TLV Encoded information
332  uint8_t m_fecCodeType;
333 };
334 
335 } // namespace ns3
336 
337 #endif /* OFDM_DL_BURST_PROFILE_H */
338 
339 // ----------------------------------------------------------------------------------------------------------
340 
341 #ifndef DCD_H
342 #define DCD_H
343 
344 #include <stdint.h>
345 #include "ns3/header.h"
346 #include <vector>
347 
348 namespace ns3 {
349 
355 class Dcd : public Header
356 {
357 public:
358  Dcd (void);
359  virtual ~Dcd (void);
360 
365  void SetConfigurationChangeCount (uint8_t configurationChangeCount);
370  void SetChannelEncodings (OfdmDcdChannelEncodings channelEncodings);
375  void AddDlBurstProfile (OfdmDlBurstProfile dlBurstProfile);
380  void SetNrDlBurstProfiles (uint8_t nrDlBurstProfiles);
381 
386  uint8_t GetConfigurationChangeCount (void) const;
396  std::vector<OfdmDlBurstProfile> GetDlBurstProfiles (void) const;
401  uint8_t GetNrDlBurstProfiles (void) const;
402 
407  std::string GetName (void) const;
412  static TypeId GetTypeId (void);
413  virtual TypeId GetInstanceTypeId (void) const;
414  void Print (std::ostream &os) const;
415  uint32_t GetSerializedSize (void) const;
416  void Serialize (Buffer::Iterator start) const;
418 private:
419  uint8_t m_reserved;
422  std::vector<OfdmDlBurstProfile> m_dlBurstProfiles;
423 
425 };
426 
427 } // namespace ns3
428 
429 #endif /* DCD_H */
430 
431 // ----------------------------------------------------------------------------------------------------------
432 
433 #ifndef OFDM_DL_MAP_IE_H
434 #define OFDM_DL_MAP_IE_H
435 
436 #include <stdint.h>
437 #include "cid.h"
438 
439 namespace ns3 {
440 
447 {
448 public:
449  OfdmDlMapIe (void);
450  ~OfdmDlMapIe (void);
451 
456  void SetCid (Cid cid);
461  void SetDiuc (uint8_t diuc);
466  void SetPreamblePresent (uint8_t preamblePresent);
471  void SetStartTime (uint16_t startTime);
472 
477  Cid GetCid (void) const;
482  uint8_t GetDiuc (void) const;
487  uint8_t GetPreamblePresent (void) const;
492  uint16_t GetStartTime (void) const;
493 
498  uint16_t GetSize (void) const;
499 
512 private:
514  uint8_t m_diuc;
516  uint16_t m_startTime;
517 
518 };
519 
520 } // namespace ns3
521 
522 #endif /* OFDM_DL_MAP_IE_H */
523 
524 // ----------------------------------------------------------------------------------------------------------
525 
526 #ifndef DL_MAP_H
527 #define DL_MAP_H
528 
529 #include <stdint.h>
530 #include <vector>
531 #include "ns3/header.h"
532 #include "ns3/mac48-address.h"
533 
534 namespace ns3 {
535 
541 class DlMap : public Header
542 {
543 public:
544  DlMap (void);
545  virtual ~DlMap (void);
546 
551  void SetDcdCount (uint8_t dcdCount);
556  void SetBaseStationId (Mac48Address baseStationID);
561  void AddDlMapElement (OfdmDlMapIe dlMapElement);
562 
567  uint8_t GetDcdCount (void) const;
572  Mac48Address GetBaseStationId (void) const;
577  std::list<OfdmDlMapIe> GetDlMapElements (void) const;
578 
583  std::string GetName (void) const;
588  static TypeId GetTypeId (void);
589  virtual TypeId GetInstanceTypeId (void) const;
590  void Print (std::ostream &os) const;
591  uint32_t GetSerializedSize (void) const;
592  void Serialize (Buffer::Iterator start) const;
594 private:
595  uint8_t m_dcdCount;
597  std::list<OfdmDlMapIe> m_dlMapElements;
598  // m_paddingNibble; //fields to be implemented later on:
599 };
600 
601 } // namespace ns3
602 
603 #endif /* DL_MAP_H */
iterator in a Buffer instance
Definition: buffer.h:99
Cid class.
Definition: cid.h:38
This class implements the DCD channel encodings as described by "IEEE Standard for Local and metropol...
uint32_t m_frequency
frequency
uint16_t GetBsEirp(void) const
Get BS EIRP field.
void SetBsEirp(uint16_t bs_eirp)
Set BS EIRP field.
void SetFrequency(uint32_t frequency)
Set frequency field.
Buffer::Iterator Write(Buffer::Iterator start) const
Write item.
uint32_t GetFrequency(void) const
Get frequency function.
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
void SetEirxPIrMax(uint16_t rss_ir_max)
Set EIRX IR MAX field.
uint16_t GetEirxPIrMax(void) const
Get EIRX IR MAX field.
virtual ~DcdChannelEncodings(void)
virtual Buffer::Iterator DoWrite(Buffer::Iterator start) const =0
Write item.
uint16_t m_eirXPIrMax
EIRX IR MAX.
virtual Buffer::Iterator DoRead(Buffer::Iterator start)=0
Read item.
uint16_t GetSize(void) const
Get size field.
uint16_t m_bsEirp
BS EIRP.
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
static TypeId GetTypeId(void)
Get the type ID.
OfdmDcdChannelEncodings m_channelEncodings
TLV Encoded information for the overall channel.
uint8_t m_nrDlBurstProfiles
number DL purst profiles
void SetConfigurationChangeCount(uint8_t configurationChangeCount)
Set configuration change count field.
void SetNrDlBurstProfiles(uint8_t nrDlBurstProfiles)
Set number DL burst profile field.
uint8_t m_reserved
changed as per the amendment 802.16e-2005
void Print(std::ostream &os) const
uint8_t m_configurationChangeCount
configuration change count
void AddDlBurstProfile(OfdmDlBurstProfile dlBurstProfile)
Add DL burst profile field.
uint32_t GetSerializedSize(void) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const
uint8_t GetNrDlBurstProfiles(void) const
Get number DL burst profiles field.
OfdmDcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings field.
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count field.
std::vector< OfdmDlBurstProfile > GetDlBurstProfiles(void) const
Get DL burst profile field.
virtual ~Dcd(void)
void SetChannelEncodings(OfdmDcdChannelEncodings channelEncodings)
Set channel encodings field.
std::string GetName(void) const
Get name field.
std::vector< OfdmDlBurstProfile > m_dlBurstProfiles
vector of download burst profiles
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
void SetDcdCount(uint8_t dcdCount)
Set DCD count field.
void AddDlMapElement(OfdmDlMapIe dlMapElement)
Add DL Map element field.
std::list< OfdmDlMapIe > m_dlMapElements
DL Map elements.
Mac48Address GetBaseStationId(void) const
Get base station ID field.
uint32_t GetSerializedSize(void) const
void SetBaseStationId(Mac48Address baseStationID)
Set base station ID field.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint8_t m_dcdCount
DCD count.
static TypeId GetTypeId(void)
Get the type ID.
virtual ~DlMap(void)
std::list< OfdmDlMapIe > GetDlMapElements(void) const
Get DL Map elements field.
std::string GetName(void) const
Get name field.
Mac48Address m_baseStationId
base station ID
uint8_t GetDcdCount(void) const
Get DCD count field.
void Serialize(Buffer::Iterator start) const
void Print(std::ostream &os) const
Protocol header serialization and deserialization.
Definition: header.h:43
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
an EUI-48 address
Definition: mac48-address.h:44
This class implements the OFDM DCD channel encodings as described by "IEEE Standard for Local and met...
virtual Buffer::Iterator DoWrite(Buffer::Iterator start) const
Write item.
uint32_t GetFrameNumber(void) const
Get frame number field.
uint8_t m_channelNr
channel number
Mac48Address GetBaseStationId(void) const
Get base station ID field.
void SetChannelNr(uint8_t channelNr)
Set channel number field.
void SetTtg(uint8_t ttg)
Set TTG field.
uint8_t GetFrameDurationCode(void) const
Get frame duration code field.
void SetFrameDurationCode(uint8_t frameDurationCode)
Set frame duration code field.
uint8_t m_frameDurationCode
frame duration code
uint8_t GetRtg(void) const
Get RTG field.
uint32_t m_frameNumber
frame number
void SetRtg(uint8_t rtg)
Set RTG field.
uint16_t GetSize(void) const
Get size field.
void SetFrameNumber(uint32_t frameNumber)
Set frame number field.
Mac48Address m_baseStationId
base station ID
uint8_t GetTtg(void) const
Get TTG field.
virtual Buffer::Iterator DoRead(Buffer::Iterator start)
Read item.
uint8_t GetChannelNr(void) const
Get channel number field.
void SetBaseStationId(Mac48Address baseStationId)
Set base station ID field.
This class implements the OFDM Downlink burst profile descriptor as described by "IEEE Standard for L...
uint8_t GetType(void) const
Get type function.
Buffer::Iterator Write(Buffer::Iterator start) const
Write item.
uint8_t GetFecCodeType(void) const
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
void SetLength(uint8_t length)
Set length field.
void SetType(uint8_t type)
Set type field.
uint8_t GetDiuc(void) const
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
uint8_t m_fecCodeType
FEC code type.
uint8_t GetLength(void) const
void SetDiuc(uint8_t diuc)
Set DIUC field.
uint16_t GetSize(void) const
This class implements the OFDM DL-MAP information element as described by "IEEE Standard for Local an...
void SetStartTime(uint16_t startTime)
Set start time field.
void SetCid(Cid cid)
Set CID function.
uint8_t m_preamblePresent
preamble present
uint16_t GetSize(void) const
Get size.
uint16_t m_startTime
start time
void SetDiuc(uint8_t diuc)
Set DIUC field.
void SetPreamblePresent(uint8_t preamblePresent)
Set preamble present field.
Buffer::Iterator Write(Buffer::Iterator start) const
Wrtie item.
uint8_t GetPreamblePresent(void) const
Get preamble present field.
Cid GetCid(void) const
Set CID field.
uint8_t GetDiuc(void) const
Get DIUC field.
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
uint16_t GetStartTime(void) const
Get start time field.
uint8_t m_diuc
DIUC.
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.
def start()
Definition: core.py:1853
double startTime