25 #include <ns3/fatal-error.h> 
   27 #include <ns3/abort.h> 
   29 #include <ns3/pointer.h> 
   30 #include <ns3/object-map.h> 
   31 #include <ns3/object-factory.h> 
   32 #include <ns3/simulator.h> 
   34 #include <ns3/lte-radio-bearer-info.h> 
   35 #include <ns3/eps-bearer-tag.h> 
   36 #include <ns3/packet.h> 
   38 #include <ns3/lte-rlc.h> 
   39 #include <ns3/lte-rlc-tm.h> 
   40 #include <ns3/lte-rlc-um.h> 
   41 #include <ns3/lte-rlc-am.h> 
   42 #include <ns3/lte-pdcp.h> 
  104   "INITIAL_RANDOM_ACCESS",
 
  106   "CONNECTION_REJECTED",
 
  107   "CONNECTED_NORMALLY",
 
  108   "CONNECTION_RECONFIGURATION",
 
  109   "CONNECTION_REESTABLISHMENT",
 
  110   "HANDOVER_PREPARATION",
 
  112   "HANDOVER_PATH_SWITCH",
 
  122   return g_ueManagerStateName[s];
 
  136   : m_lastAllocatedDrbid (0),
 
  139     m_lastRrcTransactionIdentifier (0),
 
  142     m_pendingRrcConnectionReconfiguration (false),
 
  145     m_needPhyMacConfiguration (false)
 
  172     Ptr<LteRlc> rlc = CreateObject<LteRlcTm> ()->GetObject<LteRlc> ();
 
  177     m_srb0 = CreateObject<LteSignalingRadioBearerInfo> ();
 
  179     m_srb0->m_srbIdentity = 0;
 
  194     Ptr<LteRlc> rlc = CreateObject<LteRlcAm> ()->GetObject<LteRlc> ();
 
  201     pdcp->SetLcId (lcid);
 
  206     m_srb1 = CreateObject<LteSignalingRadioBearerInfo> ();
 
  209     m_srb1->m_srbIdentity = 1;
 
  210     m_srb1->m_logicalChannelConfig.priority = 0;
 
  211     m_srb1->m_logicalChannelConfig.prioritizedBitRateKbps = 100;
 
  212     m_srb1->m_logicalChannelConfig.bucketSizeDurationMs = 100;
 
  213     m_srb1->m_logicalChannelConfig.logicalChannelGroup = 0;
 
  237   m_rrc->m_cmacSapProvider->UeUpdateConfigurationReq (req);
 
  244   Time maxConnectionDelay;
 
  280       m_rrc->m_x2uTeidInfoMap.erase (it->second->m_gtpTeid);
 
  289     .AddConstructor<UeManager> ()
 
  290     .AddAttribute (
"DataRadioBearerMap", 
"List of UE DataRadioBearerInfo by DRBID.",
 
  293                    MakeObjectMapChecker<LteDataRadioBearerInfo> ())
 
  294     .AddAttribute (
"Srb0", 
"SignalingRadioBearerInfo for SRB0",
 
  297                    MakePointerChecker<LteSignalingRadioBearerInfo> ())
 
  298     .AddAttribute (
"Srb1", 
"SignalingRadioBearerInfo for SRB1",
 
  301                    MakePointerChecker<LteSignalingRadioBearerInfo> ())
 
  302     .AddAttribute (
"C-RNTI",
 
  303                    "Cell Radio Network Temporary Identifier",
 
  307                    MakeUintegerChecker<uint16_t> ())
 
  308     .AddTraceSource (
"StateTransition",
 
  309                      "fired upon every UE state transition seen by the " 
  310                      "UeManager at the eNB RRC",
 
  312                      "ns3::UeManager::StateTracedCallback")
 
  339   NS_ASSERT_MSG ( bearerId == 0 || bid == bearerId, 
"bearer ID mismatch (" << (uint32_t) bid << 
" != " << (uint32_t) bearerId << 
", the assumption that ID are allocated in the same way by MME and RRC is not valid any more");
 
  340   drbInfo->m_epsBearerIdentity = bid;
 
  341   drbInfo->m_drbIdentity = drbid;
 
  342   drbInfo->m_logicalChannelIdentity = lcid;
 
  343   drbInfo->m_gtpTeid = gtpTeid;
 
  344   drbInfo->m_transportLayerAddress = transportLayerAddress;
 
  351       x2uTeidInfo.
drbid = drbid;
 
  352       std::pair<std::map<uint32_t, LteEnbRrc::X2uTeidInfo>::iterator, 
bool>
 
  353       ret = 
m_rrc->m_x2uTeidInfoMap.insert (std::pair<uint32_t, LteEnbRrc::X2uTeidInfo> (gtpTeid, x2uTeidInfo));
 
  354       NS_ASSERT_MSG (ret.second == 
true, 
"overwriting a pre-existing entry in m_x2uTeidInfoMap");
 
  365   drbInfo->m_rlc = rlc;
 
  374       pdcp->SetRnti (m_rnti);
 
  375       pdcp->SetLcId (lcid);
 
  379       drbInfo->m_pdcp = pdcp;
 
  385   lcinfo.
lcGroup = 
m_rrc->GetLogicalChannelGroup (bearer);
 
  403   drbInfo->m_logicalChannelIdentity = lcid;
 
  404   drbInfo->m_logicalChannelConfig.priority =  
m_rrc->GetLogicalChannelPriority (bearer);
 
  405   drbInfo->m_logicalChannelConfig.logicalChannelGroup = 
m_rrc->GetLogicalChannelGroup (bearer);
 
  408       drbInfo->m_logicalChannelConfig.prioritizedBitRateKbps = bearer.
gbrQosInfo.
gbrUl;
 
  412       drbInfo->m_logicalChannelConfig.prioritizedBitRateKbps = 0;
 
  414   drbInfo->m_logicalChannelConfig.bucketSizeDurationMs = 1000;
 
  439       std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator drbIt = 
m_drbMap.find (*drbIdIt);
 
  441       drbIt->second->m_rlc->Initialize ();
 
  442       if (drbIt->second->m_pdcp)
 
  444           drbIt->second->m_pdcp->Initialize ();
 
  456   std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = 
m_drbMap.find (drbid);
 
  457   NS_ASSERT_MSG (it != 
m_drbMap.end (), 
"request to remove radio bearer with unknown drbid " << drbid);
 
  460   m_rrc->m_x2uTeidInfoMap.erase (it->second->m_gtpTeid);
 
  463   m_rrc->m_cmacSapProvider->ReleaseLc (
m_rnti, lcid);
 
  479   m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, msg);
 
  487   ueManager->ReleaseDataRadioBearer (bearerId);
 
  513         m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, msg);
 
  561         params.
rrcContext = 
m_rrc->m_rrcSapUser->EncodeHandoverPreparationInformation (hpi);
 
  569         m_rrc->m_x2SapProvider->SendHandoverRequest (params);
 
  597   m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, handoverCommand);
 
  615       if (0 != drbIt->second->m_rlc->GetObject<
LteRlcAm> ())
 
  624   m_rrc->m_x2SapProvider->SendSnStatusTransfer (sst);
 
  661         NS_LOG_LOGIC (
"queueing data on PDCP for transmission over the air");
 
  668         std::map<uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = 
m_drbMap.find (drbid);
 
  672             if (bearerInfo != NULL)
 
  683         NS_LOG_LOGIC (
"forwarding data to target eNB over X2-U");
 
  690         m_rrc->m_x2SapProvider->SendUeData (params);
 
  700 std::vector<EpcX2Sap::ErabToBeSetupItem>
 
  704   std::vector<EpcX2Sap::ErabToBeSetupItem> ret;
 
  710       etbsi.
erabId = it->second->m_epsBearerIdentity;
 
  714       etbsi.
gtpTeid = it->second->m_gtpTeid;
 
  715       ret.push_back (etbsi);
 
  727       NS_LOG_INFO (
"Send UE CONTEXT RELEASE from target eNB to source eNB");
 
  732       m_rrc->m_x2SapProvider->SendUeContextRelease (ueCtxReleaseParams);
 
  751       NS_LOG_INFO (
"target eNB sent HO preparation failure, aborting HO");
 
  765   for (std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>::iterator erabIt 
 
  809         if (
m_rrc->m_admitRrcConnectionRequest == 
true)
 
  812             if (
m_rrc->m_s1SapProvider != 0)
 
  821             m_rrc->m_rrcSapUser->SendRrcConnectionSetup (
m_rnti, msg2);
 
  825                 m_rrc->m_connectionSetupTimeoutDuration,
 
  836             m_rrc->m_rrcSapUser->SendRrcConnectionReject (
m_rnti, rejectMsg);
 
  839                 m_rrc->m_connectionRejectedTimeoutDuration,
 
  885           m_rrc->m_cmacSapProvider->UeUpdateConfigurationReq (req);
 
  891           m_rrc->m_cphySapProvider->SetPa (
m_rnti, paDouble);
 
  911         NS_LOG_INFO (
"Send PATH SWITCH REQUEST to the MME");
 
  923             b.
teid =  it->second->m_gtpTeid;
 
  926         m_rrc->m_s1SapProvider->PathSwitchRequest (params);
 
  957   m_rrc->m_rrcSapUser->SendRrcConnectionReestablishment (
m_rnti, msg2);
 
  985                                         << 
" RSRP " << (it->haveRsrpResult ? (uint16_t) it->rsrpResult : 255)
 
  986                                         << 
" RSRQ " << (it->haveRsrqResult ? (uint16_t) it->rsrqResult : 255));
 
  989   if ((
m_rrc->m_handoverManagementSapProvider != 0)
 
  990       && (
m_rrc->m_handoverMeasIds.find (measId) != 
m_rrc->m_handoverMeasIds.end ()))
 
  993       m_rrc->m_handoverManagementSapProvider->ReportUeMeas (
m_rnti,
 
  997   if ((
m_rrc->m_anrSapProvider != 0)
 
  998       && (
m_rrc->m_anrMeasIds.find (measId) != 
m_rrc->m_anrMeasIds.end ()))
 
 1004   if ((
m_rrc->m_ffrRrcSapProvider != 0)
 
 1005       && (
m_rrc->m_ffrMeasIds.find (measId) != 
m_rrc->m_ffrMeasIds.end ()))
 
 1040   if (params.
lcid > 2)
 
 1075   m_rrc->m_cphySapProvider->SetSrsConfigurationIndex (
m_rnti, srsConfIndex);
 
 1111   const uint8_t MAX_DRB_ID = 32;
 
 1114        drbid = (drbid + 1) % MAX_DRB_ID)
 
 1121               drbInfo->m_drbIdentity = drbid;
 
 1136   std::map<uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = 
m_drbMap.find (drbid);
 
 1146   std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = 
m_drbMap.find (drbid);
 
 1147   NS_ASSERT_MSG (it != 
m_drbMap.end (), 
"request to remove radio bearer with unknown drbid " << drbid);
 
 1186       dtam.
rlcConfig = it->second->m_rlcConfig;
 
 1293   : m_x2SapProvider (0),
 
 1294     m_cmacSapProvider (0),
 
 1295     m_handoverManagementSapProvider (0),
 
 1296     m_anrSapProvider (0),
 
 1297     m_ffrRrcSapProvider (0),
 
 1299     m_macSapProvider (0),
 
 1300     m_s1SapProvider (0),
 
 1301     m_cphySapProvider (0),
 
 1302     m_configured (false),
 
 1303     m_lastAllocatedRnti (0),
 
 1304     m_srsCurrentPeriodicityId (0),
 
 1305     m_lastAllocatedConfigurationIndex (0),
 
 1306     m_reconfigureUes (false)
 
 1347     .SetGroupName(
"Lte")
 
 1349     .AddAttribute (
"UeMap", 
"List of UeManager by C-RNTI.",
 
 1352                    MakeObjectMapChecker<UeManager> ())
 
 1353     .AddAttribute (
"DefaultTransmissionMode",
 
 1354                    "The default UEs' transmission mode (0: SISO)",
 
 1357                    MakeUintegerChecker<uint8_t> ())
 
 1358     .AddAttribute (
"EpsBearerToRlcMapping", 
 
 1359                    "Specify which type of RLC will be used for each type of EPS bearer. ",
 
 1366     .AddAttribute (
"SystemInformationPeriodicity",
 
 1367                    "The interval for sending system information (Time value)",
 
 1373     .AddAttribute (
"SrsPeriodicity",
 
 1374                    "The SRS periodicity in milliseconds",
 
 1378                    MakeUintegerChecker<uint32_t> ())
 
 1381     .AddAttribute (
"ConnectionRequestTimeoutDuration",
 
 1382                    "After a RA attempt, if no RRC CONNECTION REQUEST is " 
 1383                    "received before this time, the UE context is destroyed. " 
 1384                    "Must account for reception of RAR and transmission of " 
 1385                    "RRC CONNECTION REQUEST over UL GRANT.",
 
 1389     .AddAttribute (
"ConnectionSetupTimeoutDuration",
 
 1390                    "After accepting connection request, if no RRC CONNECTION " 
 1391                    "SETUP COMPLETE is received before this time, the UE " 
 1392                    "context is destroyed. Must account for the UE's reception " 
 1393                    "of RRC CONNECTION SETUP and transmission of RRC CONNECTION " 
 1398     .AddAttribute (
"ConnectionRejectedTimeoutDuration",
 
 1399                    "Time to wait between sending a RRC CONNECTION REJECT and " 
 1400                    "destroying the UE context",
 
 1404     .AddAttribute (
"HandoverJoiningTimeoutDuration",
 
 1405                    "After accepting a handover request, if no RRC CONNECTION " 
 1406                    "RECONFIGURATION COMPLETE is received before this time, the " 
 1407                    "UE context is destroyed. Must account for reception of " 
 1408                    "X2 HO REQ ACK by source eNB, transmission of the Handover " 
 1409                    "Command, non-contention-based random access and reception " 
 1410                    "of the RRC CONNECTION RECONFIGURATION COMPLETE message.",
 
 1414     .AddAttribute (
"HandoverLeavingTimeoutDuration",
 
 1415                    "After issuing a Handover Command, if neither RRC " 
 1416                    "CONNECTION RE-ESTABLISHMENT nor X2 UE Context Release has " 
 1417                    "been previously received, the UE context is destroyed.",
 
 1423     .AddAttribute (
"QRxLevMin",
 
 1424                    "One of information transmitted within the SIB1 message, " 
 1425                    "indicating the required minimum RSRP level that any UE must " 
 1426                    "receive from this cell before it is allowed to camp to this " 
 1427                    "cell. The default value -70 corresponds to -140 dBm and is " 
 1428                    "the lowest possible value as defined by Section 6.3.4 of " 
 1429                    "3GPP TS 36.133. This restriction, however, only applies to " 
 1430                    "initial cell selection and EPC-enabled simulation.",
 
 1434                    MakeIntegerChecker<int8_t> (-70, -22))
 
 1437     .AddAttribute (
"AdmitHandoverRequest",
 
 1438                    "Whether to admit an X2 handover request from another eNB",
 
 1442     .AddAttribute (
"AdmitRrcConnectionRequest",
 
 1443                    "Whether to admit a connection request from a UE",
 
 1449     .AddAttribute (
"RsrpFilterCoefficient",
 
 1450                    "Determines the strength of smoothing effect induced by " 
 1451                    "layer 3 filtering of RSRP in all attached UE; " 
 1452                    "if set to 0, no layer 3 filtering is applicable",
 
 1456                    MakeUintegerChecker<uint8_t> (0))
 
 1457     .AddAttribute (
"RsrqFilterCoefficient",
 
 1458                    "Determines the strength of smoothing effect induced by " 
 1459                    "layer 3 filtering of RSRQ in all attached UE; " 
 1460                    "if set to 0, no layer 3 filtering is applicable",
 
 1464                    MakeUintegerChecker<uint8_t> (0))
 
 1467     .AddTraceSource (
"NewUeContext",
 
 1468                      "Fired upon creation of a new UE context.",
 
 1470                      "ns3::LteEnbRrc::NewUeContextTracedCallback")
 
 1471     .AddTraceSource (
"ConnectionEstablished",
 
 1472                      "Fired upon successful RRC connection establishment.",
 
 1474                      "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
 
 1475     .AddTraceSource (
"ConnectionReconfiguration",
 
 1476                      "trace fired upon RRC connection reconfiguration",
 
 1478                      "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
 
 1479     .AddTraceSource (
"HandoverStart",
 
 1480                      "trace fired upon start of a handover procedure",
 
 1482                      "ns3::LteEnbRrc::HandoverStartTracedCallback")
 
 1483     .AddTraceSource (
"HandoverEndOk",
 
 1484                      "trace fired upon successful termination of a handover procedure",
 
 1486                      "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
 
 1487     .AddTraceSource (
"RecvMeasurementReport",
 
 1488                      "trace fired when measurement report is received",
 
 1490                      "ns3::LteEnbRrc::ReceiveReportTracedCallback")
 
 1617   std::map<uint16_t, Ptr<UeManager> >::const_iterator it = 
m_ueMap.find (rnti);
 
 1618   return (it != 
m_ueMap.end ());
 
 1626   std::map<uint16_t, Ptr<UeManager> >::iterator it = 
m_ueMap.find (rnti);
 
 1639                  "Measurement identities and reporting configuration should not have different quantity");
 
 1643       NS_FATAL_ERROR (
"AddUeMeasReportConfig may not be called after the simulation has run");
 
 1654           NS_FATAL_ERROR (
"The given triggerQuantity (RSRP) does not match with the given threshold2.choice");
 
 1663           NS_FATAL_ERROR (
"The given triggerQuantity (RSRP) does not match with the given threshold1.choice");
 
 1671           NS_FATAL_ERROR (
"The given triggerQuantity (RSRQ) does not match with the given threshold2.choice");
 
 1680           NS_FATAL_ERROR (
"The given triggerQuantity (RSRQ) does not match with the given threshold1.choice");
 
 1691       NS_FATAL_ERROR (
"Only REPORT_STRONGEST_CELLS purpose is supported");
 
 1696       NS_LOG_WARN (
"reportQuantity = BOTH will be used instead of the given reportQuantity");
 
 1721                           uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId)
 
 1723   NS_LOG_FUNCTION (
this << (uint16_t) ulBandwidth << (uint16_t) dlBandwidth
 
 1724                         << ulEarfcn << dlEarfcn << cellId);
 
 1805   NS_ASSERT_MSG (found, 
"no EpsBearerTag found in packet to be sent");
 
 1807   ueManager->SendData (tag.
GetBid (), packet);
 
 1823                  "ConnectionRequestTimeout in unexpected state " << 
ToString (
GetUeManager (rnti)->GetState ()));
 
 1841                  "ConnectionRejectedTimeout in unexpected state " << 
ToString (
GetUeManager (rnti)->GetState ()));
 
 1871   ueManager->PrepareHandover (cellId);
 
 1893   GetUeManager (rnti)->RecvRrcConnectionSetupCompleted (msg);
 
 1900   GetUeManager (rnti)->RecvRrcConnectionReconfigurationCompleted (msg);
 
 1907   GetUeManager (rnti)->RecvRrcConnectionReestablishmentRequest (msg);
 
 1914   GetUeManager (rnti)->RecvRrcConnectionReestablishmentComplete (msg);
 
 1935   ueManager->SendUeContextRelease ();
 
 1967   if (anrcrv.
valid == 
false)
 
 1969       NS_LOG_INFO (
this << 
" failed to allocate a preamble for non-contention based RA => cannot accept HO");
 
 1971       NS_FATAL_ERROR (
"should trigger HO Preparation Failure, but it is not implemented");
 
 1985   for (std::vector <EpcX2Sap::ErabToBeSetupItem>::iterator it = req.
bearers.begin ();
 
 1989       ueManager->SetupDataRadioBearer (it->erabLevelQosParameters, it->erabId, it->gtpTeid, it->transportLayerAddress);
 
 2016   ackParams.
rrcContext = encodedHandoverCommand;
 
 2018   NS_LOG_LOGIC (
"Send X2 message: HANDOVER REQUEST ACK");
 
 2033   NS_LOG_LOGIC (
"Recv X2 message: HANDOVER REQUEST ACK");
 
 2042   ueManager->RecvHandoverRequestAck (params);
 
 2050   NS_LOG_LOGIC (
"Recv X2 message: HANDOVER PREPARATION FAILURE");
 
 2060   ueManager->RecvHandoverPreparationFailure (params.
targetCellId);
 
 2076   ueManager->RecvSnStatusTransfer (params);
 
 2111   NS_LOG_LOGIC (
"Recv X2 message: RESOURCE STATUS UPDATE");
 
 2115   NS_ASSERT (
"Processing of RESOURCE STATUS UPDATE X2 message IS NOT IMPLEMENTED");
 
 2123   NS_LOG_LOGIC (
"Recv UE DATA FORWARDING through X2 interface");
 
 2130   std::map<uint32_t, X2uTeidInfo>::iterator 
 
 2134       GetUeManager (teidInfoIt->second.rnti)->SendData (teidInfoIt->second.drbid, params.
ueData);
 
 2154   ueManager->CmacUeConfigUpdateInd (cmacParams);
 
 2179   bool isHandoverAllowed = 
true;
 
 2187                          << 
" targetCellId=" << targetCellId
 
 2188                          << 
" NRT.NoHo=" << noHo << 
" NRT.NoX2=" << noX2);
 
 2192           isHandoverAllowed = 
false;
 
 2193           NS_LOG_LOGIC (
this << 
" handover to cell " << targetCellId
 
 2194                              << 
" is not allowed by ANR");
 
 2199   NS_ASSERT_MSG (ueManager != 0, 
"Cannot find UE context with RNTI " << rnti);
 
 2203       isHandoverAllowed = 
false;
 
 2204       NS_LOG_LOGIC (
this << 
" handover is not allowed because the UE" 
 2205                          << 
" rnti=" << rnti << 
" is in " 
 2206                          << 
ToString (ueManager->GetState ()) << 
" state");
 
 2209   if (isHandoverAllowed)
 
 2212       ueManager->PrepareHandover (targetCellId);
 
 2239   ueManager->SetPdschConfigDedicated (pdschConfigDedicated);
 
 2267   NS_ASSERT_MSG (found, 
"no more RNTIs available (do you have more than 65535 UEs in a cell?)");
 
 2269   Ptr<UeManager> ueManager = CreateObject<UeManager> (
this, rnti, state);
 
 2271   ueManager->Initialize ();
 
 2272   NS_LOG_DEBUG (
this << 
" New UE RNTI " << rnti << 
" cellId " << 
m_cellId << 
" srs CI " << ueManager->GetSrsConfigurationIndex ());
 
 2281   std::map <uint16_t, Ptr<UeManager> >::iterator it = 
m_ueMap.find (rnti);
 
 2283   uint16_t srsCi = (*it).second->GetSrsConfigurationIndex ();
 
 2377       if (g_srsPeriodicity[
id] == p)
 
 2384   std::ostringstream allowedValues;
 
 2387       allowedValues << g_srsPeriodicity[id] << 
" ";
 
 2389   NS_FATAL_ERROR (
"illecit SRS periodicity value " << p << 
". Allowed values: " << allowedValues.str ());
 
 2413                                        << 
") for current SRS periodicity " 
 2415                                        << 
", consider increasing the value of ns3::LteEnbRrc::SrsPeriodicity");
 
 2430       if ((*rit) < g_srsCiHigh[m_srsCurrentPeriodicityId])
 
 2468   if (bearer.
IsGbr ())
 
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry. 
 
enum ns3::LteRrcSap::ReportConfigEutra::@73 reportQuantity
The quantities to be included in the measurement report, always assumed to be BOTH. 
 
Callback< void, Ptr< Packet > > m_forwardUpCallback
 
Ipv4Address transportLayerAddress
IP Address of the SGW, see 36.423 9.2.1. 
 
static const uint8_t SRS_ENTRIES
Number of distinct SRS periodicity plus one. 
 
virtual void SetMasterInformationBlock(LteRrcSap::MasterInformationBlock mib)=0
 
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source. 
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source. 
 
void ConnectionRequestTimeout(uint16_t rnti)
Method triggered when a UE is expected to request for connection but does not do so in a reasonable t...
 
bool HasUeManager(uint16_t rnti) const 
 
SystemInformationBlockType2 sourceSystemInformationBlockType2
 
Parameters passed to DataRadioBearerSetupRequest () 
 
void ConnectionSetupTimeout(uint16_t rnti)
Method triggered when a UE is expected to complete a connection setup procedure but does not do so in...
 
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
 
void SetEpcX2SapProvider(EpcX2SapProvider *s)
Set the X2 SAP this RRC should interact with. 
 
Template for the implementation of the EpcEnbS1SapUser as a member of an owner class of type C to whi...
 
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
 
Simulation virtual time values and global simulation resolution. 
 
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute. 
 
void SendHandoverRequest(uint16_t rnti, uint16_t cellId)
Send a HandoverRequest through the X2 SAP interface. 
 
void SendSystemInformation()
method used to periodically send System Information 
 
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo()
 
CarrierFreqEutra carrierFreq
 
Smart pointer class similar to boost::intrusive_ptr. 
 
These service primitives of this part of the X2 SAP are provided by the X2 entity and issued by RRC e...
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
E-RABs admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message. 
 
LteEnbRrc()
create an RRC instance for use within an eNB 
 
uint16_t AddUe(UeManager::State state)
Allocate a new RNTI for a new UE. 
 
PdschConfigDedicated pdschConfigDedicated
 
AttributeValue implementation for Boolean. 
 
void RecordDataRadioBearersToBeStarted()
Start all configured data radio bearers. 
 
virtual void DoDispose()
Destructor implementation. 
 
uint16_t m_dlBandwidth
Downlink transmission bandwidth configuration in number of Resource Blocks. 
 
MeasConfig sourceMeasConfig
 
void RecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message...
 
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
 
void SetSource(uint16_t sourceCellId, uint16_t sourceX2apId)
Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a hand...
 
std::list< MeasObjectToAddMod > measObjectToAddModList
 
void RecvHandoverPreparationFailure(uint16_t cellId)
Take the necessary actions in response to the reception of an X2 HO preparation failure message...
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
void DoNotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
 
uint8_t numberOfRaPreambles
 
uint8_t bearerId
the EPS Bearer Identifier 
 
uint16_t m_rnti
UE id within this cell. 
 
static double ConvertPdschConfigDedicated2Double(PdschConfigDedicated pdschConfigDedicated)
 
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
 
Ptr< T > GetObject(void) const 
Get a pointer to the requested aggregated Object. 
 
bool presenceAntennaPort1
 
LteFfrRrcSapProvider * m_ffrRrcSapProvider
Interface to the FFR algorithm instance. 
 
virtual void SetEarfcn(uint16_t ulEarfcn, uint16_t dlEarfcn)=0
 
static TypeId GetTypeId(void)
 
void SetCellId(uint16_t m_cellId)
set the cell id of this eNB 
 
LteFfrRrcSapUser * m_ffrRrcSapUser
Receive API calls from the FFR algorithm instance. 
 
uint8_t GetLogicalChannelGroup(EpsBearer bearer)
 
uint8_t m_transmissionMode
Transmission mode 1..7 
 
void AddX2Neighbour(uint16_t cellId)
Add a neighbour with an X2 interface. 
 
QuantityConfig quantityConfig
 
uint8_t Drbid2Bid(uint8_t drbid)
 
enum ns3::LteRrcSap::ReportConfigEutra::@70 eventId
Choice of E-UTRA event triggered reporting criteria. 
 
uint16_t txSn
TX sequence number. 
 
uint16_t rnti
the RNTI identifying the UE for which the DataRadioBearer is to be created 
 
bool m_admitHandoverRequest
The AdmitHandoverRequest attribute. 
 
std::vector< CellMeasurementResultItem > cellMeasurementResultList
 
friend class EnbRrcMemberLteEnbCmacSapUser
 
std::list< MeasResultEutra > measResultListEutra
 
Parameters of the HANDOVER REQUEST message. 
 
int8_t qRxLevMin
INTEGER (-70..-22), actual value = IE value * 2 [dBm]. 
 
Ptr< const AttributeAccessor > MakeEnumAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
Part of the RRC protocol. 
 
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5. 
 
void DoRecvRrcConnectionReconfigurationCompleted(uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted ...
 
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
 
Status variables of the PDCP. 
 
Class for forwarding CMAC SAP User functions. 
 
void AddPacketTag(const Tag &tag) const 
Add a packet tag. 
 
Specifies criteria for triggering of an E-UTRA measurement reporting event. 
 
void SetCsgId(uint32_t csgId, bool csgIndication)
Associate this RRC entity with a particular CSG information. 
 
uint16_t GetSrsConfigurationIndex(void) const 
 
uint8_t raResponseWindowSize
 
uint8_t qci
QoS Class Identifier. 
 
static TypeId GetTypeId(void)
 
virtual ~LteEnbRrc()
Destructor. 
 
LteRlcSapUser * srb0SapUser
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
uint16_t m_rnti
The C-RNTI attribute. 
 
std::list< SrbToAddMod > srbToAddModList
 
Hold a signed integer type. 
 
uint8_t Lcid2Bid(uint8_t lcid)
 
virtual void SendHandoverPreparationFailure(HandoverPreparationFailureParams params)=0
 
void SetLteHandoverManagementSapProvider(LteHandoverManagementSapProvider *s)
set the Handover Management SAP this RRC should interact with 
 
EpcX2SapUser * GetEpcX2SapUser()
Get the X2 SAP offered by this RRC. 
 
RadioResourceConfigDedicated radioResourceConfigDedicated
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
void SetLteEnbCphySapProvider(LteEnbCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY 
 
uint16_t m_lastAllocatedRnti
 
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit. 
 
uint16_t GetNewSrsConfigurationIndex(void)
Allocate a new SRS configuration index for a new UE. 
 
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory. 
 
std::list< BearerToBeSwitched > bearersToBeSwitched
 
uint32_t GetSize(void) const 
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
LteEnbCmacSapUser * GetLteEnbCmacSapUser()
Get the CMAC SAP offered by this RRC. 
 
uint8_t m_transmissionMode
Transmission mode 1..7 
 
Tag used to define the RNTI and EPS bearer ID for packets interchanged between the EpcEnbApplication ...
 
uint16_t m_ulBandwidth
Uplink transmission bandwidth configuration in number of Resource Blocks. 
 
uint8_t m_lastRrcTransactionIdentifier
 
uint16_t m_srsCurrentPeriodicityId
The SrsPeriodicity attribute. 
 
The LTE Radio Resource Control entity at the eNB. 
 
void SetLteEnbRrcSapUser(LteEnbRrcSapUser *s)
set the RRC SAP this RRC should interact with 
 
MeasObjectEutra measObjectEutra
 
uint16_t sourceUeIdentity
 
void SetLteEnbCmacSapProvider(LteEnbCmacSapProvider *s)
set the CMAC SAP this RRC should interact with 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
uint16_t DoAllocateTemporaryCellRnti()
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
uint64_t m_imsi
International Mobile Subscriber Identity assigned to this UE. 
 
virtual uint16_t AllocateTemporaryCellRnti()
request the allocation of a Temporary C-RNTI 
 
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes. 
 
EpsBearer bearer
the characteristics of the bearer to be set up 
 
Time m_handoverLeavingTimeoutDuration
The HandoverLeavingTimeoutDuration attribute. 
 
LteRlcSapProvider * srb0SapProvider
 
uint64_t mbrDl
maximum bitrate in downlink 
 
void SetBid(uint8_t bid)
Set the bearer id to the given value. 
 
Ipv4Address transportLayerAddress
 
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
 
uint8_t GetBid(void) const 
 
Time m_connectionRejectedTimeoutDuration
The ConnectionRejectedTimeoutDuration attribute. 
 
LteMacSapProvider * m_macSapProvider
Interface to the eNodeB MAC instance, to be used by RLC instances. 
 
LteHandoverManagementSapUser * GetLteHandoverManagementSapUser()
Get the Handover Management SAP offered by this RRC. 
 
LteEnbRrcSapProvider * m_rrcSapProvider
Interface to receive messages from UE over the RRC protocol. 
 
RachConfigDedicated rachConfigDedicated
 
uint16_t GetRnti(void) const 
 
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)=0
RecvLoadInformation. 
 
void RemoveSrsConfigurationIndex(uint16_t srcCi)
remove a previously allocated SRS configuration index 
 
virtual void RrcConfigurationUpdateInd(UeConfig params)
Notify the RRC of a UE config updated requested by the MAC (normally, by the scheduler) ...
 
void SetImsi(uint64_t imsi)
Set the IMSI. 
 
Event A2: Serving becomes worse than absolute threshold. 
 
uint64_t ueAggregateMaxBitRateUplink
 
void SetRnti(uint16_t rnti)
 
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider. 
 
void SendUeContextRelease()
send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handove...
 
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
 
The attribute can be written at construction-time. 
 
void SwitchToState(State s)
Switch the UeManager to the given state. 
 
Time m_connectionSetupTimeoutDuration
The ConnectionSetupTimeoutDuration attribute. 
 
static const std::string g_ueManagerStateName[UeManager::NUM_STATES]
Map each of UE Manager states to its string representation. 
 
void RecvRrcConnectionReconfigurationCompleted(LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationComplet...
 
void ReleaseDataRadioBearer(uint8_t drbid)
Release a given radio bearer. 
 
double GetPacketErrorLossRate() const 
 
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
Add a new LteDataRadioBearerInfo structure to the UeManager. 
 
EpcX2SapUser * m_x2SapUser
Interface to receive messages from neighbour eNodeB over the X2 interface. 
 
uint8_t m_rsrqFilterCoefficient
The RsrqFilterCoefficient attribute. 
 
LteEnbRrcSapUser * m_rrcSapUser
Interface to send messages to UE over the RRC protocol. 
 
uint16_t m_dlEarfcn
Downlink E-UTRA Absolute Radio Frequency Channel Number. 
 
bool haveRadioResourceConfigDedicated
 
bool m_needPhyMacConfiguration
 
Ptr< LteEnbRrc > m_rrc
Pointer to the parent eNodeB RRC. 
 
EpcEnbS1SapProvider * m_s1SapProvider
Interface to send messages to core network over the S1 protocol. 
 
LteRrcSap::SystemInformationBlockType1 m_sib1
The System Information Block Type 1 that is currently broadcasted over BCH. 
 
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source. 
 
Time m_connectionRequestTimeoutDuration
The ConnectionRequestTimeoutDuration attribute. 
 
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
set the callback used to forward data packets up the stack 
 
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range. 
 
void DoRecvRrcConnectionSetupCompleted(uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface ...
 
void DoRecvRrcConnectionReestablishmentComplete(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete i...
 
LteHandoverManagementSapUser * m_handoverManagementSapUser
Receive API calls from the handover algorithm instance. 
 
Ptr< const AttributeAccessor > MakeIntegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
void DoCompleteSetupUe(uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to UeManager::Co...
 
SystemInformationBlockType1 sourceSystemInformationBlockType1
 
TracedCallback< uint16_t, uint16_t > m_newUeContextTrace
The NewUeContext trace source. 
 
uint8_t rrcTransactionIdentifier
 
Ptr< Packet > pdcpSdu
the RRC PDU 
 
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
 
PreambleInfo preambleInfo
 
Template for the implementation of the LteFfrRrcSapUser as a member of an owner class of type C to wh...
 
enum ns3::LteRrcSap::ReportConfigEutra::@71 purpose
 
LteEnbCmacSapUser * m_cmacSapUser
Receive API calls from the eNodeB MAC instance. 
 
Ptr< UeManager > GetUeManager(uint16_t rnti)
 
Event A4: Neighbour becomes better than absolute threshold. 
 
Parameters for LtePdcpSapUser::ReceivePdcpSdu. 
 
uint8_t lcId
logical channel identifier 
 
This class contains the specification of EPS Bearers. 
 
uint16_t m_rnti
UE id within this cell. 
 
bool m_admitRrcConnectionRequest
The AdmitRrcConnectionRequest attribute. 
 
int8_t m_qRxLevMin
The QRxLevMin attribute. 
 
uint16_t rnti
the C-RNTI identifying the UE 
 
LtePdcpSapUser * m_drbPdcpSapUser
 
uint8_t AddUeMeasReportConfig(LteRrcSap::ReportConfigEutra config)
Add a new UE measurement reporting configuration. 
 
EventId m_connectionRejectedTimeout
The delay before a connection rejected timeout occurs. 
 
void SetLteFfrRrcSapProvider(LteFfrRrcSapProvider *s)
set the FFR SAP this RRC should interact with 
 
virtual void UeContextRelease(uint16_t rnti)=0
release UE context at the S1 Application of the source eNB after reception of the UE CONTEXT RELEASE ...
 
Reference Signal Received Quality. 
 
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
Hold variables of type enum. 
 
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay. 
 
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
 
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute. 
 
void DoRecvRrcConnectionRequest(uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionRequest interface to UeMa...
 
uint64_t ueAggregateMaxBitRateDownlink
 
uint8_t epsBearerIdentity
 
AttributeValue implementation for Time. 
 
Event A1: Serving becomes better than absolute threshold. 
 
uint16_t m_ulEarfcn
Uplink E-UTRA Absolute Radio Frequency Channel Number. 
 
static TypeId GetTypeId(void)
 
int8_t referenceSignalPower
 
void SetSrsConfigurationIndex(uint16_t srsConfIndex)
Set the SRS configuration index and do the necessary reconfiguration. 
 
void DoTriggerHandover(uint16_t rnti, uint16_t targetCellId)
 
LogicalChannelConfig logicalChannelConfig
 
virtual void SendLoadInformation(LoadInformationParams params)=0
 
RachConfigCommon rachConfigCommon
 
Ptr< Object > Create(void) const 
Create an Object instance of the configured TypeId. 
 
ReportConfigEutra reportConfigEutra
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source. 
 
Parameters of the HANDOVER PREPARATION FAILURE message. 
 
virtual bool GetNoHo(uint16_t cellId) const =0
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT)...
 
Hold an unsigned integer type. 
 
Logical Channel information to be passed to CmacSapProvider::ConfigureLc. 
 
virtual void SetCellId(uint16_t cellId)=0
 
GbrQosInformation gbrQosInfo
 
void DoPathSwitchRequestAcknowledge(EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params)
 
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
 
virtual void NotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
notify the result of the last LC config operation 
 
std::vector< ErabAdmittedItem > admittedBearers
 
uint16_t rnti
the C-RNTI identifying the UE 
 
std::list< MeasIdToAddMod > measIdToAddModList
 
bool haveRachConfigDedicated
 
Both the RSRP and RSRQ quantities are to be included in the measurement report. 
 
Parameters of the SN STATUS TRANSFER message. 
 
PhysicalConfigDedicated physicalConfigDedicated
 
LteEnbCphySapProvider * m_cphySapProvider
Interface to the eNodeB PHY instance. 
 
std::set< uint8_t > m_ffrMeasIds
List of measurement identities which are intended for FFR purpose. 
 
uint8_t filterCoefficientRSRP
 
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance. 
 
Parameters for LtePdcpSapProvider::TransmitPdcpSdu. 
 
uint32_t gtpTeid
S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1. 
 
Template for the implementation of the LteEnbCphySapUser as a member of an owner class of type C to w...
 
uint8_t Drbid2Lcid(uint8_t drbid)
 
LtePdcpSapProvider * srb1SapProvider
 
Reference Signal Received Power. 
 
RSRP is used for the threshold. 
 
uint16_t rxSn
RX sequence number. 
 
LteMacSapUser * GetLteMacSapUser()
 
void SendData(uint8_t bid, Ptr< Packet > p)
Send a data packet over the appropriate Data Radio Bearer. 
 
uint8_t rrcTransactionIdentifier
 
std::set< uint8_t > m_handoverMeasIds
List of measurement identities which are intended for handover purpose. 
 
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC. 
 
virtual RachConfig GetRachConfig()=0
 
RadioResourceConfigDedicated radioResourceConfigDedicated
 
void DoRecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
 
uint8_t m_lastAllocatedDrbid
 
uint8_t Bid2Lcid(uint8_t bid)
 
Parameters for [re]configuring the UE. 
 
std::map< uint32_t, X2uTeidInfo > m_x2uTeidInfoMap
 
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > m_recvMeasurementReportTrace
The RecvMeasurementReport trace source. 
 
void SetRnti(uint16_t rnti)
Set the RNTI to the given value. 
 
uint8_t numberOfRaPreambles
 
uint8_t m_rsrpFilterCoefficient
The RsrpFilterCoefficient attribute. 
 
E-RABs to be setup item as it is used in the HANDOVER REQUEST message. 
 
RadioResourceConfigDedicated sourceRadioResourceConfig
 
Part of the RRC protocol. 
 
uint8_t DoAddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)
 
void SetupDataRadioBearer(EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress)
Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC ...
 
void RemoveDataRadioBearerInfo(uint8_t drbid)
remove the LteDataRadioBearerInfo corresponding to a bearer being released 
 
static TypeId GetTypeId(void)
 
void RecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message...
 
EpcX2SapProvider * m_x2SapProvider
Interface to send messages to neighbour eNodeB over the X2 interface. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
Parameters of the RESOURCE STATUS UPDATE message. 
 
Hold objects of type Ptr. 
 
Ptr< Packet > pdcpSdu
the RRC PDU 
 
virtual void SendHandoverRequestAck(HandoverRequestAckParams params)=0
 
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
 
void SetLteRlcSapUser(LteRlcSapUser *s)
 
uint16_t targetPhysCellId
 
enum ns3::EpsBearer::Qci qci
 
State
The state of the UeManager at the eNB RRC. 
 
EventId m_handoverLeavingTimeout
Time limit before a handover leaving timeout occurs. 
 
Ptr< const AttributeChecker > MakeBooleanChecker(void)
 
uint8_t lcGroup
logical channel group 
 
uint8_t rrcTransactionIdentifier
 
void SetLteAnrSapProvider(LteAnrSapProvider *s)
set the ANR SAP this RRC should interact with 
 
bool haveMobilityControlInfo
 
Parameters of the UE CONTEXT RELEASE message. 
 
EpsBearer erabLevelQosParameters
 
Parameters of the HANDOVER REQUEST ACKNOWLEDGE message. 
 
void RecvRrcConnectionSetupCompleted(LteRrcSap::RrcConnectionSetupCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interfa...
 
RadioResourceConfigDedicated radioResourceConfigDedicated
 
std::list< uint8_t > m_drbsToBeStarted
 
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
 
bool haveMeasResultNeighCells
 
uint8_t filterCoefficientRSRQ
 
bool havePdschConfigDedicated
 
static const uint16_t g_srsCiLow[SRS_ENTRIES]
The lower bound (inclusive) of the SRS configuration indices (ISRS) which use the corresponding SRS p...
 
uint8_t logicalChannelIdentity
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source. 
 
LtePdcpSapUser * srb1SapUser
 
bool havePhysicalConfigDedicated
 
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
 
virtual void SetSystemInformationBlockType1(LteRrcSap::SystemInformationBlockType1 sib1)=0
 
virtual int8_t GetReferenceSignalPower()=0
 
void ScheduleRrcConnectionReconfiguration()
schedule an RRC Connection Reconfiguration procedure with the UE 
 
These service primitives of this part of the X2 SAP are provided by the RRC entity and issued by the ...
 
LteAnrSapUser * GetLteAnrSapUser()
Get the ANR SAP offered by this RRC. 
 
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
Parameters for [re]configuring the UE. 
 
bool haveSoundingRsUlConfigDedicated
 
Time m_systemInformationPeriodicity
The SystemInformationPeriodicity attribute. 
 
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
 
static Time Now(void)
Return the current simulation virtual time. 
 
std::vector< ErabToBeSetupItem > bearers
 
uint8_t m_defaultTransmissionMode
The DefaultTransmissionMode attribute. 
 
void DoRecvResourceStatusUpdate(EpcX2SapUser::ResourceStatusUpdateParams params)
 
void SetLcId(uint8_t lcId)
 
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
 
void DoRecvUeData(EpcX2SapUser::UeDataParams params)
 
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
Send a RRC PDU to the RDCP for transmission This method is to be called when upper RRC entity has a R...
 
RadioResourceConfigCommon radioResourceConfigCommon
 
uint64_t GetImsi(void) const 
 
EnbRrcMemberLteEnbCmacSapUser(LteEnbRrc *rrc)
 
enum ns3::LteRrcSap::ReportConfigEutra::@72 triggerQuantity
The quantities used to evaluate the triggering condition for the event, see 3GPP TS 36...
 
void PrepareHandover(uint16_t cellId)
Start the handover preparation and send the handover request. 
 
CarrierBandwidthEutra carrierBandwidth
 
void DoSendReleaseDataRadioBearer(uint64_t imsi, uint16_t rnti, uint8_t bearerId)
This function acts as an interface to trigger Release indication messages towards eNB and EPC...
 
uint8_t DoAddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
 
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::@66 type
 
uint16_t GetRnti(void) const 
 
virtual void DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)=0
Triggers epc-enb-application to send ERAB Release Indication message towards MME. ...
 
void RecvRrcConnectionReestablishmentComplete(LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplet...
 
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
 
EpcEnbS1SapUser * m_s1SapUser
Interface to receive messages from core network over the S1 protocol. 
 
std::set< uint16_t > m_ueSrsConfigurationIndexSet
 
void SetSrsPeriodicity(uint32_t p)
 
uint16_t rnti
C-RNTI identifying the UE. 
 
virtual void DoDispose(void)
Destructor implementation. 
 
TypeId GetRlcType(EpsBearer bearer)
 
bool m_configured
True if ConfigureCell() has been completed. 
 
LogicalChannelConfig logicalChannelConfig
 
uint64_t mbrUl
maximum bitrate in uplink 
 
void HandoverJoiningTimeout(uint16_t rnti)
Method triggered when a UE is expected to join the cell for a handover but does not do so in a reason...
 
RachConfigCommon rachConfigCommon
 
Ptr< const AttributeChecker > MakeEnumChecker(int v1, std::string n1, int v2, std::string n2, int v3, std::string n3, int v4, std::string n4, int v5, std::string n5, int v6, std::string n6, int v7, std::string n7, int v8, std::string n8, int v9, std::string n9, int v10, std::string n10, int v11, std::string n11, int v12, std::string n12, int v13, std::string n13, int v14, std::string n14, int v15, std::string n15, int v16, std::string n16, int v17, std::string n17, int v18, std::string n18, int v19, std::string n19, int v20, std::string n20, int v21, std::string n21, int v22, std::string n22)
Make an EnumChecker pre-configured with a set of allowed values by name. 
 
#define NS_ABORT_IF(cond)
Abnormal program termination if a condition is true. 
 
Instantiate subclasses of ns3::Object. 
 
Ipv4 addresses are stored in host order in this class. 
 
uint64_t gbrUl
guaranteed bitrate in uplink 
 
uint8_t raResponseWindowSize
 
bool haveCarrierBandwidth
 
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification. 
 
The attribute can be read. 
 
bool haveAntennaInfoDedicated
 
static const std::string & ToString(EpcUeNas::State s)
 
LteAnrSapUser * m_anrSapUser
Receive API calls from the ANR instance. 
 
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
Configure DL and UL bandwidth in Frequency Reuse Algorithm function is called during Cell configurati...
 
EventId m_connectionSetupTimeout
Time limit before a connection setup timeout occurs. 
 
Template for the implementation of the LteEnbRrcSapProvider as a member of an owner class of type C t...
 
bool m_pendingRrcConnectionReconfiguration
 
std::vector< ErabNotAdmittedItem > notAdmittedBearers
 
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance. 
 
void DoRrcConfigurationUpdateInd(LteEnbCmacSapUser::UeConfig params)
 
virtual void ConfigureMac(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
 
void DoSetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pa)
 
uint8_t DoAddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
 
struct defining the RACH configuration of the MAC 
 
void DoRecvHandoverPreparationFailure(EpcX2SapUser::HandoverPreparationFailureParams params)
 
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN. 
 
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance...
 
void StartDataRadioBearers()
Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBe...
 
enum ns3::LteRrcSap::ThresholdEutra::@68 choice
 
virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble(uint16_t rnti)=0
Allocate a random access preamble for non-contention based random access (e.g., for handover)...
 
static const uint16_t g_srsPeriodicity[SRS_ENTRIES]
Sounding Reference Symbol (SRS) periodicity (TSRS) in milliseconds. 
 
EpcEnbS1SapUser * GetS1SapUser()
 
uint8_t allowedMeasBandwidth
 
std::list< DrbToAddMod > drbToAddModList
 
void RecvRrcConnectionReestablishmentRequest(LteRrcSap::RrcConnectionReestablishmentRequest msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest...
 
bool RemovePacketTag(Tag &tag)
Remove a packet tag. 
 
LteEnbCmacSapProvider * m_cmacSapProvider
Interface to the eNodeB MAC instance. 
 
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
 
std::map< uint16_t, Ptr< UeManager > > m_ueMap
The UeMap attribute. 
 
uint16_t sourceDlCarrierFreq
 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
 
static const uint16_t g_srsCiHigh[SRS_ENTRIES]
The upper bound (inclusive) of the SRS configuration indices (ISRS) which use the corresponding SRS p...
 
Time Seconds(double value)
Construct a Time in the indicated unit. 
 
LteFfrRrcSapUser * GetLteFfrRrcSapUser()
Get the FFR SAP offered by this RRC. 
 
uint16_t criticalityDiagnostics
 
virtual Ptr< Packet > EncodeHandoverCommand(RrcConnectionReconfiguration msg)=0
 
void RecvRrcConnectionRequest(LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface...
 
void Cancel(void)
This method is syntactic sugar for the ns3::Simulator::Cancel method. 
 
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
 
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute. 
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source. 
 
uint8_t GetLogicalChannelPriority(EpsBearer bearer)
 
uint8_t lcid
the logical channel id corresponding to the sending RLC instance 
 
bool valid
true if a valid RA config was allocated, false otherwise 
 
uint8_t GetNewRrcTransactionIdentifier()
 
MobilityControlInfo mobilityControlInfo
 
void DoRecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
 
LteEnbCphySapUser * GetLteEnbCphySapUser()
 
void ConnectionRejectedTimeout(uint16_t rnti)
Method triggered a while after sending RRC Connection Rejected. 
 
Ptr< const AttributeAccessor > MakeObjectMapAccessor(U T::*memberVariable)
MakeAccessorHelper implementation for ObjectVector. 
 
uint32_t GetSrsPeriodicity() const 
 
Ptr< LteDataRadioBearerInfo > GetDataRadioBearerInfo(uint8_t drbid)
 
Template for the implementation of the LteAnrSapUser as a member of an owner class of type C to which...
 
AntennaInfoDedicated antennaInfo
 
Time m_handoverJoiningTimeoutDuration
The HandoverJoiningTimeoutDuration attribute. 
 
LteRlcSapProvider * GetLteRlcSapProvider()
 
uint16_t m_lastAllocatedConfigurationIndex
 
virtual void SendSystemInformation(SystemInformation msg)=0
Send a SystemInformation message to all attached UEs during a system information acquisition procedur...
 
virtual void RemoveUe(uint16_t rnti)=0
remove the UE, e.g., after handover or termination of the RRC connection 
 
void HandoverLeavingTimeout(uint16_t rnti)
Method triggered when a UE is expected to leave a cell for a handover but no feedback is received in ...
 
LTE RLC Acknowledged Mode (AM), see 3GPP TS 36.322. 
 
LteHandoverManagementSapProvider * m_handoverManagementSapProvider
Interface to the handover algorithm instance. 
 
A base class which provides memory management and object aggregation. 
 
PdschConfigCommon pdschConfigCommon
 
std::set< uint8_t > m_anrMeasIds
List of measurement identities which are intended for ANR purpose. 
 
Container for a set of ns3::Object pointers. 
 
void ConfigureCell(uint8_t ulBandwidth, uint8_t dlBandwidth, uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId)
Configure cell-specific parameters. 
 
void DoRecvRrcConnectionReestablishmentRequest(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest in...
 
void SetPdschConfigDedicated(LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
Configure PdschConfigDedicated (i.e. 
 
Service Access Point (SAP) offered by the eNB MAC to the eNB RRC See Femto Forum MAC Scheduler Interf...
 
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes. 
 
void RemoveUe(uint16_t rnti)
remove a UE from the cell 
 
State m_state
The current UeManager state. 
 
uint64_t gbrDl
guaranteed bitrate in downlink 
 
uint8_t lcid
the logical channel id corresponding to the sending RLC instance 
 
void DoRecvMeasurementReport(uint16_t rnti, LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManag...
 
RSRQ is used for the threshold. 
 
uint8_t raPreambleId
random access preamble id 
 
void CmacUeConfigUpdateInd(LteEnbCmacSapUser::UeConfig cmacParams)
 
Parameters of the UE DATA primitive. 
 
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
The EpsBearerToRlcMapping attribute. 
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
std::vector< ErabsSubjectToStatusTransferItem > erabsSubjectToStatusTransferList
 
virtual void SetCellId(uint16_t cellId)=0
SetCellId. 
 
void DoSendLoadInformation(EpcX2Sap::LoadInformationParams params)
 
void RecvMeasurementReport(LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface...
 
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE...
 
a unique identifier for an interface. 
 
virtual bool GetNoX2(uint16_t cellId) const =0
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT)...
 
std::list< ReportConfigToAddMod > reportConfigToAddModList
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
std::list< uint8_t > drbToReleaseList
 
uint8_t Bid2Drbid(uint8_t bid)
 
static TypeId GetTypeId(void)
 
void SetS1SapProvider(EpcEnbS1SapProvider *s)
Set the S1 SAP Provider. 
 
uint8_t Lcid2Drbid(uint8_t lcid)
 
virtual void RemoveUe(uint16_t rnti)=0
Remove an UE from the the cell. 
 
EventId m_connectionRequestTimeout
Time limit before a connection request timeout occurs. 
 
LteEnbCphySapUser * m_cphySapUser
Receive API calls from the eNodeB PHY instance. 
 
LteAnrSapProvider * m_anrSapProvider
Interface to the ANR instance. 
 
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance...
 
void DoDataRadioBearerSetupRequest(EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params)
 
void DoRecvLoadInformation(EpcX2SapUser::LoadInformationParams params)
 
RaSupervisionInfo raSupervisionInfo
 
void SetLteMacSapProvider(LteMacSapProvider *s)
 
void RecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message ...
 
bool SendData(Ptr< Packet > p)
Enqueue an IP data packet on the proper bearer for downlink transmission. 
 
EventId m_handoverJoiningTimeout
Time limit before a handover joining timeout occurs. 
 
bool isGbr
true if the bearer is GBR, false if the bearer is NON-GBR 
 
void CompleteSetupUe(LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::CompleteSetupUe interface. 
 
uint16_t m_cellId
Cell identifier. Must be unique across the simulation. 
 
virtual void DoInitialize()
Initialize() implementation. 
 
MasterInformationBlock sourceMasterInformationBlock
 
LteRrcSap::MeasConfig m_ueMeasConfig
List of measurement configuration which are active in every UE attached to this eNodeB instance...
 
int8_t qQualMin
INTEGER (-34..-3), actual value = IE value [dB]. 
 
void DoRecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
 
bool haveCellForWhichToReportCGI
 
ThresholdEutra threshold2
Threshold for event A5. 
 
void DoRecvHandoverRequest(EpcX2SapUser::HandoverRequestParams params)