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 
43  static TypeId GetTypeId (void);
44  virtual TypeId GetInstanceTypeId (void) const;
45  virtual uint32_t GetSerializedSize (void) const;
46  virtual void Serialize (Buffer::Iterator start) const;
47  virtual uint32_t Deserialize (Buffer::Iterator start);
48  virtual void Print (std::ostream &os) const;
49 
50 
55  uint8_t GetMessageType () const;
60  void SetMessageType (uint8_t messageType);
61 
66  uint8_t GetProcedureCode () const;
71  void SetProcedureCode (uint8_t procedureCode);
72 
77  void SetLengthOfIes (uint32_t lengthOfIes);
82  void SetNumberOfIes (uint32_t numberOfIes);
83 
84 
92  };
93 
99  };
100 
101 private:
102  uint8_t m_messageType;
103  uint8_t m_procedureCode;
104 
105  uint32_t m_lengthOfIes;
106  uint32_t m_numberOfIes;
107 };
108 
109 
114 {
115 public:
117  virtual ~EpcX2HandoverRequestHeader ();
118 
123  static TypeId GetTypeId (void);
124  virtual TypeId GetInstanceTypeId (void) const;
125  virtual uint32_t GetSerializedSize (void) const;
126  virtual void Serialize (Buffer::Iterator start) const;
127  virtual uint32_t Deserialize (Buffer::Iterator start);
128  virtual void Print (std::ostream &os) const;
129 
130 
135  uint16_t GetOldEnbUeX2apId () const;
140  void SetOldEnbUeX2apId (uint16_t x2apId);
141 
146  uint16_t GetCause () const;
151  void SetCause (uint16_t cause);
152 
157  uint16_t GetTargetCellId () const;
162  void SetTargetCellId (uint16_t targetCellId);
163 
168  uint32_t GetMmeUeS1apId () const;
173  void SetMmeUeS1apId (uint32_t mmeUeS1apId);
174 
179  std::vector <EpcX2Sap::ErabToBeSetupItem> GetBearers () const;
184  void SetBearers (std::vector <EpcX2Sap::ErabToBeSetupItem> bearers);
185 
190  uint64_t GetUeAggregateMaxBitRateDownlink () const;
195  void SetUeAggregateMaxBitRateDownlink (uint64_t bitRate);
196 
201  uint64_t GetUeAggregateMaxBitRateUplink () const;
206  void SetUeAggregateMaxBitRateUplink (uint64_t bitRate);
207 
212  uint32_t GetLengthOfIes () const;
217  uint32_t GetNumberOfIes () const;
218 
219 private:
220  uint32_t m_numberOfIes;
221  uint32_t m_headerLength;
222 
223  uint16_t m_oldEnbUeX2apId;
224  uint16_t m_cause;
225  uint16_t m_targetCellId;
226  uint32_t m_mmeUeS1apId;
229  std::vector <EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
230 };
231 
236 {
237 public:
240 
245  static TypeId GetTypeId (void);
246  virtual TypeId GetInstanceTypeId (void) const;
247  virtual uint32_t GetSerializedSize (void) const;
248  virtual void Serialize (Buffer::Iterator start) const;
249  virtual uint32_t Deserialize (Buffer::Iterator start);
250  virtual void Print (std::ostream &os) const;
251 
252 
257  uint16_t GetOldEnbUeX2apId () const;
262  void SetOldEnbUeX2apId (uint16_t x2apId);
263 
268  uint16_t GetNewEnbUeX2apId () const;
273  void SetNewEnbUeX2apId (uint16_t x2apId);
274 
279  std::vector <EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers () const;
284  void SetAdmittedBearers (std::vector <EpcX2Sap::ErabAdmittedItem> bearers);
285 
290  std::vector <EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers () const;
295  void SetNotAdmittedBearers (std::vector <EpcX2Sap::ErabNotAdmittedItem> bearers);
296 
301  uint32_t GetLengthOfIes () const;
306  uint32_t GetNumberOfIes () const;
307 
308 private:
309  uint32_t m_numberOfIes;
310  uint32_t m_headerLength;
311 
312  uint16_t m_oldEnbUeX2apId;
313  uint16_t m_newEnbUeX2apId;
314  std::vector <EpcX2Sap::ErabAdmittedItem> m_erabsAdmittedList;
315  std::vector <EpcX2Sap::ErabNotAdmittedItem> m_erabsNotAdmittedList;
316 };
317 
318 
323 {
324 public:
327 
332  static TypeId GetTypeId (void);
333  virtual TypeId GetInstanceTypeId (void) const;
334  virtual uint32_t GetSerializedSize (void) const;
335  virtual void Serialize (Buffer::Iterator start) const;
336  virtual uint32_t Deserialize (Buffer::Iterator start);
337  virtual void Print (std::ostream &os) const;
338 
339 
344  uint16_t GetOldEnbUeX2apId () const;
349  void SetOldEnbUeX2apId (uint16_t x2apId);
350 
355  uint16_t GetCause () const;
360  void SetCause (uint16_t cause);
361 
366  uint16_t GetCriticalityDiagnostics () const;
371  void SetCriticalityDiagnostics (uint16_t criticalityDiagnostics);
372 
377  uint32_t GetLengthOfIes () const;
382  uint32_t GetNumberOfIes () const;
383 
384 private:
385  uint32_t m_numberOfIes;
386  uint32_t m_headerLength;
387 
388  uint16_t m_oldEnbUeX2apId;
389  uint16_t m_cause;
391 };
392 
393 
398 {
399 public:
401  virtual ~EpcX2SnStatusTransferHeader ();
402 
407  static TypeId GetTypeId (void);
408  virtual TypeId GetInstanceTypeId (void) const;
409  virtual uint32_t GetSerializedSize (void) const;
410  virtual void Serialize (Buffer::Iterator start) const;
411  virtual uint32_t Deserialize (Buffer::Iterator start);
412  virtual void Print (std::ostream &os) const;
413 
414 
419  uint16_t GetOldEnbUeX2apId () const;
424  void SetOldEnbUeX2apId (uint16_t x2apId);
425 
430  uint16_t GetNewEnbUeX2apId () const;
435  void SetNewEnbUeX2apId (uint16_t x2apId);
436 
441  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> GetErabsSubjectToStatusTransferList () const;
446  void SetErabsSubjectToStatusTransferList (std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
447 
452  uint32_t GetLengthOfIes () const;
457  uint32_t GetNumberOfIes () const;
458 
459 private:
460  uint32_t m_numberOfIes;
461  uint32_t m_headerLength;
462 
463  uint16_t m_oldEnbUeX2apId;
464  uint16_t m_newEnbUeX2apId;
465  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> m_erabsSubjectToStatusTransferList;
466 };
467 
472 {
473 public:
475  virtual ~EpcX2UeContextReleaseHeader ();
476 
481  static TypeId GetTypeId (void);
482  virtual TypeId GetInstanceTypeId (void) const;
483  virtual uint32_t GetSerializedSize (void) const;
484  virtual void Serialize (Buffer::Iterator start) const;
485  virtual uint32_t Deserialize (Buffer::Iterator start);
486  virtual void Print (std::ostream &os) const;
487 
488 
493  uint16_t GetOldEnbUeX2apId () const;
498  void SetOldEnbUeX2apId (uint16_t x2apId);
499 
504  uint16_t GetNewEnbUeX2apId () const;
509  void SetNewEnbUeX2apId (uint16_t x2apId);
510 
515  uint32_t GetLengthOfIes () const;
520  uint32_t GetNumberOfIes () const;
521 
522 private:
523  uint32_t m_numberOfIes;
524  uint32_t m_headerLength;
525 
526  uint16_t m_oldEnbUeX2apId;
527  uint16_t m_newEnbUeX2apId;
528 };
529 
530 
535 {
536 public:
538  virtual ~EpcX2LoadInformationHeader ();
539 
544  static TypeId GetTypeId (void);
545  virtual TypeId GetInstanceTypeId (void) const;
546  virtual uint32_t GetSerializedSize (void) const;
547  virtual void Serialize (Buffer::Iterator start) const;
548  virtual uint32_t Deserialize (Buffer::Iterator start);
549  virtual void Print (std::ostream &os) const;
550 
551 
556  std::vector <EpcX2Sap::CellInformationItem> GetCellInformationList () const;
561  void SetCellInformationList (std::vector <EpcX2Sap::CellInformationItem> cellInformationList);
562 
567  uint32_t GetLengthOfIes () const;
572  uint32_t GetNumberOfIes () const;
573 
574 private:
575  uint32_t m_numberOfIes;
576  uint32_t m_headerLength;
577 
578  std::vector <EpcX2Sap::CellInformationItem> m_cellInformationList;
579 };
580 
581 
586 {
587 public:
590 
595  static TypeId GetTypeId (void);
596  virtual TypeId GetInstanceTypeId (void) const;
597  virtual uint32_t GetSerializedSize (void) const;
598  virtual void Serialize (Buffer::Iterator start) const;
599  virtual uint32_t Deserialize (Buffer::Iterator start);
600  virtual void Print (std::ostream &os) const;
601 
602 
607  uint16_t GetEnb1MeasurementId () const;
612  void SetEnb1MeasurementId (uint16_t enb1MeasurementId);
613 
618  uint16_t GetEnb2MeasurementId () const;
623  void SetEnb2MeasurementId (uint16_t enb2MeasurementId);
624 
629  std::vector <EpcX2Sap::CellMeasurementResultItem> GetCellMeasurementResultList () const;
634  void SetCellMeasurementResultList (std::vector <EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
635 
640  uint32_t GetLengthOfIes () const;
645  uint32_t GetNumberOfIes () const;
646 
647 private:
648  uint32_t m_numberOfIes;
649  uint32_t m_headerLength;
650 
653  std::vector <EpcX2Sap::CellMeasurementResultItem> m_cellMeasurementResultList;
654 };
655 
656 
657 } // namespace ns3
658 
659 #endif // EPC_X2_HEADER_H
iterator in a Buffer instance
Definition: buffer.h:99
EpcX2HandoverPreparationFailureHeader.
virtual uint32_t GetSerializedSize(void) const
virtual void Serialize(Buffer::Iterator start) const
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
Set criticality diagnostics function.
void SetCause(uint16_t cause)
Set cause function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t GetCause() const
Get cause function.
static TypeId GetTypeId(void)
Get the type ID.
uint16_t m_criticalityDiagnostics
criticality diagnostics
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t GetCriticalityDiagnostics() const
Get criticality diagnostics function.
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
virtual void Print(std::ostream &os) const
EpcX2HandoverRequestAckHeader.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
uint32_t m_headerLength
header length
uint32_t GetLengthOfIes() const
Get length of IEs function.
std::vector< EpcX2Sap::ErabNotAdmittedItem > GetNotAdmittedBearers() const
Get not admitted bearers function.
virtual void Serialize(Buffer::Iterator start) const
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint32_t m_numberOfIes
number of IEs
virtual void Print(std::ostream &os) const
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabAdmittedItem > GetAdmittedBearers() const
Get admittied bearers function.
void SetNotAdmittedBearers(std::vector< EpcX2Sap::ErabNotAdmittedItem > bearers)
Set not admitted bearers function.
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabAdmittedItem > m_erabsAdmittedList
ERABs admitted list.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
static TypeId GetTypeId(void)
Get the type ID.
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
ERABs not admitted list.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetAdmittedBearers(std::vector< EpcX2Sap::ErabAdmittedItem > bearers)
Set admitted bearers function.
virtual uint32_t GetSerializedSize(void) const
EpcX2HandoverRequestHeader.
uint16_t GetCause() const
Get cause function.
void SetCause(uint16_t cause)
Set cause function.
uint32_t m_mmeUeS1apId
MME UE S1 AP ID.
std::vector< EpcX2Sap::ErabToBeSetupItem > m_erabsToBeSetupList
ERAB to be setup list.
void SetMmeUeS1apId(uint32_t mmeUeS1apId)
Set MME UE S1 AP ID function.
uint32_t GetMmeUeS1apId() const
Get MME UE S1 AP ID function.
static TypeId GetTypeId(void)
Get the type ID.
void SetTargetCellId(uint16_t targetCellId)
Set target cell id function.
uint64_t m_ueAggregateMaxBitRateUplink
aggregate max bit rate uplink
virtual void Print(std::ostream &os) const
uint32_t m_headerLength
header length
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
Set UE Aggregrate Max Bit Rate Uplik function.
uint64_t GetUeAggregateMaxBitRateUplink() const
Get UE Aggregrate Max Bit Rate Uplik function.
uint16_t GetTargetCellId() const
Get target cell id function.
void SetBearers(std::vector< EpcX2Sap::ErabToBeSetupItem > bearers)
Set bearers function.
uint64_t GetUeAggregateMaxBitRateDownlink() const
Get UE Aggregate Max Bit Rate Downlink function.
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
Set UE Aggregrate Max Bit Rate Downlink function.
uint32_t m_numberOfIes
number of IEs
virtual void Serialize(Buffer::Iterator start) const
virtual uint32_t GetSerializedSize(void) const
uint16_t m_targetCellId
target cell ID
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB X2 AP ID function.
uint32_t GetNumberOfIes() const
Get number of IEs.
uint16_t m_oldEnbUeX2apId
old ENB UE X1 AP ID
uint16_t GetOldEnbUeX2apId() const
Get old ENB X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs.
std::vector< EpcX2Sap::ErabToBeSetupItem > GetBearers() const
Get bearers function.
uint64_t m_ueAggregateMaxBitRateDownlink
aggregate max bit rate downlink
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:34
TypeOfMessage_t
Type of message enumeration.
Definition: epc-x2-header.h:95
void SetLengthOfIes(uint32_t lengthOfIes)
Set length of IEs function.
virtual void Print(std::ostream &os) const
uint8_t m_messageType
message type
virtual ~EpcX2Header()
void SetProcedureCode(uint8_t procedureCode)
Set procedure code function.
virtual uint32_t GetSerializedSize(void) const
uint8_t GetProcedureCode() const
Get procedure code function.
static TypeId GetTypeId(void)
Get the type ID.
uint32_t m_numberOfIes
number of IEs
uint8_t m_procedureCode
procedure code
void SetNumberOfIes(uint32_t numberOfIes)
Set number of IEs function.
virtual void Serialize(Buffer::Iterator start) const
uint32_t m_lengthOfIes
length of IEs
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint8_t GetMessageType() const
Get message type function.
void SetMessageType(uint8_t messageType)
Set message type function.
ProcedureCode_t
Procedure code enumeration.
Definition: epc-x2-header.h:86
EpcX2LoadInformationHeader.
uint32_t m_headerLength
length of IEs
std::vector< EpcX2Sap::CellInformationItem > GetCellInformationList() const
Get cell information list function.
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetCellInformationList(std::vector< EpcX2Sap::CellInformationItem > cellInformationList)
Set cell information list function.
virtual void Serialize(Buffer::Iterator start) const
std::vector< EpcX2Sap::CellInformationItem > m_cellInformationList
cell information list
uint32_t GetLengthOfIes() const
Get length of IEs function.
static TypeId GetTypeId(void)
Get the type ID.
uint32_t m_numberOfIes
number of IEs
EpcX2ResourceStatusUpdateHeader.
uint16_t m_enb1MeasurementId
ENB1 measurement.
virtual uint32_t GetSerializedSize(void) const
uint16_t m_enb2MeasurementId
ENB2 measurement.
uint32_t m_headerLength
header length
void SetEnb2MeasurementId(uint16_t enb2MeasurementId)
Set ENB2 measurement ID function.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetEnb1MeasurementId(uint16_t enb1MeasurementId)
Set ENB1 measurement ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
virtual void Print(std::ostream &os) const
static TypeId GetTypeId(void)
Get the type ID.
uint16_t GetEnb2MeasurementId() const
Get ENB2 measurement ID function.
std::vector< EpcX2Sap::CellMeasurementResultItem > GetCellMeasurementResultList() const
Get cell measurement results list function.
std::vector< EpcX2Sap::CellMeasurementResultItem > m_cellMeasurementResultList
cell measurement result list
void SetCellMeasurementResultList(std::vector< EpcX2Sap::CellMeasurementResultItem > cellMeasurementResultList)
Set cell measurement results list function.
virtual void Serialize(Buffer::Iterator start) const
uint16_t GetEnb1MeasurementId() const
Get ENB1 measurement ID function.
uint32_t m_numberOfIes
number of IEs
EpcX2SnStatusTransferHeader.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
virtual void Print(std::ostream &os) const
static TypeId GetTypeId(void)
Get the type ID.
virtual uint32_t GetSerializedSize(void) const
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetErabsSubjectToStatusTransferList(std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > erabs)
Set ERABs subject to status transfer list function.
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > GetErabsSubjectToStatusTransferList() const
Get ERABs subject to status transfer list function.
virtual void Serialize(Buffer::Iterator start) const
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > m_erabsSubjectToStatusTransferList
ERABs subject to status transfer list.
uint32_t m_headerLength
header length
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint32_t m_numberOfIes
number of IEs
EpcX2UeContextReleaseHeader.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint32_t m_headerLength
header length
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
virtual void Serialize(Buffer::Iterator start) const
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
virtual uint32_t GetSerializedSize(void) const
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t GetNumberOfIes() const
Set length of IEs function.
static TypeId GetTypeId(void)
Get the type ID.
uint32_t m_numberOfIes
number of IEs
virtual void Print(std::ostream &os) const
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
Protocol header serialization and deserialization.
Definition: header.h:43
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.
def start()
Definition: core.py:1853