![]() |
5G-LENA nr-v3.3-161-gad18933f
The 5G/NR module for the ns-3 simulator
|
#include "nr-epc-x2.h"
Public Member Functions | |
NrEpcX2 () | |
~NrEpcX2 () override | |
void | AddX2Interface (uint16_t gnb1CellId, Ipv4Address gnb1X2Address, std::vector< uint16_t > gnb2CellIds, Ipv4Address gnb2X2Address) |
void | DoDispose () override |
NrEpcX2SapProvider * | GetEpcX2SapProvider () |
void | RecvFromX2cSocket (Ptr< Socket > socket) |
void | RecvFromX2uSocket (Ptr< Socket > socket) |
void | SetEpcX2SapUser (NrEpcX2SapUser *s) |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Member Functions | |
virtual void | DoSendHandoverCancel (NrEpcX2SapProvider::HandoverCancelParams params) |
Send Handover Cancel function. | |
virtual void | DoSendHandoverPreparationFailure (NrEpcX2SapProvider::HandoverPreparationFailureParams params) |
virtual void | DoSendHandoverRequest (NrEpcX2SapProvider::HandoverRequestParams params) |
virtual void | DoSendHandoverRequestAck (NrEpcX2SapProvider::HandoverRequestAckParams params) |
virtual void | DoSendLoadInformation (NrEpcX2SapProvider::LoadInformationParams params) |
virtual void | DoSendResourceStatusUpdate (NrEpcX2SapProvider::ResourceStatusUpdateParams params) |
virtual void | DoSendSnStatusTransfer (NrEpcX2SapProvider::SnStatusTransferParams params) |
virtual void | DoSendUeContextRelease (NrEpcX2SapProvider::UeContextReleaseParams params) |
virtual void | DoSendUeData (NrEpcX2SapProvider::UeDataParams params) |
Protected Attributes | |
NrEpcX2SapProvider * | m_x2SapProvider |
X2 SAP provider. | |
NrEpcX2SapUser * | m_x2SapUser |
X2 SAP user. | |
Friends | |
class | NrEpcX2SpecificEpcX2SapProvider< NrEpcX2 > |
allow NrEpcX2SpecificEpcX2SapProvider<NrEpcX2> class friend access | |
This entity is installed inside an gNB and provides the functionality for the X2 interface
Introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 176 bytes (on a 64-bit architecture).
Definition at line 85 of file nr-epc-x2.h.
ns3::NrEpcX2::NrEpcX2 | ( | ) |
Constructor
Definition at line 72 of file nr-epc-x2.cc.
References m_x2SapProvider, and NrEpcX2SpecificEpcX2SapProvider< NrEpcX2 >.
|
override |
Destructor
Definition at line 81 of file nr-epc-x2.cc.
void ns3::NrEpcX2::AddX2Interface | ( | uint16_t | gnb1CellId, |
Ipv4Address | gnb1X2Address, | ||
std::vector< uint16_t > | gnb2CellIds, | ||
Ipv4Address | gnb2X2Address | ||
) |
Add an X2 interface to this EPC X2 entity
gnb1CellId | the cell ID of the current eNodeB |
gnb1X2Address | the address of the current eNodeB |
gnb2CellIds | the cell IDs of the neighbouring eNodeB |
gnb2X2Address | the address of the neighbouring eNodeB |
Definition at line 118 of file nr-epc-x2.cc.
References RecvFromX2cSocket(), and RecvFromX2uSocket().
|
override |
Definition at line 87 of file nr-epc-x2.cc.
|
protectedvirtual |
Send Handover Cancel function.
params | the handover cancel parameters |
Definition at line 781 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::HandoverCancelParams::cause, ns3::NrEpcX2HandoverCancelHeader::GetLengthOfIes(), ns3::NrEpcX2HandoverCancelHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::HandoverCancelParams::newGnbUeX2apId, ns3::NrEpcX2Sap::HandoverCancelParams::oldGnbUeX2apId, ns3::NrEpcX2HandoverCancelHeader::SetCause(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2HandoverCancelHeader::SetNewGnbUeX2apId(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2HandoverCancelHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), ns3::NrEpcX2Sap::HandoverCancelParams::sourceCellId, and ns3::NrEpcX2Sap::HandoverCancelParams::targetCellId.
|
protectedvirtual |
Send handover preparation failure function
params | the handover preparation failure parameters |
Definition at line 522 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::HandoverPreparationFailureParams::cause, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::criticalityDiagnostics, ns3::NrEpcX2HandoverPreparationFailureHeader::GetLengthOfIes(), ns3::NrEpcX2HandoverPreparationFailureHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::HandoverPreparationFailureParams::oldGnbUeX2apId, ns3::NrEpcX2HandoverPreparationFailureHeader::SetCause(), ns3::NrEpcX2HandoverPreparationFailureHeader::SetCriticalityDiagnostics(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2HandoverPreparationFailureHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), ns3::NrEpcX2Sap::HandoverPreparationFailureParams::sourceCellId, and ns3::NrEpcX2Sap::HandoverPreparationFailureParams::targetCellId.
|
protectedvirtual |
Send handover request function
params | the send handover request parameters |
Definition at line 424 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::HandoverRequestParams::bearers, ns3::NrEpcX2Sap::HandoverRequestParams::cause, ns3::NrEpcX2HandoverRequestHeader::GetLengthOfIes(), ns3::NrEpcX2HandoverRequestHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::HandoverRequestParams::mmeUeS1apId, ns3::NrEpcX2Sap::HandoverRequestParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::HandoverRequestParams::rrcContext, ns3::NrEpcX2HandoverRequestHeader::SetBearers(), ns3::NrEpcX2HandoverRequestHeader::SetCause(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2HandoverRequestHeader::SetMmeUeS1apId(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2HandoverRequestHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), ns3::NrEpcX2HandoverRequestHeader::SetTargetCellId(), ns3::NrEpcX2HandoverRequestHeader::SetUeAggregateMaxBitRateDownlink(), ns3::NrEpcX2HandoverRequestHeader::SetUeAggregateMaxBitRateUplink(), ns3::NrEpcX2Sap::HandoverRequestParams::sourceCellId, ns3::NrEpcX2Sap::HandoverRequestParams::targetCellId, ns3::NrEpcX2Sap::HandoverRequestParams::ueAggregateMaxBitRateDownlink, and ns3::NrEpcX2Sap::HandoverRequestParams::ueAggregateMaxBitRateUplink.
|
protectedvirtual |
Send handover request ack function
params | the send handover request ack parameters |
Definition at line 474 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::HandoverRequestAckParams::admittedBearers, ns3::NrEpcX2HandoverRequestAckHeader::GetLengthOfIes(), ns3::NrEpcX2HandoverRequestAckHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::HandoverRequestAckParams::newGnbUeX2apId, ns3::NrEpcX2Sap::HandoverRequestAckParams::notAdmittedBearers, ns3::NrEpcX2Sap::HandoverRequestAckParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::HandoverRequestAckParams::rrcContext, ns3::NrEpcX2HandoverRequestAckHeader::SetAdmittedBearers(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2HandoverRequestAckHeader::SetNewGnbUeX2apId(), ns3::NrEpcX2HandoverRequestAckHeader::SetNotAdmittedBearers(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2HandoverRequestAckHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), ns3::NrEpcX2Sap::HandoverRequestAckParams::sourceCellId, and ns3::NrEpcX2Sap::HandoverRequestAckParams::targetCellId.
|
protectedvirtual |
Send load information function
params | the send load information parameters |
Definition at line 662 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::LoadInformationParams::cellInformationList, ns3::NrEpcX2LoadInformationHeader::GetLengthOfIes(), ns3::NrEpcX2LoadInformationHeader::GetNumberOfIes(), ns3::NrEpcX2LoadInformationHeader::SetCellInformationList(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2Header::SetProcedureCode(), and ns3::NrEpcX2Sap::LoadInformationParams::targetCellId.
|
protectedvirtual |
Send resource status update function
params | the send resource status update parameters |
Definition at line 704 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::ResourceStatusUpdateParams::cellMeasurementResultList, ns3::NrEpcX2ResourceStatusUpdateHeader::GetLengthOfIes(), ns3::NrEpcX2ResourceStatusUpdateHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::ResourceStatusUpdateParams::gnb1MeasurementId, ns3::NrEpcX2Sap::ResourceStatusUpdateParams::gnb2MeasurementId, ns3::NrEpcX2ResourceStatusUpdateHeader::SetCellMeasurementResultList(), ns3::NrEpcX2ResourceStatusUpdateHeader::SetGnb1MeasurementId(), ns3::NrEpcX2ResourceStatusUpdateHeader::SetGnb2MeasurementId(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2Header::SetProcedureCode(), and ns3::NrEpcX2Sap::ResourceStatusUpdateParams::targetCellId.
|
protectedvirtual |
Send SN status transfer function
params | the SN status transfer parameters |
Definition at line 570 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::SnStatusTransferParams::erabsSubjectToStatusTransferList, ns3::NrEpcX2SnStatusTransferHeader::GetLengthOfIes(), ns3::NrEpcX2SnStatusTransferHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::SnStatusTransferParams::newGnbUeX2apId, ns3::NrEpcX2Sap::SnStatusTransferParams::oldGnbUeX2apId, ns3::NrEpcX2SnStatusTransferHeader::SetErabsSubjectToStatusTransferList(), ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2SnStatusTransferHeader::SetNewGnbUeX2apId(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2SnStatusTransferHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), ns3::NrEpcX2Sap::SnStatusTransferParams::sourceCellId, and ns3::NrEpcX2Sap::SnStatusTransferParams::targetCellId.
|
protectedvirtual |
Send UE context release function
params | the UE context release parameters |
Definition at line 618 of file nr-epc-x2.cc.
References ns3::NrEpcX2UeContextReleaseHeader::GetLengthOfIes(), ns3::NrEpcX2UeContextReleaseHeader::GetNumberOfIes(), ns3::NrEpcX2Sap::UeContextReleaseParams::newGnbUeX2apId, ns3::NrEpcX2Sap::UeContextReleaseParams::oldGnbUeX2apId, ns3::NrEpcX2Header::SetLengthOfIes(), ns3::NrEpcX2Header::SetMessageType(), ns3::NrEpcX2UeContextReleaseHeader::SetNewGnbUeX2apId(), ns3::NrEpcX2Header::SetNumberOfIes(), ns3::NrEpcX2UeContextReleaseHeader::SetOldGnbUeX2apId(), ns3::NrEpcX2Header::SetProcedureCode(), and ns3::NrEpcX2Sap::UeContextReleaseParams::sourceCellId.
|
protectedvirtual |
Send UE data function
params | NrEpcX2SapProvider::UeDataParams |
Definition at line 750 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::UeDataParams::gtpTeid, ns3::NrGtpuHeader::SetLength(), ns3::NrGtpuHeader::SetTeid(), ns3::NrEpcX2Sap::UeDataParams::sourceCellId, ns3::NrEpcX2Sap::UeDataParams::targetCellId, and ns3::NrEpcX2Sap::UeDataParams::ueData.
NrEpcX2SapProvider * ns3::NrEpcX2::GetEpcX2SapProvider | ( | ) |
Definition at line 111 of file nr-epc-x2.cc.
References m_x2SapProvider.
|
static |
void ns3::NrEpcX2::RecvFromX2cSocket | ( | Ptr< Socket > | socket | ) |
Method to be assigned to the recv callback of the X2-C (X2 Control Plane) socket. It is called when the gNB receives a packet from the peer gNB of the X2-C interface
socket | socket of the X2-C interface |
Definition at line 167 of file nr-epc-x2.cc.
References ns3::NrEpcX2Sap::HandoverRequestAckParams::admittedBearers, ns3::NrEpcX2Sap::HandoverRequestParams::bearers, ns3::NrEpcX2Sap::HandoverRequestParams::cause, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::cause, ns3::NrEpcX2Sap::HandoverCancelParams::cause, ns3::NrEpcX2Sap::LoadInformationParams::cellInformationList, ns3::NrEpcX2Sap::ResourceStatusUpdateParams::cellMeasurementResultList, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::criticalityDiagnostics, ns3::NrEpcX2Sap::SnStatusTransferParams::erabsSubjectToStatusTransferList, ns3::NrEpcX2HandoverRequestAckHeader::GetAdmittedBearers(), ns3::NrEpcX2HandoverRequestHeader::GetBearers(), ns3::NrEpcX2HandoverRequestHeader::GetCause(), ns3::NrEpcX2HandoverPreparationFailureHeader::GetCause(), ns3::NrEpcX2HandoverCancelHeader::GetCause(), ns3::NrEpcX2LoadInformationHeader::GetCellInformationList(), ns3::NrEpcX2ResourceStatusUpdateHeader::GetCellMeasurementResultList(), ns3::NrEpcX2HandoverPreparationFailureHeader::GetCriticalityDiagnostics(), ns3::NrEpcX2SnStatusTransferHeader::GetErabsSubjectToStatusTransferList(), ns3::NrEpcX2ResourceStatusUpdateHeader::GetGnb1MeasurementId(), ns3::NrEpcX2ResourceStatusUpdateHeader::GetGnb2MeasurementId(), ns3::NrEpcX2Header::GetMessageType(), ns3::NrEpcX2HandoverRequestHeader::GetMmeUeS1apId(), ns3::NrEpcX2HandoverRequestAckHeader::GetNewGnbUeX2apId(), ns3::NrEpcX2SnStatusTransferHeader::GetNewGnbUeX2apId(), ns3::NrEpcX2UeContextReleaseHeader::GetNewGnbUeX2apId(), ns3::NrEpcX2HandoverCancelHeader::GetNewGnbUeX2apId(), ns3::NrEpcX2HandoverRequestAckHeader::GetNotAdmittedBearers(), ns3::NrEpcX2HandoverRequestHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2HandoverRequestAckHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2HandoverPreparationFailureHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2SnStatusTransferHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2UeContextReleaseHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2HandoverCancelHeader::GetOldGnbUeX2apId(), ns3::NrEpcX2Header::GetProcedureCode(), ns3::NrEpcX2HandoverRequestHeader::GetTargetCellId(), ns3::NrEpcX2HandoverRequestHeader::GetUeAggregateMaxBitRateDownlink(), ns3::NrEpcX2HandoverRequestHeader::GetUeAggregateMaxBitRateUplink(), ns3::NrEpcX2Sap::ResourceStatusUpdateParams::gnb1MeasurementId, ns3::NrEpcX2Sap::ResourceStatusUpdateParams::gnb2MeasurementId, m_x2SapUser, ns3::NrEpcX2Sap::HandoverRequestParams::mmeUeS1apId, ns3::NrEpcX2Sap::HandoverRequestAckParams::newGnbUeX2apId, ns3::NrEpcX2Sap::SnStatusTransferParams::newGnbUeX2apId, ns3::NrEpcX2Sap::UeContextReleaseParams::newGnbUeX2apId, ns3::NrEpcX2Sap::HandoverCancelParams::newGnbUeX2apId, ns3::NrEpcX2Sap::HandoverRequestAckParams::notAdmittedBearers, ns3::NrEpcX2Sap::HandoverRequestParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::HandoverRequestAckParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::SnStatusTransferParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::UeContextReleaseParams::oldGnbUeX2apId, ns3::NrEpcX2Sap::HandoverCancelParams::oldGnbUeX2apId, ns3::NrEpcX2SapUser::RecvHandoverCancel(), ns3::NrEpcX2SapUser::RecvHandoverPreparationFailure(), ns3::NrEpcX2SapUser::RecvHandoverRequest(), ns3::NrEpcX2SapUser::RecvHandoverRequestAck(), ns3::NrEpcX2SapUser::RecvLoadInformation(), ns3::NrEpcX2SapUser::RecvResourceStatusUpdate(), ns3::NrEpcX2SapUser::RecvSnStatusTransfer(), ns3::NrEpcX2SapUser::RecvUeContextRelease(), ns3::NrEpcX2Sap::HandoverRequestParams::rrcContext, ns3::NrEpcX2Sap::HandoverRequestAckParams::rrcContext, ns3::NrEpcX2Sap::HandoverRequestParams::sourceCellId, ns3::NrEpcX2Sap::HandoverRequestAckParams::sourceCellId, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::sourceCellId, ns3::NrEpcX2Sap::SnStatusTransferParams::sourceCellId, ns3::NrEpcX2Sap::HandoverCancelParams::sourceCellId, ns3::NrEpcX2Sap::HandoverRequestParams::targetCellId, ns3::NrEpcX2Sap::HandoverRequestAckParams::targetCellId, ns3::NrEpcX2Sap::HandoverPreparationFailureParams::targetCellId, ns3::NrEpcX2Sap::SnStatusTransferParams::targetCellId, ns3::NrEpcX2Sap::ResourceStatusUpdateParams::targetCellId, ns3::NrEpcX2Sap::HandoverCancelParams::targetCellId, ns3::NrEpcX2Sap::HandoverRequestParams::ueAggregateMaxBitRateDownlink, and ns3::NrEpcX2Sap::HandoverRequestParams::ueAggregateMaxBitRateUplink.
Referenced by AddX2Interface().
void ns3::NrEpcX2::RecvFromX2uSocket | ( | Ptr< Socket > | socket | ) |
Method to be assigned to the recv callback of the X2-U (X2 User Plane) socket. It is called when the gNB receives a packet from the peer gNB of the X2-U interface
socket | socket of the X2-U interface |
Definition at line 394 of file nr-epc-x2.cc.
References ns3::NrGtpuHeader::GetTeid(), ns3::NrEpcX2Sap::UeDataParams::gtpTeid, m_x2SapUser, ns3::NrEpcX2SapUser::RecvUeData(), ns3::NrEpcX2Sap::UeDataParams::sourceCellId, ns3::NrEpcX2Sap::UeDataParams::targetCellId, and ns3::NrEpcX2Sap::UeDataParams::ueData.
Referenced by AddX2Interface().
void ns3::NrEpcX2::SetEpcX2SapUser | ( | NrEpcX2SapUser * | s | ) |
s | the X2 SAP User to be used by this EPC X2 entity |
Definition at line 104 of file nr-epc-x2.cc.
References m_x2SapUser.
|
friend |
allow NrEpcX2SpecificEpcX2SapProvider<NrEpcX2> class friend access
Definition at line 77 of file nr-epc-x2.h.
Referenced by NrEpcX2().
|
protected |
X2 SAP provider.
Definition at line 198 of file nr-epc-x2.h.
Referenced by NrEpcX2(), and GetEpcX2SapProvider().
|
protected |
X2 SAP user.
Definition at line 197 of file nr-epc-x2.h.
Referenced by RecvFromX2cSocket(), RecvFromX2uSocket(), and SetEpcX2SapUser().