A Discrete-Event Network Simulator
API
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 
63  };
64 
69  };
70 
71 private:
72  uint8_t m_messageType;
73  uint8_t m_procedureCode;
74 
75  uint32_t m_lengthOfIes;
76  uint32_t m_numberOfIes;
77 };
78 
79 
81 {
82 public:
84  virtual ~EpcX2HandoverRequestHeader ();
85 
86  static TypeId GetTypeId (void);
87  virtual TypeId GetInstanceTypeId (void) const;
88  virtual uint32_t GetSerializedSize (void) const;
89  virtual void Serialize (Buffer::Iterator start) const;
90  virtual uint32_t Deserialize (Buffer::Iterator start);
91  virtual void Print (std::ostream &os) const;
92 
93 
94  uint16_t GetOldEnbUeX2apId () const;
95  void SetOldEnbUeX2apId (uint16_t x2apId);
96 
97  uint16_t GetCause () const;
98  void SetCause (uint16_t cause);
99 
100  uint16_t GetTargetCellId () const;
101  void SetTargetCellId (uint16_t targetCellId);
102 
103  uint32_t GetMmeUeS1apId () const;
104  void SetMmeUeS1apId (uint32_t mmeUeS1apId);
105 
106  std::vector <EpcX2Sap::ErabToBeSetupItem> GetBearers () const;
107  void SetBearers (std::vector <EpcX2Sap::ErabToBeSetupItem> bearers);
108 
109  uint64_t GetUeAggregateMaxBitRateDownlink () const;
110  void SetUeAggregateMaxBitRateDownlink (uint64_t bitRate);
111 
112  uint64_t GetUeAggregateMaxBitRateUplink () const;
113  void SetUeAggregateMaxBitRateUplink (uint64_t bitRate);
114 
115  uint32_t GetLengthOfIes () const;
116  uint32_t GetNumberOfIes () const;
117 
118 private:
119  uint32_t m_numberOfIes;
120  uint32_t m_headerLength;
121 
123  uint16_t m_cause;
124  uint16_t m_targetCellId;
125  uint32_t m_mmeUeS1apId;
128  std::vector <EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
129 };
130 
131 
133 {
134 public:
137 
138  static TypeId GetTypeId (void);
139  virtual TypeId GetInstanceTypeId (void) const;
140  virtual uint32_t GetSerializedSize (void) const;
141  virtual void Serialize (Buffer::Iterator start) const;
142  virtual uint32_t Deserialize (Buffer::Iterator start);
143  virtual void Print (std::ostream &os) const;
144 
145 
146  uint16_t GetOldEnbUeX2apId () const;
147  void SetOldEnbUeX2apId (uint16_t x2apId);
148 
149  uint16_t GetNewEnbUeX2apId () const;
150  void SetNewEnbUeX2apId (uint16_t x2apId);
151 
152  std::vector <EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers () const;
153  void SetAdmittedBearers (std::vector <EpcX2Sap::ErabAdmittedItem> bearers);
154 
155  std::vector <EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers () const;
156  void SetNotAdmittedBearers (std::vector <EpcX2Sap::ErabNotAdmittedItem> bearers);
157 
158  uint32_t GetLengthOfIes () const;
159  uint32_t GetNumberOfIes () const;
160 
161 private:
162  uint32_t m_numberOfIes;
163  uint32_t m_headerLength;
164 
167  std::vector <EpcX2Sap::ErabAdmittedItem> m_erabsAdmittedList;
168  std::vector <EpcX2Sap::ErabNotAdmittedItem> m_erabsNotAdmittedList;
169 };
170 
171 
173 {
174 public:
177 
178  static TypeId GetTypeId (void);
179  virtual TypeId GetInstanceTypeId (void) const;
180  virtual uint32_t GetSerializedSize (void) const;
181  virtual void Serialize (Buffer::Iterator start) const;
182  virtual uint32_t Deserialize (Buffer::Iterator start);
183  virtual void Print (std::ostream &os) const;
184 
185 
186  uint16_t GetOldEnbUeX2apId () const;
187  void SetOldEnbUeX2apId (uint16_t x2apId);
188 
189  uint16_t GetCause () const;
190  void SetCause (uint16_t cause);
191 
192  uint16_t GetCriticalityDiagnostics () const;
193  void SetCriticalityDiagnostics (uint16_t criticalityDiagnostics);
194 
195  uint32_t GetLengthOfIes () const;
196  uint32_t GetNumberOfIes () const;
197 
198 private:
199  uint32_t m_numberOfIes;
200  uint32_t m_headerLength;
201 
203  uint16_t m_cause;
205 };
206 
207 
209 {
210 public:
212  virtual ~EpcX2SnStatusTransferHeader ();
213 
214  static TypeId GetTypeId (void);
215  virtual TypeId GetInstanceTypeId (void) const;
216  virtual uint32_t GetSerializedSize (void) const;
217  virtual void Serialize (Buffer::Iterator start) const;
218  virtual uint32_t Deserialize (Buffer::Iterator start);
219  virtual void Print (std::ostream &os) const;
220 
221 
222  uint16_t GetOldEnbUeX2apId () const;
223  void SetOldEnbUeX2apId (uint16_t x2apId);
224 
225  uint16_t GetNewEnbUeX2apId () const;
226  void SetNewEnbUeX2apId (uint16_t x2apId);
227 
228  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> GetErabsSubjectToStatusTransferList () const;
229  void SetErabsSubjectToStatusTransferList (std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
230 
231  uint32_t GetLengthOfIes () const;
232  uint32_t GetNumberOfIes () const;
233 
234 private:
235  uint32_t m_numberOfIes;
236  uint32_t m_headerLength;
237 
240  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> m_erabsSubjectToStatusTransferList;
241 };
242 
243 
245 {
246 public:
248  virtual ~EpcX2UeContextReleaseHeader ();
249 
250  static TypeId GetTypeId (void);
251  virtual TypeId GetInstanceTypeId (void) const;
252  virtual uint32_t GetSerializedSize (void) const;
253  virtual void Serialize (Buffer::Iterator start) const;
254  virtual uint32_t Deserialize (Buffer::Iterator start);
255  virtual void Print (std::ostream &os) const;
256 
257 
258  uint16_t GetOldEnbUeX2apId () const;
259  void SetOldEnbUeX2apId (uint16_t x2apId);
260 
261  uint16_t GetNewEnbUeX2apId () const;
262  void SetNewEnbUeX2apId (uint16_t x2apId);
263 
264  uint32_t GetLengthOfIes () const;
265  uint32_t GetNumberOfIes () const;
266 
267 private:
268  uint32_t m_numberOfIes;
269  uint32_t m_headerLength;
270 
273 };
274 
275 
277 {
278 public:
280  virtual ~EpcX2LoadInformationHeader ();
281 
282  static TypeId GetTypeId (void);
283  virtual TypeId GetInstanceTypeId (void) const;
284  virtual uint32_t GetSerializedSize (void) const;
285  virtual void Serialize (Buffer::Iterator start) const;
286  virtual uint32_t Deserialize (Buffer::Iterator start);
287  virtual void Print (std::ostream &os) const;
288 
289 
290  std::vector <EpcX2Sap::CellInformationItem> GetCellInformationList () const;
291  void SetCellInformationList (std::vector <EpcX2Sap::CellInformationItem> cellInformationList);
292 
293  uint32_t GetLengthOfIes () const;
294  uint32_t GetNumberOfIes () const;
295 
296 private:
297  uint32_t m_numberOfIes;
298  uint32_t m_headerLength;
299 
300  std::vector <EpcX2Sap::CellInformationItem> m_cellInformationList;
301 };
302 
303 
305 {
306 public:
309 
310  static TypeId GetTypeId (void);
311  virtual TypeId GetInstanceTypeId (void) const;
312  virtual uint32_t GetSerializedSize (void) const;
313  virtual void Serialize (Buffer::Iterator start) const;
314  virtual uint32_t Deserialize (Buffer::Iterator start);
315  virtual void Print (std::ostream &os) const;
316 
317 
318  uint16_t GetEnb1MeasurementId () const;
319  void SetEnb1MeasurementId (uint16_t enb1MeasurementId);
320 
321  uint16_t GetEnb2MeasurementId () const;
322  void SetEnb2MeasurementId (uint16_t enb2MeasurementId);
323 
324  std::vector <EpcX2Sap::CellMeasurementResultItem> GetCellMeasurementResultList () const;
325  void SetCellMeasurementResultList (std::vector <EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
326 
327  uint32_t GetLengthOfIes () const;
328  uint32_t GetNumberOfIes () const;
329 
330 private:
331  uint32_t m_numberOfIes;
332  uint32_t m_headerLength;
333 
336  std::vector <EpcX2Sap::CellMeasurementResultItem> m_cellMeasurementResultList;
337 };
338 
339 
340 } // namespace ns3
341 
342 #endif // EPC_X2_HEADER_H
virtual uint32_t Deserialize(Buffer::Iterator start)
Protocol header serialization and deserialization.
Definition: header.h:42
void SetNumberOfIes(uint32_t numberOfIes)
virtual void Print(std::ostream &os) const
Introspection did not find any typical Config paths.
uint8_t GetMessageType() const
virtual void Serialize(Buffer::Iterator start) const
uint16_t GetOldEnbUeX2apId() const
void SetNewEnbUeX2apId(uint16_t x2apId)
virtual uint32_t GetSerializedSize(void) const
void SetOldEnbUeX2apId(uint16_t x2apId)
std::vector< EpcX2Sap::ErabNotAdmittedItem > GetNotAdmittedBearers() const
uint8_t m_procedureCode
Definition: epc-x2-header.h:73
virtual ~EpcX2Header()
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Introspection did not find any typical Config paths.
Definition: epc-x2-header.h:33
def start()
Definition: core.py:1482
std::vector< EpcX2Sap::CellInformationItem > m_cellInformationList
void SetCause(uint16_t cause)
std::vector< EpcX2Sap::CellMeasurementResultItem > GetCellMeasurementResultList() const
virtual void Serialize(Buffer::Iterator start) const
virtual void Print(std::ostream &os) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual void Serialize(Buffer::Iterator start) const
virtual void Serialize(Buffer::Iterator start) const
virtual void Serialize(Buffer::Iterator start) const
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > GetErabsSubjectToStatusTransferList() const
void SetLengthOfIes(uint32_t lengthOfIes)
virtual uint32_t GetSerializedSize(void) const
uint32_t m_numberOfIes
Definition: epc-x2-header.h:76
virtual void Serialize(Buffer::Iterator start) const
Introspection did not find any typical Config paths.
iterator in a Buffer instance
Definition: buffer.h:98
uint64_t GetUeAggregateMaxBitRateUplink() const
std::vector< EpcX2Sap::ErabToBeSetupItem > GetBearers() const
std::vector< EpcX2Sap::CellMeasurementResultItem > m_cellMeasurementResultList
virtual void Serialize(Buffer::Iterator start) const
Introspection did not find any typical Config paths.
Definition: epc-x2-header.h:80
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual uint32_t GetSerializedSize(void) const
void SetTargetCellId(uint16_t targetCellId)
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
static TypeId GetTypeId(void)
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
void SetOldEnbUeX2apId(uint16_t x2apId)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetEnb1MeasurementId(uint16_t enb1MeasurementId)
Introspection did not find any typical Config paths.
Introspection did not find any typical Config paths.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
uint8_t GetProcedureCode() const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint32_t m_lengthOfIes
Definition: epc-x2-header.h:75
virtual void Print(std::ostream &os) const
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual uint32_t Deserialize(Buffer::Iterator start)
void SetNotAdmittedBearers(std::vector< EpcX2Sap::ErabNotAdmittedItem > bearers)
void SetProcedureCode(uint8_t procedureCode)
uint8_t m_messageType
Definition: epc-x2-header.h:72
void SetNewEnbUeX2apId(uint16_t x2apId)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
std::vector< EpcX2Sap::CellInformationItem > GetCellInformationList() const
virtual void Print(std::ostream &os) const
virtual void Serialize(Buffer::Iterator start) const
void SetErabsSubjectToStatusTransferList(std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > erabs)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual uint32_t GetSerializedSize(void) const
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
virtual uint32_t Deserialize(Buffer::Iterator start)
Introspection did not find any typical Config paths.
void SetNewEnbUeX2apId(uint16_t x2apId)
std::vector< EpcX2Sap::ErabAdmittedItem > m_erabsAdmittedList
virtual void Print(std::ostream &os) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetEnb2MeasurementId(uint16_t enb2MeasurementId)
void SetCellInformationList(std::vector< EpcX2Sap::CellInformationItem > cellInformationList)
void SetAdmittedBearers(std::vector< EpcX2Sap::ErabAdmittedItem > bearers)
void SetBearers(std::vector< EpcX2Sap::ErabToBeSetupItem > bearers)
std::vector< EpcX2Sap::ErabAdmittedItem > GetAdmittedBearers() const
uint64_t GetUeAggregateMaxBitRateDownlink() const
void SetOldEnbUeX2apId(uint16_t x2apId)
virtual uint32_t Deserialize(Buffer::Iterator start)
Introspection did not find any typical Config paths.
void SetOldEnbUeX2apId(uint16_t x2apId)
std::vector< EpcX2Sap::ErabToBeSetupItem > m_erabsToBeSetupList
virtual uint32_t GetSerializedSize(void) const
a unique identifier for an interface.
Definition: type-id.h:58
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
virtual uint32_t GetSerializedSize(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > m_erabsSubjectToStatusTransferList
void SetCellMeasurementResultList(std::vector< EpcX2Sap::CellMeasurementResultItem > cellMeasurementResultList)
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
void SetMessageType(uint8_t messageType)
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual void Print(std::ostream &os) const
void SetMmeUeS1apId(uint32_t mmeUeS1apId)