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
epc-x2-header.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2012 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 EPC_X2_HEADER_H
22
#define EPC_X2_HEADER_H
23
24
#include "ns3/epc-x2-sap.h"
25
#include "ns3/header.h"
26
27
#include <vector>
28
29
30
namespace
ns3 {
31
32
33
class
EpcX2Header
:
public
Header
34
{
35
public
:
36
EpcX2Header
();
37
virtual
~EpcX2Header
();
38
39
static
TypeId
GetTypeId
(
void
);
40
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
41
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
42
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
43
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
44
virtual
void
Print
(std::ostream &os)
const
;
45
46
47
uint8_t
GetMessageType
()
const
;
48
void
SetMessageType
(uint8_t messageType);
49
50
uint8_t
GetProcedureCode
()
const
;
51
void
SetProcedureCode
(uint8_t procedureCode);
52
53
void
SetLengthOfIes
(uint32_t lengthOfIes);
54
void
SetNumberOfIes
(uint32_t numberOfIes);
55
56
57
enum
ProcedureCode_t
{
58
HandoverPreparation
= 0,
59
LoadIndication
= 2,
60
SnStatusTransfer
= 4,
61
UeContextRelease
= 5,
62
ResourceStatusReporting
= 10
63
};
64
65
enum
TypeOfMessage_t
{
66
InitiatingMessage
= 0,
67
SuccessfulOutcome
= 1,
68
UnsuccessfulOutcome
= 2
69
};
70
71
private
:
72
uint32_t
m_headerLength
;
73
74
uint8_t
m_messageType
;
75
uint8_t
m_procedureCode
;
76
77
uint32_t
m_lengthOfIes
;
78
uint32_t
m_numberOfIes
;
79
};
80
81
82
class
EpcX2HandoverRequestHeader
:
public
Header
83
{
84
public
:
85
EpcX2HandoverRequestHeader
();
86
virtual
~EpcX2HandoverRequestHeader
();
87
88
static
TypeId
GetTypeId
(
void
);
89
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
90
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
91
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
92
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
93
virtual
void
Print
(std::ostream &os)
const
;
94
95
96
uint16_t
GetOldEnbUeX2apId
()
const
;
97
void
SetOldEnbUeX2apId
(uint16_t x2apId);
98
99
uint16_t
GetCause
()
const
;
100
void
SetCause
(uint16_t cause);
101
102
uint16_t
GetTargetCellId
()
const
;
103
void
SetTargetCellId
(uint16_t targetCellId);
104
105
uint32_t
GetMmeUeS1apId
()
const
;
106
void
SetMmeUeS1apId
(uint32_t mmeUeS1apId);
107
108
std::vector <EpcX2Sap::ErabToBeSetupItem>
GetBearers
()
const
;
109
void
SetBearers
(std::vector <EpcX2Sap::ErabToBeSetupItem> bearers);
110
111
uint64_t
GetUeAggregateMaxBitRateDownlink
()
const
;
112
void
SetUeAggregateMaxBitRateDownlink
(uint64_t bitRate);
113
114
uint64_t
GetUeAggregateMaxBitRateUplink
()
const
;
115
void
SetUeAggregateMaxBitRateUplink
(uint64_t bitRate);
116
117
uint32_t
GetLengthOfIes
()
const
;
118
uint32_t
GetNumberOfIes
()
const
;
119
120
private
:
121
uint32_t
m_numberOfIes
;
122
uint32_t
m_headerLength
;
123
124
uint16_t
m_oldEnbUeX2apId
;
125
uint16_t
m_cause
;
126
uint16_t
m_targetCellId
;
127
uint32_t
m_mmeUeS1apId
;
128
uint64_t
m_ueAggregateMaxBitRateDownlink
;
129
uint64_t
m_ueAggregateMaxBitRateUplink
;
130
std::vector <EpcX2Sap::ErabToBeSetupItem>
m_erabsToBeSetupList
;
131
};
132
133
134
class
EpcX2HandoverRequestAckHeader
:
public
Header
135
{
136
public
:
137
EpcX2HandoverRequestAckHeader
();
138
virtual
~EpcX2HandoverRequestAckHeader
();
139
140
static
TypeId
GetTypeId
(
void
);
141
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
142
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
143
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
144
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
145
virtual
void
Print
(std::ostream &os)
const
;
146
147
148
uint16_t
GetOldEnbUeX2apId
()
const
;
149
void
SetOldEnbUeX2apId
(uint16_t x2apId);
150
151
uint16_t
GetNewEnbUeX2apId
()
const
;
152
void
SetNewEnbUeX2apId
(uint16_t x2apId);
153
154
std::vector <EpcX2Sap::ErabAdmittedItem>
GetAdmittedBearers
()
const
;
155
void
SetAdmittedBearers
(std::vector <EpcX2Sap::ErabAdmittedItem> bearers);
156
157
std::vector <EpcX2Sap::ErabNotAdmittedItem>
GetNotAdmittedBearers
()
const
;
158
void
SetNotAdmittedBearers
(std::vector <EpcX2Sap::ErabNotAdmittedItem> bearers);
159
160
uint32_t
GetLengthOfIes
()
const
;
161
uint32_t
GetNumberOfIes
()
const
;
162
163
private
:
164
uint32_t
m_numberOfIes
;
165
uint32_t
m_headerLength
;
166
167
uint16_t
m_oldEnbUeX2apId
;
168
uint16_t
m_newEnbUeX2apId
;
169
std::vector <EpcX2Sap::ErabAdmittedItem>
m_erabsAdmittedList
;
170
std::vector <EpcX2Sap::ErabNotAdmittedItem>
m_erabsNotAdmittedList
;
171
};
172
173
174
class
EpcX2HandoverPreparationFailureHeader
:
public
Header
175
{
176
public
:
177
EpcX2HandoverPreparationFailureHeader
();
178
virtual
~EpcX2HandoverPreparationFailureHeader
();
179
180
static
TypeId
GetTypeId
(
void
);
181
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
182
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
183
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
184
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
185
virtual
void
Print
(std::ostream &os)
const
;
186
187
188
uint16_t
GetOldEnbUeX2apId
()
const
;
189
void
SetOldEnbUeX2apId
(uint16_t x2apId);
190
191
uint16_t
GetCause
()
const
;
192
void
SetCause
(uint16_t cause);
193
194
uint16_t
GetCriticalityDiagnostics
()
const
;
195
void
SetCriticalityDiagnostics
(uint16_t criticalityDiagnostics);
196
197
uint32_t
GetLengthOfIes
()
const
;
198
uint32_t
GetNumberOfIes
()
const
;
199
200
private
:
201
uint32_t
m_numberOfIes
;
202
uint32_t
m_headerLength
;
203
204
uint16_t
m_oldEnbUeX2apId
;
205
uint16_t
m_cause
;
206
uint16_t
m_criticalityDiagnostics
;
207
};
208
209
210
class
EpcX2SnStatusTransferHeader
:
public
Header
211
{
212
public
:
213
EpcX2SnStatusTransferHeader
();
214
virtual
~EpcX2SnStatusTransferHeader
();
215
216
static
TypeId
GetTypeId
(
void
);
217
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
218
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
219
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
220
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
221
virtual
void
Print
(std::ostream &os)
const
;
222
223
224
uint16_t
GetOldEnbUeX2apId
()
const
;
225
void
SetOldEnbUeX2apId
(uint16_t x2apId);
226
227
uint16_t
GetNewEnbUeX2apId
()
const
;
228
void
SetNewEnbUeX2apId
(uint16_t x2apId);
229
230
std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem>
GetErabsSubjectToStatusTransferList
()
const
;
231
void
SetErabsSubjectToStatusTransferList
(std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
232
233
uint32_t
GetLengthOfIes
()
const
;
234
uint32_t
GetNumberOfIes
()
const
;
235
236
private
:
237
uint32_t
m_numberOfIes
;
238
uint32_t
m_headerLength
;
239
240
uint16_t
m_oldEnbUeX2apId
;
241
uint16_t
m_newEnbUeX2apId
;
242
std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem>
m_erabsSubjectToStatusTransferList
;
243
};
244
245
246
class
EpcX2UeContextReleaseHeader
:
public
Header
247
{
248
public
:
249
EpcX2UeContextReleaseHeader
();
250
virtual
~EpcX2UeContextReleaseHeader
();
251
252
static
TypeId
GetTypeId
(
void
);
253
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
254
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
255
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
256
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
257
virtual
void
Print
(std::ostream &os)
const
;
258
259
260
uint16_t
GetOldEnbUeX2apId
()
const
;
261
void
SetOldEnbUeX2apId
(uint16_t x2apId);
262
263
uint16_t
GetNewEnbUeX2apId
()
const
;
264
void
SetNewEnbUeX2apId
(uint16_t x2apId);
265
266
uint32_t
GetLengthOfIes
()
const
;
267
uint32_t
GetNumberOfIes
()
const
;
268
269
private
:
270
uint32_t
m_numberOfIes
;
271
uint32_t
m_headerLength
;
272
273
uint16_t
m_oldEnbUeX2apId
;
274
uint16_t
m_newEnbUeX2apId
;
275
};
276
277
278
class
EpcX2LoadInformationHeader
:
public
Header
279
{
280
public
:
281
EpcX2LoadInformationHeader
();
282
virtual
~EpcX2LoadInformationHeader
();
283
284
static
TypeId
GetTypeId
(
void
);
285
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
286
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
287
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
288
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
289
virtual
void
Print
(std::ostream &os)
const
;
290
291
292
std::vector <EpcX2Sap::CellInformationItem>
GetCellInformationList
()
const
;
293
void
SetCellInformationList
(std::vector <EpcX2Sap::CellInformationItem> cellInformationList);
294
295
uint32_t
GetLengthOfIes
()
const
;
296
uint32_t
GetNumberOfIes
()
const
;
297
298
private
:
299
uint32_t
m_numberOfIes
;
300
uint32_t
m_headerLength
;
301
302
std::vector <EpcX2Sap::CellInformationItem>
m_cellInformationList
;
303
};
304
305
306
class
EpcX2ResourceStatusUpdateHeader
:
public
Header
307
{
308
public
:
309
EpcX2ResourceStatusUpdateHeader
();
310
virtual
~EpcX2ResourceStatusUpdateHeader
();
311
312
static
TypeId
GetTypeId
(
void
);
313
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
314
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
315
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
316
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
317
virtual
void
Print
(std::ostream &os)
const
;
318
319
320
uint16_t
GetEnb1MeasurementId
()
const
;
321
void
SetEnb1MeasurementId
(uint16_t enb1MeasurementId);
322
323
uint16_t
GetEnb2MeasurementId
()
const
;
324
void
SetEnb2MeasurementId
(uint16_t enb2MeasurementId);
325
326
std::vector <EpcX2Sap::CellMeasurementResultItem>
GetCellMeasurementResultList
()
const
;
327
void
SetCellMeasurementResultList
(std::vector <EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
328
329
uint32_t
GetLengthOfIes
()
const
;
330
uint32_t
GetNumberOfIes
()
const
;
331
332
private
:
333
uint32_t
m_numberOfIes
;
334
uint32_t
m_headerLength
;
335
336
uint16_t
m_enb1MeasurementId
;
337
uint16_t
m_enb2MeasurementId
;
338
std::vector <EpcX2Sap::CellMeasurementResultItem>
m_cellMeasurementResultList
;
339
};
340
341
342
}
// namespace ns3
343
344
#endif // EPC_X2_HEADER_H
src
lte
model
epc-x2-header.h
Generated on Tue May 14 2013 11:08:24 for ns-3 by
1.8.1.2