A Discrete-Event Network Simulator
API
 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 
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
Doxygen 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
Doxygen introspection did not find any typical Config paths.
Definition: epc-x2-header.h:33
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
Doxygen 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
Doxygen introspection did not find any typical Config paths.
Definition: epc-x2-header.h:80
virtual TypeId GetInstanceTypeId(void) const
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
void SetEnb1MeasurementId(uint16_t enb1MeasurementId)
Doxygen introspection did not find any typical Config paths.
Doxygen introspection did not find any typical Config paths.
virtual TypeId GetInstanceTypeId(void) const
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
uint8_t GetProcedureCode() const
virtual TypeId GetInstanceTypeId(void) const
uint32_t m_lengthOfIes
Definition: epc-x2-header.h:75
virtual void Print(std::ostream &os) const
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
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
virtual uint32_t GetSerializedSize(void) const
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
virtual uint32_t Deserialize(Buffer::Iterator start)
Doxygen 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
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)
Doxygen 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:49
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)