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)
111 NS_ASSERT_MSG (serviceFlow != 0,
"Error while initiating a new service flow: All service flows have been initiated");
164 NS_LOG_DEBUG (
"Service flows could not be initialized!");
207 (*m_pendingServiceFlow) = sf;
215 ss->GetConnectionManager ()->AddConnection (transportConnection,
221 if (serviceFlow == 0)
223 ss->SetAreServiceFlowsAllocated (
true);
Introspection did not find any typical Config paths.
uint8_t m_maxDsaReqRetries
Smart pointer class similar to boost::intrusive_ptr.
Introspection did not find any typical Config paths.
EventId GetDsaRspTimeoutEvent(void) const
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
EventId GetDsaAckTimeoutEvent(void) const
void SetConnection(Ptr< WimaxConnection > connection)
Introspection did not find any typical Config paths.
ServiceFlow GetServiceFlow(void) const
Ptr< SubscriberStationNetDevice > m_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...
bool IsRunning(void) const
This method is syntactic sugar for !IsExpired().
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
Schedule an event to expire at the relative time "time" is reached.
void AddServiceFlow(ServiceFlow *serviceFlow)
add a service flow to the list
void SetMaxDsaReqRetries(uint8_t maxDsaReqRetries)
sets the maximum retries on DSA request message
void SetUnsolicitedPollingInterval(uint16_t)
void CopyParametersFrom(ServiceFlow sf)
~SsServiceFlowManager(void)
uint16_t m_currentTransactionId
void SetUnsolicitedGrantInterval(uint16_t)
SsServiceFlowManager(Ptr< SubscriberStationNetDevice > device)
creates a service flow manager and attaches it to a device
void InitiateServiceFlows(void)
void DoDispose(void)
Destructor implementation.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ServiceFlow * m_pendingServiceFlow
This class implements service flows as described by the IEEE-802.16 standard.
EventId m_dsaAckTimeoutEvent
uint8_t GetMaxDsaReqRetries(void) const
DsaReq CreateDsaReq(const ServiceFlow *serviceFlow)
void SetTransactionId(uint16_t transactionId)
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
void SetIsEnabled(bool isEnabled)
void SetTransactionId(uint16_t transactionId)
An identifier for simulation events.
void AddServiceFlow(ServiceFlow *serviceFlow)
uint16_t GetTransactionId(void) const
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
uint16_t GetTransactionId(void) const
Ptr< Packet > CreateDsaAck(void)
uint16_t m_transactionIdIndex
void DoDispose(void)
Destructor implementation.
void ProcessDsaRsp(const DsaRsp &dsaRsp)
EventId m_dsaRspTimeoutEvent
Introspection did not find any typical Config paths.
void AddHeader(const Header &header)
Add header to this packet.
void SetConfirmationCode(uint16_t confirmationCode)
uint16_t GetCid(void) const
void ScheduleDsaReq(const ServiceFlow *serviceFlow)