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
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
7
*/
8
9
#ifndef SS_SERVICE_FLOW_MANAGER_H
10
#define SS_SERVICE_FLOW_MANAGER_H
11
12
#include "
mac-messages.h
"
13
#include "
service-flow-manager.h
"
14
#include "
ss-net-device.h
"
15
16
#include "ns3/buffer.h"
17
#include "ns3/event-id.h"
18
19
#include <stdint.h>
20
21
namespace
ns3
22
{
23
24
class
Packet;
25
class
ServiceFlow;
26
class
WimaxNetDevice;
27
class
WimaxConnection;
28
class
SubscriberStationNetDevice;
29
30
/**
31
* \ingroup wimax
32
* \brief SsServiceFlowManager class
33
*/
34
class
SsServiceFlowManager
:
public
ServiceFlowManager
35
{
36
public
:
37
/// Confirmation code enumeration
38
enum
ConfirmationCode
// as per Table 384 (not all codes implemented)
39
{
40
CONFIRMATION_CODE_SUCCESS
,
41
CONFIRMATION_CODE_REJECT
42
};
43
44
/**
45
* Constructor
46
*
47
* Creates a service flow manager and attaches it to a device
48
*
49
* \param device the device to which the service flow manager will be attached
50
*/
51
SsServiceFlowManager
(
Ptr<SubscriberStationNetDevice>
device);
52
~SsServiceFlowManager
()
override
;
53
void
DoDispose
()
override
;
54
55
/**
56
* Register this type.
57
* \return The TypeId.
58
*/
59
static
TypeId
GetTypeId
();
60
61
/**
62
* \brief add a service flow to the list
63
* \param serviceFlow the service flow to add
64
*/
65
void
AddServiceFlow
(
ServiceFlow
* serviceFlow);
66
/**
67
* \brief add a service flow to the list
68
* \param serviceFlow the service flow to add
69
*/
70
void
AddServiceFlow
(
ServiceFlow
serviceFlow);
71
/**
72
* \brief sets the maximum retries on DSA request message
73
* \param maxDsaReqRetries the maximum retries on DSA request message
74
*/
75
void
SetMaxDsaReqRetries
(uint8_t maxDsaReqRetries);
76
/**
77
* \return the maximum retries on DSA request message
78
*/
79
uint8_t
GetMaxDsaReqRetries
()
const
;
80
81
/**
82
* Get DSA response timeout event
83
* \returns the DSA response timeout event
84
*/
85
EventId
GetDsaRspTimeoutEvent
()
const
;
86
/**
87
* Get DSA ack timeout event
88
* \returns the DSA ack timeout event
89
*/
90
EventId
GetDsaAckTimeoutEvent
()
const
;
91
92
/// Initiate service flows
93
void
InitiateServiceFlows
();
94
95
/**
96
* Create DSA request
97
* \param serviceFlow the service flow
98
* \returns the DSA request
99
*/
100
DsaReq
CreateDsaReq
(
const
ServiceFlow
* serviceFlow);
101
102
/**
103
* Create DSA ack
104
* \returns the packet
105
*/
106
Ptr<Packet>
CreateDsaAck
();
107
108
/**
109
* Schedule DSA response
110
* \param serviceFlow the service flow
111
*/
112
void
ScheduleDsaReq
(
const
ServiceFlow
* serviceFlow);
113
114
/**
115
* Process DSA response
116
* \param dsaRsp the DSA response
117
*/
118
void
ProcessDsaRsp
(
const
DsaRsp
& dsaRsp);
119
120
private
:
121
Ptr<SubscriberStationNetDevice>
m_device
;
///< the device
122
123
uint8_t
m_maxDsaReqRetries
;
///< maximum DSA request retries
124
125
EventId
m_dsaRspTimeoutEvent
;
///< DSA response timeout event
126
EventId
m_dsaAckTimeoutEvent
;
///< DSA ack timeout event
127
128
DsaReq
m_dsaReq
;
///< DSA request
129
DsaAck
m_dsaAck
;
///< DSA ack
130
131
uint16_t
m_currentTransactionId
;
///< current transaction ID
132
uint16_t
m_transactionIdIndex
;
///< transaction ID index
133
uint8_t
m_dsaReqRetries
;
///< DSA request retries
134
135
// pointer to the service flow currently being configured
136
ServiceFlow
*
m_pendingServiceFlow
;
///< pending service flow
137
};
138
139
}
// namespace ns3
140
141
#endif
/* SS_SERVICE_FLOW_MANAGER_H */
ns3::DsaAck
This class implements the DSA-ACK message described by "IEEE Standard forLocal and metropolitan area ...
Definition
mac-messages.h:578
ns3::DsaReq
This class implements the DSA-REQ message described by "IEEE Standard forLocal and metropolitan area ...
Definition
mac-messages.h:375
ns3::DsaRsp
This class implements the DSA-RSP message described by "IEEE Standard forLocal and metropolitan area ...
Definition
mac-messages.h:478
ns3::EventId
An identifier for simulation events.
Definition
event-id.h:45
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::ServiceFlow
This class implements service flows as described by the IEEE-802.16 standard.
Definition
service-flow.h:32
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:35
ns3::SsServiceFlowManager
SsServiceFlowManager class.
Definition
ss-service-flow-manager.h:35
ns3::SsServiceFlowManager::ScheduleDsaReq
void ScheduleDsaReq(const ServiceFlow *serviceFlow)
Schedule DSA response.
Definition
ss-service-flow-manager.cc:147
ns3::SsServiceFlowManager::ProcessDsaRsp
void ProcessDsaRsp(const DsaRsp &dsaRsp)
Process DSA response.
Definition
ss-service-flow-manager.cc:188
ns3::SsServiceFlowManager::m_currentTransactionId
uint16_t m_currentTransactionId
current transaction ID
Definition
ss-service-flow-manager.h:131
ns3::SsServiceFlowManager::GetDsaRspTimeoutEvent
EventId GetDsaRspTimeoutEvent() const
Get DSA response timeout event.
Definition
ss-service-flow-manager.cc:83
ns3::SsServiceFlowManager::m_dsaReqRetries
uint8_t m_dsaReqRetries
DSA request retries.
Definition
ss-service-flow-manager.h:133
ns3::SsServiceFlowManager::m_dsaAckTimeoutEvent
EventId m_dsaAckTimeoutEvent
DSA ack timeout event.
Definition
ss-service-flow-manager.h:126
ns3::SsServiceFlowManager::m_pendingServiceFlow
ServiceFlow * m_pendingServiceFlow
pending service flow
Definition
ss-service-flow-manager.h:136
ns3::SsServiceFlowManager::GetDsaAckTimeoutEvent
EventId GetDsaAckTimeoutEvent() const
Get DSA ack timeout event.
Definition
ss-service-flow-manager.cc:89
ns3::SsServiceFlowManager::m_dsaAck
DsaAck m_dsaAck
DSA ack.
Definition
ss-service-flow-manager.h:129
ns3::SsServiceFlowManager::InitiateServiceFlows
void InitiateServiceFlows()
Initiate service flows.
Definition
ss-service-flow-manager.cc:109
ns3::SsServiceFlowManager::ConfirmationCode
ConfirmationCode
Confirmation code enumeration.
Definition
ss-service-flow-manager.h:39
ns3::SsServiceFlowManager::CONFIRMATION_CODE_SUCCESS
@ CONFIRMATION_CODE_SUCCESS
Definition
ss-service-flow-manager.h:40
ns3::SsServiceFlowManager::CONFIRMATION_CODE_REJECT
@ CONFIRMATION_CODE_REJECT
Definition
ss-service-flow-manager.h:41
ns3::SsServiceFlowManager::m_dsaRspTimeoutEvent
EventId m_dsaRspTimeoutEvent
DSA response timeout event.
Definition
ss-service-flow-manager.h:125
ns3::SsServiceFlowManager::CreateDsaReq
DsaReq CreateDsaReq(const ServiceFlow *serviceFlow)
Create DSA request.
Definition
ss-service-flow-manager.cc:120
ns3::SsServiceFlowManager::AddServiceFlow
void AddServiceFlow(ServiceFlow *serviceFlow)
add a service flow to the list
Definition
ss-service-flow-manager.cc:103
ns3::SsServiceFlowManager::SsServiceFlowManager
SsServiceFlowManager(Ptr< SubscriberStationNetDevice > device)
Constructor.
Definition
ss-service-flow-manager.cc:37
ns3::SsServiceFlowManager::m_device
Ptr< SubscriberStationNetDevice > m_device
the device
Definition
ss-service-flow-manager.h:121
ns3::SsServiceFlowManager::m_dsaReq
DsaReq m_dsaReq
DSA request.
Definition
ss-service-flow-manager.h:128
ns3::SsServiceFlowManager::m_transactionIdIndex
uint16_t m_transactionIdIndex
transaction ID index
Definition
ss-service-flow-manager.h:132
ns3::SsServiceFlowManager::m_maxDsaReqRetries
uint8_t m_maxDsaReqRetries
maximum DSA request retries
Definition
ss-service-flow-manager.h:123
ns3::SsServiceFlowManager::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition
ss-service-flow-manager.cc:55
ns3::SsServiceFlowManager::DoDispose
void DoDispose() override
Destructor implementation.
Definition
ss-service-flow-manager.cc:65
ns3::SsServiceFlowManager::~SsServiceFlowManager
~SsServiceFlowManager() override
Definition
ss-service-flow-manager.cc:49
ns3::SsServiceFlowManager::SetMaxDsaReqRetries
void SetMaxDsaReqRetries(uint8_t maxDsaReqRetries)
sets the maximum retries on DSA request message
Definition
ss-service-flow-manager.cc:71
ns3::SsServiceFlowManager::GetMaxDsaReqRetries
uint8_t GetMaxDsaReqRetries() const
Definition
ss-service-flow-manager.cc:77
ns3::SsServiceFlowManager::CreateDsaAck
Ptr< Packet > CreateDsaAck()
Create DSA ack.
Definition
ss-service-flow-manager.cc:134
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
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 Nov 3 2024 09:20:53 for ns-3 by
1.11.0