22 #include "ns3/epc-x2-header.h" 32 : m_messageType (0xfa),
33 m_procedureCode (0xfa),
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")
225 for (
int j = 0; j < (int) sz; j++)
282 for (
int j = 0; j < sz; j++)
324 for (
int j = 0; j < (int) sz; j++)
327 if (j < (
int) sz - 1)
386 std::vector <EpcX2Sap::ErabToBeSetupItem>
440 : m_numberOfIes (1 + 1 + 1 + 1),
441 m_headerLength (2 + 2 + 4 + 4),
442 m_oldEnbUeX2apId (0xfffa),
443 m_newEnbUeX2apId (0xfffa)
460 static TypeId tid =
TypeId (
"ns3::EpcX2HandoverRequestAckHeader")
490 for (
int j = 0; j < (int) sz; j++)
499 for (
int j = 0; j < (int) sz2; j++)
523 for (
int j = 0; j < sz; j++)
539 for (
int j = 0; j < sz; j++)
565 for (
int j = 0; j < (int) sz; j++)
568 if (j < (
int) sz - 1)
584 for (
int j = 0; j < (int) sz2; j++)
587 if (j < (
int) sz2 - 1)
623 std::vector <EpcX2Sap::ErabAdmittedItem>
636 std::vector <EpcX2Sap::ErabNotAdmittedItem>
666 : m_numberOfIes (1 + 1 + 1),
667 m_headerLength (2 + 2 + 2),
668 m_oldEnbUeX2apId (0xfffa),
670 m_criticalityDiagnostics (0xfffa)
686 static TypeId tid =
TypeId (
"ns3::EpcX2HandoverPreparationFailureHeader")
794 m_oldEnbUeX2apId (0xfffa),
795 m_newEnbUeX2apId (0xfffa)
812 static TypeId tid =
TypeId (
"ns3::EpcX2SnStatusTransferHeader")
843 for (
int j = 0; j < (int) sz; j++)
850 for (
int k = 0; k < bitsetSize; k++)
852 uint64_t statusValue = 0;
853 for (
int m = 0; m < 64; m++)
879 for (
int j = 0; j < sz; j++)
885 for (
int k = 0; k < bitsetSize; k++)
888 for (
int m = 0; m < 64; m++)
917 for (
int j = 0; j < (int) sz; j++)
920 if (j < (
int) sz - 1)
955 std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem>
985 : m_numberOfIes (1 + 1),
986 m_headerLength (2 + 2),
987 m_oldEnbUeX2apId (0xfffa),
988 m_newEnbUeX2apId (0xfffa)
1003 static TypeId tid =
TypeId (
"ns3::EpcX2UeContextReleaseHeader")
1005 .SetGroupName(
"Lte")
1093 : m_numberOfIes (1),
1109 static TypeId tid =
TypeId (
"ns3::EpcX2LoadInformationHeader")
1111 .SetGroupName(
"Lte")
1141 for (
int j = 0; j < (int) sz; j++)
1145 std::vector <EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type sz2;
1149 for (
int k = 0; k < (int) sz2; k++)
1154 std::vector <EpcX2Sap::UlHighInterferenceInformationItem>::size_type sz3;
1158 for (
int k = 0; k < (int) sz3; k++)
1162 std::vector <bool>::size_type sz4;
1163 sz4 =
m_cellInformationList [j].ulHighInterferenceInformationList [k].ulHighInterferenceIndicationList.size ();
1166 for (
int m = 0; m < (int) sz4; m++)
1172 std::vector <bool>::size_type sz5;
1176 for (
int k = 0; k < (int) sz5; k++)
1203 for (
int j = 0; j < sz; j++)
1211 for (
int k = 0; k < sz2; k++)
1220 for (
int k = 0; k < sz3; k++)
1228 for (
int m = 0; m < sz4; m++)
1239 for (
int k = 0; k < sz5; k++)
1263 std::vector <EpcX2Sap::CellInformationItem>
1276 for (
int j = 0; j < (int) sz; j++)
1280 std::vector <EpcX2Sap::UlInterferenceOverloadIndicationItem>::size_type sz2;
1284 std::vector <EpcX2Sap::UlHighInterferenceInformationItem>::size_type sz3;
1288 for (
int k = 0; k < (int) sz3; k++)
1290 std::vector <bool>::size_type sz4;
1291 sz4 =
m_cellInformationList [j].ulHighInterferenceInformationList [k].ulHighInterferenceIndicationList.size ();
1295 std::vector <bool>::size_type sz5;
1318 : m_numberOfIes (3),
1320 m_enb1MeasurementId (0xfffa),
1321 m_enb2MeasurementId (0xfffa)
1338 static TypeId tid =
TypeId (
"ns3::EpcX2ResourceStatusUpdateHeader")
1340 .SetGroupName(
"Lte")
1369 for (
int j = 0; j < (int) sz; j++)
1402 for (
int j = 0; j < sz; j++)
1465 std::vector <EpcX2Sap::CellMeasurementResultItem>
uint32_t m_mmeUeS1apId
MME UE S1 AP ID.
uint16_t ulGbrPrbUsage
UL GBR PRB usage.
virtual void Print(std::ostream &os) const
uint32_t GetNumberOfIes() const
Get number of IEs.
uint16_t sourceCellId
source cell id
void WriteHtonU64(uint64_t data)
static TypeId GetTypeId(void)
Get the type ID.
E-RABs admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
uint16_t dlGbrPrbUsage
DL GBR PRB usage.
ErabsSubjectToStatusTransferItem structure.
virtual void Print(std::ostream &os) const
EpcX2HandoverPreparationFailureHeader()
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
uint16_t m_targetCellId
target cell ID
virtual ~EpcX2HandoverPreparationFailureHeader()
void SetCause(uint16_t cause)
Set cause function.
uint32_t m_numberOfIes
number of IEs
uint64_t ReadNtohU64(void)
uint16_t cellCapacityClassValue
cell capacity class value
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
uint16_t GetCriticalityDiagnostics() const
Get criticality diagnostics function.
uint16_t m_oldEnbUeX2apId
old ENB UE X1 AP ID
uint64_t GetUeAggregateMaxBitRateUplink() const
Get UE Aggregrate Max Bit Rate Uplik function.
Ipv4Address transportLayerAddress
transport layer address
LoadIndicator dlHardwareLoadIndicator
DL hardware load indicator.
virtual ~EpcX2HandoverRequestHeader()
std::vector< EpcX2Sap::ErabToBeSetupItem > GetBearers() const
Get bearers function.
uint32_t ReadNtohU32(void)
uint16_t pdcchInterferenceImpact
PDC channel interference list.
CompositeAvailCapacity dlCompositeAvailableCapacity
DL composite available capacity.
uint32_t GetLengthOfIes() const
Get length of IEs function.
EpcX2HandoverRequestAckHeader.
iterator in a Buffer instance
uint32_t GetLengthOfIes() const
Get length of IEs function.
LoadIndicator ulS1TnlLoadIndicator
UL S1 TNL load indicator.
uint16_t dlPdcpSn
DL PDCP SN.
uint16_t ulPdcpSn
UL PDCP SN.
uint32_t m_headerLength
header length
EpcX2HandoverRequestHeader.
virtual void Serialize(Buffer::Iterator start) const
This class contains the specification of EPS Bearers.
void SetTargetCellId(uint16_t targetCellId)
Set target cell id function.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t ulTotalPrbUsage
UL Total PRB usage.
uint32_t GetNumberOfIes() const
Get number of IEs function.
UlInterferenceOverloadIndicationItem
UL Interference OverloadIndication as it is used in the LOAD INFORMATION message. ...
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
Set UE Aggregrate Max Bit Rate Uplik function.
LoadIndicator ulHardwareLoadIndicator
UL hardware load indicator.
uint32_t dlGtpTeid
downlink GTP TEID
static const uint16_t m_maxPdcpSn
E-RABs subject to status transfer item as it is used in the SN STATUS TRANSFER message.
GbrQosInformation gbrQosInfo
GBR QOS information.
void WriteHtonU16(uint16_t data)
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
virtual uint32_t GetSerializedSize(void) const
EpcX2HandoverPreparationFailureHeader.
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
Set UE Aggregrate Max Bit Rate Downlink function.
bool preemptionVulnerability
true if bearer can be preempted by others
std::bitset< m_maxPdcpSn > receiveStatusOfUlPdcpSdus
receive status of UL PDCP SDUs
E-RABs to be setup item as it is used in the HANDOVER REQUEST message.
EpcX2HandoverRequestHeader()
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint16_t dlTotalPrbUsage
DL Total PRB usage.
virtual uint32_t Deserialize(Buffer::Iterator start)
void SetNotAdmittedBearers(std::vector< EpcX2Sap::ErabNotAdmittedItem > bearers)
Set not admitted bearers function.
virtual ~EpcX2HandoverRequestAckHeader()
EpsBearer erabLevelQosParameters
E-RAB level QOS parameters.
E-RABs not admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
std::vector< EpcX2Sap::ErabNotAdmittedItem > GetNotAdmittedBearers() const
Get not admitted bearers function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
virtual void Serialize(Buffer::Iterator start) const
uint32_t GetMmeUeS1apId() const
Get MME UE S1 AP ID function.
uint16_t m_criticalityDiagnostics
criticality diagnostics
void WriteHtonU32(uint32_t data)
uint32_t ulGtpTeid
uplink GTP TEID
virtual void Serialize(Buffer::Iterator start) const
bool preemptionCapability
true if bearer can preempt others
std::vector< bool > rntpPerPrbList
RNTP per prb list.
LoadIndicator dlS1TnlLoadIndicator
DL S1 TNL load indicator.
uint64_t m_ueAggregateMaxBitRateUplink
aggregate max bit rate uplink
uint16_t capacityValue
capacity value
Ipv4 addresses are stored in host order in this class.
static TypeId GetTypeId(void)
Get the type ID.
uint16_t GetCause() const
Get cause function.
uint16_t dlNonGbrPrbUsage
DL Non GBR PRB usage.
void WriteU8(uint8_t data)
uint16_t GetOldEnbUeX2apId() const
Get old ENB X2 AP ID function.
EpcX2HandoverRequestAckHeader()
int16_t rntpThreshold
RNTP threshold.
LoadIndicator
Load Indicator as it is used in the RESOURCE STATUS UPDATE message.
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
ERABs not admitted list.
static TypeId GetTypeId(void)
Get the type ID.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint16_t GetTargetCellId() const
Get target cell id function.
Cell Measurement Result Item as it is used in the RESOURCE STATUS UPDATE message. ...
std::vector< EpcX2Sap::ErabAdmittedItem > GetAdmittedBearers() const
Get admittied bearers function.
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabAdmittedItem > m_erabsAdmittedList
ERABs admitted list.
uint32_t m_headerLength
header length
void SetAdmittedBearers(std::vector< EpcX2Sap::ErabAdmittedItem > bearers)
Set admitted bearers function.
uint16_t GetCause() const
Get cause function.
void SetBearers(std::vector< EpcX2Sap::ErabToBeSetupItem > bearers)
Set bearers function.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
virtual void Print(std::ostream &os) const
uint32_t GetLengthOfIes() const
Get length of IEs.
uint64_t GetUeAggregateMaxBitRateDownlink() const
Get UE Aggregate Max Bit Rate Downlink function.
bool dlForwarding
DL forwarding.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB X2 AP ID function.
uint16_t ReadNtohU16(void)
std::vector< EpcX2Sap::ErabToBeSetupItem > m_erabsToBeSetupList
ERAB to be setup list.
void SetCause(uint16_t cause)
Set cause function.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint8_t priorityLevel
1-15; 1 = highest
uint64_t m_ueAggregateMaxBitRateDownlink
aggregate max bit rate downlink
uint32_t m_numberOfIes
number of IEs
a unique identifier for an interface.
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
Set criticality diagnostics function.
uint16_t ulNonGbrPrbUsage
UL Non GBR PRB usage.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
virtual uint32_t GetSerializedSize(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
virtual uint32_t GetSerializedSize(void) const
AllocationRetentionPriority arp
allocation retention priority
uint32_t m_headerLength
header length
virtual uint32_t Deserialize(Buffer::Iterator start)
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
CompositeAvailCapacity ulCompositeAvailableCapacity
UL composite available capacity.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetMmeUeS1apId(uint32_t mmeUeS1apId)
Set MME UE S1 AP ID function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t m_numberOfIes
number of IEs
uint16_t antennaPorts
antenna ports