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
ff-mac-csched-sap.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Manuel Requena <manuel.requena@cttc.es>
19
*/
20
21
#ifndef FF_MAC_CSCHED_SAP_H
22
#define FF_MAC_CSCHED_SAP_H
23
24
#include <stdint.h>
25
#include <vector>
26
27
#include "
ff-mac-common.h
"
28
29
namespace
ns3 {
30
49
class
FfMacCschedSapProvider
50
{
51
public
:
52
virtual
~FfMacCschedSapProvider
();
53
62
struct
CschedCellConfigReqParameters
63
{
64
uint8_t
m_puschHoppingOffset
;
65
66
enum
HoppingMode_e
67
{
68
inter
,
69
interintra
70
}
m_hoppingMode
;
71
72
uint8_t
m_nSb
;
73
74
enum
PhichResource_e
75
{
76
PHICH_R_ONE_SIXTH
,
77
PHICH_R_HALF
,
78
PHICH_R_ONE
,
79
PHICH_R_TWO
80
}
m_phichResource
;
81
82
83
enum
NormalExtended_e
m_phichDuration
;
84
85
uint8_t
m_initialNrOfPdcchOfdmSymbols
;
86
87
struct
SiConfiguration_s
m_siConfiguration
;
88
89
uint8_t
m_ulBandwidth
;
90
uint8_t
m_dlBandwidth
;
91
92
enum
NormalExtended_e
m_ulCyclicPrefixLength
;
93
enum
NormalExtended_e
m_dlCyclicPrefixLength
;
94
95
uint8_t
m_antennaPortsCount
;
96
97
enum
DuplexMode_e
98
{
99
DM_TDD
,
100
DM_FDD
101
}
m_duplexMode
;
102
103
uint8_t
m_subframeAssignment
;
104
uint8_t
m_specialSubframePatterns
;
105
std::vector <uint8_t>
m_mbsfnSubframeConfigRfPeriod
;
106
std::vector <uint8_t>
m_mbsfnSubframeConfigRfOffset
;
107
std::vector <uint8_t>
m_mbsfnSubframeConfigSfAllocation
;
108
uint8_t
m_prachConfigurationIndex
;
109
uint8_t
m_prachFreqOffset
;
110
uint8_t
m_raResponseWindowSize
;
111
uint8_t
m_macContentionResolutionTimer
;
112
uint8_t
m_maxHarqMsg3Tx
;
113
uint16_t
m_n1PucchAn
;
114
uint8_t
m_deltaPucchShift
;
115
uint8_t
m_nrbCqi
;
116
uint8_t
m_ncsAn
;
117
uint8_t
m_srsSubframeConfiguration
;
118
uint8_t
m_srsSubframeOffset
;
119
uint8_t
m_srsBandwidthConfiguration
;
120
bool
m_srsMaxUpPts
;
121
122
enum
Enable64Qam_e
123
{
124
MOD_16QAM
,
125
MOD_64QAM
126
}
m_enable64Qam
;
127
128
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
129
};
130
135
struct
CschedUeConfigReqParameters
136
{
137
uint16_t
m_rnti
;
138
bool
m_reconfigureFlag
;
139
bool
m_drxConfigPresent
;
140
struct
DrxConfig_s
m_drxConfig
;
141
uint16_t
m_timeAlignmentTimer
;
142
143
enum
MeasGapConfigPattern_e
144
{
145
MGP_GP1
,
146
MGP_GP2
,
147
OFF
148
}
m_measGapConfigPattern
;
149
150
uint8_t
m_measGapConfigSubframeOffset
;
151
bool
m_spsConfigPresent
;
152
struct
SpsConfig_s
m_spsConfig
;
153
bool
m_srConfigPresent
;
154
struct
SrConfig_s
m_srConfig
;
155
bool
m_cqiConfigPresent
;
156
struct
CqiConfig_s
m_cqiConfig
;
157
uint8_t
m_transmissionMode
;
158
uint64_t
m_ueAggregatedMaximumBitrateUl
;
159
uint64_t
m_ueAggregatedMaximumBitrateDl
;
160
struct
UeCapabilities_s
m_ueCapabilities
;
161
162
enum
OpenClosedLoop_e
163
{
164
noneloop
,
165
openloop
,
166
closedloop
167
}
m_ueTransmitAntennaSelection
;
168
169
bool
m_ttiBundling
;
170
uint8_t
m_maxHarqTx
;
171
uint8_t
m_betaOffsetAckIndex
;
172
uint8_t
m_betaOffsetRiIndex
;
173
uint8_t
m_betaOffsetCqiIndex
;
174
bool
m_ackNackSrsSimultaneousTransmission
;
175
bool
m_simultaneousAckNackAndCqi
;
176
177
enum
RepMode_e
178
{
179
rm12
,
rm20
,
rm22
,
rm30
,
rm31
,
nonemode
180
}
m_aperiodicCqiRepMode
;
181
182
enum
FeedbackMode_e
183
{
184
bundling
,
185
multiplexing
186
}
m_tddAckNackFeedbackMode
;
187
188
uint8_t
m_ackNackRepetitionFactor
;
189
190
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
191
};
192
197
struct
CschedLcConfigReqParameters
198
{
199
uint16_t
m_rnti
;
200
bool
m_reconfigureFlag
;
201
202
std::vector <struct LogicalChannelConfigListElement_s>
m_logicalChannelConfigList
;
203
204
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
205
};
206
211
struct
CschedLcReleaseReqParameters
212
{
213
uint16_t
m_rnti
;
214
215
std::vector <uint8_t>
m_logicalChannelIdentity
;
216
217
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
218
};
219
224
struct
CschedUeReleaseReqParameters
225
{
226
uint16_t
m_rnti
;
227
228
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
229
};
230
231
//
232
// CSCHED - MAC Scheduler Control SAP primitives
233
// (See 4.1 for description of the primitives)
234
//
235
239
virtual
void
CschedCellConfigReq
(
const
struct
CschedCellConfigReqParameters
& params) = 0;
240
241
virtual
void
CschedUeConfigReq
(
const
struct
CschedUeConfigReqParameters
& params) = 0;
242
243
virtual
void
CschedLcConfigReq
(
const
struct
CschedLcConfigReqParameters
& params) = 0;
244
245
virtual
void
CschedLcReleaseReq
(
const
struct
CschedLcReleaseReqParameters
& params) = 0;
246
247
virtual
void
CschedUeReleaseReq
(
const
struct
CschedUeReleaseReqParameters
& params) = 0;
248
249
private
:
250
};
251
252
253
class
FfMacCschedSapUser
254
{
255
public
:
256
virtual
~FfMacCschedSapUser
();
257
266
struct
CschedCellConfigCnfParameters
267
{
268
enum
Result_e
m_result
;
269
270
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
271
};
272
277
struct
CschedUeConfigCnfParameters
278
{
279
uint16_t
m_rnti
;
280
enum
Result_e
m_result
;
281
282
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
283
};
284
289
struct
CschedLcConfigCnfParameters
290
{
291
uint16_t
m_rnti
;
292
enum
Result_e
m_result
;
293
294
std::vector <uint8_t>
m_logicalChannelIdentity
;
295
296
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
297
};
298
303
struct
CschedLcReleaseCnfParameters
304
{
305
uint16_t
m_rnti
;
306
enum
Result_e
m_result
;
307
308
std::vector <uint8_t>
m_logicalChannelIdentity
;
309
310
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
311
};
312
317
struct
CschedUeReleaseCnfParameters
318
{
319
uint16_t
m_rnti
;
320
enum
Result_e
m_result
;
321
322
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
323
};
324
329
struct
CschedUeConfigUpdateIndParameters
330
{
331
uint16_t
m_rnti
;
332
uint8_t
m_transmissionMode
;
333
bool
m_spsConfigPresent
;
334
struct
SpsConfig_s
m_spsConfig
;
335
bool
m_srConfigPresent
;
336
struct
SrConfig_s
m_srConfig
;
337
bool
m_cqiConfigPresent
;
338
struct
CqiConfig_s
m_cqiConfig
;
339
340
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
341
};
342
347
struct
CschedCellConfigUpdateIndParameters
348
{
349
uint8_t
m_prbUtilizationDl
;
350
uint8_t
m_prbUtilizationUl
;
351
352
std::vector <struct VendorSpecificListElement_s>
m_vendorSpecificList
;
353
};
354
355
//
356
// CSCHED - MAC Scheduler Control SAP primitives
357
// (See 4.1 for description of the primitives)
358
//
359
360
virtual
void
CschedCellConfigCnf
(
const
struct
CschedCellConfigCnfParameters
& params) = 0;
361
362
virtual
void
CschedUeConfigCnf
(
const
struct
CschedUeConfigCnfParameters
& params) = 0;
363
364
virtual
void
CschedLcConfigCnf
(
const
struct
CschedLcConfigCnfParameters
& params) = 0;
365
366
virtual
void
CschedLcReleaseCnf
(
const
struct
CschedLcReleaseCnfParameters
& params) = 0;
367
368
virtual
void
CschedUeReleaseCnf
(
const
struct
CschedUeReleaseCnfParameters
& params) = 0;
369
370
virtual
void
CschedUeConfigUpdateInd
(
const
struct
CschedUeConfigUpdateIndParameters
& params) = 0;
371
372
virtual
void
CschedCellConfigUpdateInd
(
const
struct
CschedCellConfigUpdateIndParameters
& params) = 0;
373
374
private
:
375
};
376
377
}
// end namespace ns3
378
379
#endif
/* FF_MAC_CSCHED_SAP_H */
src
lte
model
ff-mac-csched-sap.h
Generated on Tue Nov 13 2012 10:32:16 for ns-3 by
1.8.1.2