22 #include "ns3/epc-x2-header.h"
33 : m_messageType (0xfa),
34 m_procedureCode (0xfa),
53 .AddConstructor<EpcX2Header> ()
151 : m_numberOfIes (1 + 1 + 1 + 1),
152 m_headerLength (6 + 5 + 12 + (3 + 4 + 8 + 8 + 4)),
153 m_oldEnbUeX2apId (0xfffa),
155 m_targetCellId (0xfffa),
156 m_mmeUeS1apId (0xfffffffa)
175 static TypeId tid =
TypeId (
"ns3::EpcX2HandoverRequestHeader")
177 .AddConstructor<EpcX2HandoverRequestHeader> ()
224 for (
int j = 0; j < (int) sz; j++)
281 for (
int j = 0; j < sz; j++)
323 for (
int j = 0; j < (int) sz; j++)
326 if (j < (
int) sz - 1)
385 std::vector <EpcX2Sap::ErabToBeSetupItem>
439 : m_numberOfIes (1 + 1 + 1 + 1),
440 m_headerLength (2 + 2 + 4 + 4),
441 m_oldEnbUeX2apId (0xfffa),
442 m_newEnbUeX2apId (0xfffa)
459 static TypeId tid =
TypeId (
"ns3::EpcX2HandoverRequestAckHeader")
461 .AddConstructor<EpcX2HandoverRequestAckHeader> ()
488 for (
int j = 0; j < (int) sz; j++)
497 for (
int j = 0; j < (int) sz2; j++)
521 for (
int j = 0; j < sz; j++)
537 for (
int j = 0; j < sz; j++)
563 for (
int j = 0; j < (int) sz; j++)
566 if (j < (
int) sz - 1)
582 for (
int j = 0; j < (int) sz2; j++)
585 if (j < (
int) sz2 - 1)
621 std::vector <EpcX2Sap::ErabAdmittedItem>
634 std::vector <EpcX2Sap::ErabNotAdmittedItem>
664 : m_numberOfIes (1 + 1 + 1),
665 m_headerLength (2 + 2 + 2),
666 m_oldEnbUeX2apId (0xfffa),
668 m_criticalityDiagnostics (0xfffa)
684 static TypeId tid =
TypeId (
"ns3::EpcX2HandoverPreparationFailureHeader")
686 .AddConstructor<EpcX2HandoverPreparationFailureHeader> ()
791 m_oldEnbUeX2apId (0xfffa),
792 m_newEnbUeX2apId (0xfffa)
809 static TypeId tid =
TypeId (
"ns3::EpcX2SnStatusTransferHeader")
811 .AddConstructor<EpcX2SnStatusTransferHeader> ()
839 for (
int j = 0; j < (int) sz; j++)
846 for (
int k = 0; k < bitsetSize; k++)
848 uint64_t statusValue = 0;
849 for (
int m = 0; m < 64; m++)
875 for (
int j = 0; j < sz; j++)
881 for (
int k = 0; k < bitsetSize; k++)
884 for (
int m = 0; m < 64; m++)
913 for (
int j = 0; j < (int) sz; j++)
916 if (j < (
int) sz - 1)
951 std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem>
981 : m_numberOfIes (1 + 1),
982 m_headerLength (2 + 2),
983 m_oldEnbUeX2apId (0xfffa),
984 m_newEnbUeX2apId (0xfffa)
999 static TypeId tid =
TypeId (
"ns3::EpcX2UeContextReleaseHeader")
1001 .AddConstructor<EpcX2UeContextReleaseHeader> ()
1088 : m_numberOfIes (1),
1104 static TypeId tid =
TypeId (
"ns3::EpcX2LoadInformationHeader")
1106 .AddConstructor<EpcX2LoadInformationHeader> ()
1135 for (
int j = 0; j < (int) sz; j++)
1139 std::vector <EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type sz2;
1143 for (
int k = 0; k < (int) sz2; k++)
1148 std::vector <EpcX2Sap::UlHighInterferenceInformationItem>::size_type sz3;
1152 for (
int k = 0; k < (int) sz3; k++)
1156 std::vector <bool>::size_type sz4;
1157 sz4 =
m_cellInformationList [j].ulHighInterferenceInformationList [k].ulHighInterferenceIndicationList.size ();
1160 for (
int m = 0; m < (int) sz4; m++)
1166 std::vector <bool>::size_type sz5;
1170 for (
int k = 0; k < (int) sz5; k++)
1197 for (
int j = 0; j < sz; j++)
1205 for (
int k = 0; k < sz2; k++)
1214 for (
int k = 0; k < sz3; k++)
1222 for (
int m = 0; m < sz4; m++)
1233 for (
int k = 0; k < sz5; k++)
1257 std::vector <EpcX2Sap::CellInformationItem>
1270 for (
int j = 0; j < (int) sz; j++)
1274 std::vector <EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type sz2;
1278 std::vector <EpcX2Sap::UlHighInterferenceInformationItem>::size_type sz3;
1282 for (
int k = 0; k < (int) sz3; k++)
1284 std::vector <bool>::size_type sz4;
1285 sz4 =
m_cellInformationList [j].ulHighInterferenceInformationList [k].ulHighInterferenceIndicationList.size ();
1289 std::vector <bool>::size_type sz5;
1312 : m_numberOfIes (3),
1314 m_enb1MeasurementId (0xfffa),
1315 m_enb2MeasurementId (0xfffa)
1332 static TypeId tid =
TypeId (
"ns3::EpcX2ResourceStatusUpdateHeader")
1334 .AddConstructor<EpcX2ResourceStatusUpdateHeader> ()
1362 for (
int j = 0; j < (int) sz; j++)
1395 for (
int j = 0; j < sz; j++)
1458 std::vector <EpcX2Sap::CellMeasurementResultItem>
void WriteHtonU64(uint64_t data)
static TypeId GetTypeId(void)
virtual void Serialize(Buffer::Iterator start) const
uint16_t GetOldEnbUeX2apId() const
uint32_t GetLengthOfIes() const
EpcX2HandoverPreparationFailureHeader()
std::vector< EpcX2Sap::ErabNotAdmittedItem > GetNotAdmittedBearers() const
virtual ~EpcX2HandoverPreparationFailureHeader()
uint32_t GetLengthOfIes() const
void SetCause(uint16_t cause)
uint64_t ReadNtohU64(void)
uint16_t cellCapacityClassValue
#define NS_LOG_COMPONENT_DEFINE(name)
virtual void Print(std::ostream &os) const
uint16_t m_oldEnbUeX2apId
virtual void Serialize(Buffer::Iterator start) const
Ipv4Address transportLayerAddress
LoadIndicator dlHardwareLoadIndicator
virtual ~EpcX2HandoverRequestHeader()
uint16_t GetNewEnbUeX2apId() const
uint32_t GetMmeUeS1apId() const
uint32_t ReadNtohU32(void)
uint16_t pdcchInterferenceImpact
CompositeAvailCapacity dlCompositeAvailableCapacity
iterator in a Buffer instance
uint16_t GetCriticalityDiagnostics() const
uint64_t GetUeAggregateMaxBitRateUplink() const
LoadIndicator ulS1TnlLoadIndicator
uint16_t GetTargetCellId() const
std::vector< EpcX2Sap::ErabToBeSetupItem > GetBearers() const
virtual void Serialize(Buffer::Iterator start) const
uint16_t GetOldEnbUeX2apId() const
virtual TypeId GetInstanceTypeId(void) const
virtual uint32_t GetSerializedSize(void) const
void SetTargetCellId(uint16_t targetCellId)
UlInterferenceOverloadIndicationItem
uint16_t m_oldEnbUeX2apId
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
LoadIndicator ulHardwareLoadIndicator
static const uint16_t m_maxPdcpSn
GbrQosInformation gbrQosInfo
uint32_t GetNumberOfIes() const
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
virtual TypeId GetInstanceTypeId(void) const
void WriteHtonU16(uint16_t data)
uint16_t m_newEnbUeX2apId
uint16_t m_oldEnbUeX2apId
void SetOldEnbUeX2apId(uint16_t x2apId)
uint32_t GetNumberOfIes() const
uint32_t GetNumberOfIes() const
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
bool preemptionVulnerability
virtual TypeId GetInstanceTypeId(void) const
std::bitset< m_maxPdcpSn > receiveStatusOfUlPdcpSdus
EpcX2HandoverRequestHeader()
virtual uint32_t Deserialize(Buffer::Iterator start)
void SetNotAdmittedBearers(std::vector< EpcX2Sap::ErabNotAdmittedItem > bearers)
virtual ~EpcX2HandoverRequestAckHeader()
EpsBearer erabLevelQosParameters
uint16_t m_criticalityDiagnostics
void WriteHtonU32(uint32_t data)
bool preemptionCapability
std::vector< bool > rntpPerPrbList
LoadIndicator dlS1TnlLoadIndicator
uint64_t m_ueAggregateMaxBitRateUplink
uint16_t GetCause() const
Ipv4 addresses are stored in host order in this class.
uint32_t GetLengthOfIes() const
virtual void Print(std::ostream &os) const
static TypeId GetTypeId(void)
uint16_t dlNonGbrPrbUsage
void WriteU8(uint8_t data)
virtual uint32_t GetSerializedSize(void) const
EpcX2HandoverRequestAckHeader()
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
static TypeId GetTypeId(void)
void SetNewEnbUeX2apId(uint16_t x2apId)
std::vector< EpcX2Sap::ErabAdmittedItem > m_erabsAdmittedList
uint16_t GetOldEnbUeX2apId() const
void SetAdmittedBearers(std::vector< EpcX2Sap::ErabAdmittedItem > bearers)
uint16_t GetCause() const
void SetBearers(std::vector< EpcX2Sap::ErabToBeSetupItem > bearers)
std::vector< EpcX2Sap::ErabAdmittedItem > GetAdmittedBearers() const
uint64_t GetUeAggregateMaxBitRateDownlink() const
void SetOldEnbUeX2apId(uint16_t x2apId)
void SetOldEnbUeX2apId(uint16_t x2apId)
uint16_t ReadNtohU16(void)
std::vector< EpcX2Sap::ErabToBeSetupItem > m_erabsToBeSetupList
void SetCause(uint16_t cause)
virtual uint32_t GetSerializedSize(void) const
uint64_t m_ueAggregateMaxBitRateDownlink
a unique identifier for an interface.
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
uint16_t ulNonGbrPrbUsage
TypeId SetParent(TypeId tid)
virtual uint32_t Deserialize(Buffer::Iterator start)
AllocationRetentionPriority arp
virtual uint32_t Deserialize(Buffer::Iterator start)
CompositeAvailCapacity ulCompositeAvailableCapacity
virtual void Print(std::ostream &os) const
void SetMmeUeS1apId(uint32_t mmeUeS1apId)