A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::EpcMme Class Reference

This object implements the MME functionality. More...

#include <epc-mme.h>

+ Inheritance diagram for ns3::EpcMme:
+ Collaboration diagram for ns3::EpcMme:

Classes

struct  BearerInfo
 Hold info on an EPS bearer to be activated. More...
 
struct  EnbInfo
 Hold info on a ENB. More...
 
struct  UeInfo
 Hold info on a UE. More...
 

Public Member Functions

 EpcMme ()
 Constructor. More...
 
virtual ~EpcMme ()
 Destructor. More...
 
void AddBearer (uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer)
 Add an EPS bearer to the list of bearers to be activated for this UE. More...
 
void AddEnb (uint16_t ecgi, Ipv4Address enbS1UAddr, EpcS1apSapEnb *enbS1apSap)
 Add a new ENB to the MME. More...
 
void AddUe (uint64_t imsi)
 Add a new UE to the MME. More...
 
EpcS11SapMmeGetS11SapMme ()
 
EpcS1apSapMmeGetS1apSapMme ()
 
void SetS11SapSgw (EpcS11SapSgw *s)
 Set the SGW side of the S11 SAP. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
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)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
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)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Protected Member Functions

virtual void DoDispose ()
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Private Member Functions

void DoCreateSessionResponse (EpcS11SapMme::CreateSessionResponseMessage msg)
 
void DoInitialContextSetupResponse (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list< EpcS1apSapMme::ErabSetupItem > erabSetupList)
 
void DoInitialUeMessage (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, uint64_t imsi, uint16_t ecgi)
 
void DoModifyBearerResponse (EpcS11SapMme::ModifyBearerResponseMessage msg)
 
void DoPathSwitchRequest (uint64_t enbUeS1Id, uint64_t mmeUeS1Id, uint16_t cgi, std::list< EpcS1apSapMme::ErabSwitchedInDownlinkItem > erabToBeSwitchedInDownlinkList)
 

Private Attributes

std::map< uint16_t, Ptr
< EnbInfo > > 
m_enbInfoMap
 EnbInfo stored by EGCI. More...
 
EpcS11SapMmem_s11SapMme
 
EpcS11SapSgwm_s11SapSgw
 
EpcS1apSapMmem_s1apSapMme
 
std::map< uint64_t, Ptr< UeInfo > > m_ueInfoMap
 UeInfo stored by IMSI. More...
 

Friends

class MemberEpcS11SapMme< EpcMme >
 
class MemberEpcS1apSapMme< EpcMme >
 

Detailed Description

This object implements the MME functionality.

Doxygen introspection did not find any typical Config paths.


No Attributes are defined for this type.
No TraceSources are defined for this type.

Definition at line 40 of file epc-mme.h.

Constructor & Destructor Documentation

ns3::EpcMme::EpcMme ( )

Constructor.

Definition at line 39 of file epc-mme.cc.

References m_s11SapMme, m_s1apSapMme, and NS_LOG_FUNCTION.

ns3::EpcMme::~EpcMme ( )
virtual

Destructor.

Definition at line 48 of file epc-mme.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::EpcMme::AddBearer ( uint64_t  imsi,
Ptr< EpcTft tft,
EpsBearer  bearer 
)

Add an EPS bearer to the list of bearers to be activated for this UE.

The bearer will be activated when the UE enters the ECM connected state.

Parameters
imsiUE identifier
tfttraffic flow template of the bearer
bearerQoS characteristics of the bearer

Definition at line 112 of file epc-mme.cc.

References ns3::EpcMme::BearerInfo::bearer, ns3::EpcMme::BearerInfo::bearerId, m_ueInfoMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::EpcMme::BearerInfo::tft.

void ns3::EpcMme::AddEnb ( uint16_t  ecgi,
Ipv4Address  enbS1UAddr,
EpcS1apSapEnb enbS1apSap 
)

Add a new ENB to the MME.

Parameters
ecgiE-UTRAN Cell Global ID, the unique identifier of the eNodeB
enbS1apSapthe ENB side of the S1-AP SAP

Definition at line 90 of file epc-mme.cc.

References ns3::EpcMme::EnbInfo::gci, m_enbInfoMap, NS_LOG_FUNCTION, ns3::EpcMme::EnbInfo::s1apSapEnb, and ns3::EpcMme::EnbInfo::s1uAddr.

void ns3::EpcMme::AddUe ( uint64_t  imsi)

Add a new UE to the MME.

This is the equivalent of storing the UE credentials before the UE is ever turned on.

Parameters
imsithe unique identifier of the UE

Definition at line 101 of file epc-mme.cc.

References ns3::EpcMme::UeInfo::bearerCounter, ns3::EpcMme::UeInfo::imsi, m_ueInfoMap, ns3::EpcMme::UeInfo::mmeUeS1Id, and NS_LOG_FUNCTION.

void ns3::EpcMme::DoDispose ( void  )
protectedvirtual

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 54 of file epc-mme.cc.

References m_s11SapMme, m_s1apSapMme, and NS_LOG_FUNCTION.

void ns3::EpcMme::DoInitialContextSetupResponse ( uint64_t  mmeUeS1Id,
uint16_t  enbUeS1Id,
std::list< EpcS1apSapMme::ErabSetupItem erabSetupList 
)
private

Definition at line 152 of file epc-mme.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

void ns3::EpcMme::DoPathSwitchRequest ( uint64_t  enbUeS1Id,
uint64_t  mmeUeS1Id,
uint16_t  cgi,
std::list< EpcS1apSapMme::ErabSwitchedInDownlinkItem erabToBeSwitchedInDownlinkList 
)
private
EpcS11SapMme * ns3::EpcMme::GetS11SapMme ( )
Returns
the MME side of the S11 SAP

Definition at line 84 of file epc-mme.cc.

References m_s11SapMme.

EpcS1apSapMme * ns3::EpcMme::GetS1apSapMme ( )
Returns
the MME side of the S1-AP SAP

Definition at line 72 of file epc-mme.cc.

References m_s1apSapMme.

TypeId ns3::EpcMme::GetTypeId ( void  )
static

Definition at line 62 of file epc-mme.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

void ns3::EpcMme::SetS11SapSgw ( EpcS11SapSgw s)

Set the SGW side of the S11 SAP.

Parameters
sthe SGW side of the S11 SAP

Definition at line 78 of file epc-mme.cc.

References m_s11SapSgw, and s.

Friends And Related Function Documentation

friend class MemberEpcS11SapMme< EpcMme >
friend

Definition at line 44 of file epc-mme.h.

friend class MemberEpcS1apSapMme< EpcMme >
friend

Definition at line 43 of file epc-mme.h.

Member Data Documentation

std::map<uint16_t, Ptr<EnbInfo> > ns3::EpcMme::m_enbInfoMap
private

EnbInfo stored by EGCI.

Definition at line 170 of file epc-mme.h.

Referenced by AddEnb(), DoCreateSessionResponse(), and DoModifyBearerResponse().

EpcS11SapMme* ns3::EpcMme::m_s11SapMme
private

Definition at line 177 of file epc-mme.h.

Referenced by DoDispose(), EpcMme(), and GetS11SapMme().

EpcS11SapSgw* ns3::EpcMme::m_s11SapSgw
private

Definition at line 178 of file epc-mme.h.

Referenced by DoInitialUeMessage(), DoPathSwitchRequest(), and SetS11SapSgw().

EpcS1apSapMme* ns3::EpcMme::m_s1apSapMme
private

Definition at line 175 of file epc-mme.h.

Referenced by DoDispose(), EpcMme(), and GetS1apSapMme().

std::map<uint64_t, Ptr<UeInfo> > ns3::EpcMme::m_ueInfoMap
private

The documentation for this class was generated from the following files: