21 : m_messageType(0xfa),
22 m_procedureCode(0xfa),
138 : m_numberOfIes(1 + 1 + 1 + 1),
139 m_headerLength(6 + 5 + 12 + (3 + 4 + 8 + 8 + 4)),
140 m_oldEnbUeX2apId(0xfffa),
142 m_targetCellId(0xfffa),
143 m_mmeUeS1apId(0xfffffffa)
162 static TypeId tid =
TypeId(
"ns3::EpcX2HandoverRequestHeader")
199 i.WriteHtonU32(0x123456);
211 for (
int j = 0;
j < (int)
sz;
j++)
263 int sz =
i.ReadNtohU32();
267 for (
int j = 0;
j <
sz;
j++)
274 erabItem.erabLevelQosParameters.gbrQosInfo.gbrDl =
i.ReadNtohU64();
275 erabItem.erabLevelQosParameters.gbrQosInfo.gbrUl =
i.ReadNtohU64();
276 erabItem.erabLevelQosParameters.gbrQosInfo.mbrDl =
i.ReadNtohU64();
277 erabItem.erabLevelQosParameters.gbrQosInfo.mbrUl =
i.ReadNtohU64();
278 erabItem.erabLevelQosParameters.arp.priorityLevel =
i.ReadU8();
279 erabItem.erabLevelQosParameters.arp.preemptionCapability =
i.ReadU8();
280 erabItem.erabLevelQosParameters.arp.preemptionVulnerability =
i.ReadU8();
309 for (
int j = 0;
j < (int)
sz;
j++)
371std::vector<EpcX2Sap::ErabToBeSetupItem>
425 : m_numberOfIes(1 + 1 + 1 + 1),
426 m_headerLength(2 + 2 + 4 + 4),
427 m_oldEnbUeX2apId(0xfffa),
428 m_newEnbUeX2apId(0xfffa)
445 static TypeId tid =
TypeId(
"ns3::EpcX2HandoverRequestAckHeader")
474 for (
int j = 0;
j < (int)
sz;
j++)
483 for (
int j = 0;
j < (int)
sz2;
j++)
503 int sz =
i.ReadNtohU32();
507 for (
int j = 0;
j <
sz;
j++)
519 sz =
i.ReadNtohU32();
523 for (
int j = 0;
j <
sz;
j++)
549 for (
int j = 0;
j < (int)
sz;
j++)
568 for (
int j = 0;
j < (int)
sz2;
j++)
571 if (
j < (
int)
sz2 - 1)
606std::vector<EpcX2Sap::ErabAdmittedItem>
619std::vector<EpcX2Sap::ErabNotAdmittedItem>
627 std::vector<EpcX2Sap::ErabNotAdmittedItem> bearers)
650 : m_numberOfIes(1 + 1 + 1),
651 m_headerLength(2 + 2 + 2),
652 m_oldEnbUeX2apId(0xfffa),
654 m_criticalityDiagnostics(0xfffa)
670 static TypeId tid =
TypeId(
"ns3::EpcX2HandoverPreparationFailureHeader")
777 m_oldEnbUeX2apId(0xfffa),
778 m_newEnbUeX2apId(0xfffa)
795 static TypeId tid =
TypeId(
"ns3::EpcX2SnStatusTransferHeader")
822 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>::size_type
sz =
826 for (
int j = 0;
j < (int)
sz;
j++)
830 i.WriteHtonU16(
item.erabId);
836 for (
int m = 0; m < 64; m++)
843 i.WriteHtonU16(
item.ulPdcpSn);
844 i.WriteHtonU32(
item.ulHfn);
845 i.WriteHtonU16(
item.dlPdcpSn);
846 i.WriteHtonU32(
item.dlHfn);
857 int sz =
i.ReadNtohU16();
862 for (
int j = 0;
j <
sz;
j++)
871 for (
int m = 0; m < 64; m++)
895 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>::size_type
sz =
901 for (
int j = 0;
j < (int)
sz;
j++)
939std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>
947 std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>
erabs)
970 : m_numberOfIes(1 + 1),
971 m_headerLength(2 + 2),
972 m_oldEnbUeX2apId(0xfffa),
973 m_newEnbUeX2apId(0xfffa)
988 static TypeId tid =
TypeId(
"ns3::EpcX2UeContextReleaseHeader")
1093 static TypeId tid =
TypeId(
"ns3::EpcX2LoadInformationHeader")
1095 .SetGroupName(
"Lte")
1124 for (
int j = 0;
j < (int)
sz;
j++)
1128 std::vector<EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type
sz2;
1130 i.WriteHtonU16(
sz2);
1132 for (
int k = 0; k < (int)
sz2; k++)
1137 std::vector<EpcX2Sap::UlHighInterferenceInformationItem>::size_type
sz3;
1139 i.WriteHtonU16(
sz3);
1141 for (
int k = 0; k < (int)
sz3; k++)
1146 std::vector<bool>::size_type
sz4;
1148 .ulHighInterferenceInformationList[k]
1149 .ulHighInterferenceIndicationList.size();
1150 i.WriteHtonU16(
sz4);
1152 for (
int m = 0; m < (int)
sz4; m++)
1155 .ulHighInterferenceInformationList[k]
1156 .ulHighInterferenceIndicationList[m]);
1160 std::vector<bool>::size_type
sz5;
1162 i.WriteHtonU16(
sz5);
1164 for (
int k = 0; k < (int)
sz5; k++)
1187 int sz =
i.ReadNtohU16();
1191 for (
int j = 0;
j <
sz;
j++)
1197 int sz2 =
i.ReadNtohU16();
1199 for (
int k = 0; k <
sz2; k++)
1206 int sz3 =
i.ReadNtohU16();
1208 for (
int k = 0; k <
sz3; k++)
1214 int sz4 =
i.ReadNtohU16();
1216 for (
int m = 0; m <
sz4; m++)
1218 item.ulHighInterferenceIndicationList.push_back(
i.ReadU8());
1225 int sz5 =
i.ReadNtohU16();
1227 for (
int k = 0; k <
sz5; k++)
1229 cellInfoItem.relativeNarrowbandTxBand.rntpPerPrbList.push_back(
i.ReadU8());
1233 cellInfoItem.relativeNarrowbandTxBand.rntpThreshold =
i.ReadNtohU16();
1234 cellInfoItem.relativeNarrowbandTxBand.antennaPorts =
i.ReadNtohU16();
1236 cellInfoItem.relativeNarrowbandTxBand.pdcchInterferenceImpact =
i.ReadNtohU16();
1251std::vector<EpcX2Sap::CellInformationItem>
1259 std::vector<EpcX2Sap::CellInformationItem> cellInformationList)
1265 for (
int j = 0;
j < (int)
sz;
j++)
1269 std::vector<EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type
sz2;
1273 std::vector<EpcX2Sap::UlHighInterferenceInformationItem>::size_type
sz3;
1277 for (
int k = 0; k < (int)
sz3; k++)
1279 std::vector<bool>::size_type
sz4;
1281 .ulHighInterferenceInformationList[k]
1282 .ulHighInterferenceIndicationList.size();
1286 std::vector<bool>::size_type
sz5;
1311 m_enb1MeasurementId(0xfffa),
1312 m_enb2MeasurementId(0xfffa)
1329 static TypeId tid =
TypeId(
"ns3::EpcX2ResourceStatusUpdateHeader")
1331 .SetGroupName(
"Lte")
1356 std::vector<EpcX2Sap::CellMeasurementResultItem>::size_type
sz =
1360 for (
int j = 0;
j < (int)
sz;
j++)
1364 i.WriteHtonU16(
item.sourceCellId);
1365 i.WriteU8(
item.dlHardwareLoadIndicator);
1366 i.WriteU8(
item.ulHardwareLoadIndicator);
1367 i.WriteU8(
item.dlS1TnlLoadIndicator);
1368 i.WriteU8(
item.ulS1TnlLoadIndicator);
1370 i.WriteHtonU16(
item.dlGbrPrbUsage);
1371 i.WriteHtonU16(
item.ulGbrPrbUsage);
1372 i.WriteHtonU16(
item.dlNonGbrPrbUsage);
1373 i.WriteHtonU16(
item.ulNonGbrPrbUsage);
1374 i.WriteHtonU16(
item.dlTotalPrbUsage);
1375 i.WriteHtonU16(
item.ulTotalPrbUsage);
1377 i.WriteHtonU16(
item.dlCompositeAvailableCapacity.cellCapacityClassValue);
1378 i.WriteHtonU16(
item.dlCompositeAvailableCapacity.capacityValue);
1379 i.WriteHtonU16(
item.ulCompositeAvailableCapacity.cellCapacityClassValue);
1380 i.WriteHtonU16(
item.ulCompositeAvailableCapacity.capacityValue);
1392 int sz =
i.ReadNtohU16();
1393 for (
int j = 0;
j <
sz;
j++)
1403 item.dlGbrPrbUsage =
i.ReadNtohU16();
1404 item.ulGbrPrbUsage =
i.ReadNtohU16();
1405 item.dlNonGbrPrbUsage =
i.ReadNtohU16();
1406 item.ulNonGbrPrbUsage =
i.ReadNtohU16();
1407 item.dlTotalPrbUsage =
i.ReadNtohU16();
1408 item.ulTotalPrbUsage =
i.ReadNtohU16();
1410 item.dlCompositeAvailableCapacity.cellCapacityClassValue =
i.ReadNtohU16();
1411 item.dlCompositeAvailableCapacity.capacityValue =
i.ReadNtohU16();
1412 item.ulCompositeAvailableCapacity.cellCapacityClassValue =
i.ReadNtohU16();
1413 item.ulCompositeAvailableCapacity.capacityValue =
i.ReadNtohU16();
1456std::vector<EpcX2Sap::CellMeasurementResultItem>
1464 std::vector<EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList)
1468 std::vector<EpcX2Sap::CellMeasurementResultItem>::size_type
sz =
1492 m_oldEnbUeX2apId(0xfffa),
1493 m_newEnbUeX2apId(0xfffa),
1510 static TypeId tid =
TypeId(
"ns3::EpcX2HandoverCancelHeader")
1512 .SetGroupName(
"Lte")
iterator in a Buffer instance
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
~EpcX2HandoverCancelHeader() override
EpcX2HandoverCancelHeader()
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.
EpcX2HandoverPreparationFailureHeader()
~EpcX2HandoverPreparationFailureHeader() override
uint16_t m_criticalityDiagnostics
criticality diagnostics
uint32_t m_headerLength
header length
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
uint32_t m_numberOfIes
number of IEs
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.
~EpcX2HandoverRequestAckHeader() override
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.
EpcX2HandoverRequestAckHeader()
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
EpcX2HandoverRequestHeader()
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
~EpcX2HandoverRequestHeader() override
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
static const uint16_t m_maxPdcpSn
E-RABs subject to status transfer item as it is used in the SN STATUS TRANSFER message.
UlInterferenceOverloadIndicationItem
UL Interference OverloadIndication as it is used in the LOAD INFORMATION message.
LoadIndicator
Load Indicator as it is used in the RESOURCE STATUS UPDATE message.
This class contains the specification of EPS Bearers.
Ipv4 addresses are stored in host order in this class.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Cell Measurement Result Item as it is used in the RESOURCE STATUS UPDATE message.
uint16_t sourceCellId
source cell id
E-RABs admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
E-RABs not admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
E-RABs to be setup item as it is used in the HANDOVER REQUEST message.
ErabsSubjectToStatusTransferItem structure.
std::bitset< m_maxPdcpSn > receiveStatusOfUlPdcpSdus
receive status of UL PDCP SDUs