A Discrete-Event Network Simulator
API
ul-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
24#ifndef UCD_CHANNEL_ENCODINGS_H
25#define UCD_CHANNEL_ENCODINGS_H
26
27#include <stdint.h>
28#include "ns3/buffer.h"
29#include <list>
30
31namespace ns3 {
32
40{
41public:
43 virtual ~UcdChannelEncodings (void);
44
49 void SetBwReqOppSize (uint16_t bwReqOppSize);
54 void SetRangReqOppSize (uint16_t rangReqOppSize);
59 void SetFrequency (uint32_t frequency);
60
65 uint16_t GetBwReqOppSize (void) const;
70 uint16_t GetRangReqOppSize (void) const;
75 uint32_t GetFrequency (void) const;
76
81 uint16_t GetSize (void) const;
82
95private:
108
109
110 uint16_t m_bwReqOppSize;
113};
114
115} // namespace ns3
116
117#endif /* UCD_CHANNEL_ENCODINGS_H */
118
119// ----------------------------------------------------------------------------------------------------------
120
121#ifndef OFDM_UCD_CHANNEL_ENCODINGS_H
122#define OFDM_UCD_CHANNEL_ENCODINGS_H
123
124#include <stdint.h>
125
126namespace ns3 {
127
134{
135public:
138
143 void SetSbchnlReqRegionFullParams (uint8_t sbchnlReqRegionFullParams);
148 void SetSbchnlFocContCodes (uint8_t sbchnlFocContCodes);
149
154 uint8_t GetSbchnlReqRegionFullParams (void) const;
159 uint8_t GetSbchnlFocContCodes (void) const;
160
165 uint16_t GetSize (void) const;
166private:
179
182};
183
184} // namespace ns3
185
186#endif /* OFDM_UCD_CHANNEL_ENCODINGS_H */
187
188// ----------------------------------------------------------------------------------------------------------
189
190#ifndef OFDM_UL_BURST_PROFILE_H
191#define OFDM_UL_BURST_PROFILE_H
192
193#include <stdint.h>
194#include "ns3/buffer.h"
195
196namespace ns3 {
197
204{
205public:
207 enum Uiuc
208 {
223 };
224
225 OfdmUlBurstProfile (void);
226 ~OfdmUlBurstProfile (void);
227
232 void SetType (uint8_t type);
237 void SetLength (uint8_t length);
242 void SetUiuc (uint8_t uiuc);
247 void SetFecCodeType (uint8_t fecCodeType);
248
253 uint8_t GetType (void) const;
258 uint8_t GetLength (void) const;
263 uint8_t GetUiuc (void) const;
268 uint8_t GetFecCodeType (void) const;
269
274 uint16_t GetSize (void) const;
275
288private:
289 uint8_t m_type;
290 uint8_t m_length;
291 uint8_t m_uiuc;
292
293 // TLV Encoded information
295};
296
297} // namespace ns3
298
299#endif /* OFDM_UL_BURST_PROFILE_H */
300
301// ----------------------------------------------------------------------------------------------------------
302
303#ifndef UCD_H
304#define UCD_H
305
306#include <stdint.h>
307#include "ns3/header.h"
308#include <vector>
309
310namespace ns3 {
311
317class Ucd : public Header
318{
319public:
320 Ucd (void);
321 virtual ~Ucd (void);
322
327 void SetConfigurationChangeCount (uint8_t ucdCount);
332 void SetRangingBackoffStart (uint8_t rangingBackoffStart);
337 void SetRangingBackoffEnd (uint8_t rangingBackoffEnd);
342 void SetRequestBackoffStart (uint8_t requestBackoffStart);
347 void SetRequestBackoffEnd (uint8_t requestBackoffEnd);
352 void SetChannelEncodings (OfdmUcdChannelEncodings channelEncodings);
357 void AddUlBurstProfile (OfdmUlBurstProfile ulBurstProfile);
362 void SetNrUlBurstProfiles (uint8_t nrUlBurstProfiles);
363
368 uint8_t GetConfigurationChangeCount (void) const;
373 uint8_t GetRangingBackoffStart (void) const;
378 uint8_t GetRangingBackoffEnd (void) const;
383 uint8_t GetRequestBackoffStart (void) const;
388 uint8_t GetRequestBackoffEnd (void) const;
398 std::vector<OfdmUlBurstProfile> GetUlBurstProfiles (void) const;
403 uint8_t GetNrUlBurstProfiles (void) const;
404
409 std::string GetName (void) const;
414 static TypeId GetTypeId (void);
415 virtual TypeId GetInstanceTypeId (void) const;
416 void Print (std::ostream &os) const;
417 uint32_t GetSerializedSize (void) const;
418 void Serialize (Buffer::Iterator start) const;
420private:
427 std::vector<OfdmUlBurstProfile> m_ulBurstProfiles;
428
430};
431
432} // namespace ns3
433
434#endif /* UCD_H */
435
436// ----------------------------------------------------------------------------------------------------------
437
438#ifndef OFDM_UL_MAP_IE_H
439#define OFDM_UL_MAP_IE_H
440
441#include <stdint.h>
442#include "ns3/header.h"
443#include "cid.h"
444
445namespace ns3 {
446
453{
454public:
455 OfdmUlMapIe (void);
456 ~OfdmUlMapIe (void);
457
462 void SetCid (const Cid &cid);
467 void SetStartTime (uint16_t startTime);
472 void SetSubchannelIndex (uint8_t subchannelIndex);
477 void SetUiuc (uint8_t uiuc);
482 void SetDuration (uint16_t duration);
487 void SetMidambleRepetitionInterval (uint8_t midambleRepetitionInterval);
488
493 Cid GetCid (void) const;
498 uint16_t GetStartTime (void) const;
503 uint8_t GetSubchannelIndex (void) const;
508 uint8_t GetUiuc (void) const;
513 uint16_t GetDuration (void) const;
518 uint8_t GetMidambleRepetitionInterval (void) const;
519
524 uint16_t GetSize (void) const;
525
538private:
540 uint16_t m_startTime;
542 uint8_t m_uiuc;
543 uint16_t m_duration;
545
546 // fields to be implemented later on:
547 // m_focusedContentionIe()
548 // m_subchannelizedNetworkEntryIe()
549 // m_ulExtendedIe()
550 // m_paddingNibble;
551};
552
553} // namespace ns3
554
555#endif /* OFDM_UL_MAP_IE_H */
556
557// ----------------------------------------------------------------------------------------------------------
558
559#ifndef UL_MAP_H
560#define UL_MAP_H
561
562#include <stdint.h>
563#include "ns3/header.h"
564#include <vector>
565
566namespace ns3 {
567
573class UlMap : public Header
574{
575public:
576 UlMap (void);
577 virtual ~UlMap (void);
578
583 void SetUcdCount (uint8_t ucdCount);
588 void SetAllocationStartTime (uint32_t allocationStartTime);
593 void AddUlMapElement (OfdmUlMapIe ulMapElement);
594
599 uint8_t GetUcdCount (void) const;
604 uint32_t GetAllocationStartTime (void) const;
609 std::list<OfdmUlMapIe> GetUlMapElements (void) const;
610
615 std::string GetName (void) const;
620 static TypeId GetTypeId (void);
621 virtual TypeId GetInstanceTypeId (void) const;
622 void Print (std::ostream &os) const;
623 uint32_t GetSerializedSize (void) const;
624 void Serialize (Buffer::Iterator start) const;
626private:
627 uint8_t m_reserved;
628
629 uint8_t m_ucdCount;
631 std::list<OfdmUlMapIe> m_ulMapElements;
632};
633
634} // namespace ns3
635
636#endif /* UL_MAP_H */
637
iterator in a Buffer instance
Definition: buffer.h:99
Cid class.
Definition: cid.h:38
Protocol header serialization and deserialization.
Definition: header.h:43
This class implements the OFDM UCD channel encodings as described by "IEEE Standard for Local and met...
uint16_t GetSize(void) const
Get size.
uint8_t GetSbchnlFocContCodes(void) const
Get SB channel for control codes.
uint8_t m_sbchnlFocContCodes
SB channel for control codes.
void SetSbchnlReqRegionFullParams(uint8_t sbchnlReqRegionFullParams)
Set SB channel reguest region full parameters.
void SetSbchnlFocContCodes(uint8_t sbchnlFocContCodes)
Set SB channel for control codes.
uint8_t m_sbchnlReqRegionFullParams
SB channel request region full parameters.
uint8_t GetSbchnlReqRegionFullParams(void) const
Get SB channel request region full parameters.
virtual Buffer::Iterator DoWrite(Buffer::Iterator start) const
Write item.
virtual Buffer::Iterator DoRead(Buffer::Iterator start)
Read item.
This class implements the UL burst profile as described by "IEEE Standard for Local and metropolitan ...
void SetLength(uint8_t length)
Set length.
void SetUiuc(uint8_t uiuc)
Set UIUC.
uint8_t GetType(void) const
Get type.
uint8_t GetFecCodeType(void) const
Get FEC code type.
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
void SetType(uint8_t type)
Set type.
uint16_t GetSize(void) const
Get size.
uint8_t GetUiuc(void) const
Get UIUC.
uint8_t GetLength(void) const
Get length.
Buffer::Iterator Write(Buffer::Iterator start) const
Write item.
uint8_t m_fecCodeType
FEC code type.
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
uint16_t GetDuration(void) const
Get duration.
uint8_t GetUiuc(void) const
Get UIUC.
void SetStartTime(uint16_t startTime)
Set start time.
Buffer::Iterator Write(Buffer::Iterator start) const
Write item.
uint8_t GetSubchannelIndex(void) const
Get subchannel index.
void SetDuration(uint16_t duration)
Set duration.
void SetMidambleRepetitionInterval(uint8_t midambleRepetitionInterval)
Set midambe repetition interval.
void SetSubchannelIndex(uint8_t subchannelIndex)
Set subchannel index.
uint8_t m_subchannelIndex
subchannel index
uint16_t GetSize(void) const
Get size.
uint8_t m_midambleRepetitionInterval
midamble repetition interval
uint16_t m_startTime
start time
uint8_t m_uiuc
UIUC.
uint16_t GetStartTime(void) const
Get start time.
void SetCid(const Cid &cid)
Set CID.
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
uint8_t GetMidambleRepetitionInterval(void) const
Get Midamble repetition interval.
uint16_t m_duration
duration
void SetUiuc(uint8_t uiuc)
Set UIUC.
Cid GetCid(void) const
Get CID.
a unique identifier for an interface.
Definition: type-id.h:59
This class implements the UCD channel encodings as described by "IEEE Standard for Local and metropol...
void SetRangReqOppSize(uint16_t rangReqOppSize)
Set range request opp size.
void SetFrequency(uint32_t frequency)
Set frequency.
virtual Buffer::Iterator DoRead(Buffer::Iterator start)=0
Read item.
uint16_t m_bwReqOppSize
BW request opp size.
Buffer::Iterator Write(Buffer::Iterator start) const
Write item.
uint16_t GetSize(void) const
Get size.
virtual Buffer::Iterator DoWrite(Buffer::Iterator start) const =0
Write item.
uint32_t m_frequency
frequency
uint16_t GetRangReqOppSize(void) const
Get range request opp size.
uint16_t m_rangReqOppSize
range request opp size
uint16_t GetBwReqOppSize(void) const
Get BW request opp size.
uint32_t GetFrequency(void) const
Get frequency.
Buffer::Iterator Read(Buffer::Iterator start)
Read item.
void SetBwReqOppSize(uint16_t bwReqOppSize)
Set BW request opp size.
virtual ~UcdChannelEncodings(void)
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
void SetNrUlBurstProfiles(uint8_t nrUlBurstProfiles)
Set NR UL burst profiles.
OfdmUcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings.
uint8_t m_nrUlBurstProfiles
number UL burst profiles
uint8_t m_rangingBackoffStart
ranging backoff start
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint8_t m_requestBackoffEnd
request backoff end
uint8_t m_requestBackoffStart
request backoff start
uint8_t m_rangingBackoffEnd
ranging backoff end
uint8_t GetNrUlBurstProfiles(void) const
Get number UL burst profiles.
void AddUlBurstProfile(OfdmUlBurstProfile ulBurstProfile)
Add UL burst profile.
uint8_t GetRequestBackoffEnd(void) const
Get request backoff end.
void SetChannelEncodings(OfdmUcdChannelEncodings channelEncodings)
Set channel encodings.
virtual ~Ucd(void)
void SetConfigurationChangeCount(uint8_t ucdCount)
Set configuration change count.
void Serialize(Buffer::Iterator start) const
void SetRangingBackoffStart(uint8_t rangingBackoffStart)
Set ranging backoff start.
void SetRangingBackoffEnd(uint8_t rangingBackoffEnd)
Set ranging backoff end.
uint8_t GetRangingBackoffEnd(void) const
Get ranging backoff end.
void Print(std::ostream &os) const
std::string GetName(void) const
Get name.
uint32_t GetSerializedSize(void) const
void SetRequestBackoffEnd(uint8_t requestBackoffEnd)
Set request backoff end.
std::vector< OfdmUlBurstProfile > m_ulBurstProfiles
UL burst profiles.
uint8_t m_configurationChangeCount
configuration change count
uint32_t Deserialize(Buffer::Iterator start)
uint8_t GetRequestBackoffStart(void) const
Get request backoff start.
void SetRequestBackoffStart(uint8_t requestBackoffStart)
Set request backoff start.
uint8_t GetRangingBackoffStart(void) const
Get ranging backoff start.
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count.
std::vector< OfdmUlBurstProfile > GetUlBurstProfiles(void) const
Get UL burst profiles.
OfdmUcdChannelEncodings m_channelEncodings
TLV Encoded information for the overall channel.
static TypeId GetTypeId(void)
Get the type ID.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
std::string GetName(void) const
Get name.
void SetAllocationStartTime(uint32_t allocationStartTime)
Set allocation start time.
uint32_t GetSerializedSize(void) const
uint8_t m_ucdCount
UCD count.
static TypeId GetTypeId(void)
Get the type ID.
uint8_t m_reserved
changed as per the amendment 802.16e-2005
void AddUlMapElement(OfdmUlMapIe ulMapElement)
Add UL map element.
uint32_t GetAllocationStartTime(void) const
Get allocation start time.
void SetUcdCount(uint8_t ucdCount)
Set UCD count.
uint32_t Deserialize(Buffer::Iterator start)
uint8_t GetUcdCount(void) const
Get UCD count.
std::list< OfdmUlMapIe > GetUlMapElements(void) const
Get UL map elements.
uint32_t m_allocationStartTime
allocation start time
std::list< OfdmUlMapIe > m_ulMapElements
UL map elements.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void Print(std::ostream &os) const
void Serialize(Buffer::Iterator start) const
virtual ~UlMap(void)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
def start()
Definition: core.py:1852