23 #include "ns3/simulator.h"    24 #include "ns3/packet.h"    32 #include "ns3/pointer.h"    39 #include "ns3/buffer.h"    48     m_maxDsaReqRetries (100),
    51     m_currentTransactionId (0),
    52     m_transactionIdIndex (1),
    54     m_pendingServiceFlow (0)
    68     .SetGroupName (
"Wimax")
   123   NS_ASSERT_MSG (serviceFlow != 0,
"Error while initiating a new service flow: All service flows have been initiated");
   176           NS_LOG_DEBUG (
"Service flows could not be initialized!");
   219   (*m_pendingServiceFlow) = sf;
   227   ss->GetConnectionManager ()->AddConnection (transportConnection,
   233   if (serviceFlow == 0)
   235       ss->SetAreServiceFlowsAllocated (
true);
   This class implements the DSA-RSP message described by "IEEE Standard for   Local and metropolitan ...
DsaReq m_dsaReq
DSA request. 
uint8_t m_maxDsaReqRetries
maximum DSA request retries 
Smart pointer class similar to boost::intrusive_ptr. 
This class implements the DSA-ACK message described by "IEEE Standard for Local and metropolitan area...
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message 
void SetConnection(Ptr< WimaxConnection > connection)
Set connection. 
NS_ASSERT_MSG(false, "Ipv4AddressGenerator::MaskToIndex(): Impossible")
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43...
uint16_t GetTransactionId(void) const
Ptr< SubscriberStationNetDevice > m_device
the device 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
ServiceFlow * GetNextServiceFlowToAllocate()
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...
uint8_t GetMaxDsaReqRetries(void) const
EventId GetDsaAckTimeoutEvent(void) const
Get DSA ack timeout event. 
void AddServiceFlow(ServiceFlow *serviceFlow)
add a service flow to the list 
void SetMaxDsaReqRetries(uint8_t maxDsaReqRetries)
sets the maximum retries on DSA request message 
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay. 
uint16_t GetTransactionId(void) const
void CopyParametersFrom(ServiceFlow sf)
Copy parameters from another service flow. 
EventId GetDsaRspTimeoutEvent(void) const
Get DSA response timeout event. 
void SetUnsolicitedGrantInterval(uint16_t unsolicitedGrantInterval)
Set unsolicied grant interval. 
~SsServiceFlowManager(void)
uint16_t m_currentTransactionId
current transaction ID 
SsServiceFlowManager(Ptr< SubscriberStationNetDevice > device)
creates a service flow manager and attaches it to a device 
void InitiateServiceFlows(void)
Initiate service flows. 
uint16_t GetCid(void) const
Get CID. 
void DoDispose(void)
Destructor implementation. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
ServiceFlow * m_pendingServiceFlow
pending service flow 
This class implements service flows as described by the IEEE-802.16 standard. 
EventId m_dsaAckTimeoutEvent
DSA ack timeout event. 
DsaReq CreateDsaReq(const ServiceFlow *serviceFlow)
Create DSA request. 
void SetTransactionId(uint16_t transactionId)
set the transaction ID 
ServiceFlow GetServiceFlow(void) const
void SetIsEnabled(bool isEnabled)
Set is enabled flag. 
void SetTransactionId(uint16_t transactionId)
Set transaction ID field. 
An identifier for simulation events. 
void AddServiceFlow(ServiceFlow *serviceFlow)
Add service flow function. 
void SetUnsolicitedPollingInterval(uint16_t unsolicitedPollingInterval)
Set unsolicited polling interval. 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
Ptr< Packet > CreateDsaAck(void)
Create DSA ack. 
bool IsRunning(void) const
This method is syntactic sugar for !IsExpired(). 
uint16_t m_transactionIdIndex
transaction ID index 
SubscriberStationNetDevice subclass of WimaxNetDevice. 
void DoDispose(void)
Destructor implementation. 
void ProcessDsaRsp(const DsaRsp &dsaRsp)
Process DSA response. 
EventId m_dsaRspTimeoutEvent
DSA response timeout event. 
uint8_t m_dsaReqRetries
DSA request retries. 
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
The same service flow manager class serves both for BS and SS though some functions are exclusive to ...
a unique identifier for an interface. 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
static TypeId GetTypeId(void)
Register this type. 
void AddHeader(const Header &header)
Add header to this packet. 
void SetConfirmationCode(uint16_t confirmationCode)
Set confirmation code field. 
void ScheduleDsaReq(const ServiceFlow *serviceFlow)
Schedule DSA response.