22 #ifndef WIMAX_BS_NET_DEVICE_H 23 #define WIMAX_BS_NET_DEVICE_H 26 #include "ns3/event-id.h" 28 #include "ns3/nstime.h" 29 #include "ns3/mac48-address.h" 30 #include "ns3/ipv4-address.h" 31 #include "ns3/bs-service-flow-manager.h" 42 class BurstProfileManager;
44 class UplinkScheduler;
45 class BsServiceFlowManager;
void SetUcdInterval(Time ucdInterval)
uint8_t m_rangReqOppSize
in symbols
BaseStationNetDevice(void)
void RangingOppStart(void)
Ranging opp start.
uint8_t m_rangingOppNumber
current ranging TO number
Simulation virtual time values and global simulation resolution.
void SetNrDlSymbols(uint32_t dlSymbols)
Time GetInitialRangingInterval(void) const
void StartDlSubFrame(void)
Start DL subframe function.
uint16_t m_nrSsRegistered
number SS registered
void MarkRangingOppStart(Time rangingOppStartTime)
Mark ranging opp start.
Time GetUcdInterval(void) const
void EndUlSubFrame(void)
End UL subframe function.
Time GetDlSubframeStartTime(void) const
Forward calls to a chain of Callback.
Ptr< BSLinkManager > GetLinkManager(void) const
void SetLinkManager(Ptr< BSLinkManager > linkManager)
void CreateDescriptorMessages(bool sendDcd, bool sendUcd)
creates the channel descriptor MAC management messages DCD and UCD
TracedCallback< Ptr< const Packet > > m_bsRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
uint8_t GetMaxInvitedRangRetries(void) const
Time m_initialRangInterval
in seconds
void SetBSScheduler(Ptr< BSScheduler > bsSchedule)
Ptr< SSManager > GetSSManager(void) const
void EndFrame(void)
End frame function.
Ptr< Packet > CreateUcd(void)
Create UCD.
void SetMaxInvitedRangRetries(uint8_t maxInvitedRangRetries)
void SetIntervalT8(Time interval)
void SetBsClassifier(Ptr< IpcsClassifier > classifier)
void UplinkAllocationEnd(Cid cid, uint8_t uiuc)
Uplink allocation end.
uint8_t GetRangingOppNumber(void) const
Ptr< BsServiceFlowManager > GetServiceFlowManager(void) const
Time GetUlSubframeStartTime(void) const
uint16_t m_nrUlAllocations
number UL allocations
uint32_t m_nrUlFrames
number UL frames
Ptr< Packet > CreateUlMap(void)
Create UL map.
uint32_t m_framesSinceLastDcd
frames since last DCD
void MarkUplinkAllocationStart(Time allocationStartTime)
Mark uplink allocation start.
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 ...
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
Enqueue a packet into a connection queue.
uint8_t m_bwReqOppSize
in symbols
uint32_t m_nrDlMapSent
number DL map sent
void Stop(void)
Stop device.
void SetRangReqOppSize(uint8_t rangReqOppSize)
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 ...
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
static TypeId GetTypeId(void)
Get the type ID.
uint32_t m_nrDlSymbols
number of DL symbols
uint16_t m_nrDlAllocations
number DL allocations
void SetInitialRangingInterval(Time initialRangInterval)
uint32_t m_nrDlFrames
number DL frames
uint32_t m_allocationStartTime
allocation start time
Ptr< UplinkScheduler > GetUplinkScheduler(void) const
Time GetPsDuration(void) const
Time GetSymbolDuration(void) const
Ptr< BSLinkManager > m_linkManager
the link manager
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
~BaseStationNetDevice(void)
Ptr< IpcsClassifier > m_bsClassifier
the base station classifier
Ptr< Packet > CreateDlMap(void)
Create DL map.
void SendBursts(void)
Send burst function.
Time m_symbolDuration
symbol duration
Hold together all WiMAX-related objects in a NetDevice.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void EndDlSubFrame(void)
End DL subframe function.
TracedCallback< Ptr< const Packet >, Mac48Address, Cid > m_traceBSRx
the base station receive trace callback
Ptr< BSScheduler > m_scheduler
the base station scheduler
MacPreamble
MacPreamble enumeration.
Time m_intervalT8
in milliseconds, wait for DSA/DSC Acknowledge timeout
uint32_t GetNrDcdSent(void) const
Time m_ucdInterval
in seconds
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...
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
Time GetIntervalT8(void) const
void SetUplinkScheduler(Ptr< UplinkScheduler > ulScheduler)
void DoReceive(Ptr< Packet > packet)
Receive packet.
void StartUlSubFrame(void)
Start UL subframe function.
Time m_psDuration
ps duration
Time GetDcdInterval(void) const
void SetDlBurstProfiles(Dcd *dcd)
Send DL burst profiles.
Ptr< IpcsClassifier > GetBsClassifier(void) const
Time m_dcdInterval
in seconds
void Start(void)
Start device.
void SetMaxRangingCorrectionRetries(uint8_t maxRangCorrectionRetries)
uint32_t m_dcdConfigChangeCount
DCD config change count.
uint32_t GetNrDlSymbols(void) const
uint8_t m_maxRangCorrectionRetries
maximum range correction retries
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 SetBwReqOppSize(uint8_t bwReqOppSize)
Ptr< BSScheduler > GetBSScheduler(void) const
void StartFrame(void)
Start frame function.
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.
uint32_t GetNrUcdSent(void) const
Ptr< WimaxConnection > GetConnection(Cid cid)
uint32_t GetNrUlSymbols(void) const
uint8_t GetMaxRangingCorrectionRetries(void) const
void SetSSManager(Ptr< SSManager > ssManager)
uint32_t m_nrDcdSent
number DCD sent
uint32_t m_ucdConfigChangeCount
UCD config change count.
void InitBaseStationNetDevice(void)
initializes the BS net device and sets its parameters to the default values
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.
CidFactory * m_cidFactory
the CID factory
void SetNrUlSymbols(uint32_t ulSymbols)
uint32_t m_nrUlSymbols
number of UL symbols
uint8_t GetRangReqOppSize(void) const
void UplinkAllocationStart(void)
Uplink allocation start.
a unique identifier for an interface.
uint8_t m_maxInvitedRangRetries
maximum invited range retries
uint8_t GetBwReqOppSize(void) const
Ptr< Packet > CreateDcd(void)
Create DCD.