A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
bs-uplink-scheduler-rtps.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2007,2008 INRIA
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Giuseppe Piro <g.piro@poliba.it>
19
*/
20
21
#ifndef UPLINK_SCHEDULER_RTPS_H
22
#define UPLINK_SCHEDULER_RTPS_H
23
24
#include <stdint.h>
25
#include "
ul-mac-messages.h
"
26
#include "ns3/nstime.h"
27
#include "
wimax-phy.h
"
28
#include "
bs-uplink-scheduler.h
"
29
30
namespace
ns3 {
31
32
class
BaseStationNetDevice;
33
class
SSRecord;
34
class
ServiceFlow;
35
53
class
UplinkSchedulerRtps
:
public
UplinkScheduler
54
{
55
public
:
56
UplinkSchedulerRtps
();
57
UplinkSchedulerRtps
(
Ptr<BaseStationNetDevice>
bs);
58
~UplinkSchedulerRtps
(
void
);
59
60
static
TypeId
GetTypeId
(
void
);
61
62
std::list<OfdmUlMapIe>
GetUplinkAllocations
(
void
)
const
;
63
68
void
GetChannelDescriptorsToUpdate
(
bool
&,
bool
&,
bool
&,
bool
&);
69
uint32_t
CalculateAllocationStartTime
(
void
);
70
void
AddUplinkAllocation
(
OfdmUlMapIe
&ulMapIe,
71
const
uint32_t &allocationSize,
72
uint32_t &symbolsToAllocation,
73
uint32_t &availableSymbols);
77
void
Schedule
(
void
);
78
void
ServiceUnsolicitedGrants
(
const
SSRecord
*ssRecord,
79
enum
ServiceFlow::SchedulingType
schedulingType,
80
OfdmUlMapIe
&ulMapIe,
81
const
WimaxPhy::ModulationType
modulationType,
82
uint32_t &symbolsToAllocation,
83
uint32_t &availableSymbols);
84
void
ServiceBandwidthRequests
(
const
SSRecord
*ssRecord,
85
enum
ServiceFlow::SchedulingType
schedulingType,
86
OfdmUlMapIe
&ulMapIe,
87
const
WimaxPhy::ModulationType
modulationType,
88
uint32_t &symbolsToAllocation,
89
uint32_t &availableSymbols);
90
bool
ServiceBandwidthRequests
(
ServiceFlow
*serviceFlow,
91
enum
ServiceFlow::SchedulingType
schedulingType,
92
OfdmUlMapIe
&ulMapIe,
93
const
WimaxPhy::ModulationType
modulationType,
94
uint32_t &symbolsToAllocation,
95
uint32_t &availableSymbols);
113
void
ULSchedulerRTPSConnection
(uint32_t &symbolsToAllocation, uint32_t &availableSymbols);
114
void
AllocateInitialRangingInterval
(uint32_t &symbolsToAllocation, uint32_t &availableSymbols);
115
void
SetupServiceFlow
(
SSRecord
*ssRecord,
ServiceFlow
*serviceFlow);
116
117
void
ProcessBandwidthRequest
(
const
BandwidthRequestHeader
&bwRequestHdr);
118
119
void
InitOnce
(
void
);
120
121
void
OnSetRequestedBandwidth
(
ServiceFlowRecord
*sfr);
122
123
private
:
124
std::list<OfdmUlMapIe>
m_uplinkAllocations
;
125
126
};
127
128
}
// namespace ns3
129
130
#endif
/* UPLINK_SCHEDULER_RTPS_H */
src
wimax
model
bs-uplink-scheduler-rtps.h
Generated on Tue Nov 13 2012 10:32:25 for ns-3 by
1.8.1.2