23 #include "ns3/simulator.h"
24 #include "ns3/packet.h"
32 #include "ns3/pointer.h"
39 #include "ns3/buffer.h"
47 m_maxDsaReqRetries (100),
50 m_currentTransactionId (0),
51 m_transactionIdIndex (1),
53 m_pendingServiceFlow (0)
110 NS_ASSERT_MSG (serviceFlow != 0,
"Error while initiating a new service flow: All service flows have been initiated");
163 NS_LOG_DEBUG (
"Service flows could not be initialized!");
206 (*m_pendingServiceFlow) = sf;
214 ss->GetConnectionManager ()->AddConnection (transportConnection,
220 if (serviceFlow == 0)
222 ss->SetAreServiceFlowsAllocated (
true);
NS_LOG_COMPONENT_DEFINE("SsServiceFlowManager")
Doxygen introspection did not find any typical Config paths.
uint8_t m_maxDsaReqRetries
smart pointer class similar to boost::intrusive_ptr
Doxygen 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)
Doxygen introspection did not find any typical Config paths.
ServiceFlow GetServiceFlow(void) const
Ptr< SubscriberStationNetDevice > m_device
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 the ns3::Simulator::isExpired method.
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)
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
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)
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)
uint16_t GetTransactionId(void) const
Ptr< Packet > CreateDsaAck(void)
uint16_t m_transactionIdIndex
void DoDispose(void)
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
void ProcessDsaRsp(const DsaRsp &dsaRsp)
EventId m_dsaRspTimeoutEvent
Doxygen 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)