A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
epc-x2-header.h
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 
83 {
84 public:
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 
135 {
136 public:
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 
175 {
176 public:
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 
211 {
212 public:
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 
247 {
248 public:
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 
279 {
280 public:
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 
307 {
308 public:
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
virtual uint32_t Deserialize(Buffer::Iterator start)
Protocol header serialization and deserialization.
Definition: header.h:42
virtual void Print(std::ostream &os) const
virtual void Serialize(Buffer::Iterator start) const
virtual uint32_t GetSerializedSize(void) const
virtual TypeId GetInstanceTypeId(void) 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
virtual uint32_t GetSerializedSize(void) const
virtual void Serialize(Buffer::Iterator start) const
iterator in a Buffer instance
Definition: buffer.h:98
virtual void Serialize(Buffer::Iterator start) const
virtual TypeId GetInstanceTypeId(void) const
virtual uint32_t GetSerializedSize(void) const
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
virtual TypeId GetInstanceTypeId(void) const
virtual TypeId GetInstanceTypeId(void) const
virtual TypeId GetInstanceTypeId(void) const
virtual void Print(std::ostream &os) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual TypeId GetInstanceTypeId(void) const
virtual void Print(std::ostream &os) const
virtual void Serialize(Buffer::Iterator start) const
virtual TypeId GetInstanceTypeId(void) const
virtual uint32_t GetSerializedSize(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual void Print(std::ostream &os) const
virtual TypeId GetInstanceTypeId(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual uint32_t GetSerializedSize(void) const
a unique identifier for an interface.
Definition: type-id.h:44
virtual uint32_t GetSerializedSize(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual void Print(std::ostream &os) const