A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
ss-service-flow-manager.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 INRIA, UDcast
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
18
*/
19
20
#ifndef SS_SERVICE_FLOW_MANAGER_H
21
#define SS_SERVICE_FLOW_MANAGER_H
22
23
#include "
mac-messages.h
"
24
#include "
service-flow-manager.h
"
25
#include "
ss-net-device.h
"
26
27
#include "ns3/buffer.h"
28
#include "ns3/event-id.h"
29
30
#include <stdint.h>
31
32
namespace
ns3
33
{
34
35
class
Packet;
36
class
ServiceFlow;
37
class
WimaxNetDevice;
38
class
WimaxConnection;
39
class
SubscriberStationNetDevice;
40
45
class
SsServiceFlowManager
:
public
ServiceFlowManager
46
{
47
public
:
49
enum
ConfirmationCode
// as per Table 384 (not all codes implemented)
50
{
51
CONFIRMATION_CODE_SUCCESS
,
52
CONFIRMATION_CODE_REJECT
53
};
54
62
SsServiceFlowManager
(
Ptr<SubscriberStationNetDevice>
device);
63
~SsServiceFlowManager
()
override
;
64
void
DoDispose
()
override
;
65
70
static
TypeId
GetTypeId
();
71
76
void
AddServiceFlow
(
ServiceFlow
* serviceFlow);
81
void
AddServiceFlow
(
ServiceFlow
serviceFlow);
86
void
SetMaxDsaReqRetries
(uint8_t maxDsaReqRetries);
90
uint8_t
GetMaxDsaReqRetries
()
const
;
91
96
EventId
GetDsaRspTimeoutEvent
()
const
;
101
EventId
GetDsaAckTimeoutEvent
()
const
;
102
104
void
InitiateServiceFlows
();
105
111
DsaReq
CreateDsaReq
(
const
ServiceFlow
* serviceFlow);
112
117
Ptr<Packet>
CreateDsaAck
();
118
123
void
ScheduleDsaReq
(
const
ServiceFlow
* serviceFlow);
124
129
void
ProcessDsaRsp
(
const
DsaRsp
& dsaRsp);
130
131
private
:
132
Ptr<SubscriberStationNetDevice>
m_device
;
133
134
uint8_t
m_maxDsaReqRetries
;
135
136
EventId
m_dsaRspTimeoutEvent
;
137
EventId
m_dsaAckTimeoutEvent
;
138
139
DsaReq
m_dsaReq
;
140
DsaAck
m_dsaAck
;
141
142
uint16_t
m_currentTransactionId
;
143
uint16_t
m_transactionIdIndex
;
144
uint8_t
m_dsaReqRetries
;
145
146
// pointer to the service flow currently being configured
147
ServiceFlow
*
m_pendingServiceFlow
;
148
};
149
150
}
// namespace ns3
151
152
#endif
/* SS_SERVICE_FLOW_MANAGER_H */
ns3::DsaAck
This class implements the DSA-ACK message described by "IEEE Standard for Local and metropolitan area...
Definition:
mac-messages.h:590
ns3::DsaReq
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
Definition:
mac-messages.h:386
ns3::DsaRsp
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ar...
Definition:
mac-messages.h:490
ns3::EventId
An identifier for simulation events.
Definition:
event-id.h:55
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:78
ns3::ServiceFlow
This class implements service flows as described by the IEEE-802.16 standard.
Definition:
service-flow.h:43
ns3::ServiceFlowManager
The same service flow manager class serves both for BS and SS though some functions are exclusive to ...
Definition:
service-flow-manager.h:46
ns3::SsServiceFlowManager
SsServiceFlowManager class.
Definition:
ss-service-flow-manager.h:46
ns3::SsServiceFlowManager::ScheduleDsaReq
void ScheduleDsaReq(const ServiceFlow *serviceFlow)
Schedule DSA response.
Definition:
ss-service-flow-manager.cc:158
ns3::SsServiceFlowManager::ProcessDsaRsp
void ProcessDsaRsp(const DsaRsp &dsaRsp)
Process DSA response.
Definition:
ss-service-flow-manager.cc:199
ns3::SsServiceFlowManager::m_currentTransactionId
uint16_t m_currentTransactionId
current transaction ID
Definition:
ss-service-flow-manager.h:142
ns3::SsServiceFlowManager::GetDsaRspTimeoutEvent
EventId GetDsaRspTimeoutEvent() const
Get DSA response timeout event.
Definition:
ss-service-flow-manager.cc:94
ns3::SsServiceFlowManager::m_dsaReqRetries
uint8_t m_dsaReqRetries
DSA request retries.
Definition:
ss-service-flow-manager.h:144
ns3::SsServiceFlowManager::m_dsaAckTimeoutEvent
EventId m_dsaAckTimeoutEvent
DSA ack timeout event.
Definition:
ss-service-flow-manager.h:137
ns3::SsServiceFlowManager::m_pendingServiceFlow
ServiceFlow * m_pendingServiceFlow
pending service flow
Definition:
ss-service-flow-manager.h:147
ns3::SsServiceFlowManager::GetDsaAckTimeoutEvent
EventId GetDsaAckTimeoutEvent() const
Get DSA ack timeout event.
Definition:
ss-service-flow-manager.cc:100
ns3::SsServiceFlowManager::m_dsaAck
DsaAck m_dsaAck
DSA ack.
Definition:
ss-service-flow-manager.h:140
ns3::SsServiceFlowManager::InitiateServiceFlows
void InitiateServiceFlows()
Initiate service flows.
Definition:
ss-service-flow-manager.cc:120
ns3::SsServiceFlowManager::ConfirmationCode
ConfirmationCode
Confirmation code enumeration.
Definition:
ss-service-flow-manager.h:50
ns3::SsServiceFlowManager::CONFIRMATION_CODE_SUCCESS
@ CONFIRMATION_CODE_SUCCESS
Definition:
ss-service-flow-manager.h:51
ns3::SsServiceFlowManager::CONFIRMATION_CODE_REJECT
@ CONFIRMATION_CODE_REJECT
Definition:
ss-service-flow-manager.h:52
ns3::SsServiceFlowManager::m_dsaRspTimeoutEvent
EventId m_dsaRspTimeoutEvent
DSA response timeout event.
Definition:
ss-service-flow-manager.h:136
ns3::SsServiceFlowManager::CreateDsaReq
DsaReq CreateDsaReq(const ServiceFlow *serviceFlow)
Create DSA request.
Definition:
ss-service-flow-manager.cc:131
ns3::SsServiceFlowManager::AddServiceFlow
void AddServiceFlow(ServiceFlow *serviceFlow)
add a service flow to the list
Definition:
ss-service-flow-manager.cc:114
ns3::SsServiceFlowManager::m_device
Ptr< SubscriberStationNetDevice > m_device
the device
Definition:
ss-service-flow-manager.h:132
ns3::SsServiceFlowManager::m_dsaReq
DsaReq m_dsaReq
DSA request.
Definition:
ss-service-flow-manager.h:139
ns3::SsServiceFlowManager::m_transactionIdIndex
uint16_t m_transactionIdIndex
transaction ID index
Definition:
ss-service-flow-manager.h:143
ns3::SsServiceFlowManager::m_maxDsaReqRetries
uint8_t m_maxDsaReqRetries
maximum DSA request retries
Definition:
ss-service-flow-manager.h:134
ns3::SsServiceFlowManager::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
ss-service-flow-manager.cc:66
ns3::SsServiceFlowManager::DoDispose
void DoDispose() override
Destructor implementation.
Definition:
ss-service-flow-manager.cc:76
ns3::SsServiceFlowManager::~SsServiceFlowManager
~SsServiceFlowManager() override
Definition:
ss-service-flow-manager.cc:60
ns3::SsServiceFlowManager::SetMaxDsaReqRetries
void SetMaxDsaReqRetries(uint8_t maxDsaReqRetries)
sets the maximum retries on DSA request message
Definition:
ss-service-flow-manager.cc:82
ns3::SsServiceFlowManager::GetMaxDsaReqRetries
uint8_t GetMaxDsaReqRetries() const
Definition:
ss-service-flow-manager.cc:88
ns3::SsServiceFlowManager::CreateDsaAck
Ptr< Packet > CreateDsaAck()
Create DSA ack.
Definition:
ss-service-flow-manager.cc:145
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
mac-messages.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
service-flow-manager.h
ss-net-device.h
src
wimax
model
ss-service-flow-manager.h
Generated on Sun Jul 2 2023 18:22:19 for ns-3 by
1.9.6