21 #include <ns3/fatal-error.h> 
   65     .AddConstructor<EpcMme> ()
 
  114   std::map<uint64_t, Ptr<UeInfo> >::iterator it = 
m_ueInfoMap.find (imsi);
 
  116   NS_ASSERT_MSG (it->second->bearerCounter < 11, 
"too many bearers already! " << it->second->bearerCounter);
 
  118   bearerInfo.
bearerId = ++(it->second->bearerCounter);
 
  119   bearerInfo.
tft = tft;
 
  120   bearerInfo.
bearer = bearer;  
 
  121   it->second->bearersToBeActivated.push_back (bearerInfo);
 
  131   std::map<uint64_t, Ptr<UeInfo> >::iterator it = 
m_ueInfoMap.find (imsi);
 
  133   it->second->cellId = gci;
 
  137   for (std::list<BearerInfo>::iterator bit = it->second->bearersToBeActivated.begin ();
 
  138        bit != it->second->bearersToBeActivated.end ();
 
  144       bearerContext.
tft = bit->tft;
 
  158 EpcMme::DoPathSwitchRequest (uint64_t enbUeS1Id, uint64_t mmeUeS1Id, uint16_t gci, std::list<EpcS1apSapMme::ErabSwitchedInDownlinkItem> erabToBeSwitchedInDownlinkList)
 
  162   uint64_t imsi = mmeUeS1Id; 
 
  163   std::map<uint64_t, Ptr<UeInfo> >::iterator it = 
m_ueInfoMap.find (imsi);
 
  165   NS_LOG_INFO (
"IMSI " << imsi << 
" old eNB: " << it->second->cellId << 
", new eNB: " << gci);
 
  166   it->second->cellId = gci;
 
  167   it->second->enbUeS1Id = enbUeS1Id;
 
  183   uint64_t imsi = msg.teid;
 
  184   std::list<EpcS1apSapEnb::ErabToBeSetupItem> erabToBeSetupList;
 
  185   for (std::list<EpcS11SapMme::BearerContextCreated>::iterator bit = msg.
bearerContextsCreated.begin ();
 
  190       erab.
erabId = bit->epsBearerId;
 
  193       erab.
sgwTeid = bit->sgwFteid.teid;      
 
  194       erabToBeSetupList.push_back (erab);
 
  196   std::map<uint64_t, Ptr<UeInfo> >::iterator it = 
m_ueInfoMap.find (imsi);
 
  198   uint16_t cellId = it->second->cellId;
 
  199   uint16_t enbUeS1Id = it->second->enbUeS1Id;
 
  200   uint64_t mmeUeS1Id = it->second->mmeUeS1Id;
 
  201   std::map<uint16_t, Ptr<EnbInfo> >::iterator jt = 
m_enbInfoMap.find (cellId);
 
  203   jt->second->s1apSapEnb->InitialContextSetupRequest (mmeUeS1Id, enbUeS1Id, erabToBeSetupList);
 
  212   uint64_t imsi = msg.teid;
 
  213   std::map<uint64_t, Ptr<UeInfo> >::iterator it = 
m_ueInfoMap.find (imsi);
 
  215   uint64_t enbUeS1Id = it->second->enbUeS1Id;
 
  216   uint64_t mmeUeS1Id = it->second->mmeUeS1Id;
 
  217   uint16_t cgi = it->second->cellId;
 
  218   std::list<EpcS1apSapEnb::ErabSwitchedInUplinkItem> erabToBeSwitchedInUplinkList; 
 
  219   std::map<uint16_t, Ptr<EnbInfo> >::iterator jt = 
m_enbInfoMap.find (it->second->cellId);
 
  221   jt->second->s1apSapEnb->PathSwitchRequestAcknowledge (enbUeS1Id, mmeUeS1Id, cgi, erabToBeSwitchedInUplinkList);
 
void AddUe(uint64_t imsi)
Add a new UE to the MME. 
 
enum ns3::EpcS11SapMme::ModifyBearerResponseMessage::Cause cause
 
smart pointer class similar to boost::intrusive_ptr 
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
MME side of the S1-AP Service Access Point (SAP), provides the MME methods to be called when an S1-AP...
 
MME side of the S11 Service Access Point (SAP), provides the MME methods to be called when an S11 mes...
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register the class in the ns-3 factory. 
 
void DoModifyBearerResponse(EpcS11SapMme::ModifyBearerResponseMessage msg)
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
std::map< uint16_t, Ptr< EnbInfo > > m_enbInfoMap
EnbInfo stored by EGCI. 
 
EpcS1apSapMme * GetS1apSapMme()
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
#define NS_FATAL_ERROR(msg)
fatal error handling 
 
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. 
 
EpcS11SapSgw * m_s11SapSgw
 
This class contains the specification of EPS Bearers. 
 
eNB side of the S1-AP Service Access Point (SAP), provides the eNB methods to be called when an S1-AP...
 
EpcS11SapMme * GetS11SapMme()
 
virtual void ModifyBearerRequest(ModifyBearerRequestMessage msg)=0
send a Modify Bearer Request message 
 
virtual ~EpcMme()
Destructor. 
 
Modify Bearer Request message, see 3GPP TS 29.274 7.2.7. 
 
Ipv4Address transportLayerAddress
 
std::list< BearerContextCreated > bearerContextsCreated
 
virtual void CreateSessionRequest(CreateSessionRequestMessage msg)=0
send a Create Session Request message 
 
EpsBearer erabLevelQosParameters
 
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
 
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
 
void DoInitialUeMessage(uint64_t mmeUeS1Id, uint16_t enbUeS1Id, uint64_t imsi, uint16_t ecgi)
 
Ipv4 addresses are stored in host order in this class. 
 
SGW side of the S11 Service Access Point (SAP), provides the SGW methods to be called when an S11 mes...
 
std::list< BearerContextToBeCreated > bearerContextsToBeCreated
 
std::map< uint64_t, Ptr< UeInfo > > m_ueInfoMap
UeInfo stored by IMSI. 
 
void DoInitialContextSetupResponse(uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list< EpcS1apSapMme::ErabSetupItem > erabSetupList)
 
void AddEnb(uint16_t ecgi, Ipv4Address enbS1UAddr, EpcS1apSapEnb *enbS1apSap)
Add a new ENB to the MME. 
 
void DoPathSwitchRequest(uint64_t enbUeS1Id, uint64_t mmeUeS1Id, uint16_t cgi, std::list< EpcS1apSapMme::ErabSwitchedInDownlinkItem > erabToBeSwitchedInDownlinkList)
 
Template for the implementation of the EpcS1apSapMme as a member of an owner class of type C to which...
 
a base class which provides memory management and object aggregation 
 
Modify Bearer Response message, see 3GPP TS 29.274 7.2.7. 
 
EpcS1apSapMme * m_s1apSapMme
 
void SetS11SapSgw(EpcS11SapSgw *s)
Set the SGW side of the S11 SAP. 
 
a unique identifier for an interface. 
 
Template for the implementation of the EpcS11SapMme as a member of an owner class of type C to which ...
 
TypeId SetParent(TypeId tid)
 
EpcS11SapMme * m_s11SapMme
 
void DoCreateSessionResponse(EpcS11SapMme::CreateSessionResponseMessage msg)
 
static TypeId GetTypeId(void)
 
Hold info on an EPS bearer to be activated. 
 
Create Session Request message, see 3GPP TS 29.274 7.2.1. 
 
EpcS1apSapEnb * s1apSapEnb
 
Create Session Response message, see 3GPP TS 29.274 7.2.2.