#include <epc-x2.h>
Public Member Functions | |
EpcX2 () | |
virtual | ~EpcX2 (void) |
void | AddX2Interface (uint16_t enb1CellId, Ipv4Address enb1X2Address, uint16_t enb2CellId, Ipv4Address enb2X2Address) |
virtual void | DoDispose (void) |
EpcX2SapProvider * | GetEpcX2SapProvider () |
void | RecvFromX2cSocket (Ptr< Socket > socket) |
void | RecvFromX2uSocket (Ptr< Socket > socket) |
void | SetEpcX2SapUser (EpcX2SapUser *s) |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Protected Member Functions | |
virtual void | DoSendHandoverPreparationFailure (EpcX2SapProvider::HandoverPreparationFailureParams params) |
virtual void | DoSendHandoverRequest (EpcX2SapProvider::HandoverRequestParams params) |
virtual void | DoSendHandoverRequestAck (EpcX2SapProvider::HandoverRequestAckParams params) |
virtual void | DoSendLoadInformation (EpcX2SapProvider::LoadInformationParams params) |
virtual void | DoSendResourceStatusUpdate (EpcX2SapProvider::ResourceStatusUpdateParams params) |
virtual void | DoSendSnStatusTransfer (EpcX2SapProvider::SnStatusTransferParams params) |
virtual void | DoSendUeContextRelease (EpcX2SapProvider::UeContextReleaseParams params) |
virtual void | DoSendUeData (EpcX2SapProvider::UeDataParams params) |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Protected Attributes | |
EpcX2SapProvider * | m_x2SapProvider |
EpcX2SapUser * | m_x2SapUser |
Private Attributes | |
uint16_t | m_x2cUdpPort |
std::map< Ptr< Socket >, Ptr < X2CellInfo > > | m_x2InterfaceCellIds |
std::map< uint16_t, Ptr < X2IfaceInfo > > | m_x2InterfaceSockets |
uint16_t | m_x2uUdpPort |
Friends | |
class | EpcX2SpecificEpcX2SapProvider< EpcX2 > |
This entity is installed inside an eNB and provides the functionality for the X2 interface
Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
ns3::EpcX2::EpcX2 | ( | ) |
|
virtual |
void ns3::EpcX2::AddX2Interface | ( | uint16_t | enb1CellId, |
Ipv4Address | enb1X2Address, | ||
uint16_t | enb2CellId, | ||
Ipv4Address | enb2X2Address | ||
) |
s | the X2 SAP Provider interface offered by this EPC X2 entity |
Definition at line 133 of file epc-x2.cc.
References ns3::Socket::Bind(), ns3::Socket::CreateSocket(), ns3::TypeId::LookupByName(), m_x2cUdpPort, m_x2InterfaceCellIds, m_x2InterfaceSockets, ns3::MakeCallback(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, RecvFromX2cSocket(), RecvFromX2uSocket(), and ns3::Socket::SetRecvCallback().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 100 of file epc-x2.cc.
References m_x2InterfaceCellIds, m_x2InterfaceSockets, and NS_LOG_FUNCTION.
EpcX2SapProvider * ns3::EpcX2::GetEpcX2SapProvider | ( | ) |
s | the X2 SAP Provider interface offered by this EPC X2 entity |
Definition at line 125 of file epc-x2.cc.
References NS_LOG_FUNCTION.
Method to be assigned to the recv callback of the X2-C (X2 Control Plane) socket. It is called when the eNB receives a packet from the peer eNB of the X2-C interface
socket | socket of the X2-C interface |
Definition at line 170 of file epc-x2.cc.
References ns3::Packet::GetSize(), m_x2InterfaceCellIds, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Socket::Recv(), ns3::EpcX2SapUser::RecvHandoverRequest(), and ns3::Packet::RemoveHeader().
Referenced by AddX2Interface().
Method to be assigned to the recv callback of the X2-U (X2 User Plane) socket. It is called when the eNB receives a packet from the peer eNB of the X2-U interface
socket | socket of the X2-U interface |
Definition at line 370 of file epc-x2.cc.
References ns3::Packet::GetSize(), m_x2InterfaceCellIds, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Socket::Recv(), and ns3::Packet::RemoveHeader().
Referenced by AddX2Interface().
void ns3::EpcX2::SetEpcX2SapUser | ( | EpcX2SapUser * | s | ) |
s | the X2 SAP User to be used by this EPC X2 entity |
Definition at line 118 of file epc-x2.cc.
References NS_LOG_FUNCTION.
|
private |
UDP ports to be used for the X2 interfaces: X2-C and X2-U
Definition at line 155 of file epc-x2.h.
Referenced by AddX2Interface().
|
private |
Map the localSocket (the one receiving the X2 message) to the corresponding (sourceCellId, targetCellId) associated with the X2 interface
Definition at line 150 of file epc-x2.h.
Referenced by AddX2Interface(), DoDispose(), RecvFromX2cSocket(), and RecvFromX2uSocket().
|
private |
Map the targetCellId to the corresponding (sourceSocket, remoteIpAddr) to be used to send the X2 message
Definition at line 144 of file epc-x2.h.
Referenced by AddX2Interface(), and DoDispose().