25 #include "ns3/simulator.h" 
   30 #include "ns3/packet-burst.h" 
   36 #include "ns3/trace-source-accessor.h" 
   37 #include "ns3/pointer.h" 
   39 #include "ns3/uinteger.h" 
   45 #include "ns3/ipv4-address.h" 
   46 #include "ns3/llc-snap-header.h" 
   60     .SetGroupName(
"Wimax")
 
   64     .AddAttribute (
"BSScheduler",
 
   65                    "Downlink Scheduler for BS",
 
   68                    MakePointerChecker<BSScheduler> ())
 
   70     .AddAttribute (
"InitialRangInterval",
 
   71                    "Time between Initial Ranging regions assigned by the BS. Maximum is 2s",
 
   77     .AddAttribute (
"DcdInterval",
 
   78                    "Time between transmission of DCD messages. Maximum value is 10s.",
 
   83     .AddAttribute (
"UcdInterval",
 
   84                    "Time between transmission of UCD messages. Maximum value is 10s.",
 
   89     .AddAttribute (
"IntervalT8",
 
   90                    "Wait for DSA/DSC Acknowledge timeout. Maximum 300ms.",
 
   95     .AddAttribute (
"RangReqOppSize",
 
   96                    "The ranging opportunity size in symbols",
 
  100                    MakeUintegerChecker<uint8_t> (1, 256))
 
  102     .AddAttribute (
"BwReqOppSize",
 
  103                    "The bandwidth request opportunity size in symbols",
 
  106                    MakeUintegerChecker<uint8_t> (1, 256))
 
  108     .AddAttribute (
"MaxRangCorrectionRetries",
 
  109                    "Number of retries on contention Ranging Requests",
 
  113                    MakeUintegerChecker<uint8_t> (1, 16))
 
  115     .AddAttribute (
"SSManager",
 
  116                    "The ss manager attached to this device.",
 
  119                    MakePointerChecker<SSManager> ())
 
  121     .AddAttribute (
"Scheduler",
 
  122                    "The BS scheduler attached to this device.",
 
  125                    MakePointerChecker<BSScheduler> ())
 
  127     .AddAttribute (
"LinkManager",
 
  128                    "The link manager attached to this device.",
 
  131                    MakePointerChecker<BSLinkManager> ())
 
  133     .AddAttribute (
"UplinkScheduler",
 
  134                    "The uplink scheduler attached to this device.",
 
  138                    MakePointerChecker<UplinkScheduler> ())
 
  140     .AddAttribute (
"BsIpcsPacketClassifier",
 
  141                    "The uplink IP packet classifier attached to this device.",
 
  144                    MakePointerChecker<IpcsClassifier> ())
 
  146     .AddAttribute (
"ServiceFlowManager",
 
  147                    "The service flow manager attached to this device.",
 
  151                    MakePointerChecker<ServiceFlowManager> ())
 
  153     .AddTraceSource (
"BSTx",
 
  154                      "A packet has been received from higher layers " 
  155                      "and is being processed in preparation " 
  156                      "for queueing for transmission.",
 
  158                      "ns3::Packet::TracedCallback")
 
  160     .AddTraceSource (
"BSTxDrop",
 
  161                      "A packet has been dropped in the MAC layer " 
  162                      "before being queued for transmission.",
 
  164                      "ns3::Packet::TracedCallback")
 
  166     .AddTraceSource (
"BSPromiscRx",
 
  167                      "A packet has been received by this device, " 
  168                      "has been passed up from the physical layer " 
  169                      "and is being forwarded up the local protocol stack.  " 
  170                      "This is a promiscuous trace,",
 
  172                      "ns3::Packet::TracedCallback")
 
  174     .AddTraceSource (
"BSRx",
 
  175                      "A packet has been received by this device, " 
  176                      "has been passed up from the physical layer " 
  177                      "and is being forwarded up the local protocol stack.  " 
  178                      "This is a non-promiscuous trace,",
 
  180                      "ns3::Packet::TracedCallback")
 
  182     .AddTraceSource (
"BSRxDrop",
 
  183                      "A packet has been dropped in the MAC layer " 
  184                      "after it has been passed up from the physical layer.",
 
  186                      "ns3::Packet::TracedCallback");
 
  516   GetPhy ()->SetPhyParameters ();
 
  517   GetPhy ()->SetDataRates ();
 
  542   uint32_t symbolsPerFrame = 
GetPhy ()->GetSymbolsPerFrame ();
 
  613                               uint16_t protocolNumber)
 
  625   if (protocolNumber == 2048)
 
  630   if (protocolNumber != 2048 || serviceFlow == 0)
 
  635   if (serviceFlow == 0)
 
  641   if (serviceFlow->GetIsEnabled ())
 
  665                  "BS: Can not enqueue packet on the selected connection: the connection is not initialized");
 
  670   hdr.
SetCid (connection->GetCid ());
 
  672   return connection->Enqueue (packet, hdrType, hdr);
 
  689   bool fragmentation = 
false;  
 
  702       cid = gnrcMacHdr.
GetCid ();
 
  714           uint8_t tmpType = type;
 
  715           if (((tmpType >> 2) & 1) == 1)
 
  718               NS_LOG_INFO (
"FRAG_DEBUG: DoReceive -> the packet is a fragment" << std::endl);
 
  719               fragmentation = 
true;
 
  817               NS_LOG_INFO ( 
"FRAG_DEBUG: BS DoReceive, the Packet is a fragment" << std::endl);
 
  819               uint32_t fc = fragSubhdr.
GetFc ();
 
  825                   NS_LOG_INFO (
"\t Received the latest fragment" << std::endl);
 
  827                   ->FragmentEnqueue (packet);
 
  833                   NS_LOG_INFO (
"\t BS PACKET DEFRAGMENTATION" << std::endl);
 
  835                        iter != fragmentsQueue.end (); ++iter)
 
  841                   ->ClearFragmentsQueue ();
 
  852                   NS_LOG_INFO (
"\t Received the first or the middle fragment" << std::endl);
 
  854                   ->FragmentEnqueue (packet);
 
  865                      "A bandwidth request should be carried by a bandwidth header type");
 
  872       cid = bwRequestHdr.
GetCid ();
 
  884   bool sendDcd = 
false, sendUcd = 
false, updateDcd = 
false, updateUcd = 
false;
 
  886   uint16_t currentNrSsRegistered = 
m_ssManager->GetNRegisteredSSs ();
 
  890       m_uplinkScheduler->GetChannelDescriptorsToUpdate (updateDcd, updateUcd, sendDcd, sendUcd);
 
  894       sendDcd = sendUcd = 
true;
 
  962   std::pair<OfdmDlMapIe*, Ptr<PacketBurst> > pair;
 
  964   std::list<std::pair<OfdmDlMapIe*, Ptr<PacketBurst> > > *downlinkBursts = 
m_scheduler->GetDownlinkBursts ();
 
  969   while (downlinkBursts->size ())
 
  971       pair = downlinkBursts->front ();
 
  973       dlMapIe = pair.first;
 
  975       uint8_t diuc = dlMapIe->
GetDiuc ();
 
  994       txTime += 
GetPhy ()->GetTransmissionTime (burst->GetSize (), modulationType);
 
  995       downlinkBursts->pop_front ();
 
 1009   std::list<std::pair<OfdmDlMapIe*, Ptr<PacketBurst> > > *downlinkBursts = 
m_scheduler->GetDownlinkBursts ();
 
 1012        != downlinkBursts->end (); ++iter)
 
 1014       iter->first->SetPreamblePresent (0);
 
 1015       iter->first->SetStartTime (0);
 
 1074   std::list<OfdmUlMapIe> uplinkAllocations = 
m_uplinkScheduler->GetUplinkAllocations ();
 
 1076   for (std::list<OfdmUlMapIe>::iterator iter = uplinkAllocations.begin (); iter != uplinkAllocations.end (); ++iter)
 
 1166   NS_ASSERT_MSG (connection != 0, 
"BS: Invalid connection=0");
 
 1173   uint16_t symbolsToAllocation = 0;
 
 1174   std::list<OfdmUlMapIe> uplinkAllocations = 
m_uplinkScheduler->GetUplinkAllocations ();
 
 1175   for (std::list<OfdmUlMapIe>::iterator iter = uplinkAllocations.begin (); iter != uplinkAllocations.end (); ++iter)
 
 1184       symbolsToAllocation = uplinkAllocation.
GetStartTime ();
 
void SetUcdInterval(Time ucdInterval)
 
This class implements the OFDM UCD channel encodings as described by "IEEE Standard for Local and met...
 
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer. 
 
uint8_t m_rangReqOppSize
in symbols 
 
BaseStationNetDevice(void)
 
void RangingOppStart(void)
Ranging opp start. 
 
uint8_t m_rangingOppNumber
current ranging TO number 
 
void SetRtg(uint16_t rtg)
Set receive/transmit transition gap. 
 
Simulation virtual time values and global simulation resolution. 
 
void SetUcdCount(uint8_t ucdCount)
Set UCD count. 
 
Time GetIntervalT8(void) const 
 
void SetNrDlSymbols(uint32_t dlSymbols)
 
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
 
This class implements the DSA-ACK message described by "IEEE Standard for Local and metropolitan area...
 
void SetRtg(uint8_t rtg)
Set RTG field. 
 
uint16_t GetRtg(void) const 
Get receive/transmit transition gap. 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
void StartDlSubFrame(void)
Start DL subframe function. 
 
void SetEirxPIrMax(uint16_t rss_ir_max)
Set EIRX IR MAX field. 
 
uint32_t GetNrDcdSent(void) const 
 
uint16_t m_nrSsRegistered
number SS registered 
 
void SetLength(uint8_t length)
Set length field. 
 
void MarkRangingOppStart(Time rangingOppStartTime)
Mark ranging opp start. 
 
void SetBsEirp(uint16_t bs_eirp)
Set BS EIRP field. 
 
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43...
 
void EndUlSubFrame(void)
End UL subframe function. 
 
void SetRangingBackoffEnd(uint8_t rangingBackoffEnd)
Set ranging backoff end. 
 
This class implements the ranging request message described by "IEEE Standard for Local and metropoli...
 
void SetLinkManager(Ptr< BSLinkManager > linkManager)
 
Cid GetCid(void) const 
Get CID field. 
 
void ForwardUp(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
Forward a packet to the next layer above the device. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit. 
 
Ptr< WimaxConnection > GetBroadcastConnection(void) const 
Get the broadcast connection. 
 
uint32_t GetSize(void) const 
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
Ptr< BSScheduler > GetBSScheduler(void) const 
 
void CreateDescriptorMessages(bool sendDcd, bool sendUcd)
creates the channel descriptor MAC management messages DCD and UCD 
 
Cid GetCid(void) const 
Get CID. 
 
TracedCallback< Ptr< const Packet > > m_bsRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
 
uint8_t GetMaxRangingCorrectionRetries(void) const 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
bool IsBroadcast(void) const 
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
This class implements the UL burst profile as described by "IEEE Standard for Local and metropolitan ...
 
Time m_initialRangInterval
in seconds 
 
static void Cancel(const EventId &id)
Set the cancel bit on this event: the event's associated function will not be invoked when it expires...
 
void SetBSScheduler(Ptr< BSScheduler > bsSchedule)
 
Ptr< ConnectionManager > GetConnectionManager(void) const 
Get the connection manager of the device. 
 
uint8_t GetRangReqOppSize(void) const 
 
void EndFrame(void)
End frame function. 
 
uint8_t GetType(void) const 
Get type field. 
 
Ptr< Packet > CreateUcd(void)
Create UCD. 
 
void SetChannelNr(uint8_t channelNr)
Set channel number field. 
 
void SetMaxInvitedRangRetries(uint8_t maxInvitedRangRetries)
 
void SetIntervalT8(Time interval)
 
void SetBsClassifier(Ptr< IpcsClassifier > classifier)
 
void SetType(uint8_t type)
Set type field. 
 
void SetLength(uint8_t length)
Set length. 
 
void UplinkAllocationEnd(Cid cid, uint8_t uiuc)
Uplink allocation end. 
 
bool IsBasic(Cid cid) const 
This function determines if the CID is basic. 
 
void SetDiuc(uint8_t diuc)
Set DIUC field. 
 
void SetChannelEncodings(OfdmUcdChannelEncodings channelEncodings)
Set channel encodings. 
 
void SetStartTime(uint16_t startTime)
Set start time field. 
 
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source. 
 
uint16_t m_nrUlAllocations
number UL allocations 
 
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range. 
 
void SetPreamblePresent(uint8_t preamblePresent)
Set preamble present field. 
 
void SetFrameDurationCode(uint8_t frameDurationCode)
Set frame duration code field. 
 
uint32_t m_nrUlFrames
number UL frames 
 
uint32_t GetNrFrames(void) const 
Get the number of frames. 
 
Time GetDcdInterval(void) const 
 
void SetSbchnlReqRegionFullParams(uint8_t sbchnlReqRegionFullParams)
Set SB channel reguest region full parameters. 
 
void SetBaseStationId(Mac48Address baseStationID)
Set base station ID field. 
 
double GetSeconds(void) const 
Get an approximation of the time stored in this instance in the indicated unit. 
 
void AddAtEnd(Ptr< const Packet > packet)
Concatenate the input packet at the end of the current packet. 
 
void SetRequestBackoffStart(uint8_t requestBackoffStart)
Set request backoff start. 
 
Ptr< Packet > CreateUlMap(void)
Create UL map. 
 
NS_ASSERT_MSG(false,"Ipv4AddressGenerator::MaskToIndex(): Impossible")
 
uint32_t m_framesSinceLastDcd
frames since last DCD 
 
void MarkUplinkAllocationStart(Time allocationStartTime)
Mark uplink allocation start. 
 
uint8_t GetMaxInvitedRangRetries(void) const 
 
TracedCallback< Ptr< const Packet > > m_bsRxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
 
void SetDiuc(uint8_t diuc)
Set DIUC field. 
 
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
Enqueue a packet into a connection queue. 
 
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
uint8_t m_bwReqOppSize
in symbols 
 
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay. 
 
uint16_t GetTtg(void) const 
Get transmission/receive transition gap. 
 
uint32_t m_nrDlMapSent
number DL map sent 
 
void SetSbchnlFocContCodes(uint8_t sbchnlFocContCodes)
Set SB channel for control codes. 
 
void SetCurrentDcd(Dcd dcd)
Set the current DCD. 
 
void Stop(void)
Stop device. 
 
void SetRangReqOppSize(uint8_t rangReqOppSize)
 
AttributeValue implementation for Time. 
 
void SetTtg(uint16_t ttg)
Set transmission/receive transition gap. 
 
TracedCallback< Ptr< const Packet > > m_bsTxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
 
Time GetInitialRangingInterval(void) const 
 
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type. 
 
static Cid InitialRanging(void)
 
void SetTtg(uint8_t ttg)
Set TTG field. 
 
Time GetSymbolDuration(void) const 
 
Hold an unsigned integer type. 
 
void SetDcdCount(uint8_t dcdCount)
Set DCD count field. 
 
void SetUiuc(uint8_t uiuc)
Set UIUC. 
 
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
 
void SetAllocationStartTime(uint32_t allocationStartTime)
Set allocation start time. 
 
bool IsInitialRanging(void) const 
 
static TypeId GetTypeId(void)
Get the type ID. 
 
void SetRangingBackoffStart(uint8_t rangingBackoffStart)
Set ranging backoff start. 
 
uint32_t m_nrDlSymbols
number of DL symbols 
 
Time GetPsDuration(void) const 
 
uint16_t m_nrDlAllocations
number DL allocations 
 
Ptr< UplinkScheduler > GetUplinkScheduler(void) const 
 
void SetInitialRangingInterval(Time initialRangInterval)
 
uint32_t m_nrDlFrames
number DL frames 
 
Ptr< IpcsClassifier > GetBsClassifier(void) const 
 
Ptr< WimaxConnection > GetInitialRangingConnection(void) const 
Get the initial ranging connection. 
 
uint32_t m_allocationStartTime
allocation start time 
 
Ptr< BandwidthManager > GetBandwidthManager(void) const 
Get the bandwidth manager on the device. 
 
Ptr< BSLinkManager > m_linkManager
the link manager 
 
void SetBwReqOppSize(uint16_t bwReqOppSize)
Set BW request opp size. 
 
void AddUlBurstProfile(OfdmUlBurstProfile ulBurstProfile)
Add UL burst profile. 
 
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
 
~BaseStationNetDevice(void)
 
Mac48Address GetMacAddress(void) const 
Get the MAC address. 
 
Ptr< IpcsClassifier > m_bsClassifier
the base station classifier 
 
virtual void DoDispose(void)
Destructor implementation. 
 
ModulationType
ModulationType enumeration. 
 
Ptr< Packet > CreateDlMap(void)
Create DL map. 
 
void SetFrameNumber(uint32_t frameNumber)
Set frame number field. 
 
void SendBursts(void)
Send burst function. 
 
Ptr< BsServiceFlowManager > GetServiceFlowManager(void) const 
 
uint8_t GetUiuc(void) const 
Get UIUC. 
 
Ptr< Packet > Copy(void) const 
performs a COW copy of the packet. 
 
Time m_symbolDuration
symbol duration 
 
void SetChannelEncodings(OfdmDcdChannelEncodings channelEncodings)
Set channel encodings field. 
 
uint8_t GetBwReqOppSize(void) const 
 
Hold together all WiMAX-related objects in a NetDevice. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
uint16_t GetDuration(void) const 
Get duration. 
 
Hold objects of type Ptr. 
 
void EndDlSubFrame(void)
End DL subframe function. 
 
This class implements the bandwidth-request mac Header as described by IEEE Standard for Local and me...
 
void SetFrequency(uint32_t frequency)
Set frequency field. 
 
TracedCallback< Ptr< const Packet >, Mac48Address, Cid > m_traceBSRx
the base station receive trace callback 
 
void AddDlBurstProfile(OfdmDlBurstProfile dlBurstProfile)
Add DL burst profile field. 
 
uint8_t GetRangingOppNumber(void) const 
 
void SetRangReqOppSize(uint16_t rangReqOppSize)
Set range request opp size. 
 
Ptr< BSScheduler > m_scheduler
the base station scheduler 
 
This class implements service flows as described by the IEEE-802.16 standard. 
 
static EventId ScheduleNow(MEM mem_ptr, OBJ obj)
Schedule an event to expire Now. 
 
std::list< Ptr< const Packet > > FragmentsQueue
Definition of Fragments Queue data type. 
 
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
Time m_intervalT8
in milliseconds, wait for DSA/DSC Acknowledge timeout 
 
static Time Now(void)
Return the current simulation virtual time. 
 
Time m_ucdInterval
in seconds 
 
This class implements the OFDM DCD channel encodings as described by "IEEE Standard for Local and met...
 
void SetDcdInterval(Time dcdInterval)
 
TracedCallback< Ptr< const Packet > > m_bsPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
 
void SetPhy(Ptr< WimaxPhy > phy)
Set the physical layer object. 
 
uint32_t m_nrUcdSent
number UCD sent 
 
void CreateMapMessages(void)
creates the MAC management messages DL-MAP and UL-MAP 
 
bool DoSend(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber)
Send packet. 
 
TracedCallback< Ptr< const Packet > > m_bsTxTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition...
 
Ptr< SSManager > m_ssManager
the SS manager 
 
Cid GetCid(void) const 
Set CID field. 
 
void SetUplinkScheduler(Ptr< UplinkScheduler > ulScheduler)
 
uint32_t GetNrDlSymbols(void) const 
 
void DoReceive(Ptr< Packet > packet)
Receive packet. 
 
void StartUlSubFrame(void)
Start UL subframe function. 
 
Time m_psDuration
ps duration 
 
void SetDlBurstProfiles(Dcd *dcd)
Send DL burst profiles. 
 
Ptr< BurstProfileManager > GetBurstProfileManager(void) const 
Get the burst profile manager. 
 
Time m_dcdInterval
in seconds 
 
void Start(void)
Start device. 
 
void SetFrequency(uint32_t frequency)
Set frequency. 
 
void SetNrFrames(uint32_t nrFrames)
Set the number of frames. 
 
uint32_t GetNrUlSymbols(void) const 
 
void SetMaxRangingCorrectionRetries(uint8_t maxRangCorrectionRetries)
 
uint32_t m_dcdConfigChangeCount
DCD config change count. 
 
uint8_t m_maxRangCorrectionRetries
maximum range correction retries 
 
void SetConfigurationChangeCount(uint8_t ucdCount)
Set configuration change count. 
 
void SetCurrentUcd(Ucd ucd)
Set the current UCD. 
 
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
 
uint32_t m_nrUlMapSent
number UL map sent 
 
uint8_t m_ulAllocationNumber
to see UL burst number 
 
Time m_dlSubframeStartTime
DL subframe start time. 
 
void ForwardDown(Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
Forward a packet down the stack. 
 
Ptr< BSLinkManager > GetLinkManager(void) const 
 
Ptr< WimaxPhy > GetPhy(void) const 
Get the physical layer object. 
 
Time GetUcdInterval(void) const 
 
void SetBwReqOppSize(uint8_t bwReqOppSize)
 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
 
void StartFrame(void)
Start frame function. 
 
Ptr< SSManager > GetSSManager(void) const 
 
void SetRequestBackoffEnd(uint8_t requestBackoffEnd)
Set request backoff end. 
 
Time Seconds(double value)
Construct a Time in the indicated unit. 
 
void CreateDefaultConnections(void)
Creates the initial ranging and broadcast connections. 
 
uint32_t m_framesSinceLastUcd
frames since last UCD 
 
void MarkUplinkAllocationEnd(Time allocationEndTime, Cid cid, uint8_t uiuc)
Mark uplink allocation end. 
 
Ptr< BsServiceFlowManager > m_serviceFlowManager
the service flow manager 
 
Time m_ulSubframeStartTime
UL subframe start time. 
 
Ptr< UplinkScheduler > m_uplinkScheduler
the uplink scheduler 
 
void SetUlBurstProfiles(Ucd *ucd)
Send UL burst profiles. 
 
Ptr< WimaxConnection > GetConnection(Cid cid)
 
void SetSSManager(Ptr< SSManager > ssManager)
 
uint32_t m_nrDcdSent
number DCD sent 
 
uint8_t GetDiuc(void) const 
Get DIUC field. 
 
Time GetDlSubframeStartTime(void) const 
 
void SetBaseStationId(Mac48Address baseStationId)
Set base station ID field. 
 
uint32_t m_ucdConfigChangeCount
UCD config change count. 
 
void SetState(uint8_t state)
Set the device state. 
 
bool check_hcs(void) const 
Check HCS. 
 
void SetCid(Cid cid)
Set CID functon. 
 
void InitBaseStationNetDevice(void)
initializes the BS net device and sets its parameters to the default values 
 
void AddDlMapElement(OfdmDlMapIe dlMapElement)
Add DL Map element field. 
 
void SetServiceFlowManager(Ptr< BsServiceFlowManager >)
Set service flow manager. 
 
This class is used exclusively by the BS to allocate CIDs to new connections. 
 
virtual void DoDispose(void)
Destructor implementation. 
 
void MarkUplinkAllocations(void)
Mark uplink allocations. 
 
uint8_t GetHt(void) const 
Get HT field. 
 
void SetNrUlSymbols(uint32_t ulSymbols)
 
CidFactory * m_cidFactory
the CID factory 
 
virtual void SetNode(Ptr< Node > node)
Set node pointer. 
 
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
 
uint32_t m_nrUlSymbols
number of UL symbols 
 
bool IsPrimary(Cid cid) const 
This function determines if the CID is primary. 
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
 
void UplinkAllocationStart(void)
Uplink allocation start. 
 
void AddUlMapElement(OfdmUlMapIe ulMapElement)
Add UL map element. 
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
void SetReceiveCallback(void)
Set receive callback function. 
 
Time GetUlSubframeStartTime(void) const 
 
static Time m_frameStartTime
temp, to determine the frame start time at SS side, shall actually be determined by frame start pream...
 
This class implements the OFDM DL-MAP information element as described by "IEEE Standard for Local an...
 
uint16_t GetStartTime(void) const 
Get start time. 
 
This class implements the OFDM Downlink burst profile descriptor as described by "IEEE Standard for L...
 
uint8_t m_maxInvitedRangRetries
maximum invited range retries 
 
void SetConfigurationChangeCount(uint8_t configurationChangeCount)
Set configuration change count field. 
 
uint32_t GetNrUcdSent(void) const 
 
void AddHeader(const Header &header)
Add header to this packet. 
 
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type. 
 
static uint8_t m_direction
downlink or uplink 
 
void SetType(uint8_t type)
Set type. 
 
Ptr< Packet > CreateDcd(void)
Create DCD.