A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
epc-x2-header.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Manuel Requena <manuel.requena@cttc.es>
18 */
19
20#ifndef EPC_X2_HEADER_H
21#define EPC_X2_HEADER_H
22
23#include "ns3/epc-x2-sap.h"
24#include "ns3/header.h"
25
26#include <vector>
27
28namespace ns3
29{
30
31class EpcX2Header : public Header
32{
33 public:
35 ~EpcX2Header() override;
36
41 static TypeId GetTypeId();
42 TypeId GetInstanceTypeId() const override;
43 uint32_t GetSerializedSize() const override;
44 void Serialize(Buffer::Iterator start) const override;
46 void Print(std::ostream& os) const override;
47
52 uint8_t GetMessageType() const;
57 void SetMessageType(uint8_t messageType);
58
63 uint8_t GetProcedureCode() const;
68 void SetProcedureCode(uint8_t procedureCode);
69
74 void SetLengthOfIes(uint32_t lengthOfIes);
79 void SetNumberOfIes(uint32_t numberOfIes);
80
83 {
90 };
91
94 {
98 };
99
100 private:
103
106};
107
112{
113 public:
116
121 static TypeId GetTypeId();
122 TypeId GetInstanceTypeId() const override;
123 uint32_t GetSerializedSize() const override;
124 void Serialize(Buffer::Iterator start) const override;
125 uint32_t Deserialize(Buffer::Iterator start) override;
126 void Print(std::ostream& os) const override;
127
132 uint16_t GetOldEnbUeX2apId() const;
137 void SetOldEnbUeX2apId(uint16_t x2apId);
138
143 uint16_t GetCause() const;
148 void SetCause(uint16_t cause);
149
154 uint16_t GetTargetCellId() const;
159 void SetTargetCellId(uint16_t targetCellId);
160
165 uint32_t GetMmeUeS1apId() const;
170 void SetMmeUeS1apId(uint32_t mmeUeS1apId);
171
176 std::vector<EpcX2Sap::ErabToBeSetupItem> GetBearers() const;
181 void SetBearers(std::vector<EpcX2Sap::ErabToBeSetupItem> bearers);
182
187 uint64_t GetUeAggregateMaxBitRateDownlink() const;
192 void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate);
193
198 uint64_t GetUeAggregateMaxBitRateUplink() const;
203 void SetUeAggregateMaxBitRateUplink(uint64_t bitRate);
204
209 uint32_t GetLengthOfIes() const;
214 uint32_t GetNumberOfIes() const;
215
216 private:
219
221 uint16_t m_cause;
222 uint16_t m_targetCellId;
226 std::vector<EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
227};
228
233{
234 public:
237
242 static TypeId GetTypeId();
243 TypeId GetInstanceTypeId() const override;
244 uint32_t GetSerializedSize() const override;
245 void Serialize(Buffer::Iterator start) const override;
246 uint32_t Deserialize(Buffer::Iterator start) override;
247 void Print(std::ostream& os) const override;
248
253 uint16_t GetOldEnbUeX2apId() const;
258 void SetOldEnbUeX2apId(uint16_t x2apId);
259
264 uint16_t GetNewEnbUeX2apId() const;
269 void SetNewEnbUeX2apId(uint16_t x2apId);
270
275 std::vector<EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers() const;
280 void SetAdmittedBearers(std::vector<EpcX2Sap::ErabAdmittedItem> bearers);
281
286 std::vector<EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers() const;
291 void SetNotAdmittedBearers(std::vector<EpcX2Sap::ErabNotAdmittedItem> bearers);
292
297 uint32_t GetLengthOfIes() const;
302 uint32_t GetNumberOfIes() const;
303
304 private:
307
310 std::vector<EpcX2Sap::ErabAdmittedItem> m_erabsAdmittedList;
311 std::vector<EpcX2Sap::ErabNotAdmittedItem> m_erabsNotAdmittedList;
312};
313
318{
319 public:
322
327 static TypeId GetTypeId();
328 TypeId GetInstanceTypeId() const override;
329 uint32_t GetSerializedSize() const override;
330 void Serialize(Buffer::Iterator start) const override;
331 uint32_t Deserialize(Buffer::Iterator start) override;
332 void Print(std::ostream& os) const override;
333
338 uint16_t GetOldEnbUeX2apId() const;
343 void SetOldEnbUeX2apId(uint16_t x2apId);
344
349 uint16_t GetCause() const;
354 void SetCause(uint16_t cause);
355
360 uint16_t GetCriticalityDiagnostics() const;
365 void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics);
366
371 uint32_t GetLengthOfIes() const;
376 uint32_t GetNumberOfIes() const;
377
378 private:
381
383 uint16_t m_cause;
385};
386
391{
392 public:
395
400 static TypeId GetTypeId();
401 TypeId GetInstanceTypeId() const override;
402 uint32_t GetSerializedSize() const override;
403 void Serialize(Buffer::Iterator start) const override;
404 uint32_t Deserialize(Buffer::Iterator start) override;
405 void Print(std::ostream& os) const override;
406
411 uint16_t GetOldEnbUeX2apId() const;
416 void SetOldEnbUeX2apId(uint16_t x2apId);
417
422 uint16_t GetNewEnbUeX2apId() const;
427 void SetNewEnbUeX2apId(uint16_t x2apId);
428
433 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem> GetErabsSubjectToStatusTransferList()
434 const;
440 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
441
446 uint32_t GetLengthOfIes() const;
451 uint32_t GetNumberOfIes() const;
452
453 private:
456
459 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>
461};
462
467{
468 public:
471
476 static TypeId GetTypeId();
477 TypeId GetInstanceTypeId() const override;
478 uint32_t GetSerializedSize() const override;
479 void Serialize(Buffer::Iterator start) const override;
480 uint32_t Deserialize(Buffer::Iterator start) override;
481 void Print(std::ostream& os) const override;
482
487 uint16_t GetOldEnbUeX2apId() const;
492 void SetOldEnbUeX2apId(uint16_t x2apId);
493
498 uint16_t GetNewEnbUeX2apId() const;
503 void SetNewEnbUeX2apId(uint16_t x2apId);
504
509 uint32_t GetLengthOfIes() const;
514 uint32_t GetNumberOfIes() const;
515
516 private:
519
522};
523
528{
529 public:
532
537 static TypeId GetTypeId();
538 TypeId GetInstanceTypeId() const override;
539 uint32_t GetSerializedSize() const override;
540 void Serialize(Buffer::Iterator start) const override;
541 uint32_t Deserialize(Buffer::Iterator start) override;
542 void Print(std::ostream& os) const override;
543
548 std::vector<EpcX2Sap::CellInformationItem> GetCellInformationList() const;
553 void SetCellInformationList(std::vector<EpcX2Sap::CellInformationItem> cellInformationList);
554
559 uint32_t GetLengthOfIes() const;
564 uint32_t GetNumberOfIes() const;
565
566 private:
569
570 std::vector<EpcX2Sap::CellInformationItem> m_cellInformationList;
571};
572
577{
578 public:
581
586 static TypeId GetTypeId();
587 TypeId GetInstanceTypeId() const override;
588 uint32_t GetSerializedSize() const override;
589 void Serialize(Buffer::Iterator start) const override;
590 uint32_t Deserialize(Buffer::Iterator start) override;
591 void Print(std::ostream& os) const override;
592
597 uint16_t GetEnb1MeasurementId() const;
602 void SetEnb1MeasurementId(uint16_t enb1MeasurementId);
603
608 uint16_t GetEnb2MeasurementId() const;
613 void SetEnb2MeasurementId(uint16_t enb2MeasurementId);
614
619 std::vector<EpcX2Sap::CellMeasurementResultItem> GetCellMeasurementResultList() const;
625 std::vector<EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
626
631 uint32_t GetLengthOfIes() const;
636 uint32_t GetNumberOfIes() const;
637
638 private:
641
644 std::vector<EpcX2Sap::CellMeasurementResultItem>
646};
647
652{
653 public:
656
661 static TypeId GetTypeId();
662 TypeId GetInstanceTypeId() const override;
663 uint32_t GetSerializedSize() const override;
664 void Serialize(Buffer::Iterator start) const override;
665 uint32_t Deserialize(Buffer::Iterator start) override;
666 void Print(std::ostream& os) const override;
667
672 uint16_t GetOldEnbUeX2apId() const;
677 void SetOldEnbUeX2apId(uint16_t x2apId);
678
683 uint16_t GetNewEnbUeX2apId() const;
688 void SetNewEnbUeX2apId(uint16_t x2apId);
689
694 uint16_t GetCause() const;
699 void SetCause(uint16_t cause);
700
705 uint32_t GetLengthOfIes() const;
710 uint32_t GetNumberOfIes() const;
711
712 private:
715
718 uint16_t m_cause;
719};
720
721} // namespace ns3
722
723#endif // EPC_X2_HEADER_H
iterator in a Buffer instance
Definition: buffer.h:100
EpcX2HandoverCancelHeader.
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t Deserialize(Buffer::Iterator start) override
uint32_t m_headerLength
header length
void SetCause(uint16_t cause)
Set cause function.
void Serialize(Buffer::Iterator start) const override
uint16_t GetCause() const
Get cause function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
EpcX2HandoverPreparationFailureHeader.
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
Set criticality diagnostics function.
uint32_t Deserialize(Buffer::Iterator start) override
void SetCause(uint16_t cause)
Set cause function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
void Serialize(Buffer::Iterator start) const override
static TypeId GetTypeId()
Get the type ID.
uint16_t GetCause() const
Get cause function.
uint16_t m_criticalityDiagnostics
criticality diagnostics
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t GetCriticalityDiagnostics() const
Get criticality diagnostics function.
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
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.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
EpcX2HandoverRequestAckHeader.
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.
uint32_t Deserialize(Buffer::Iterator start) override
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
static TypeId GetTypeId()
Get the type ID.
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.
uint32_t GetSerializedSize() const override
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.
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.
void Print(std::ostream &os) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const override
EpcX2HandoverRequestHeader.
uint16_t GetCause() const
Get cause function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
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.
void Serialize(Buffer::Iterator start) const override
void SetTargetCellId(uint16_t targetCellId)
Set target cell id function.
void Print(std::ostream &os) const override
uint64_t m_ueAggregateMaxBitRateUplink
aggregate max bit rate uplink
uint32_t m_headerLength
header length
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
Set UE Aggregate Max Bit Rate Uplik function.
uint64_t GetUeAggregateMaxBitRateUplink() const
Get UE Aggregate 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 Aggregate Max Bit Rate Downlink function.
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
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.
uint32_t GetSerializedSize() const override
uint64_t m_ueAggregateMaxBitRateDownlink
aggregate max bit rate downlink
uint32_t Deserialize(Buffer::Iterator start) override
Introspection did not find any typical Config paths.
Definition: epc-x2-header.h:32
TypeOfMessage_t
Type of message enumeration.
Definition: epc-x2-header.h:94
static TypeId GetTypeId()
Get the type ID.
void SetLengthOfIes(uint32_t lengthOfIes)
Set length of IEs function.
void Print(std::ostream &os) const override
uint8_t m_messageType
message type
uint32_t Deserialize(Buffer::Iterator start) override
void SetProcedureCode(uint8_t procedureCode)
Set procedure code function.
uint8_t GetProcedureCode() const
Get procedure code function.
uint32_t GetSerializedSize() const override
void Serialize(Buffer::Iterator start) const override
uint32_t m_numberOfIes
number of IEs
uint8_t m_procedureCode
procedure code
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetNumberOfIes(uint32_t numberOfIes)
Set number of IEs function.
uint32_t m_lengthOfIes
length of IEs
uint8_t GetMessageType() const
Get message type function.
~EpcX2Header() override
void SetMessageType(uint8_t messageType)
Set message type function.
ProcedureCode_t
Procedure code enumeration 9.3.7.
Definition: epc-x2-header.h:83
EpcX2LoadInformationHeader.
uint32_t m_headerLength
length of IEs
void Print(std::ostream &os) const override
std::vector< EpcX2Sap::CellInformationItem > GetCellInformationList() const
Get cell information list function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const override
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetCellInformationList(std::vector< EpcX2Sap::CellInformationItem > cellInformationList)
Set cell information list function.
std::vector< EpcX2Sap::CellInformationItem > m_cellInformationList
cell information list
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint32_t GetSerializedSize() const override
uint32_t Deserialize(Buffer::Iterator start) override
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
EpcX2ResourceStatusUpdateHeader.
uint16_t m_enb1MeasurementId
ENB1 measurement.
uint32_t Deserialize(Buffer::Iterator start) override
uint16_t m_enb2MeasurementId
ENB2 measurement.
uint32_t m_headerLength
header length
void SetEnb2MeasurementId(uint16_t enb2MeasurementId)
Set ENB2 measurement ID function.
void SetEnb1MeasurementId(uint16_t enb1MeasurementId)
Set ENB1 measurement ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void Print(std::ostream &os) const override
uint16_t GetEnb2MeasurementId() const
Get ENB2 measurement ID function.
std::vector< EpcX2Sap::CellMeasurementResultItem > GetCellMeasurementResultList() const
Get cell measurement results list function.
static TypeId GetTypeId()
Get the type ID.
std::vector< EpcX2Sap::CellMeasurementResultItem > m_cellMeasurementResultList
cell measurement result list
void SetCellMeasurementResultList(std::vector< EpcX2Sap::CellMeasurementResultItem > cellMeasurementResultList)
Set cell measurement results list function.
uint16_t GetEnb1MeasurementId() const
Get ENB1 measurement ID function.
uint32_t m_numberOfIes
number of IEs
void Serialize(Buffer::Iterator start) const override
uint32_t GetSerializedSize() const override
EpcX2SnStatusTransferHeader.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
static TypeId GetTypeId()
Get the type ID.
uint32_t Deserialize(Buffer::Iterator start) override
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.
void Serialize(Buffer::Iterator start) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
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.
uint32_t GetSerializedSize() const override
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
void Print(std::ostream &os) const override
EpcX2UeContextReleaseHeader.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint32_t Deserialize(Buffer::Iterator start) override
static TypeId GetTypeId()
Get the type ID.
uint32_t m_headerLength
header length
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
void Serialize(Buffer::Iterator start) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
uint32_t GetSerializedSize() const override
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t GetNumberOfIes() const
Set length of IEs function.
void Print(std::ostream &os) const override
uint32_t m_numberOfIes
number of IEs
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
Protocol header serialization and deserialization.
Definition: header.h:44
a unique identifier for an interface.
Definition: type-id.h:60
Every class exported by the ns3 library is enclosed in the ns3 namespace.